Microsoft Robotics Studio中文教程1

发布时间 : 星期二 文章Microsoft Robotics Studio中文教程1更新完毕开始阅读

第三章 机器人运动规划 19

第三章 机器人运动规划

典型的计算机程序按照规划顺序执行每项操作,直到计算出所需要的结果。但是,机器人则需要具有根据机会进行处理的能力。

移动机器人不知道自己在环境中将会发现什么东西;附近的物体可能没有事先通知机器人;移动机器人通常也不能非常明确地知道自己当前正在什么位置(随着机器人的移动,这种定位不确定性会越来越严重)。

早期的机器人研究是通过解释环境中的每一个物体建立环境模型,然后据此规划机器人的相应运动,最后控制机器人执行这些规划。这种方法的效果非常不好。由于计算量太大,移动机器人的行走缓慢,反应迟钝,从而容易受到环境中意想不到的变化的冲击。在机器人进行规划的过程中,动态环境经常容易发生变化,等到机器人规划完毕准备执行时,环境的当前状况可能已经完全不符合这种规划了。

因此,新的运动规划方法诞生了。这些新方法应该能使机器人在环境中自主地寻找每个物体,而不是让编程人员去告诉它哲学物体的具体位置。为了达到这个目的,移动机器人必须具备能够检测环境变化的传感器系统。由于环境中的物体可能会发生变化,机器人不能仅对物体进行一次感知,然后通过记忆确定出每个物体的位置,而是要对环境中的物体进行连续实时监测,一旦检测结果发生变化就立即作出反应。为了能够有效地处理非结构化的动态环境需要进行合理的运动规划,同时还要合理的设计机器人控制系统,这是基于行为的机器人所要突破的重点[6]。

3.1 避障规划(避障行为)

3.1.1 基于接触传感器的避障实现

基于接触传感器的避障是以机器人的逃离行为作为基础的,当机器人同障碍物发生碰撞,接触传感器受到挤压,机器人据此感知是否有碰撞发生。许多机器

基于Microsoft Robotics Studio的机器人设计 20

人通过在机器人两侧分别安装接触传感器来实现碰撞检测功能。当机器人同障碍物发生碰撞时,接触传感器受压,其中的一个或两个检测开关开始工作,发出电信号通知机器人有碰撞发生。逃离行为是在这种情况下调用,用来使机器人产生反应以脱离碰撞区域的软件程序。

当发生碰撞时机器人所做出的反应在很大程度上取决于自身的几何形状,圆柱体对称机器人采用简单的策略就能可靠、有效的做到这一点。当发生碰撞时,机器人首先应该后退一定距离以使接触传感器的挤压状态得到缓解。此时,机器人能够比较方便的进行转弯操作。后退以后,接触传感器将不再同障碍物发生强烈接触,警示机器人碰撞发生的电信号也会消失。在这个程序设计中,会出现问题,若后退距离不够大,则会出现接触传感器信号消失,而传感器还轻微接触着障碍物。

我们曾尝试采用以下方案建立伺服逃离行为:如果左侧发生碰撞机器人原地向右旋转;如果右侧发生碰撞则原地向左旋转。这种方案存在一些问题:若机器人两个接触传感器同时触发,这时若是进行后退,则两个传感器将会同时释放,机器人将会忘记曾有物体出现,然后又会向前行走,从而进入一个死循环。

当两个接触传感器同时触发时,不让机器人后退,而是让它随机的向左或者向右旋转,这样可能能够解决这个问题。但是,采用这种方法又会带来另外一个问题:当机器人同障碍物发生正面碰撞时,机器人会一直旋转,直到检测不到障碍物为止。在停止旋转时,机器人同墙之间仍然存在轻微的接触,而这种接触还不足以触发接触传感器。在这种情况下,机器人有可能贴着障碍物继续前进,草儿导致这种逃离行为的实效性很差。

正是由于存在以上问题,逃离行为要进行一些更改。只要有一个接触传感器由于碰撞而改变,机器人就会立即开始后退,为变量d设定一个值,使机器人记录是由哪个传感器发生了碰撞,为逃离行为设定下一步的转向值。同时为变量b也会设定一个值,用来规定机器人向后退开的距离。紧随后退行动的就是转向行动,可以预设这个转角θ或者进行随机的θ值设定。如图所示:

第三章 机器人运动规划 21

无动作 移动距离f 左侧碰撞 输出d=右 右侧碰撞 输出d=左 后退 前进 移动距离x 原地向d方向旋转过角度θ

图3.1 接触传感器的避障程序流程图

3.1.2 测距传感器的避障实现

基于测距传感器的机器人利用传感器在它所关注的潜在危险对机器人造成损坏之前检测出这种危险的存在并逃离这种危险。最常用的避障行为在实现过程中经常使用红外接近传感器、红外测距传感、声纳传感器以及激光传感器。

我们以安装了多个激光测距传感器的机器人来举例:当激光测距传感器开始工作时会收集周围环境信息,由这些信息机器人可以判断是哪几个传感器接收到了数据信息,并根据这些信息更改某些变量的标签信息。主程序根据标签信息来确定周围的环境状态。输出左侧的测量值到变量L,右侧的测量值到变量R,对L、R变量的值进行处理并执行:

1、若变量L、R的值没有低于最小值Limit,则设定驱动直行;

2、若变量L>变量R的值,且变量L>Limit的同时R

基于Microsoft Robotics Studio的机器人设计 22

3、若变量R>变量L的值,且变量R>Limit的同时L

4、若变量L、R的值都小于最小值Limit,则机器人进入后退程序,同时检测测距传感器发回的信息,到变量L、R的值都超出Limit所设定的下限时,根据随机时间决定进行后退距离,同时开始进行随机的转向,这种专向一般角度不超过90°。

至此,整个检测—判断—驱动程序完成,在复杂的环境中这个程序也可以发挥正常的作用。

检测 L>Limit RLimit L>Limit R>Limit 随机 转向 L

图3.2 基于测距传感器的程序流程图

3.2 运动规划中会出现的问题

3.2.1 抖动问题[7]

抖动问题在机器人领域是一个普遍的问题。当两个不同的行为轮流控制机器人,或者一个行为的两个不同部分互相抵触时,机器人就有可能发生抖动现象。假设有两个行为:一个行为驱动机器人向位于自己前方的光源前进,另一个行为

联系合同范文客服:xxxxx#qq.com(#替换为@)