gaoxiang12 / slam_in_autonomous_driving

《自动驾驶中的SLAM技术》对应开源代码
1.88k stars 461 forks source link

第三章 g应该在哪个系下进行递推? #169

Open AwesomePeiweiPan opened 1 month ago

AwesomePeiweiPan commented 1 month ago

我也看了一下代码,感觉总是怪怪的 (3.71) 初始化的时候 认为RT=I, 那也就是说这个时候世界系和imu系是重合了,这个时候获得的g前两项不是完全为0,因为imu不是完全水平的,我非常理解,换句话说,这个时候算出的g应该是imu坐标系下的结果

但是 (3.15)递推的时候 很明显,应该是在世界坐标系下的g,算出的是世界坐标系下的位置等 为什么代码里还是用的之前初始化的g,不应该直接[0,0,-9.8]吗?

求教大佬们解答~~~!!!

AwesomePeiweiPan commented 1 month ago

顺便我还发现,这里的ESKF的RTK给的初始的TWB,其中旋转的部分只考虑了航向角,其它两个默认为0,然后作为第一个R_开始递推。

我就在想,这种方式(车辆初始姿态为I,估计重力方向,然后再使用这个重力方向的重力),无论是imu的旋转矩阵方面还是RTK的旋转矩阵方面,是不是都是在车辆坐标系下的递推,只不过这个时候车辆坐标系几乎是水平的,因此把这个车辆坐标系当作世界坐标系,同时g可以有分量在这个车辆坐标系中。

这个当作的原因是,不需要考虑航向角(已经在RTK的TWB中考虑了),同时是完全水平的,因此其它两个角度也为0,因此可以算作是世界坐标系

这样就解释的通了