原文标题: Trajectory Generation and Control Methodology for an Autonomous Ground Vehicle
论文来源: Autonomous Systems Laboratory, Computer Engineering Department, University of California, SantaCruz
摘要
这篇文章用的车辆是Overbot,该车原来是设计用来参加DARPA Grand挑战赛的,后来被改装成无人车研究的平台。这样一个完整的平台考虑到了新算法的开发和验证,执行器和传感器与现有框架的融合。本文描述了一下软硬件的交互,提出了一种在复杂障碍物情形下寻找基于曲线spline-based路径的方法。总共测试了多种控制方法,路径规划和控制在600米的道路上得到了验证。
Nomenclature术语
1 OVERBOT介绍
硅谷工程师在2004和2005年参加DARPA Grand挑战赛的时候设计制造的,但是Overbot没有完成任意一场比赛,2005年被捐赠给加利福利亚大学的无人系统实验室。
Overbot是一辆完全自主的无人车,可以跟随一系列GPS轨迹点,车辆被设计成遍历每一个路径点,并且在走直线的时候保持在一定的拐弯半径中,最终避让所有的障碍物。为了完成这个任务,车辆配备了各种传感器,执行器和定制的软件来导航,在无人驾驶中,车辆完全自主无需任何的人为输入信息。
1.1 硬件架构
车辆可以在山区或者岩石地形中运行,速度可以达到40mph,并且能翻越大型障碍物。
车顶安装了拥有180度环视的红外线激光雷达,随着射线beam旋转就能计算出出距离。在Overbot上面,激光雷达被安装在一个定制的万向接头mount上,这样就能让激光雷达扫描到地面得到地形图。万向接头是由伺服servo电机驱动的,可以根据车辆姿态进行俯仰调整,另外Overbot还配备了彩色相机,ccd相机(659*494分辨率resolution),摄像头安装和激光类似,非常适合获取地形terrain。
Crossbow AHRS 400CB-200是一个姿态attitude和朝向heading参考系统,包含了3轴加速度计,罗盘rate gyro,和一个3轴磁力计magnetometer。通过融合这些测量单元,就能估计出横滚角roll,俯仰角pitch,和旋转角yaw,同时得到对应的变化率。精度方面,俯仰和横滚精度是±2.5度,旋转角精度是±4度,但在实际中受噪声影响susceptible特别大。
为了让车辆从一个位置自主地到达另一个位置,非常有必要得到一个车辆位置的精确测量。Overbot依赖于Novatel家的GPS设备,使用差分differential corrections纠正使得定位误差在0.1米之内。
在Overbot地盘chassis上,使用伽利略运动Galil motion控制器来控制转向,油门,刹车和换挡shifting。工业伺服电机旋转方向盘连杆steering shaft,而原本的方向盘齿轮依然被用来控制车辆。一个修正的巡航控制单元来操作油门,一个螺旋传动screw drive和线缆驱动actuate车辆的刹车踏板……(现在不都是线控了嘛,太low了)
所有的子系统都被以太网和一系列路由器连接,所有的通信都通过设备与设备之间的UDP协议user datagram protocol包裹进行通信。
1.2 软件架构
Overbot在一个装有单核奔腾Single Pentium处理器的片上电脑onboard上运行,机器通过在QNX实时操作系统上运行软件来控制车辆。这个软件被分为几个处理线程,每一个线程都服务于一个不同的任务,几个进程在一起定义了传感器的信息输入,并且在尾部定义了执行器的输出,每个线程都代表一个服务,一般情况下只和自己上下级的进程进行通讯。
GPSINS Server
最顶层的软件架构是GPSINS进程server,在Novatel GPS接收器和Omnistar High Performance subscription的加持下,定位精度可以达到分米decimeter级别。惯导结合使用卡尔曼滤波可以达到60hz的计算速度,最后GPS接收器和AHRS惯导共同提供了车辆的位置和方位信息。
Map Server
视觉部分的计数都在Map Server中实现,首先使用laser range finder来监视环境并寻找障碍物,将激光雷达的倾角和车辆的位置以及方位进行对比,就能表示出物理环境中的测量点。随着车辆前进,激光雷达不断地扫描地面,这些点累积起来,就能代表物体的表面并最终得到对障碍物的定义。所有的障碍物最终都被投射到地面并创建一个二维的,离散的地图。
Move Server
根据GPSINS的数据,规划出一条到达期望目的地的路径,Move Server主要部分是车辆的动力学和误差检测,总的来说,Move Server努力使车辆在遵循车速限制的条件下,保持速度尽可能快。一些简单的动力学限制可以用方位信息计算出来,动力学主要根据曲率和地形的不同来限制车辆的速度。最后,速度,转向和曲率信息都被计算出来,并分发到对应的速度和方向模块中。
Speed Server
主要是处理硬件运动限制,控制油门,刹车和方向盘,从Move Server接受指令,并转换到执行器来改变速度,加速度和方向盘转角。
Direction Server
接受Move Server的指令,并发送给硬件控制器。
注: 这一段作者的写作思路非常混乱,非常没有条理性,我的理解可能也存在问题。
2 Path Planning
Overbot是被设计跟随一系列路径点的,这些点描述了车辆的理想nominal路径。每一个点都必须被顺序遍历,同时还要维持在理想路径的最大误差范围maximum radius内。这个距离定义了一个关于路径的长廊corridor about path,限制了车辆允许占据的空间。在每个离散时间点中,轨迹都利用车辆的当前位置和方位,通过定义好的长廊corridor(应该翻译成可行空间?)和障碍物地图obstacle map规划出轨迹Trajectory。
接下来介绍两种路径规划path planning技巧
2.1 Arc Based Paths基于圆弧的路径
符号 | 含义 |
---|---|
W G o a l G P S W_{G o a l}^{G P S} WGoalGPS | 目标点位置 |
W V G P S W_{V}^{G P S} WVGPS | 车辆当前所在点位置 |
θ V \theta_{V} θ |