前言
当我们需要传输一些特殊的数据时,且官方的消息包无法满足需求,我们便可以自己定义一个消息类型。
实验步骤
一、在终端输入cd ~/catkin_ws1/src进入工作空间中src目录
二、输入catkin_create_pkg qq_msgs roscpp rospy std_msgs message_generation message_runtime,创建消息包
三、输入code .打开VScode
四、在刚刚创建的qq_msgs消息包下新创建一个文件夹名叫msg
五、在msg消息文件夹下面创建一个消息类型文件,名叫Carry.msg
六、输入如下内容,这样一个新的消息格式就定义好了
七、打开CMakeLists.txt文件给这个新的消息类型设置编译规则,首先做如下图的修改
八、再打开这里的注释,这里说的是我们新定义的消息包类型所需要依赖的其它消息包列表,目前只用到了std_msgs里的string和int,所以只需要依赖std_msgs。
九、再打开这里的注释,这一句的目的是,让依赖我们新定义的消息包的其它软件包能够在运行时使用我们新定义的消息类型。
十、再打开package.xml对如下进行补全
十一、打开终端,进入工作空间,输入catkin_make进行编译
十二、编译成功
十三、先输入source ./devel/setup.bash设置ROS的环境变量,以便在当前的终端窗口中正确运行ROS软件包。再输入rosmsg show qq_msgs/Carry便可看到我们自定义的消息包结构