当前位置: 首页 > news >正文

做gif动图的素材网站网页设计制作音乐排行榜

做gif动图的素材网站,网页设计制作音乐排行榜,网站开发定制模板网站建设,青海省高等级公路建设管理局网站目录 新建消息文件更改包xml文件中的依赖关系更改cmakelist文件中的配置执行时依赖改变cmakelist编译顺序发布者程序调用者程序新建launch文件程序测试 新建消息文件 在功能包目录下,新建msg文件夹,下面新建mymsg.msg文件,其内容为 string …

目录

  • 新建消息文件
  • 更改包xml文件中的依赖关系
  • 更改cmakelist文件中的配置
  • 执行时依赖
  • 改变cmakelist
  • 编译顺序
  • 发布者程序
  • 调用者程序
  • 新建launch文件
  • 程序测试

新建消息文件

在功能包目录下,新建msg文件夹,下面新建mymsg.msg文件,其内容为

string name
float64 value

发布者包含该消息,生成头文件,由发布者publisher包含该消息头文件即可

更改包xml文件中的依赖关系

  <build_depend>message_generation</build_depend><exec_depend>message_runtime</exec_depend><!-- exce_depend 以前对应的是 run_depend 现在非法-->

更改cmakelist文件中的配置

新增了message_generation

find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation
)

配置 msg 源文件

add_message_files(FILESmymsg.msg
)

执行时依赖

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES demo02_talker_listenerCATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)

改变cmakelist

新生成的.h文件位于devel/include文件夹下,在订阅及发布方的cmakelist中添加:

include_directories(
# include${catkin_INCLUDE_DIRS}"/root/work/ws/devel/include/"
)

这样工程才能找到生成的消息文件

编译顺序

编译时先编译带有自定义消息mymsg.msg的功能包,再编译整体的功能,其顺序不能出错,不然可能生成不了头文件

catkin_make --pkg publisher
catkin_make

发布者程序

// 1.包含头文件 
#include "ros/ros.h"
#include "std_msgs/String.h" //普通文本类型的消息
#include <sstream>
#include "publisher/mymsg.h"
int main(int argc, char  *argv[])
{   //设置编码setlocale(LC_ALL,"");//2.初始化 ROS 节点:命名(唯一)// 参数1和参数2 后期为节点传值会使用// 参数3 是节点名称,是一个标识符,需要保证运行后,在 ROS 网络拓扑中唯一ros::init(argc,argv,"talker");//3.实例化 ROS 句柄ros::NodeHandle nh;//该类封装了 ROS 中的一些常用功能//4.实例化 发布者 对象//泛型: 发布的消息类型//参数1: 要发布到的话题//参数2: 队列中最大保存的消息数,超出此阀值时,先进的先销毁(时间早的先销毁)ros::Publisher pub = nh.advertise<publisher::mymsg>("test",10);int count = 0; //消息计数器ros::Duration(0.5).sleep();//这里是每秒通过一次,剩余时间则阻塞在下面的r.sleepros::Rate r(1);//节点不死while (ros::ok()){//使用 stringstream 拼接字符串与编号publisher::mymsg msg;msg.name="liu";msg.value=count;//发布消息pub.publish(msg);//加入调试,打印发送的消息// ROS_INFO("发送的消息:%s",msg.data.c_str());//根据前面制定的发送贫频率自动休眠 休眠时间 = 1/频率;r.sleep();count++;//循环结束前,让 count 自增//暂无应用ros::spinOnce();}return 0;
}

调用者程序


// 1.包含头文件 
#include "ros/ros.h"
#include "std_msgs/String.h"
#include "publisher/mymsg.h"
//这里创建了回调函数,接收信息后传递的是std_msgs::String类型的常指针
void doMsg(const publisher::mymsg::ConstPtr& msg_p){ROS_INFO("订阅信息:%s,%.2f", msg_p->name.c_str(), msg_p->value);
}int main(int argc, char  *argv[])
{setlocale(LC_ALL,"");//2.初始化 ROS 节点:命名(唯一)ros::init(argc,argv,"listener");//3.实例化 ROS 句柄ros::NodeHandle nh;//4.实例化 订阅者 对象ros::Subscriber sub = nh.subscribe<publisher::mymsg>("test",10,doMsg);//5.处理订阅的消息(回调函数)ros::spin();//循环读取接收的数据,并调用回调函数处理return 0;
}

新建launch文件

两个包文件夹下新建launch目录,下有launch文件,以subscriber包为例

<launch><!-- screen表示输出到屏幕上 --><node pkg="subscriber" type="subscriber_node" name="listener" output="screen" />
</launch>

默认生成的cmakelist,节点可执行程序名为包名__node

程序测试

source ./devel/setup.bash
roslaunch subscriber start.launch
roslaunch publisher start.launch

在这里插入图片描述

http://www.yayakq.cn/news/464008/

相关文章:

  • dedecms建网站房产网站建设
  • 建站网络公司网站seo排名优化价格
  • wordpress开启2级域名网站做优化的成本
  • 天津网站建设班网络培训的收获与感受
  • 公司网站怎样维护运营北京正邦设计
  • 黄岛网站建设服务公司江西天亿建设有限公司网站
  • 福建网站建设费用电商网站入口
  • 大连网站设计哪个最好天眼查企业查询在线官网
  • 长期网站外包营销型网站有哪些类型
  • 下载软件的网站推荐一般网站服务器配置
  • 网站免费搭建平台企业网站建设公司 末路
  • 做前后端网站教程群晖 wordpress规则
  • 四川网站建设制作电子商务网站设计html模板
  • 门户网站意义网站开发项目经理招聘
  • 谁家做网站比较好速卖通
  • 维护网站都干什么wordpress手机怎么使用
  • 网站套网站代码wordpress调用二级分类目录
  • 广胜达建设集团网站建设银行网站用户名是多少
  • 淘宝做短视频网站重庆网站产品推广
  • 广州市公司网站建设企业百度广告投诉电话
  • 厦门做企业网站计算机有网站建设专业吗
  • 郑州电力高等专科学校在哪个区短视频优化
  • 宁晋seo网站优化排名网站主机购买
  • 长治长治那有做网站的恋爱网页生成
  • 网站网页设计怎么报价中小企业网站规划方案
  • 祥云建站平台长尾词挖掘
  • 江西省建设培训中心网站vs2015做简单网站
  • 廊坊网站建设推广经验西安代做网站
  • 海南省建设厅网站wordpress 分类 如何
  • 友情链接网站被降权wordpress主体功能开发