文章转载自: https://blog.csdn.net/weixin_44492854/article/details/109249662
代码介绍
在LOAM的处理中,IMU数据甫一进入系统第一步是对重力分量的去除。LOAM中对重力影响的去除有以下公式:
float accX = vec_imuData[pointer].accy - sin(imuRoll[pointer]) * cos(imuPitch[pointer]) * 9.81;
float accY = vec_imuData[pointer].accz - cos(imuRoll[pointer]) * cos(imuPitch[pointer]) * 9.81;
float accZ = vec_imuData[pointer].accx + sin(imuPitch[pointer]) * 9.81;
以上公式处理对初始IMU的数据进行了以下两个操作:
1. 去除了重力的影响;
2. 变换了坐标表示。
坐标系的定义:
ROS坐标系: x轴向前,y轴向左,z轴向上的右手坐标系
欧拉角坐标系: z轴向前,X轴向左,y轴向上的右手坐标系
imu坐标系: x轴向前,y轴向左,z轴向上的右手坐标系
velodyne lidar安装坐标系: x轴向前,y轴向左,z轴向上的右手坐标系
scanRegistration会把两者通过交换坐标轴,都统一到z轴向前,x轴向左,y轴向上的欧拉角坐标系,这是J. Zhang的论文里面使用的坐标系
以下对两个方面逐个进行说明。
IMU数据去除重力
将该加速度按IMU在空间中的姿态将受重力影响的加速度分解到三个敏感轴方向上,之后在读数基础上减去该部分影响,即可得到去除重力加速度的三轴加速度。