一、ROS通信机制--松耦合分布式通信
1、核心概念
①节点(node)---软件模块
②节点管理器(ROS master)---控制中心,提供参数管理
③话题(topic)---异步通信机制,传输消息(message)
④服务(service)---同步通信机制,传输请求/应答数据
2、话题通信模型
3、服务通信模型
相比于话题通信步骤减少了,是因为在第二步中master返回给listener的直接是一个TCP/IP的地址,话题通信返回的是RPC的地址。
4、话题VS服务
5、动作
①一种问答通信机制
②带有连续的反馈
③可以在任务过程中终止运行
④基于ROS的消息机制实现
action的接口
goal:发布任务目标
cancel:请求取消任务
status:通知客户端当前的状态
feedback:周期反馈任务运行的监控数据
result:向客户端发送任务的执行结果,只发布一次
二、ROS的开发工具
①命令行/编译器
②launch启动文件(通过XML文件实现多节点的配置和启动,可自启动ROS master)
③TF坐标变换库
TF功能包:可以求相对位置(如机器人中心坐标相对于全局坐标的位置、机器人嫁娶物体相对于机器人中心坐标系的位置)
TF坐标变换如何实现:广播TF变换,监听TF变换
④Qt工具箱
⑤Rviz(一款三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台)
⑥ Gazebo(一款功能强大的三维物理仿真平台)
具备强大的物理引擎、高质量的图形渲染、方便的编程与图形接口、开源免费
典型的应用场景包括(测试机器人算法、机器人设计、现实情境下的回溯测试)
Rviz只显示数据,负责渲染可视化,Gazebo创造数据,仿真
三、ROS应用功能
①导航框架
②SLAM
③Movelt!
④SMACH任务级状态机
............
四、ROS的生态系统
1、发行版(distribution):包括一系列带有版本号、可以直接安装的功能包
2、软件源(repository):ROS依赖于共享网络上的开源代码,不同组织机构可以开发或者共享自己的机器人软件
3、ROS wiki:记录ROS信息文档的主要论坛
4、邮件列表(Mailing list):交流ROS更新的主要渠道,同时也可以交流ROS开发的各种疑问
5、ROS Answers:咨询ROS相关问题的网站
6、博客(Blog):发布ROS社区中的新闻、图片、视频