小说网站建设方案书ppt模板,logo设计软件app,二级目录网站怎么做,推广公司游戏常见的消息包 消息包定义一般如下#x1f447; #xff08;1#xff09;创建包和依赖项
#xff08;2#xff09;在新建的qq_msgs的包新建msgs的文件夹#xff0c;在该文件夹里面新建Carry.msg类型的文件。 其实#xff0c;Carry.msg就是你自己定义的消息类型 1创建包和依赖项
2在新建的qq_msgs的包新建msgs的文件夹在该文件夹里面新建Carry.msg类型的文件。 其实Carry.msg就是你自己定义的消息类型属于qq_msgs包下面的。 (3)在对应CMakeList.txt文件下查看如下信息
查看依赖项是否都满足 4选中如下文件 取消注释 因为我们只需要使用string 还有int64类型的数据组成我们的新的消息包所以就只需要包括标准消息包就可以了。 保存即可 5打开package.xml文件 (6)保存 编译
使用新的消息包 chao_node节点文件如下
#includeros/ros.h
#includestd_msgs/String.h#includeqq_msgs/Carry.h //引进我们自己的消息包int main(int argc, char *argv[])
{ros::init(argc, argv, chao_node);printf(小马同学hello welcome coming Ros world! \n );// 建立节点句柄ros::NodeHandle nh;//建立发布者ros::Publisher pubnh.advertiseqq_msgs::Carry(play_game_topic,10);//控制循环次数ros系统给我自带了控制语句不用我们自己写睡眠函数ros::Rate loop_rate(10); // publish 10 times of per secondwhile(ros::ok()){printf(xiaoma will carry \n);//开始定义标准消息包、qq_msgs::Carry msg;msg.grade hornor;msg.star30;msg.dataplease come on!\n;//给发布者发布pub.publish(msg);loop_rate.sleep();//调用loop_rate的sleep函数让其产生短暂的阻塞}return 0;
} ma_node的代码
#includeros/ros.h
#includestd_msgs/String.h
#includeqq_msgs/Carry.h //引进我们自己的消息包
void xiaoli_callback(qq_msgs::Carry msg)
{ROS_INFO(msg.grade.c_str());ROS_INFO(%lld, msg.star);ROS_INFO(msg.data.c_str());}void play_game_callback(qq_msgs::Carry msg)
{ROS_WARN(msg.data.c_str());//这个输出语句只是把输出内容变成还黄色
}int main(int argc, char *argv[])
{ros::init(argc, argv, ma_node);printf(马同学我将接受发布者的消息 \n );// 建立节点句柄ros::NodeHandle nh;//建立订阅者1ros::Subscriber subnh.subscribe(xiang_he_xiao_ma_wan_you_xi,10,xiaoli_callback);//建立订阅者2不能和第一个名字一样ros::Subscriber sub2nh.subscribe(play_game_topic,10,play_game_callback);while(ros::ok()){ros::spinOnce();}return 0;
}
他的配置文件格式与chao_node一样分别是CMakeList.txt文件和package.xml文件。 运行结果