ROS学习笔记:自定义消息

ROS学习笔记:自定义消息

  • 一、创建工作空间与功能包
    • 1、创建工作空间
    • 2、创建功能包
  • 二、创建自定义消息
    • 1、新建消息文件夹与自定义消息
    • 2、修改package.xml
    • 3、修改CMakeLists.txt
      • 1. find_package中添加message_generation
      • 2. add_message_files中添加文件名motorMsg.msg
      • 3. generate_messages取消注释
      • 4. catkin_package添加依赖message_runtime
  • 三、使用并发布自定义消息
    • 1、主函数
    • 2、添加头文件
    • 3、监听消息

一、创建工作空间与功能包

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

ROS学习笔记:自定义消息_第1张图片
在motorMsg.msg中输入:

int32[4] motorSpeed
int32[4] motorCurrent

2、修改package.xml

message_generation
message_generation
message_runtime

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("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

你可能感兴趣的:(ROS学习笔记)