当前位置:   article > 正文

Ubuntu 20.04 安装 Apollo 8.0&vscode仿真调试_ubuntu20.04安装apollo8.0

ubuntu20.04安装apollo8.0

1 背景

        在上一篇博文中介绍了Autoware的仿真,其中各模块的算法大家可以做些了解,但是和主流自驾公司还是有些区别,而且Apollo的算法相对来说还是更贴近量产方案的,因此本篇主要介绍Apollo最新版本8.0的安装调试。(本篇依然以PNC的角度进行仿真)

2 安装

        系统环境依赖:Ubuntu20.04 + Docker + VSCode + Apollo8.0

        这里就不去安装nvidia的显卡驱动了,调试Planning模块用处不是特别大,如果是感知模块的同学,可以考虑安装。

        2.1 安装docker

             仍然是参考官方文档,有详细介绍。
                https://docs.docker.com/engine/install/ubuntu/
                https://docs.docker.com/engine/install/linux-postinstall/

        2.2 安装vscode

             直接官网下载安装即可:Visual Studio Code

        2.3 下载Apollo8.0代码

            因为笔者这里下载了最新的全量源码,所以在编译完成时的空间占用较多,且较为耗时,网上也有安装部分模块的文档,可以参考。(默认是master分支,可以切到release-8.0分支)

git clone https://github.com/ApolloAuto/apollo.git

        2.4 启动docker容器

             进入工作目录,然后启动docker

  1.  cd ~/apollo
  2.  bash docker/scripts/dev_start.sh 

        2.5 启动vscode绑定Apollo的docker

            (1)在vscode的左侧栏中可以找到Apollo的container,Attach即可进入Apollo的工程,在vscode下面的命令窗口可进行下一步编译操作(推荐使用这种方式,个人体验后认为后续Debug调试更方便一些);

            (2)也可在vscode外面的命令窗口进入docker环境(对于比较喜欢命令行的同学也可使用这种方式Debug)

 bash docker/scripts/dev_into.sh

        2.6 进入docker后,执行编译命令

sudo bash apollo.sh build

        这个环节耗时比较久,第一次全量编译,会把整个Apollo工程都编译,后续可选编某一个模块,如planning模块的编译:

sudo bash apollo.sh build planning

3 仿真

        3.1 启动DreamView

                在docker中执行命令:

bash scripts/bootstrap.sh

                在浏览器中网址栏输入:http://localhost:8888

        3.2 DreamView配置

(1)配置Tasks

        如上图所示,选择左侧竖栏标签“Tasks”,然后在右上角工具栏配置车型和地图场景,在下方的“Others”栏中选择“Sim Control”。

(2)配置Module Controller

         如上图所示,选择左侧竖栏标签“Module Controller”,然后在下方的“Modules”栏中选择“Routing”和“Planning”。

(3)配置Route Editing

        如上图所示,选择左侧竖栏标签“Route Editing”,在地图中先后选择起点和终点,然后点击上方的“Send Routing Request”。

        随后会在图形界面出现换道的轨迹,并且车也会进行自动驾驶。

        到此,完成了planning模块的仿真链路,后续如果换地图场景,可下载选配。

4 Debug调试

4.1 gdb命令调试        

网上大部分都是老版本的debug调试,编译成功后会直接生成planning的可执行文件(老版本是有planning.cc的文件),从8.0的版本来看,编译完成后不再会生成planning整个模块的可执行文件,而是通过cyber里的mainboard来进行调度动态库的形式来运行程序。最终还是参考官方文档来进行debug的操作。(https://github.com/ApolloAuto/apollo/blob/r8.0.0/docs/14_Others/%E4%BB%A3%E7%A0%81%E5%AE%9E%E8%B7%B5/how_to_debug.md)

        修改完代码且顺利编译后,在Docker内部使用gdb调试指令即可,主要操作如下:

  1. # set break point
  2. b modules/planning/tasks/optimizers/path_optimizer.cc:46
  3. # run
  4. r
  5. # display break point
  6. info b
  7. # delete break point
  8. d num
  9. # continue
  10. c
  11. # one step run
  12. n
  13. # step into
  14. s
  15. # exit gdb debug
  16. q

4.2 VScode中打断点debug

        主要注意以下两点:

        (1)编译时选择debug模式;

        (2)写好launch.json文件;

  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "name": "(gdb)Launch Apollo Planning",
  6. "type": "cppdbg",
  7. "request": "launch",
  8. "program": "/apollo/bazel-bin/cyber/mainboard/mainboard",
  9. "args": [
  10. "-d",
  11. "/apollo/modules/planning/dag/planning.dag"
  12. ],
  13. "stopAtEntry": false,
  14. "cwd": "/apollo", //${workspaceFolder}
  15. "environment": [],
  16. "externalConsole": false,
  17. "MIMode": "gdb",
  18. "setupCommands": [
  19. {
  20. "description": "-enable-pretty-printing for gdb",
  21. "text": "-enable-pretty-printing",
  22. "ignoreFailures": true
  23. }
  24. ],
  25. "miDebuggerPath": "/usr/bin/gdb"
  26. }
  27. ]
  28. }

        最终呈现的效果如下:

5 总结

        本篇文章主要参考了Apollo社区的安装使用文档以及项目中自带的debug帮助文档进行调试,vscode在这里扮演命令窗口和查看代码工具的功能。本篇文章并没有介绍如何在vscode中打断点进行debug的教程,其实原理是一样的,通过启动mainboard来加载planning模块,后续也会更新进来。

        总体来说,Apollo的planning模块相对还是比较全的,对于即将从事或者已经从事自动驾驶行业的同学来说,使用这套工具来进行开发和优化自己想做的内容还是比较合适的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/59731
推荐阅读
相关标签
  

闽ICP备14008679号