路程推测法是在任意给定时间判定机器人所处位置的最普通的方法。
此方法很便宜也很容易实现,且在短距离内十分准确。路程推测法与在使用卫星、雷达和其他电子方法导航时代之前被海洋船长和飞行员采用的“推测导航法”航行类似。因此,路程推测法在机器人文献中被当作推测导航法推荐。
与汽车不同,机器人没有连接到他们的传动器或前轮的速度计来驱动里程表。代替它的,机器人的“里程表”的典型设计是使用光学或磁性传感器。让我们看一看各种类型如何运用于机器人中。
1.光学编码器
可以使用一个环绕着驱动轮轴,或是驱动马达的轴做成的小圆盘,当作光学轴编码器。圆盘可以是反射型或开缝型:
(1)对于一个反射型圆盘,红外线光照射圆盘后反射给一个光传感器。
(2)对于一个开缝型圆盘,红外线的光交替地阻塞或通过后并被另一面的光传感器接收。
(3)无论哪一种方法,每次光传感器感光时都产生一个脉冲。
2.磁性编码器
可以用一个霍尔效应开关(一种对磁场敏感的半导体)和一个或多个磁铁构造磁性编码器。每次当磁极经过霍尔效应开关时都产生一个脉冲。磁场的变化用一个特殊的对由金属齿轮产生的磁效应敏感的霍尔效应传感器记录(见下图)。
辅助磁铁在霍尔效应传感器后面放置。每次当齿轮的一个齿在传感器前面经过时,都产生一个脉冲。这种技术在轮子或马达的轴旋转时提供更多的脉冲,不必在轮子或轮轴边上使用单独的磁铁。
3.在路程推测法中编码器的功能
随着轮子或马达轴旋转,编码器(光学的或磁性的)会产生一系列与机器人行走距离相关的脉冲。假设轮子的直径是3英寸(圆周是9.42英寸),且编码器盘上有32个狭孔,则每个编码器的脉冲表示行走了0.294英寸(9.42/32)。如果机器人感觉到10个脉冲,那它已经移动了2.94英寸。
如果机器人使用传统的两轮推进方式,可把编码器(光学或磁性)附在两个轮子上。这是必要的,因为机器人的驱动轮转速在一段时间内会稍微有些不同。通过整合两个光学编码器的结果,可以决定机器人真正位置是否和将要到达的位置不同(如下图)。同时,如果一只轮子滚过一条绳索或其他小突起,它的旋转将会受到阻碍。这会导致机器人改变方向,可能至少3-5度或更多。此时编码器会探测到这个变化。
最好使用一个配备脉冲计算器或计数器输入的微控制器来进行路程推测。各输入端独立地计算自其上次复位后收到的脉冲数。为了获得路程推测读数,需清除计算器或计数器后启动马达。软件不需要监控计算器或计数器。停止马达,然后读取计算器或计数器的值。编码器的脉冲数乘以每个脉冲行进的距离(这根据机器人的构造不同;要考虑轮子的直径和编码器每转的脉冲数。)就是路程。
如果来自两个编码器的脉冲数都相同,可以判定机器人在直线行走,只需要将每个脉冲行进距离乘以脉冲数就是路程。比如说,如果计算器/计数器有1055个脉冲,而每个脉冲表示0.294英寸,那么机器人已经笔直向前地移动了310.17英寸。
4.路程推测的误差
理想状态下,机器人只需要一个里程表准确地判定在任何的给定的时间它在哪里。不幸的是,机器人生活和工作的环境不是理想的;结果,他们的里程表也很不准确。例如,通过20到30英尺的路程,机器人的位置在平均里程表上的误差多至半英尺或更多也不奇怪!
为什么会有误差?首先而且最重要的是轮子的打滑。当轮子转动时必然会打滑,尤其当地面很坚硬,很光滑,如厨房的地板,当机器人转向的时候轮子更容易打滑。轮子编码器会记录一定数量的脉冲,但由于打滑,行进的实际行进的距离会少于此值。某些机器人的驱动设计与其它设计相比更容易出错。很多有轨道的机器人常常滑动着行进。编码器会记录脉冲,但是机器人实际上没有按比例移动。
精确性也是路程推测误差的原因。如果测量轮子的直径时,有百分之一英寸的误差,通过很长的距离后误差将会扩大数倍。如果机器人配备了柔软的或空气的轮子,机器人的重量会使轮子变形,并因此改变他们实际的直径。
因为路程推测有误差,故有必要与其他导航技术结合使用。
上一篇:为机器人配置一条旋转坐标手臂