Apollo开发套件加速自动驾驶研发

电子说

1.2w人已加入

描述

百度Apollo自动驾驶开发套件是全球首款自动驾驶开发套件,也是国内首个适配Apollo整套硬件传感器的自动驾驶硬件集成平台。

结合百度Apollo的自动驾驶框架和软件算法模块,套件可为自动驾驶开发者提供一套包括“硬件+软件算法”在内的一站式研发验证解决方案。

希望通过自动驾驶技术实现一个愿景,即通过自动驾驶及智能交通让城市更智能,还路于民、人车分离,让生活更美好。但是实现这样一个愿景,其实是非常难的,是一个极其复杂的工程。

自动驾驶部署的整体硬件架构

这是自动驾驶部署的整体硬件架构,基本上分为三大模块:感知、决策和控制。这些模块除了算法软件上的迭代,更主要的还会通过车辆部署的硬件去完成。以感知为例,包含通过惯性导航、定位系统实现对车辆运动的监控,激光雷达、摄像头感知以及V2X等完成对环境的感知。这些传感器和执行都通过计算单元的进行决策,决策结果下发到控制机构,由车辆的控制机构去完成自动转向、油门驱动、制动等动作。

典型的L4自动驾驶传感器配置如下图所示,包括激光雷达、毫米波雷达、摄像头和组合导航,最后都需要做传感器之间的标定和融合。

典型L4自动驾驶传感器

下面简要介绍主要硬件的工作原理。

激光雷达

激光雷达使用的技术是飞行时间法(Time of Flight),根据光线遇到障碍物的折返时间计算距离。为了覆盖一定角度范围需要进行角度扫描,从而出现了各种扫描原理。主要分为:同轴旋转、棱镜旋转、MEMS扫描、相位式、闪烁式。激光雷达不光用于感知也应用于高精度地图的测绘和定位,是L4级别自动驾驶公认的必不可少的传感器。

摄像头主要用于车道线、交通标示牌、红绿灯以及车辆、行人检测,有检测信息全面、价格便宜的特点,但会受到雨雪天气影响。由镜头、镜头模组、滤光片、CMOS/CCD ISP、数据传输组成。光线经过光学镜头和滤光片后聚焦到传感器上,通过CMOS或CCD集成电路把光信号转换成电信号,再经过图像处理器(ISP)转换成标准的RAW,RGB或YUV等格式的数字图像信号,通过数据传输接口传到计算机端。

用于自动驾驶的双目摄像头是通过对两幅图像视差的计算,直接对图像拍摄范围内的前方景物进行距离测量,而无需判断障碍物类型。所以对于任意类型的障碍物,都能根据距离信息的变化进行必要的预警或制动。

GNSS板卡通过天线接收所有可见GPS卫星和RTK的信号后进行解译和计算得到自身的空间位置。当车辆通过遂道或行驶在高耸的楼群间的街道时,这种信号盲区由于信号受遮挡而不能实施导航的风险。就需要融合惯性导航系统 的信息,惯性导航具有全天候、完全自主、不受外界干扰、可以提供全导航参数(位置、速度、姿态)等优点,两者组合之后能达到比两个独立运行的最好性能还要好的定位测姿性能。

感知位置-组合导航

自动驾驶需要根据传感器数据进行计算,实现控制和决策。Apollo计算选用的载体通常是IPC即工业个人计算机(Industrial Personal Computer─IPC)是一种加固的增强型个人计算机,它可以作为一个工业控制器在工业环境中可靠运行。

实际上,现在Apollo平台推荐工控机的规格和参数,推荐配置是1080的显卡和E3或E5的CPU。当然,目前这种集中式的架构,将所有的计算工作统一放到一个工控机中,整体体积较大,功耗高,采用的CPU+GPU的框架也不满足车规级的要求,不适用于未来的量产。但这种架构非常方便算法迭代不需要过度考虑硬件的整体设计,用传统的X86架构就可以非常快捷的搭建出计算平台,卡槽设计也方便硬件的更新和算力的拓展。

自动驾驶大脑-计算单元

自动驾驶主要分为感知,决策,控制三部分,控制层是自动驾驶落地的基础。感知定位如同司机的眼睛,决策规划如同大脑,执行控制就好比手和脚。做好自动驾驶的决策规划也必须懂得执行控制,为了实现自动驾驶执行机构的线控化是必然趋势,其中包括线控制动、线控转向、线控油门。

