Firechecking

ROS开发

msg、srv

  1. msg:msg目录下.msg后缀的文本文件

    1. 每行包括数据类型、变量名称,支持以下数据类型

      1
      2
      3
      4
      5
      6
      7
      Header
      int8, int16, int32, int64 (plus uint*)
      float32, float64
      string
      time, duration
      other msg files
      variable-length array[] and fixed-length array[C]
    2. 包括Header、string、和其他msg的样例:

      1
      2
      3
      4
      Header header
      string child_frame_id
      geometry_msgs/PoseWithCovariance pose
      geometry_msgs/TwistWithCovariance twist
  2. srv:srv目录下.srv后缀的文本文件

    1. 和msg格式类似
    2. 区别是不仅包括请求,还包括答复格式,以“—”分隔
    3. 样例:

      1
      2
      3
      4
      int64 A
      int64 B
      ---
      int64 Sum

msg使用

创建msg

  1. 在msg目录创建并编辑Num.msg文本文件
  2. 在package.xml中添加依赖
1
2
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
  1. 在CMakeLists.txt中添加支持
1
2
3
4
5
6
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
1
2
3
4
catkin_package(
...
CATKIN_DEPENDS message_runtime ...
...)
1
2
3
4
add_message_files(
FILES
Num.msg
)
1
2
3
4
generate_messages(
DEPENDENCIES
std_msgs
)
  1. 工具
    1. rosmsg show
    2. rosmsg list

srv使用

  1. 在srv目录创建并编辑AddTwoInts.srv文本文件
  2. 在package.xml中添加依赖:
1
2
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
1
2
3
4
5
6
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
1
2
3
4
add_service_files(
FILES
AddTwoInts.srv
)
  1. 工具
    1. rossrv show
    2. rossrv list

编译使用

  1. 在workspace根目录运行catkin_make
  2. ros会根据msg、srv文件创建c++、python、list的代码