之前一直有看过apollo的程序,一般都是参考某个模块直接去看代码,并没有完整的安装跑一下官方的程序,趁假期简单安装熟悉了一下基于cyber的apollo7.0, 准备后面完整的调试一下感知各个模块。
我用的笔记本环境:Ubuntu18.04 cuda10.2 nvidia-driver 470.103.01 ,GPU GTX 1650的,只有4个G显存,有点卡,勉强能跑起来, 主要就是参考apollo github和官网的文档, 大部分没什么问题,简单说一下我遇到的需要注意的几个小问题。
1. 环境没什么问题,安装nvidia-driver,docker,nvidia-docker2
2. github下载安装包找到tag7.0, 有不到2GB. 网络不好的话,可以去gitee.
3. 创建docker 容器的时候会拉docker镜像,有十多个G, 最好可以科**学**上**网。
REPOSITORY TAG IMAGE ID CREATED SIZE
apolloauto/apollo dev-x86_64-18.04-20210914_1336 c8ecf0a3cd6b 7 months ago 13.7GB
apolloauto/apollo smoke_volume-yolo_obstacle_detection_model-x86_64-latest 269c6b1dc031 9 months ago 80.1MB
apolloauto/apollo map_volume-sunnyvale_big_loop-latest e7b1a71d5b9d 17 months ago 440MB
apolloauto/apollo yolov4_volume-emergency_detection_model-x86_64-latest e3e249ea7a8a 19 months ago 264MB
apolloauto/apollo faster_rcnn_volume-traffic_light_detection_model-x86_64-latest 58537bb25841 19 months ago 170MB
apolloauto/apollo data_volume-audio_model-x86_64-latest 17cb2a72a392 20 months ago 194MB
apolloauto/apollo map_volume-sunnyvale_with_two_offices-latest 93a347cea6a0 2 years ago 509MB
apolloauto/apollo map_volume-san_mateo-latest 48cd73de58ba 2 years ago 202MB
apolloauto/apollo map_volume-sunnyvale_loop-latest 36dc0d1c2551 4 years ago 906MB
4. apollo 7.0有个zlib的bug, 进入容器编译build,zlib会报错,在之后已经修复好了,(参考: ZLIB: version bug fix (#14387) · ApolloAuto/apollo@5e0308b · GitHub)在下载后手动修改WORKSPACE添加如下
http_archive(
name = "zlib",
build_file = "@com_google_protobuf//:third_party/zlib.BUILD",
sha256 = "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff",
strip_prefix = "zlib-1.2.11",
urls = ["https://github.com/madler/zlib/archive/v1.2.11.tar.gz"],
)
5. build编译会产生20G,所以提前要准备至少25G空间,免得编译失败。
(05:23:19) INFO: Elapsed time: 587.447s, Critical Path: 55.92s
(05:23:19) INFO: 8582 processes: 6403 internal, 2179 local.
(05:23:19) INFO: Build completed successfully, 8582 total actions
==============================================
[ OK ] Done building apollo. Enjoy!
==============================================
[sun@in-dev-docker:/apollo]$
(base) sun@sun-Desktop:~/apollo-7.0.0$ du -h --max-depth=1
844K ./docker
20G ./.cache
3.9M ./third_party
305M ./docs
16K ./data
4.6M ./cyber
20K ./.github
488K ./scripts
28K ./.teamcity
1.6G ./modules
144K ./tools
22G .
6. 利用vscode debug调试 参考
开发者说|如何用VSCODE调试Apollo
bash apollo.sh build_dbg
这种编译方式会产生50多G文件,编译前请确保磁盘空间足够!!!我笔记本?i7-9750H满负荷编译了接近40分钟。

?下面命令不要随便执行,这是创建容器的,会把之前的容器删掉,不过再次build会比较快,因为有缓存
bash docker/scripts/dev_start.sh
创建一次容器,后面用就docker start xxx,然后./dev_into.sh 进入容器即可。
7. 用vscode attach running container后,修改launch.json 进行debug需要权限,用sudo vim launch.json修改即可.
8. 参考使用Dreamview调试Apollo激光雷达感知实践 跑了一下:Apollo https://apollo.auto/document_cn.html?target=/Apollo-Homepage-Document/Apollo_Doc_CN_6_0/
?教程中少写了一步, 需要启动tranform模块,在camera感知里面写了。不然的话障碍物目标不再车辆周围,会固定显示在一个位置.
cyber_launch start /apollo/modules/transform/launch/static_transform.launch
担心笔记本全跑带不动,仅启动激光雷达部分,用下面命令:
mainboard -d modules/perception/production/dag/dag_streaming_perception_lidar.dag
启动激光雷达模块会显示一些报错信息,没什么关系,程序一样可以跑起来
E0504 22:04:03.934579 17798 hdmap_common.cc:158] [map]lane[id = id: "11267dup0_1_-1"
]. sampled_right_width_[0.961276] is too small. It should be larger than half vehicle width[1.05].
E0504 22:04:03.934620 17798 hdmap_common.cc:158] [map]lane[id = id: "11267dup0_1_-1"
]. sampled_right_width_[0.976227] is too small. It should be larger than half vehicle width[1.05].
E0504 22:04:03.934665 17798 hdmap_common.cc:158] [map]lane[id = id: "11267dup0_1_-1"
]. sampled_right_width_[0.991181] is too small. It should be larger than half vehicle width[1.05].
E0504 22:04:03.934710 17798 hdmap_common.cc:158] [map]lane[id = id: "11267dup0_1_-1"
]. sampled_right_width_[1.00614] is too small. It should be larger than half vehicle width[1.05].
E0504 22:04:03.934754 17798 hdmap_common.cc:158] [map]lane[id = id: "11267dup0_1_-1"
]. sampled_right_width_[1.0211] is too small. It should be larger than half vehicle width[1.05].
E0504 22:04:03.934801 17798 hdmap_common.cc:158] [map]lane[id = id: "11267dup0_1_-1"
]. sampled_right_width_[1.03606] is too small. It should be larger than half vehicle width[1.05].
9. 启动dreamview观察检测结果,
可以切换到Layer Menu 下Map视图,查看鸟看障碍物信息。
在我笔记本显存4G一共占了2.3G吧。
bash scripts/bootstrap.sh
效果如下:

?
?10. 查看输出信息
tail -f /apollo/data/log/mainboard.INFO
?
如下可以看到障碍物输出消息在哪个文件,慢慢根据自己需求调试各个模块了。

?
|