一、主要内容
前一篇介绍了如何基于源码搭建本地开发环境(见:一篇上手:本地搭建 Apollo 开发环境(零基础可用))。本篇在此基础上,介绍如何基于源码编译启动 Apollo 10 新仿真工具 DreamView Plus,并跑通 PNC 仿真。
二、主要问题
Apollo 10 默认采用包管理模式,即便下载的是源码,其文件组织与编译工具仍会沿用包管理模式。编译过程一般没有问题,但编译完成后使用 DreamView Plus 时,会报各种错误,例如 monitor 启动失败、planning 启动失败等。
三、本篇贡献
通过修改环境变量,解决启动阶段各种文件找不到的问题,从而跑通 PNC 仿真。 增加文件操作日志,打出具体报错位置,感兴趣的同学可借此提升调试能力。 提供关闭所有服务的脚本,避免某些情况下节点未完全关闭导致下次运行异常。 清理本地工作目录:编译之后会产生许多修改或新增文件,删除不需要的,通过 gitignore 忽略需要保留的。 所有修改均在分支 feature/v10_dev,链接:https://github.com/ApolloAuto/apollo/compare/master...ahuer2435:apollo:feature/v10_dev
四、板端操作
下载代码,并切到 feature/v10_dev分支(具体参考 一篇上手:本地搭建 Apollo 开发环境(零基础可用) 第四步):
cd apollogit pullgit checkout feature/v10_dev进入 docker,下载地图:
bash docker/scripts/dev_into.sh buildtool map get sunnyvale_big_loop默认代码仓库自带两个地图,但没跑起来,这里重新下载了 sunnyvale_big_loop。
编译:
buildtool build -j 16 -m 0.7-j 指定使用 16 个 core,-m 指定使用全部内存的 70%。不限制 CPU 和内存时,编译容易卡死。首次编译建议全编,后续调试可通过 -p 指定目录或模块。
启动 DreamView Plus:
bash scripts/bootstrap.sh start_plus如图

所示。
五、DreamView Plus 操作
打开 DreamView Plus:浏览器访问 http://localhost:8888/
启动 PNC 仿真:按步骤选择:
模式:PnC 操作:Sim_Control 资源:按图示选择 模块:开启 Planning
如图

所示,然后点击「路由编辑」。
六、路由编辑
按图示顺序设置起点和终点,注意方向,需要结合地图实际车道线。如图

所示,设置好后点击「保存编辑」。
七、运行
点击下图

标记 1 处的「开始」按钮。运行过程中,红色线代表 Routing 线(标记 2 处)。在终端执行:
cyber_node list如图所示

可以看到当前运行的节点,包括 planning。
八、修改
feature/v10_dev 分支本次共有四笔修改,如下图所示

修改环境变量,修改后可跑通 PNC 仿真。 增加文件 log,方便调试问题。 增加关闭节点脚本,对应脚本: kill_all.sh。增加 gitignore,清理工作空间。
有余力的同学可按需 cherry pick。
九、小结
本篇主要基于 Apollo v10 源码,使用 Apollo 仿真工具 DreamView Plus 跑通了 PnC 仿真。
夜雨聆风