• 机器人操作系统入门(四)ROS通信架构


    参考资料:

    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 
    提取码:mziy

    第四章 ROS通信架构(二)

    一、Service 服务  //适用于临时的、非周期性的数据

    (1)同步通信:Node A发布请求后会在原地等待reply(阻塞状态),直到Node B处理完了请求并且完成了reply,Node A才会继续执行

    (2)topic VS service

    注:service是不能重名的,一个service只能由一个server提供

    (3)常用命令  //注意与 rossrv 的区别

    二、 srv  //和msg文件类型,srv文件是用来描述服务service的通信数据格式

    1. 示例 msgs_demo/srv/DetectHuman.srv  //查询当前深度摄像头中的人体姿态和关节数

    (1)srv文件以 --- 隔开请求和应答,上方为请求,下方为应答;本例中请求为请求为是否开始检测,应答为一个数组,数组的每个元素为某个人的姿态(HumanPose)

    (2)srv可以嵌套msg,但不能嵌套srv;本例中HumanPose为嵌套的msg

    三、参数服务器   //参数服务器是节点存储参数的地方,用于配置全局共享参数

    1. “特殊”的通信方式:使用互联网传输,在节点管理器中运行

    2. 参数服务器维护一个数据字典,字典内存储各个参数和配置,更加静态

    3. 维护方式

    (1)命令行维护:使用 rosparam 命令

    注:load和dump的文件需要遵守YAML格式,即“名称 + :+ 值”  //可以理解为键值对的字典

    (2)launch文件内读写:<param>标签和<rosparam>标签

    • <param name="publish_frequency" value="100.0"/>  //直接给出值value
    • <param name="robot_description" command="$(find xacro)/xacro.py $(find robot_sim_demo)/urdf/robot_xacro"/>  //值由脚本运行结果给定
    • <rosparam file="$(find robot_sim_demo)/config/xbot2_control.yaml" command="load"/>  //先指定YAML文件,再施加command,等价于 rosparam load file_name

    (3)node源码:利用API对参数服务器进行操作

     见后文 "机器人操作系统入门(六)"

    4. 参数类型:ROS参数服务器为参数值使用XMLRPC数据类型,其中包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, and base64-encoded data

    四、Action  //适合长时间的通信过程,且需要知道状态和结果的场景,可以随时查看过程进度(反馈),也可以终止请求

    1. 通信接口

    注:客户端会向服务器发送目标指令和取消动作指令,而服务器则可以给客户端发送实时的状态信息、结果信息和反馈信息

    2. Action规范文件.action格式

    注:由 --- 分隔开动作的三部分内容,从上到下分别为 目标、结果、反馈

  • 相关阅读:
    整合springmvc+spring+mybatis
    springmvc 登录拦截器
    Python3.6.5 Win10安装numpy,scipy,scikit-learn,matplotlib
    windows+mysql+python+navicat入坑指南
    TP5 paginate()分页后给结果集追加字段和数据
    cropper+php+ajax 上传头像
    PHP base64转换成图片
    Echarts通过Ajax实现动态数据加载
    用php获取当天年份、月份、日及天数
    jquery对json 键值对或数组的增加、删除、遍历操作
  • 原文地址:https://www.cnblogs.com/hg-love-dfc/p/10396727.html
Copyright © 2020-2023  润新知