在使用ros订阅话题消息的时候,有些时候为了能够进行数据类型的转换或者想实现消息的传输问题时,需要用到自己定义的.msg消息类型。
创建一个msg文件,再创建一个.msg文件:
mkdir msg
vi test.msg
如下定义:
float32[] data
uint16 size
Header header
int16 port
紧接着修改Cmakelist和package.xml。
cmakelist如下:
cmake_minimum_required(VERSION 2.8.3)
project(jack_msgs)
find_package(catkin REQUIRED COMPONENTS
std_msgs
message_generation
)
add_message_files(FILES test.msg)
generate_messages(DEPENDENCIES std_msgs)
catkin_package(CATKIN_DEPENDS message_runtime)
include_directories(${catkin_INCLUDE_DIRS})
package.xml如下:
<buildtool_depend>catkin</buildtool_depend>
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
回到工作空间编译,这时就生成了自己的msg了,就可以通过msg.*的形式进行传输数据了。
编译通过可以通过以下命令查看:
rosmsg show test
这时终端显示的结果应该和test.msg一致。