消息文件
消息(msg): 描述 ROS 消息的文本文件,用于生成消息源码。存放在 msg/
目录下,
每个类型和字段一行,可选类型如下:
- int8, int16, int32, int64 (uint*)
- float32, float64
- string
- time, duration
- array (可变和定长都支持)
- Header (包含时间错、坐标帧,通常在第一行)
- 其他消息文件
创建一个消息文件
roscd echo_hello
mkdir -p msg
echo 'int64 num' > msg/num.msg
修改清单文件(package.xml),打开以下两行注释
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
修改 CMakeLists.txt:添加依赖库,添加消息文件列表
find_package(catkin REQUIRED COMPONENTS
...
message_generation
)
add_message_files(
FILES
num.msg
)
查看消息类型
rosmsg show [/包名/]消息
服务文件
服务(src): 描述服务的文件,分为请求和应答两个部分。存放在 srv/
目录下,
使用 ---
分割请求和应答。
复制一份服务文件
roscd echo_hello
mkdir -p srv
roscp rospy_turtorials AddTwoInts.srv srv
同消息文件处理一样,需确保清文件开启了组件和运行消息依赖,修改 CMakeLists.txt
add_service_files(
FILES
AddTwoInts.srv
)
查看服务文件
rossrv show AddTwoInts
消息和服务通用步骤
在 CMakeLists.txt 开启生成消息功能
generate_messages(
DEPENDENCIES
std_msgs
)
重新编译
cd ~/ROS
catkin_make install
查看输出文件
- C++:
~/ROS/devel/include/echo_hello/
- Python:
~/ROS/devel/lib/python2.7/site-packages/echo_hello/
回顾
rosmsg
=ros
+msg
rossrv
=ros
+srv