现象
在机器人进行大幅度的旋转指令的时候, 激光数据会与地图之间产生错位,不匹配。如下图情况, 红色的激光数据与栅格地图产生了错位。
分析
在该图片中,机器人正在进行顺时针旋转, 此时,卡尔曼滤波之后的base_footprint的发布频率较高, tf变换马上就被进行发布, 但是,激光的频率只有几赫兹, 因此, 激光扫描到的地图相对于base_footprint是上一时刻的数据, 因此就被base_footprint变换带着一起进行了顺时针旋转, 从而与地图环境产生了错位。
换个角度:
机器人进行顺时针旋转的时候, 墙体相对机器人进行了逆时针旋转, 放在激光数据里面, 就意味着顺时针旋转的时候, 相对于机器人的本体, 激光数据里的墙体此时进行了逆时针旋转,这样才能保证与真实世界的一致性。 所以,当机器人进行顺时针旋转的时候,图片中的激光数据的墙体却没有进行逆时针旋转,就意味着此时激光数据还是上一时刻的数据。