产品中心

ag8网址如何将传感器坐标系下的数据转换

发布日期:2021-05-16 16:20

  无人驾驶系统是一个多传感器整合的系统,需要将不同位置的传感器数据统一到一个固定的坐标系自车坐标系下,才能分析当前无人车所在的道路场景。本文将会集中在如何将传感器坐标系下的数据转换到自车坐标系下。有关无人驾驶技术中传感器到车体坐标系的坐标转换原理及数学推导,该原理不仅用在无人车领域,同时在机器人、无人机、三维建模等领域也得到了广泛使用。

  无人车上拥有各种各样的传感器,每个传感器的安装位置和角度又不尽相同。对于传感器的提供商,开始并不知道传感器会以什么角度,安装在什么位置,因此只能根据传感器自身建立坐标系。无人驾驶系统是一个多传感器整合的系统,需要将不同位置的传感器数据统一到一个固定的坐标系自车坐标系下,才能分析当前无人车所在的道路场景。

  不同的无人驾驶团队对于坐标系的定义可能不同,但这并不影响开发,只要团队内部达成一致即可。

  对于无人车的传感器安装位置,业内大同小异,比如奥迪A8的传感器配置如下图所示:

  以安装在无人车左前方的角雷达(Corner radar)为例,进行后面的介绍,叫雷达的安装位置和坐标系如下图绿线所示。

  角雷达检测到的障碍物如图中的绿点所示,绿点在雷达坐标系下的坐标为(x1,y1),为了便于理解暂不加入z方向的坐标。

  先将角雷达坐标系的O点平移到与自车坐标系的O点重合,此时(x1,y1)需要减去两个坐标系在x和y方向的距离。如下图所示:

  在两个坐标系的O点重合后,将角雷达坐标系沿着z轴进行一定角度的旋转,这样(x1,y1)就转到了自车坐标系上。这个过程在数学上称为欧拉旋转。

  坐标系的平移和旋转是两件相互独立的事情,先平移再旋转和先旋转再平移并不会影响最终的结果。

  平移步骤根据传感器安装位置和自车后轴的距离进行计算,仅仅是XYZ三个方向加减运算。

  障碍物在角雷达坐标系下的坐标为(x1,y1),假设障碍物在自车坐标系下的坐标为(x0,y0),需要根据安装角度(可测量),用x1,y1,这三个已知量表示x0,y0,求得他们的数学关系。

  就意味着,只要把角雷达采集到的障碍物坐标值与上面这个矩阵进行矩阵乘法运算,即可完成沿Z轴的旋转。在这里我们把这个矩阵叫做Z轴旋转矩阵RZ,那必然还有沿着X轴和Y轴的旋转矩阵RX和RY。

  角雷达目标的坐标依次右乘这三个矩阵,就完成了沿着Z轴,Y轴,X轴的旋转,得到的结果就是自车坐标系下的坐标值了。即

  不同的坐标系定义,会有不同的RX,RY和RZ,因此需要根据实际情况计算旋转矩阵和平移矩阵。

  以上过程也称为欧拉旋转,但是欧拉旋转会有一个不可避免的问题万向锁。欧拉旋转的过程中在某些特殊情况时,会导致丢失维度。万向锁通过文字解释起来会有点困难,可以看一个讲解万向锁的小视频进行了解。

  为了解决欧拉旋转所带来的万向锁问题,业界引入了四元数。四元数除了解决万向锁的问题外,还能在一定程度上简化计算。因而百度Apollo也选择了四元数作为各个传感器安装位置和角度的存储介质。有关四元数的定义和使用方法这里不做详细讨论,可参看Apollo的Calibration模块。链接如下:

  实际参与到开发中你才会发现,自己在大学学习的高数和线性代数等都是很重要的数学工具,而不是仅仅用来考试的。

  以上就是有关无人驾驶技术中传感器到车体坐标系的坐标转换原理及数学推导,该原理不仅用在无人车领域,同时在机器人、无人机、三维建模等领域也得到了广泛使用。ag8网址