ROS 服务 消息传递

自定义服务的消息类型

定义服务的消息类型与自定义话题的消息类型类似

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.srv

2、编辑你想要的消息类型

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文件

message_generation
message_generation
message_runtime

简单使用

注意事项

服务不同于话题,服务是client与server一对一的通信,而且保证消息能够送到(有些类似与TCP)
所以使用服务进行消息传递时,有些问题需要注意一下。

你可能感兴趣的:(ROS机器人系统)