广州键盘价格联盟

开发者说 | Apollo 1.0适用于农业场景的低成本适配过程分享

Apollo开发者社区2018-12-03 14:54:54


2017年7月Apollo 1.0在Github上正式发布。当在新闻上读到这条消息——“Apollo 1.0开放封闭场地的自动驾驶能力”时,我就在想,我们的农场就是封闭场地,是否可以把Apollo 1.0用做公司机器人系统的无人驾驶模块呢?


第二天,一到公司我就把源码下载下来,开始配置运行环境。当用Rosbag在Dreamview里跑起系统自带的Demo时,我还是很兴奋的,立刻被Apollo圈粉了。Apollo是一个比较完整的开放平台,而且对林肯车和推荐硬件做了适配,偏重实战。如果按照推荐方案配置,3天之内实现自动驾驶并不夸张。然而基于安全性、可靠性等因素,平台推荐的硬件配置高、价格昂贵,这对农业场景并不适用。


我认为无人驾驶技术最终的目的是服务大众,让人们的生活更便捷、更美好。实际上,这项技术可以应用在很多行业,尤其是农业场景,比较容易落地。如果能够简化,实现低成本的方案,将大大加快无人驾驶在农业领域的发展。所以,简化这项技术,使其更贴近大众是非常值得一试的。因此,我们尝试了低成本的硬件方案,下面将和大家分享一下适配过程。




1

车平台


首先,要有一部实验车。我们改装了一部越野电动车,由一个专营电动车的车行定制而成。该车底盘为200x100cm,四轮都有减震,是一个越野底盘,后桥装有一台差速电机,能跑40km/h。


此外,我们加装了EPS转向助力系统和角度传感器,同时更换了电机控制器,用来实现线控和RC遥控。然后,我们模拟农场环境做了测试,经过几次迭代,在进一步改装之后,增强了车身的可靠性和稳定性,使其可以比较顺畅的在颠簸路面上行驶。


(ThorTec农场无人驾驶实验车)



2

硬件平台


Apollo 1.0推荐的硬件主要有:IPC、GNSS接收机、IMU和PCI-CAN卡。在1.0中定位是关键模块,只有实现厘米级的定位,才能实现无人驾驶。


IMU的优点是频率高,在高速的情况下表现好,缺点是存在累计误差,需要GNSS提供的绝对位置来纠偏。而GNSS设备频率低,恰好是在低速时表现好,并且在定位绝对位置时,采用RTK差分可以实现厘米级定位。


我们的测试场景是封闭园区低速行驶,速度不超过10km/h。于是,我们对定位设备做了裁剪,去掉了IMU,采用Novatel 617D 板卡RTK差分定位,同时采用双天线取得航向,最终实现位置精度2cm,航向精度1°的厘米级定位。PCI-CAN卡使用esdcan-pcie402,IPC选用普通的工控机。GPS设备的裁剪一项,使成本降低了10几万元,实现了我们的目标。



3

软件平台


我们主要对以下5个模块做了修改:


1.   GPS驱动模块:主要解析Novatel 617D 的三个协议,BestPos,BestVel和Heading。BestPos解析出WGS84大地坐标;BestVel解析水平和垂直速度;Heading解析航向角。具体内容可以参阅Nvatel的技术说明书。


2.   Localization:定位模块的修改,目的是将原来通过IMU获取的航向、线性速度等数据替换为GNSS接收机解析的数据。


3.   Canbus:添加角度传感器,并适配车辆的控制器CanOpen协议。


4.   Control:Apollo 1.0使用通用的LQR和PID控制算法,分别实现车辆动力学的横向和纵向控制。这里我们主要修改了控制模块的配置文件,针对我们的车辆调整各项参数,为控制模块输入合适的参数,保证控制模块输出正确的指令。


5.   Common模块:使用GNSS接收机获取的数据,修改预瞄算法。




最后,我们模拟农场环境,成功的进行了测试验证。事实证明,我们的低成本方案是可行的,完全实现了Apollo1.0封闭场地无人驾驶。


(建议在Wi-Fi环境下观看)



我们在适配过程中遇到的很多问题,都在Apollo开发者社区中得到了开发者和Apollo工程师的解答,这对我们的帮助很大。这里,我把我们的适配过程给大家做了简单的分享,希望同样对大家有所助益。



自Apollo平台开放已来,我们收到了大量开发者的咨询和反馈,越来越多开发者基于Apollo擦出了更多的火花,并愿意将自己的成果贡献出来,这充分体现了Apollo『贡献越多,获得越多』的开源精神。为此我们开设了『开发者说』板块,希望开发者们能够踊跃投稿,更好地为广大自动驾驶开发者营造一个共享交流的平台!


* 以上内容为开发者投稿,不代表百度官方言论。

  本文由青岛托尔泰克机器人的开发者王欣可投稿分享。


友情链接

Copyright © 广州键盘价格联盟@2017