最近在看loam的源码发现里面有一段关于imu消除重力加速度的源码,刚开始看不明白后来终于搞清楚了,欢迎大家批评指正。
要理解这个问题首先得明白欧拉角到旋转矩阵的变换。。先上图
此图描述的是先绕X,再绕Y,再绕Z的欧拉角到旋转矩阵R的变换,请注意R是正交矩阵,即R乘R的转置为 E。
由于imu受重力的影响会挤压下表面从而产生一个向上的加速度,因此重力加速度的坐标在原世界坐标系下的坐标为[0,0,9.8],则根据坐标变换可知,[0,0,9.8]=R*[x,y,z],则重力加速度在imu坐标系下的坐标[x,y,z]为R的转置乘于[0,0,9.8]。
代进去乘得到[x,y,z]=[-9.8sin,9.8sincos,9.8cos*cos],符号不知道怎么打出来,大家自己算下,很简单。。。,再用总的imu加速度坐标相减即可。
loam 中imu消除重力的部分: