里程计直接会作为建图或者导航的时候的输入,所以起着至关重要的做,准确性直接影响建图和导航的效果。单独使用轮子编码器得到的里程计与融合了IMU数据的里程计最终效果如何,我们这里做个测试来对比下。
有2种方式测试:
- 手动控制机器人走一圈然后回到之前的原点,通过观察模拟器(
RViz
)中里程与初始点的偏差 - 程序控制机器人行走(例如走一个方形),通过观察最终机器人时间与最初原点的偏差
下面我们使用的都是第一种及标记个原点,控制机器人随机行走一段时间后再控制其回到标记的原点上,打开RViz
观察程序计算的机器人位置姿态是否回到原点
编码器里程计测试
手动控制
手动控制apollo"溜达"了两圈回到原点,观察tf
坐标系可以看到
程序显示
base_link
没有回到原点有一定的误差(位置和姿态都有误差)
融合IMU的里程测试
手动控制
未做对比我们在使用融合IMU的时候,把使用编码器计算出来的里程计显示出来作对比(大的红色箭头就是编码器里程计),同上面我们控制apollo溜达一圈回到原点
-
初始的时候三个是重合的
-
行走了一段时间
可以发现没走多远融合出来的里程
(黄色框)和编码器里程
(红色框)就有了较大的差距
-回到原点
我们继续控制使得apollo回到原点
这张图可以看出跟官方提供的图较为类似了