自动驾驶执行机构的线控化

面向量产的自动驾驶汽车必须对车辆的传统执行机构进行电子化改造,升级为具有外部控制协议接口的线控执行部件系统。“汽车的底层线控系统一般都是封闭的,整车厂和Tier1(一级供应商,产品直接供应整车厂的汽车零部件供应商)不会轻易对外部开放。”

从上面的描述可以看出,自动驾驶一个极其复杂的工程。对于自动驾驶开发者来说门槛还比较高。目前,百度和国内多家高校发起筹建新工科智能驾驶工委会,以自动驾驶的专业方向来看,需要国内高校分别跨专业跨学科一起建设,才能把自动驾驶做得更好。

自动驾驶开发工程

为了能够给广大自动驾驶开发者、从业者提供更多的便利,推动自动驾驶的快速发展,降低门槛。百度从2012年、2013年就开始对自动驾驶技术进行积累,在2017年开放开源,是希望Apollo平台能够降低整个自动驾驶行业的门槛,让大家更便捷地获取自动驾驶的一些能力。

通常,大家先对自动驾驶技术进行离线开发,如果要达到实车有几个选择。一个就是我们刚才介绍的林肯的MKZ的乘用车改造,最大的问题就是成本很高,动辄整车改造下来基本上要上百万左右,并且国家对于自动驾驶的测试法规的完善及要求,除非有专用的测试厂,基本上很难有环境去很好地完成自动驾驶的测试。

另外一种思路是图最右侧介绍的一些模型车。模型车就像乐高机器人一样,很好上手,但是它的问题是真实性会太差,在这样小车上验证的方案,无论是控制、感知都很难复用到真实的汽车自动驾驶上的。

更合适的自动驾驶开发套件

因此,百度选择了一个低速微型车来做Apollo验证。因为Apollo所有的技术积累都是来源于早期乘用车、轿车的自动驾驶,所以它是必须对标这类车辆平台才能去做。另外,能够在短期以内规模化应用还是以低速的小型车辆为主。基于这样的理念,设计了一款「更适合」的自动驾驶开发套件。

Apollo D-Kit线控底盘

该开发套件采用纯电线控底盘,悬架形式采用了整体桥+拖曳臂的形式,在能够完全适配Apollo线控标准的情况下,我们能够基于它生成车辆适配代码及标定参数,降低标定的工作难度。

此外,为了便于自动驾驶调度或者测试接管以及保障安全,选择了用摇控器进行调度、接管,底层传感器还支持碰撞即停的安全功能。Apollo 开发套件有一个很有趣的设计,设计换电方案,打开舱门把电池取出来,再插上新的电池,又可以做下一轮新的研发。

上装结构平台采用轻量化桁架结构,预留了传感器扩展孔位。从设计角度来看,美观程度可能不如说很多自动驾驶小车。这么做的目的是为了让它更适合开发,总体设计思路是希望它能够便于调试应用。

上装传感器结构平台

该开发套件本身来说,完善程度没有那么高。但是它目前的配置能够完成基础的L4级别自动驾驶认证。更为重要的是,它的上装设计能够持续优化硬件。例如,对于二次开发来说,基于这个开发平台,开发者能够在拓展性上去做一些二次开发,一些更新的技术方案可以很快应用到开发套件上进行验证。

具备二次开发拓展性的上装设计

另外除了选型上的拓展,该套件能在结构上做一些拓展。左下角是同一个底盘,在标准套间所采用的桁架设计的基础上,如果有足够的集成能力和结构化能力,也可以做成左下角用于物流配送的上装结构。包括增加例如人机交互、机械控制等前沿方向的功能。

Apollo社区内的自动驾驶应用

在整个Apollo社区里,已经持续涌现出一些自动驾驶应用,像复旦大学的校园配送车,海南大学的校园接驳车,新石器的新零售车等。我们想做的事是希望能够持续地降低Apollo自动驾驶开发平台门槛,打造一个都能够实现的自动驾驶平台,在这个基础上,欢迎大家基于我们的开发套件,能够持续拓展,并给Apollo开源社区贡献一些更新的东西。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分