[ROS学习]3.(理论部分)ROS是什么?
基于B站ROS公开课:【古月居】古月·ROS入门21讲
基于Ubuntu 20.04.1、Noetic版本
修正错误,并详述Python版本部署
本节纯理论
图摘自:B站【古月居】古月·ROS入门21讲
1 What is ROS
- ROS:Robot Operating System
- 包括了四个part:通信机制、开发工具、应用功能、生态系统
- 这种模式旨在提高机器人研发中的软件复用率(避免反复造轮子)
2 节点(Node) 与 节点管理器(Node Master)
3 通信模式之一——Topic模式(异步通信)
- Message:定义数据的类型,具有一定的数据结构定义
- 单向的
- 数据的管道称为Topic(话题)
- 使用 发布&订阅 模型,右下图显示了Camera Node是发布者,图像处理节点和图像显示节点是订阅者。
- 话题的消息的接口使用 .msg 文件定义
4 通信模式之二——Service模式(同步通信)
- C/S模型
- 带有反馈的机制
- 双向的
- 如左下图,图像处理节点向Camera节点发出请求(比如上调图像分辨率),Camera节点上调分辨率后向图像处理节点发出反馈。
- 服务的数据内容可用 .srv 定义
5 两者对比
6 参数(Parameter)
- 参数是一个“字典”
- 存储在ROS Master服务器,节点可以对参数存储、检索、更新(如图)
- 适合静态存储、非二进制,不适合动态参数数据
7 文件系统
注意功能包、功能包清单、元功能包三者的层次关系