百名北航同学共同学习搭建Apollo

上周日,百度Apollo团队走进北航(北京航空航天大学)为近百位北航师生讲解Apollo自动驾驶相关的技术知识,并指导北航同学上机实践搭建Apollo环境。经过一上午的学习和交流,同学们掌握了一定的自动驾驶基础知识并能搭建Apollo。在课程教材、学术研究、实验室合作等方面院方与Apollo也达成共识,共同推动自动驾驶技术发展。

北航不仅为航空航天事业输送了大量的人才,在汽车与无人驾驶方面,来自计算机学院和软件学院的同学们也是饶有兴趣,甚至几个同学用自己改装的无人车参加了世界智能驾驶挑战赛。此次授课也是Apollo走进校园,为同学们讲解自动驾驶技术。

本次课程内容以技术讲解+实践的模式进行,以下是主要授课内容:

Apollo开放平台介绍

为了让同学们更好的使用Apollo,来自Apollo的技术布道师胡旷通过讲解Apollo的技术框架、感知规划等核心模块、数据平台等云服务,帮助同学们掌握Apollo的基础技术知识。

这里通过几个主要模块为大家回顾下课程内容:

Perception

通过多传感器融合我们就可以实现对障碍物的识别、分类和目标跟踪,来感知车辆周围的环境。我们在Apollo 1.5中开放了点云检测算法,在2.0中我们增加了"红绿灯感知识别"方案,能在距离路口100多米外识别红绿灯。在2.5中,我们发布了集成广角摄像头配合毫米波雷达的低成本方案,并使用了基于Yolo的多任务深度学习神经网络来进行障碍物和车道线的检测及分类。

Planning

此外,他还介绍了Planning的整体架构和EM Planner的原理,把一个三维的规划问题分解为路径规划与速度规划两个二维问题。

Apollo 数据开放平台

目前Apollo开放资源数据集分为:仿真数据集,包括自动驾驶虚拟场景和实际道路真实场景;演示数据集,包括车载系统演示数据、标定演示数据、端到端演示数据、自定位模块演示数据;标注数据集,包括6部分数据集:激光点云障碍物检测分类、红绿灯检测、RoadHackers、基于图像的障碍物检测分类、障碍物轨迹预测、场景解析。

除开放数据外,还配套开放云端服务,包括数据标注平台,训练学习平台以及仿真平台和标定平台,为Apollo开发者提供一整套数据计算能力的解决方案,加速迭代创新。

Apollo快速安装

在掌握Apollo相关技术知识后,来自Apollo的技术布道师冯宗宝教同学们如何在一台运行Ubuntu的机器上安装Apollo,并一一指导同学们在安装时遇到的问题。

这里为大家简单回顾下Apollo的安装过程:

推荐的参考运行环境为:

ThinkPAD X240、CPU:i5四核、内存:8G、硬盘容量40G以上

Apollo的安装过程:

需要一台运行Ubuntu的机器;Apollo的编译需要一个Docker环境,这需要在Ubuntu系统中安装Docker ,因为Apollo需要运行在Docker所创建的容器当中。创建容器所依赖的镜像,由Apollo官方发布。

接下来就是从源码编译Apollo。

安装Apollo的过程中,有两步相对比较耗费时间。其中一步就是拉取Apollo运行环境的镜像,另外一步就是从源码编译Apollo。启动Apollo Demo 数据包并且运行;在Dreamview中完成数据回放。

正如刚才提到我们推荐在Ubuntu系统环境下运行Apollo。第一种办法可以在虚拟机当中,安装Ubuntu,进而在Ubuntu系统环境中安装Apollo。这种方法,在硬件系统稍弱的情况下,会非常卡顿。

第二种我们推荐,双系统,或独占一套硬件设备。

完成操作系统环境准备之后,我们开始安装Apollo。大家知道Apollo将代码开源在了Github。第一步,就需要克隆Apollo 的开源代码。

Git Clone

https://github.com/apolloauto/apollo

接下来,设置Docker 环境,我们已在源代码中提供了,安装Docker的脚本。运行该脚本即可完成安装。

bash docker/scripts/install_docker.sh

紧接着是拉取Docker镜像。镜像是阿波罗官方定期发布,一般是每周发布的运行环境的镜像。拉取完成之后,脚本会根据镜像创建Apollo运行的容器环境。

bash docker/scripts/dev_start.sh -C

在运行容器无误的情况下,可以通过Apollo提供的脚本进入该容器。

bash docker/scripts/dev_into.sh

这时主机名称已变成in_dev_docekr,说明已经进入到容器环境;因为,对Apollo的编译,是在容器内进行的,编译,通过以下脚本完成。

bash apollo.sh build

若编译安装异常时,可通过以下方式排异:

dev_into第一次运行时,需要同意Apollo协议;

Docker内外的判断;env.sh

bazel query //…在编译之前运行

编译完成之后,就可以运行Apollo。启动Dreamview之后,可以在浏览器,输入8888端口,即刻访问人机界面。

bash scripts/bootstrap.sh

在编译完成之后,可以下载最新的,2.0数据演示包,然后,播放该数据回放包,即可在Dreamview ,查看回放。

bash docs/demo_guide/rosbag_helper.sh download

rosplay -l docs/demo_guide/demo-2.0.bag

这里为大家总结了几个在安装Apollo时常见的问题:

Q1、编译过程出现以下问题是怎么回事?

A:运行以下指令提前获取编译过程中所需的第三方类库,run

then try

Q2、执行 $bash apollo.sh build后出现error

A:编译过程中如果可使用内存就少会出现此情况,建议添加内存或者限制编译可使用的线程数量:

Q3、请问对Apollo增加SDR的兼容是可行的么?请问能在不安装Docker的情况下安装Apollo吗?

A:是可能的,但是很不推荐,可以根据Docker file设置你的环境:

https://github.com/ApolloAuto/apollo/blob/master/docker/build/dev.x86_64.dockerfile

若在安装Apollo过程中还有其他问题,可以添加Apollo社区小助手(Apollodev)进交流群,与开发者交流讨论。

此外,技术布道师胡旷为同学们归纳总结了车辆与循迹自动驾驶能力的实战内容,在此基础上,还为同学们介绍了云端训练平台训练红绿灯感知能力,这是使用云端算法来加强自动驾驶能力的实战;最后简要讲解了如何用云端仿真能力来完成验证实战。

经过一上午的学习交流,老师和同学们对Apollo开放平台和实战技术有了全面的了解,同时对自动驾驶行业有了更为直观的认识,与Apollo共同助力自动驾驶技术的发展。

Apollo

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180614B1UVM400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券