Apollo使用方法
- 1.Apollo相关原理
- 1.Apollo启动方法
- 1.1 软件包方式
- 1.2 脚本方式
- 2.播放数据包
- 2.1 软件包方式
- 2.2 脚本方式
- 3.试验planning模块
- 4.从官网下载场景集
- 其他工具
1.Apollo相关原理
cyber / mainboard / mainboard.cc 是Apollo入口
cyber / mainboard / module_argument.cc 用于解析参数
cyber / mainboard / module_controler.cc 用于加载组件
dag是模块拓扑关系的配置文件module configurations
// add dag like this
// A---a---B---c---D
// | |
// ---b---C---d---
1.Apollo启动方法
1.1 软件包方式
cd application-demo // 这个文件夹在根目录下,所以打开终端后可以直接进去
aem start // 启动容器,aem是apollo开发的环境管理工具,使用它可以避免运行脚本,避免在这个过程中污染工作空间
aem enter // 进入容器
aem bootstrap start // 启动dreamview
aem bootstrap stop // 关闭dreamview
有关aem(Apollo Enviroment Manager)工具的说明,可以查看官网:
https://apollo.baidu.com/Apollo-Homepage-Document/Apollo_Doc_CN_8_0/%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%80%E4%BB%8B/%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%B7%A5%E5%85%B7%E4%BB%8B%E7%BB%8D/aem%20-%20Apollo%20%E7%8E%AF%E5%A2%83%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/
1.2 脚本方式
启动并进入容器:
sudo systemctl start docker
docker start apollo_dev_root
cd apollo/docker
bash ./scripts/dev_into.sh
启动与关闭dreamview:
cd apollo
bash ./scripts/bootstrap.sh
2.播放数据包
2.1 软件包方式
在启动dreamview后:
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record // 下载一个数据包
cyber_recorder play -f demo_3.5.record --loop // 循环播放数据包
2.2 脚本方式
source ./cyber/setup.bash
cyber_recorder play -f ./docs/02_Quick\ Start/demo_guide/demo_3.5.record -l
3.试验planning模块
在容器中:
git clone https://github.com/ApolloAuto/application-demo.git // 克隆一个项目
buildtool build --packages planning_customization
针对planning的代码:
- 在VSCODE中打开
- 在modules里有plannin
- List item
g模块,对其进行修改。
- 对其进行编译:
buildtool build --packages planning_customization
然后再启动dreamview:
- 选择车型、地图等
- 选中sim control
- List item
- 启动planning和routing
- 选择routing路线
4.从官网下载场景集
生产场景步骤:
- 从工作台的仿真栏选择场景管理
- 在场景集中点击新建场景集
- 填写场景集名称,并从已有的场景中进行选择
- 选择我的服务
- 选择仿真,在插件安装处点击生成,然后一键复制
一键生成采用的是curl命令,curl是CommandLine URL的简称,是采用命令行的行驶,利用URL语法对数据进行传输。
将场景导入到本地
- 将官网一键复制的curl指令粘贴至容器
- 重新启动dreamview
其他工具
cyber_monitor // 查看启动了哪些进程
cyber_recorder // play 数据包
cyber_channel // list 查看频道
cyber_launch // 用于启动cyber模块,一个launch文件可以有一个或多个module,一个module包含一个dag,一个dag文件对应多个components,等价于ros_launch
cyber_node // list 查看节点