SLAM系统中世界坐标系和地图坐标系并不一定是同一坐标系。在SLAM中,一般是将地图初始化时刻(第一帧)相机、雷达或IMU的坐标系作为地图坐标系。世界坐标系一般反应真实的空间坐标,因此世界坐标系的Z轴应该与真实空间中的重力方向平行。
一般情况下,我们将初始时刻的传感器水平的放置,此时我们默认将世界坐标系认作是地图坐标系,但是初始化时刻传感器不是水平放置,此时的地图坐标系将不再是世界坐标系。
若地图坐标系不是世界坐标系,此时我们将地图坐标系当做世界坐标系显示点云地图时,整个地图就会出现一定的角度偏移。
因此在没有地图坐标系矫正的SLAM算法中,我们要保证初始化时传感器是水平放置的,否则创建的地图就会出现如下图现象。有些SLAM算法搭载了IMU可以得知重力方向,所以一般设置了地图坐标系矫正算法,就不需要考虑初始化时传感器是否水平放置的问题了。
当SLAM系统中存在IMU传感器时,可以通过IMU初始化操作,得到重力在地图坐标系中的方向,通过地图坐标系到重力坐标系的姿态变换对地图坐标系(世界坐标系)进行矫正,使世界坐标系的Z轴方向与重力方向对其,得到对其后的世界坐标系(地图坐标系)。接着通过地图坐标系到重力坐标系的姿态变换对地图点(黑色)进行矫正,就得到矫正后的地图点(蓝色)。