Cyber RT部分名词理解
Component
在一个自动驾驶系统中,Perception
, Localization
, Control Systems
等模块以Component
的形式,即组件的形式存在。
每个组件都通过下面提到的Channels
与其他组件通信。
Channel
类似于ROS中的Topic
,若干个Channel
共同用于Cyber RT框架内的数据传输。
用户可以Publish/Subscribe
同一Channel
以实现P2P通信。
Task
Cyber RT中异步计算任务的抽象描述.
Node
即我们常说的节点,是Cyber RT的基本组成元素。
每个module都包含node
,并且通过node
来进行通信
通过在node
中定义Read/Write
以及/或者 Service/Client
模式,模块可以具有不同通信类型。
Reader/Writer
类似ROS的Publish/Subscribe
,通常在节点内创建,是一种主要的传输消息的接口。
Service/Client
类似ROS的Service/Client
,支持节点间双向通信,即客户端向服务端发送request后能够收到response。
Parameter
类似ROS的Parameter
,提供全局参数访问接口。该服务基于Service/Client
模式。
Service discovery
作为一个去中心化的框架,Cyber RT没有用于服务注册的主/中央节点。所有的node
地位平等,并且能通过service discovery
找到其他的service。这里面使用的是UDP
协议。
CRoutine
全称为Coroutine
, Cyber RT通过这个优化线程使用和系统资源分配。
Scheduler
为了更好地支持自动驾驶场景,Cyber RT提供了各种资源调度算法供开发人员选择。
Message
基于protobuf
,Cyber RT中用于模块间通信的数据单元。
Dag file
Dag文件
是module
拓扑结构的配置文件。你可以在dag文件中定义使用的Component
和上游/下游(upstream/downstream)Channels
。
Launch files
Launch文件
用于简单便捷地启动modules
。在Launch文件
中定义一个或多个Dag文件
,即可同时启动多个modules
。
Record file
Record文件用于记录Cyber RT中从通道发送/接收的消息。通过record files
可以帮助重现Cyber RT先前操作的行为。