假设有一张全球的高精度地图,定位的任务是确定车辆在这张高精度地图上的位置。gps精度在1到3米,由于不能完全信任gps,必须找到另一种方法来准确的确定车辆在地图上的位置。
最常用的方法是将所看到的内容和地图上显示的内容进行比较
车辆坐标系和地图坐标系可能均取决于手机导航系统中的设置。
无人驾驶软件必须将传感器的测量值从车辆坐标系转换到地图坐标系,
解决转换问题是定位问题的关键步骤
GNSS 全球导航卫星系统 RTK实时运动定位
三角测量
任何时间大约有30颗GPS卫星在外层空间运行,各自距离地球约2万公里。如果没有遮蔽物,接收器每次应至少检测到四颗GPS卫星
每颗卫星都配备了高精度的原子钟。
为进一步减少误差,我们可以使用实时运动定位,RTK涉及在地面上建立几个基站。每个基站都知道自己精确的地面实况位置,每个基站也通过GPS测量自己的位置。已知的地面实况位置与通过GPS测量位置之间的误差,然后将这个误差传递给其他GPS接收器,以供其调整自身的位置计算
惯性导航定位
我们可以使用加速度,初始速度和初始位置来计算汽车在任何时间点的车速和位置。
我们该如何测量加速度。需要一个名为三轴加速计的传感器。
有三种不同类型的三轴加速度计,采用不同的方法,但是共同目标是精确测量加速度。然而加速度本身不足以计算我们的速度和位置。
加速度计根据车辆的坐标系记录测量结果。我们需要知道如何将这些测量值转换为全局坐标系。这种转换需要另一个名为陀螺仪的传感器。
陀螺仪的三个外部平衡环一直在旋转,但是旋转轴始终固定在世界坐标系中。我们计算车辆在坐标系中的位置是通过测量旋转轴和三个外部平衡环的相对位置来计算的。
加速度计和陀螺仪是惯性测量单元的主要组件,IMU的一个重要特征在于他以高频率更新。频率可以达到1000Hz,所以IMU可以提供接近实时的位置信息。缺点是其运动误差随时间增加而增加。我们只能依赖惯性单元在很短的时间范围内进行定位。
但是我们可以结合GPS和IMU来定位汽车。一方面IMU弥补了GPS更新频率较低的缺陷。另一方面GPS纠正了IMU的运动误差。但是即使结合也不能完全解决定位问题。
激光雷达定位
利用激光雷达,可以通过点云匹配来对汽车进行定位。该方法将来自激光雷达传感器的检测数据,与预先存在的高精度地图连续匹配。通过这种比较可获知汽车在高精度地图上的全球位置和行驶方向。
有许多算法用于点云匹配,如ICP迭代(iterative closest point)最近点,对于第一次扫描中的每个点,我们需要找到另一次扫描中最接近的匹配点。最终会收集到许多匹配点对。把每对点之间的距离误差相加计算平均距离误差。
目标是通过点云旋转和平移来最大限度降低这一平均距离误差,我们就可以在传感器扫描和地图之间找到匹配。我们将通过传感器扫描到的车辆位置转换为全球地图上的位置。
滤波算法是另一种LIDAR定位方法。滤波算法可以消除冗余信息,并在地图上找到最可能的车辆位置。
apollo使用了直方图滤波算法Histogram filter,也称为误差平方和算法(或SSD)sum of squared difference
将通过传感器扫描的点云滑过地图上的每个位置,在每个位置,计算扫描的点与高精度地图上的对应点之间的误差或距离,然后对误差的平方求和。求得的和越小,扫描结果与地图之间的匹配越好。
卡尔曼滤波是另一种LiDAR定位方法。卡尔曼滤波是一种算法,用于根据我们在过去的状态和新的传感器测量结果来预测我们当前的状态。具体来说,卡尔曼使用了预测更新周期。
首先根据之前的状态和对移动距离和方向的估计,来估计或预测我们的新位置,当然运动估计并不完美,需要通过使用传感器测量我们的位置并加以纠正。一旦用传感器测量了我们的新位置,我们可以使用概率规则将不完美的传感器测量结果与我们现有的位置预测结合起来,我们会永远遵循这个预测更新周期。
先预测我们的新位置,然后用传感器测量我们的位置,LIDAR定位的主要优势在于稳健性
视觉定位
摄像头便宜且种类繁多,通过图像实现精确定位非常困难,摄像头数据通常与来自其他传感器的数据相结合以准确定位车辆。
粒子滤波,使用粒子或点来估计最可能的位置。可以使用相同的粒子滤波原理对车道线进行拍照,使用拍摄的图像来确定车辆在道路中的位置。可以将摄像头图像与地图进行比较
apollo定位
使用基于gps,imu和激光雷达,高精度地图的多传感器融合定位系统,利用了不同传感器的互补优势。也提高了稳定性和准确性
融合框架通过卡尔曼滤波将这些输出结合在一起,卡尔曼滤波建立在两步预测测量周期之上, apollo中,惯性导航解决方案,用于卡尔曼滤波的预测步骤,GNSS和LIDAR定位用于卡尔曼滤波的测量结果更新步骤。