什么是里程计?
在像 Robo-Rat 竞赛这样的搜索和检索挑战中,机器人了解自己的位置至关重要。知道你在哪里可能看起来并不困难,但正如你将看到的,它实际上可能非常困难。人们可以使用他们敏锐的视觉、长期记忆和对周围环境的意识来定位自己。然而,机器人天生并不具备这些复杂的能力,特别是您将在本课程中开发的那些机器人。里程计是机器人用来定位其周围环境的一种技术。
什么是里程计?
里程计是指使用运动传感器测量机器人相对于给定位置的位置变化。例如,如果一个机器人直线向前移动,并且知道其车轮的直径,它可以通过计算车轮旋转次数来确定它已经移动了多远。机器人的驱动轮通常配备有轴编码器,每个旋转产生预定的脉冲数。这些脉冲由 CPU 计数,CPU 可以计算出行驶的距离。
示例
想象一个机器人在车轮或腿部关节上装有旋转编码器。在向前移动一段时间后,它会停下来询问它已经移动了多远。如果它知道车轮的直径并且可以测量车轮旋转了多远,它就可以计算出距离。
里程计也常用于火车运营。当火车位于两个固定传感器之间时,通常使用里程计来确定火车的相对位置,而穿过轨道上的固定传感器通常会为火车提供其绝对位置。
用途
里程计可以与位置估计器一起使用,以提供更好的估计。
由于机器人足够稳定以能够识别地标,因此它们被用于在受限区域进行测绘。
当没有其他来源可用时,有几种情况除了里程计之外没有其他导航数据可用。
局限性
尽管里程计是移动机器人常用的一种位置传感器,但它也存在一些缺点。由于它是一种累积测量,因此任何感测误差都会随着时间的推移而加剧。为了避免错误的显著累积,机器人可能需要偶尔使用其他传感器来识别其精确位置。
移动机器人应用中的一个关键问题是车辆的精确定位。为了实现自主导航,机器人必须持续了解其位置。因此,研究人员和工程师创建了许多方法和系统用于移动机器人定位,包括轮式里程计、激光/超声波里程计、GPS、GNSS、惯性导航系统 (INS) 和视觉里程计 (VO)。
里程计误差可能是由以下原因造成的:
- 车轮直径测量错误
- 具有不同车轮直径的多轮驱动系统
- 使用驱动轴编码器时脉冲计数出现问题
- 里程计处理速度慢(仅考虑累积计数,不考虑动态计数差异)。
里程计的工作原理
上图显示了差动驱动机器人的两条可能的运动路径(每个轮子由单独的电机驱动)。编码器值位于轮子旁边。在左图中,机器人沿直线移动,确保编码器值始终相同。然而,右边的机器人遵循蛇形路径。当绿色轮编码器读数为 80 而红色轮编码器读数为 40 时,机器人正在向右转弯。
然而,即使机器人在遵循 S 形曲线时行驶了更长的距离,机器人最终位置的编码器读数也相同,因为它们大于左侧的读数。这是因为机器人随后向左转弯。如果您的控制程序仅考虑最终位置的编码器,它会认为机器人沿直线移动。这就是为什么缓慢的编码器处理会导致错误的原因。除非您的机器人机械地保证沿直线移动,否则您应该尽快处理里程计信息。
如何减少里程计误差
- 窄轮距车辆更容易出现方向错误。
- 同步驱动架构提供了更精确的里程计。
- 用于里程计的车轮应薄且不可压缩。
- 承载相当大一部分重量的转向轮容易滑动。
结论
总而言之,里程计是跟踪机器人绝对位置的过程。运动算法可以使用此信息来驱动到位置或转向绝对角度。