ROS学习笔记:自定义消息
一、创建工作空间与功能包
1、创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
catkin_make
2、创建功能包
catkin_create_pkg test std_msgs rospy roscpp
二、创建自定义消息
1、新建消息文件夹与自定义消息
cd test/
mkdir msg && cd msg
touch motorMsg.msg
在motorMsg.msg中输入:
int32[4] motorSpeed
int32[4] motorCurrent
2、修改package.xml
<build_depend>message_generation</build_depend>
<build_export_depend>message_generation</build_export_depend>
<exec_depend>message_runtime</exec_depend>
3、修改CMakeLists.txt
1. find_package中添加message_generation
find_package(catkin REQUIRED COMPONENTS
message_generation
roscpp)
2. add_message_files中添加文件名motorMsg.msg
add_message_files(FILES
motorMsg.msg)
3. generate_messages取消注释
generate_messages(DEPENDENCIES
std_msgs)
4. catkin_package添加依赖message_runtime
catkin_package(
CATKIN_DEPENDS
message_runtime)
三、使用并发布自定义消息
1、主函数
ros::Publisher pub =n.advertise<test::motorMsg>("motor_msg", 1);
test::motorMsg motor;
motor.motorCurrent[0]=1;
motor.motorCurrent[1]=2;
motor.motorCurrent[2]=3;
motor.motorCurrent[3]=4;
pub.publish(motor);
2、添加头文件
#include "test/motorMsg.h"
3、监听消息
查看当前发布消息的话题
rostopic list
查看当前发布的自定义消息
cd ~/catkin_ws
source devel/setup.bash
rostopic echo /motor_msg