Apollo使用方法

陈翰林
2023-12-01

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 软件包方式(Apollo 8.0)

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 脚本方式(Apollo 6.0)

启动并进入容器:

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 软件包方式(Apollo 8.0)

在启动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 脚本方式(Apollo 6.0)

source ./cyber/setup.bash
cyber_recorder play -f ./docs/02_Quick\ Start/demo_guide/demo_3.5.record -l

3.试验planning模块(Apollo 8.0)

在容器中:

git clone https://github.com/ApolloAuto/application-demo.git // 克隆一个项目
buildtool build --packages planning_customization

针对planning的代码:

  1. 在VSCODE中打开
  2. 在modules里有planning

g模块,对其进行修改。

  • 对其进行编译:
buildtool build --packages planning_customization

然后再启动dreamview:

  1. 选择车型、地图等
  2. 选中sim control
  3. List item
  4. 启动planning和routing
  5. 选择routing路线

4.从官网下载场景集

生产场景步骤:

  1. 从工作台的仿真栏选择场景管理
  2. 在场景集中点击新建场景集
  3. 填写场景集名称,并从已有的场景中进行选择
  4. 选择我的服务
  5. 选择仿真,在插件安装处点击生成,然后一键复制

一键生成采用的是curl命令,curl是CommandLine URL的简称,是采用命令行的行驶,利用URL语法对数据进行传输。

将场景导入到本地

  1. 将官网一键复制的curl指令粘贴至容器
  2. 重新启动dreamview

其他工具

cyber_monitor // 查看启动了哪些进程
cyber_recorder // play 数据包
cyber_channel // list 查看频道
cyber_launch // 用于启动cyber模块,一个launch文件可以有一个或多个module,一个module包含一个dag,一个dag文件对应多个components,等价于ros_launch
cyber_node // list 查看节点
 类似资料: