Apollo Cyber RT操作系统
前言
一、基本概念
二、开发工具
- Cyber Monitor
- Cyber Visualizer
- Cyber Recorder
- rosbag_to_record
三、常用操作命令
前言
Apollo Cyber RT 是一个开源、高性能的运行时框架,专为自动驾驶场景而设计。针对自动驾驶的高并发、低延迟、高吞吐量进行了大幅优化。
使用 Apollo Cyber RT 的主要好处:
一、 基本概念
Cyber架构
从下到上依次为:
基础库:高性能,无锁队列;
通信层:Publish/Subscribe机制,Service/Client机制,服务自发现,自适应的通信机制(共享内存、Socket、进程内);
数据层:数据缓存与融合。多路传感器之间数据需要融合,而且算法可能需要缓存一定的数据。比如典型的仿真应用,不同算法模块之间需要有一个数据桥梁,数据层起到了这个模块间通信的桥梁的作用;
计算层:计算模型,任务以及任务调度;
二、 开发工具
CyberRT框架同时也提供了一系列实用的工具用来辅助日常开发, 包括可视化工具cyber_visualizer以及命令行工具cyber_monitor和cyber_recorder等。
- Cyber Monitor
cyber_monitor提供了终端中实时显示channel信息列表的功能。
进入Apollo Docker环境后执行如下命令运行cyber_monitor。
cyber_monitor
cyber_monitor会自动从拓扑中收集所有channel的信息并分两列显示(channel名称,数据频率)。
channel信息默认显示为红色,当有数据流经channel时,对应的行就会显示成绿色,如下图所示:
可以通过-h选项来获取帮助信息:
cyber_monitor -h
使用-c选项,可以让cyber_monitor只监测一个指定的channel信息:
cyber_monitor -c ChannelName
- Cyber Visualizer
在Apollo Docker环境中执行如下命令运行cyebr_visualizer:
cyber_visualizer
在启动cyber_visualizer后,你会看到如下界面:
当有数据流经channel时,在ChannelNames下会像下图一样显示channel列表。
实际车辆在道路上运行过程中的 cyber visualizer 画面。
- Cyber Recorder
cyber_recorder是 Apollo Cyber RT 提供的录制/播放工具。它提供了许多有用的功能,包括录制record文件、播放record文件、拆分record文件、查看record文件信息等。
启动cyber_recorder: cyber_recorder > []
查看record文件的信息:
$ cyber_recorder info -h
usage: cyber_recorder info [options]
-h, --help show help message
录制record文件
$ cyber_recorder record -h
usage: cyber_recorder record [options]
-o, --output output record file
-a, --all all channels
-c, --channel channel name
-i, --segment-interval record segmented every n second(s)
-m, --segment-size record segmented every n megabyte(s)
-h, --help
show help message
要拆分record文件
$ cyber_recorder split -h
usage: cyber_recorder split [options]
-f, --file input record file
-o, --output output record file
-a, --all all channels
-c, --channel channel name
-b, --begin <2018-07-01 00:00:00> begin at assigned time
-e, --end <2018-07-01 01:00:00> end at assigned time
修复record文件
$ cyber_recorder recover -h
usage: cyber_recorder recover [options]
-f, --file input record file
-o, --output output record file
播放记录
cyber_record play -f data
显示记录信息
cyber_record info data
- rosbag_to_record
rosbag_to_record是 Apollo Cyber RT 提供的一个可以将 rosbag 转换为record文件的工具。现在该工具支持以下channel:
/apollo/perception/obstacles
/apollo/planning
/apollo/prediction
/apollo/canbus/chassis
/apollo/control
/apollo/guardian
/apollo/localization/pose
/apollo/perception/traffic_light
/apollo/drive_event
/apollo/sensor/gnss/odometry
/apollo/monitor/static_info
/apollo/monitor
/apollo/canbus/chassis_detail
/apollo/control/pad
/apollo/navigation
/apollo/routing_request
/apollo/routing_response
/tf
/tf_static
/apollo/sensor/conti_radar
/apollo/sensor/delphi_esr
/apollo/sensor/gnss/best_pose
/apollo/sensor/gnss/imu
/apollo/sensor/gnss/ins_stat
/apollo/sensor/gnss/rtk_eph
/apollo/sensor/gnss/rtk_obs
/apollo/sensor/velodyne64/compensator/PointCloud2
使用教程
$ source /your-path-to-apollo-install-dir/cyber/setup.bash
$ rosbag_to_record
Usage:
rosbag_to_record input.bag output.record
三、 常用操作命令
1.编译
cd /apollo
bash apollo.sh build
2.查看运行的节点
cyber_node list :显示所有在运行的节点
cyber_node info “节点名”:可以查看该节点所有订阅和发布的消息
3.启动,关闭节点
3.1 启动:cyber_launch start “对应路径”+launch 文件
如cyber_launch start modules/localization/launch/ekf_localization.launch
3.2 关闭:cyber_launch stop “对应路径”+launch 文件
cyber_channel:该命令行工具用于打印Cyber RT通道信息。