参考资料:node
https://www.icourse163.org/course/ISCAS-1002580008?tid=1003713012 //中国大学MOOC数组
https://www.bilibili.com/video/av23401751 //B站服务器
《ROS操做系统入门讲义》PDF下载架构
连接:https://pan.baidu.com/s/1OCja2WLDRnjYXMrpnZ3-sQ
提取码:mziyide
第四章 ROS通讯架构(二)spa
1、Service 服务 //适用于临时的、非周期性的数据操作系统
(1)同步通讯:Node A发布请求后会在原地等待reply(阻塞状态),直到Node B处理完了请求而且完成了reply,Node A才会继续执行命令行
(2)topic VS servicessr
注:service是不能重名的,一个service只能由一个server提供code
(3)经常使用命令 //注意与 rossrv 的区别
2、 srv //和msg文件类型,srv文件是用来描述服务service的通讯数据格式
1. 示例 msgs_demo/srv/DetectHuman.srv //查询当前深度摄像头中的人体姿态和关节数
(1)srv文件以 --- 隔开请求和应答,上方为请求,下方为应答;本例中请求为请求为是否开始检测,应答为一个数组,数组的每一个元素为某我的的姿态(HumanPose)
(2)srv能够嵌套msg,但不能嵌套srv;本例中HumanPose为嵌套的msg
3、参数服务器 //参数服务器是节点存储参数的地方,用于配置全局共享参数
1. “特殊”的通讯方式:使用互联网传输,在节点管理器中运行
2. 参数服务器维护一个数据字典,字典内存储各个参数和配置,更加静态
3. 维护方式
(1)命令行维护:使用 rosparam 命令
注:load和dump的文件须要遵照YAML格式,即“名称 + :+ 值” //能够理解为键值对的字典
(2)launch文件内读写:<param>标签和<rosparam>标签
(3)node源码:利用API对参数服务器进行操做
见后文 "机器人操做系统入门(六)"
4. 参数类型:ROS参数服务器为参数值使用XMLRPC数据类型,其中包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, and base64-encoded data
4、Action //适合长时间的通讯过程,且须要知道状态和结果的场景,能够随时查看过程进度(反馈),也能够终止请求
1. 通讯接口
注:客户端会向服务器发送目标指令和取消动做指令,而服务器则能够给客户端发送实时的状态信息、结果信息和反馈信息等
2. Action规范文件.action格式
注:由 --- 分隔开动做的三部份内容,从上到下分别为 目标、结果、反馈