ROS:msg⾃定义类型,话题通信话题通信图⽰:
打开新创建的⼯作空间
创建msg⽂件
⾃定义变量类型中申明三个变量查别人手机位置
string name
int32 age
float32 height
修改配置⽂件
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>message_generation</build_depend>
<build_export_depend>roscpp</build_export_depend> <build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
重点工作计划<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>message_runtime</exec_depend>
修改另⼀个配置⽂件
第⼀步
第⼆步(注意,这是⾃⼰创建的msg⽂件名称)
第三步(解封这段)
第四步 后⾯添加
编译
编写发布者程序
创建⽂件
需要修改配置⽂件,让系统先编译⾃定义数据类型
add_dependencies(person_pub ${PROJECT_NAME}_generate_messages_cpp )发布者代码
#include"ros/ros.h"
#include"../../../devel/include/plumbing_pub_sub/Person.h"
/*
发布⽅:发布⼈的消息
1.包含头⽂件
#include "plumbing_pub_sub/person.h"
表格法2.初始化ROS节点
3.创建节点句柄
4.创建发布者对象
5.编写发布逻辑,发布数据
*/
int main(int argc,char*argv[])
{
tlocale(LC_ALL,"");
ROS_INFO("这是消息发布者");
小学生反义词// 2.初始化ROS节点
ros::init(argc,argv,"banZhuRen");
/
/ 3.创建节点句柄
ros::NodeHandle nh;
// 4.创建发布者对象
ros::Publisher pub = nh.adverti<plumbing_pub_sub::Person>("liaotian",10);
// 5.编写发布逻辑,发布数据
//5.1创建被发布的数据
plumbing_pub_sub::Person person;
person.name ="张三";
person.age =18;
person.height =1.70;
南京科技学院
//5.2设置发布频率
店长英文
ros::Rate rate(1);
孤掌
//5.3循环发布数据
while(ros::ok())
{
//数据发布
pub.publish(person);
ROS_INFO("发布的消息为:名字:%s,年龄:%d,⾝⾼:%2f",person.name.c_str(),person.age,person.height);
//年龄加⼀
person.age ++;
//延时
rate.sleep();
//建议
ros::spinOnce();
}
return0;
}
着急造句