无人车介绍--斯坦福的stanley

斯坦福的无人车Stanley是DARPA(the Defense Advanced Research Projects Agency) 2005挑战赛的冠军, 本文是Stanley论文[1]的归纳和简要分析, 包括系统的设计原则、模块组成,以及可预期的改进。

无人车是机器人的一种,同人一样需要感知、学习、规划、控制。DARPA 2005无人车挑战赛全长100多英里,包含多种地形地况,和现实道路驾驶不同的是,参与挑战赛的无人车都会有一份全局路线图,并提供静态环境(超车时被超车辆将被暂停)。

车辆组成

logo
Stanely四轮驱动,车顶有5个不同倾角的激光测距器(用于25m内的地面检测),1个彩色摄相机(用于长距路面检测),2个测距雷达(用于长距障碍物检测,200m内),一个GPS信号接收器,一个惯性测量单元(IMU)。车内若干计算机。

系统设计原则

1, 异步和去中心化。每个模块独立并同时工作,不同模块之间的消息通信以发布-订阅方式传播,减少死锁和响应延迟;
2, 有限状态管理;
3, 状态安全监控;
4, 模块调试独立化。

系统模块组成

如下图,系统包括:
1, 传感器接口(Sensor Interface, 包括所有系统输入:激光测距器、摄像机、测距雷达、车辆CAN、GPS信息);
2, 感知模块(Perception, 可行驶区域检测、障碍物检测、地面评测、车辆状态估计);
3, 规划和控制(Planning&Control, 路径规划、转向盘控制、油门/刹车控制);
4, 用户接口(User Interface, 手工驾驶);
5, 车辆接口(Vehicle Interface);
6, 全局服务(Global Service, 日志记录、状态监控)
logo

车辆状态估计

车辆状态(15个变量)包括:位置3个(经纬度、高度),速度3个,方向3个(滚转,俯仰,偏航:roll, pitch, yaw),加速度计偏差3个(Accelerometer biases),陀螺偏差3个(Gyro biases)。
车辆状态通过unscented Kalman filter[2]做非线性估计。

激光地面检测

Stanley通过激光器扫描而成的3D点阵图的近邻高度差来探测近距离的障碍物和可行驶区域。高度差等超参数可通过日志记录分析重演进行调节。

视觉地面检测

为了达到更宽的视野,更高的时速,Stanley将激光检测的可行驶区域延伸至摄像机获取的彩色照片。具体的,在照片近域圈定一块可行驶区域,使用GMM对该区域像素点建模,然后动态扩展至中远距离。这里的动态指GMM参数随着彩色照片内可行驶区域的延伸而动态调整,以适应光线和路面的变化。

道路属性检测

Stanley通过Kalman Filter估计道路边缘,并尽量保持中间行驶。并通过上述估计的车辆状态中的垂直加速度来判断颠簸程度,从而调节最大允许速度。

路径规划

由于比赛已经提供了路线图,Stanley不需要全局规划,但进行了路径平滑和实时避障规划。

实时控制

根据规划路径、速度限制、偏离程度进行速度控制和转向控制。

可预期的改进

Stanley的平均速度约是20英里每小时,中途还存在障碍物误报,定位精度有接近米的误差。由于Stanley是2005年研发的,后续的人工智能进展(如深度学习)可以使感知和定位精度提升。

[1] Thrun S, Montemerlo M, Dahlkamp H, et al. Stanley: The robot that won the DARPA Grand Challenge[J]. Journal of field Robotics, 2006, 23(9): 661-692.
[2] Julier S J, Uhlmann J K. New extension of the Kalman filter to nonlinear systems[C]//AeroSense 97. International Society for Optics and Photonics, 1997: 182-193.