ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行
一、自定义消息:
1.新建msg文件夹,创建定义Person.msg 文件
mkdir -p ~/catkin_ws/src/mypackage/msg
cd ~/catkin_ws/src/mypackage/msg
touch Person.msg
打开 Person.msg 文件,添加内容( std_msgs/Header header 是一个标准格式的头信息(也可以不加))
std_msgs/Header header
string name
uint8 sex
uint8 age
2.修改添加~/catkin_ws/src/mypackage/package.xml 文件中内容
...
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
...
3.修改添加~/catkin_ws/src/mypackage/CMakeList.txt 文件中内容
// 添加生成依赖的功能包
find_package(catkin REQUIRED COMPONENTS
...
message_generation
)
// 添加 catkin 依赖
catkin_package(
...
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
)
// 添加需要编译的.msg文件
add_message_files(
FILES
Person.msg
)
generate_messages(
DEPENDENCIES
std_msgs )
4.查看msg
cd ~/catkin_ws
rosmsg show Person
显示:
[mypackage/Person]:
string name
uint8 sex
uint8 age
二、Publisher+Subscriber 示例:
1,~/catkin_ws/mypackage/src 目录中,编写俩个源文件talker.cpp和listener.cpp
(编译器编写或文本编写)
talker.cpp 源码:
#include "ros/ros.h"
#include "std_msgs/ "
#include "mypackage/Person.h" // 包含自定义信息头文件
#include <sstream>
#include <string.h>
int main(int argc, char** argv)
{
//ROS 节点初始化
//创建节点句柄
ros: