对齐rtk坐标和world坐标系的问题
在对齐rtk和world坐标系时发生了很诡异的现象,无论如何也对不好。红色是world的轨迹,后来飘了,但是我只用了0.5m以内的轨迹来对齐,基本是在x轴上的。 右下角蓝色轨迹是rtk原始轨迹,左上角是根据计算出rtk和world的夹角之后旋转(y取负)的轨迹。 我使用的方法是 1.算出红色轨迹(world)1m内的航向yaw1,,基本为0 2.算出蓝色轨迹(rtk)1m内航向,yaw = -90(从图中看出) 3.rtk旋转90度,然后把rtk的y取负。 这样就得到了左上角的蓝色轨迹。 对比原始轨迹和旋转后的轨迹,明显旋转后的轨迹偏了,虽然原始轨迹在y上面也偏了一点点,但没有偏这么多,明显就是转的有问题。 仔细分析,问题就出在y取负这个问题上。 我们是先用原始轨迹算出旋转角再取负,这样相当于算旋转角时是正的y,旋转后又取负的y,这样会导致与y轴的偏角在旋转后(旋转后应该是与x轴的偏角)变成两倍!! 我们旋转后不能再改变rtk的值,我们应该一开始就把原始轨迹换过来。把两段轨迹定义在同一个坐标系下面,然后再经过一次旋转,就可以与wolrd轨迹对齐了。 观测轨迹(最好把数据直接打出来看),我们world定义的坐标系应该是 而rtk的坐标是: 我们需要先把rtk.new_x = -rtk.y rtk.new_y = -rtk.x 正确步骤: 1.把rtk 的 坐标先和world坐标对齐rtk.new_x rtk.new_y 2.算出红色轨迹(world)1m内的航向yaw1,,基本为0 3.算出蓝色轨迹(rtk)1m内航向,yaw 3.rtk旋转deltayaw 现在就正常了。
我们在对齐一段轨迹是必须先保证它们在同一个坐标系定义下面。