基于服务(Service)的通信
服务调用(service calls)是ROS另一种通信方法。它与话题通信的区别是:服务允许Client(节点1:客户端)发送请求(request)到Server(节点2:服务器) 并获得一个响应(response),服务调用是双向的,且实现的是一对一的通信;对于话题,消息发布的节点不知道是否有其他节点订阅了这个消息,而订阅的节点也不知道是否有其他节点会发布这个消息,且同一个话题可以有很多个发布者和订阅者。
服务的描述定义了ROS中需求和响应的数据结构,同消息类型一样,服务数据类型也是由一系列域构成的。唯一的区别就在于服务数据类型分为两部分,分别表示请求和响应。
基于参数(Parameter)的通信
通过使用参数服务器(parameter server)来维护变量集的值,包括整数、浮点数、字符串以及其他数据类型。参数服务器允许节点主动查询所需参数的值它们适用于配置那些不会随时间频繁变更的信息。