service通信介绍
service简介¶
service是 ROS 图中节点的另一种通信方式。服务基于调用和响应模型,而不是topic的发布者-订阅者模型。虽然topic允许节点订阅数据流并获得持续更新,但service仅在客户端专门调用它们时才提供数据。
service任务¶
1. 打开2个节点¶
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
2. service列表¶
在新终端中运行该命令将返回系统中当前处于活动状态的所有服务的列表:ros2 service list
3. service的类型¶
服务具有描述服务的请求和响应数据的结构的类型。服务类型的定义类似于主题类型,除了服务类型有两部分:一个消息用于请求,另一个用于响应。
要找出服务的类型,请使用以下命令:
ros2 service type <service_name>
4.带类型的service列表¶
ros2 service list -t
5. 查看特定类型的服务¶
ros2 service find 类型名
6. 查看服务类型的数据结构¶
ros2 interface show <type_name>.srv
7. 调用service¶
ros2 service call <service_name> <service_type> <arguments>
该
<arguments>
部分是可选的。例如,Empty
类型化服务没有任何参数