系列文章目录
L1 Apollo平台安装
L2 CyberRT学习
L5 Routing简介
从ROS到CyberRT
Apollo的计算平台之前一直采用的是ROS,3.5版本用Cyber替换了这一架构。
替换的缘由主要有两点:
以下几个表格整理了cyer RT 和ROS 对比(表格摘自
:链接)
Cyber RT | ROS | 备注 |
---|---|---|
Component | 无 | 组件之间通过Cyber channel通信 |
Channel | Topic | channel用于管理数据通信,用户可以通过publish/subscribe相同的channel来通信。 |
Node | Node | 每一个模块包含Node并通过Node来通信。一个模块通过定义read/write和/或service/client使用不同的通信模式 |
Reader/Writer | Publish/Subscribe | 订阅者模式。往channel读写消息的类。通常作为Node的主要消息传输接口 |
Service/Client | Service/Client | 请求/相应模式,支持节点之间双向通信。 |
Message | Message | Cyber RT中用于模块间通信的数据单元,其实现基于protobuf。 |
Parameter | Parameter | Parameter服务提供全局参数访问的接口,该服务基于service/client模式。 |
Record file | Bag file | 用于记录从channel发送或者接收的消息,回放record file可以重现之前的操作行为。 |
Launch file | Launch file | 提供一种启动模块的便利途径。通过在launch file中定义一个或者多个dag文件,可以同时启动多个modules。 |
Task | 无 | 异步计算任务。 |
CRoutine | 无 | 协程,优化线程使用与系统资源分配。 |
Scheduler | 无 | 任务调度器,用户空间。 |
Dag file | 无 | 定义模块拓扑结构的配置文件。 |
常用工具对比
Cyber RT | ROS | 备注 |
---|---|---|
cyber_launch | roslaunch | 启动节点 |
cyber_channel | rostopic | 查看某个topic的信息 |
cyber_moniter | rqt? | 查看诊断消息 |
cyber_visualizer | rviz? | 激光点云及摄像头可视化工具,需要安装NVIDIA显卡驱动及CUDA |
常用命令迁移
Cyber RT | ROS | 备注 |
---|---|---|
cyber_recorder play -f example.record | rosbag play example.bag | 播放一个包 |
cyber_recorder info example.record | rosbag info example.bag | 查看一个包的信息 |
cyber_recorder record -c /apollo/canbus/chassis \ /apollo/canbus/chassis_detail | rosbag record /apollo/canbus/chassis \ /apollo/canbus/chassis_detail | 录制多个topic |
cyber_recorder split -f input_file.record -o ouput_file.record -k “/apollo/planning” | rosbag filter input.bag output.bag ‘topic != “/apollo/planning”’ | 滤除一个topic |
cyber_recorder split -f input_file.record -o ouput_file.record -k “/apollo/planning” -k “/apollo/relative_map”’ | rosbag filter csc.bag csc_no_plannig_and_relativemap.bag ‘topic != “/apollo/planning” and “/apollo/relative_map”’ | 滤除多个topic |
cyber_channel list | rostopic list | 列出所有活动的topic |
cyber_channel info /apollo/planning | rostopic info /apollo/planning | 查看 /apollo/planning topic的概要信息 |
cyber_channel echo /apollo/planning | rostopic echo /apollo/planning | 查看 /apollo/planning topic的内容 |
cyber_channel hz /apollo/planning | rostopic hz /apollo/planning | 查看 /apollo/planning topic的发送频率 |
cyber_channel bw /apollo/planning | rostopic bw /apollo/planning | 查看 /apollo/planning topic的带宽 |
cyber_channel type /apollo/planning | rostopic type /apollo/planning | 查看 /apollo/planning topic的数据类型 |
参考文献
1 上课讲师王方浩的某乎系列文章,强烈推荐,写的深入浅出。
2 Cyber RT 与 ROS 对比