课程提问:什么是TF坐标系转换和RQT用户接口?
原ROS中心化的优势:(P2P拓扑网络)
- 节点之间相互独立,容错性强
- 节点之间通信不用关注对方用什么语言开发
- 节点之间解耦合(只用定义好topic/service/param,就可以开发自己的模块)
缺陷: - 通信过于依赖中心节点
- 没有异常恢复机制(比如某一个节点挂掉,其他节点并不知道,尤其是主节点挂掉后更为严重)
Apollo ROS
去中心化拓扑
RTPS服务发现协议
一个新节点加入与退出,RTPS都会告知所有节点。
这些改动是在ROS底层进行的修改,用户在原生ROS上写的节点程序可以直接迁移到Apollo的ROS上来,因为接口都是没变的。
数据兼容性拓展
接受者收到信息后会进行md5的信息校验,看是否是自己真正想要的信息。
模块更新,节点提供的信息会发生改变(比如多加了一项数据)
原本:下游的节点会无法识别这个信息,使得整个信息都不可用。
Apollo:
Protobuf通过optional告知下游哪些是新增的数据。
TF坐标系转换
每一个节点都有自己的XYZ坐标系,但我们需要将这些坐标转换到一个统一的坐标系里。
RQT
R:ROS
QT:图像化展示工具
用户接口
可以将数据画在XY二维坐标系中
将整个网络拓扑图形化展示。
将日志信息可视化出来。
五种类型的日志:
以及分模块。(每个模块会在某个时刻产生大量信息)
可以选择特定级别的日志。
ROS Service
数据融合、消息对齐
RViz:一个可视化工具