自定义服务的消息类型
定义服务的消息类型与自定义话题的消息类型类似
1、首先在软件包目录下 新建一个 srv文件夹,并且新建一个消息类型文件
mkdir ~/roswork_space/src/hello_ros/srv
cd ~/roswork_space/src/hello_ros/srv
touch my_srv.srv
或者直接 vim ~/roswork_space/src/hello_ros/srv/my_srv.srv2、编辑你想要的消息类型
int32 A
int32 B
int32 C
------
int32 sum
bool success
常见的ros消息中包含的类型有
int8, int16, int32, int64 (plus uint*)
float32, float64
string
time, duration
other msg files
variable-length array[] and fixed-length array[C]
Header(包含一个timestamp和坐标系信息)
3、编辑软件包下的CMakeLists.txt文件
find_package(catkin REQUIRED COMPONENTS
message_generation roscpp geometry_msgs
add_message_files(FILES my_srv.srv) //根据自己的消息写
generate_messages(DEPENDENCIES
std_msgs)catkin_package(
CATKIN_DEPENDS
message_runtime
)
4、编辑package.xml文件
<build_depend>message_generation</build_depend>
<build_export_depend>message_generation</build_export_depend>
<exec_depend>message_runtime</exec_depend>
简单使用
注意事项
服务不同于话题,服务是client与server一对一的通信,而且保证消息能够送到(有些类似与TCP)
所以使用服务进行消息传递时,有些问题需要注意一下。