郭 娜,李彩虹,王 迪,张 宁,刘国名
山东理工大学 计算机科学与技术学院,山东 淄博255049
由于移动机器人应用广泛并能适应恶劣环境的特点,受到了国内外研究者的重视。其中机器人的自主导航能力是实现智能化机器人的前提和基础。局部路径规划是在未知场景中根据传感器探测出的环境信息,实时规划出一条从起始点到目标点的最优无碰撞路径[1-2]。为保证机器人安全避障的同时能够更快地到达目标点、完成任务,需加强对路径规划算法的研究。
目前常用的局部路径规划算法有人工势场法、模糊控制方法和神经网络算法等。人工势场法由于其方法简洁易操作且便于底层实现而被广泛应用于实践之中,存在的问题是当机器人处于受力平衡状态时易陷入局部极小值,从而无法到达目标点,人工势场法适用于简单的障碍物环境[3-4]。模糊控制具有鲁棒性与基于生理学的“感知-动作”行为,避开了传统算法中存在的对机器人的定位精度敏感、对环境信息依赖性强的缺点,对处理未知环境下的路径规划,显示了很大的优越性。但模糊控制也有不足之处,在复杂的运行环境下存在对称无法确定现象和U 型障碍物陷阱等[5-6]。针对此类问题许多学者给出了相应的解决办法。文献[7]中提出一种改进型虚目标方法,通过目标点相对于机器人的位置方向设定虚目标,虽解决了多U 型障碍的死锁问题,但计算过程较复杂,不易根据实际情况调整,易产生冗余路段,路径不平滑。文献[8]设计了U型槽模糊控制器用来解决U型陷阱问题,但需通过已知的U型障碍物位置来实现通用模糊控制器和U型槽模糊控制器的切换,对于未知环境实用性不强。文献[9]为基于多行为的机器人路径规划,针对U型障碍物死锁问题提出了沿墙走的方法,方法实现简单路径平滑,但在多U 型环境中仍处于死锁状态,并且多行为之间转换判断复杂。
针对局部路径规划中出现的局部死锁和路径冗余等问题,本文设计了行为融合模糊控制器,在此基础上加入了陷阱预测机制、多U型障碍解决策略和基于人工势场法的有限状态机,来解决仅使用模糊控制器实现局部路径规划时所存在的问题,提高路径规划的效率。将上述方法在MATLAB仿真平台中实现并进行了验证。
本文采用两轮差分驱动机器人作为仿真测试平台[10-11]。左右两轮是由两个直流伺服电动机独立驱动,前轮是可以自由转向的万向轮,起支撑作用。移动机器人采用全方位激光雷达传感器。移动机器人的结构和传感器探测范围如图1所示,其中黄色扇形范围为模糊控制算法所用到的激光雷达传感器探测区域,探测范围为90°,每5°返回一个测量值数据,总共测得19 组数据。将测得的19组数据分为三组,每组分别为6、7、6个数据,每组以最小值融合后的数据分别表示机器人左方L、前方M 以及右方R 与障碍物的距离。
图1 机器人运动模型
建立机器人全局坐标系,k 表示当前时刻,xk、yk为k 时刻机器人的位置坐标,θ 为机器人前进方向与x轴正方向的夹角,则机器人的位姿可表示为:
根据机器人左驱动轮的线速度vl、右驱动轮的线速度vr以及左右两轮间的距离l 计算机器人整体的线速度v 和角速度ω:
机器人的运动学模型为:
其中t 为采样周期。机器人在k+1 时刻的位姿根据上一时刻的位姿和当前的运动变化计算得出。当时机器人作直线运动。
模糊控制器的设计包含确定输入、输出变量,设计隶属度函数和制定模糊控制规则[12]。行为融合模糊控制器的设计借鉴了文献[9]中沿墙走行为的思想,将普通避障行为与沿墙走行为通过模糊控制规则的设计融合在了一个模糊控制器中。
模糊控制器设计为四输入、二输出的结构,如图2所示。输入量为机器人分别在L、M、R 三个方向与障碍物的距离dL、dM和dR,以及机器人前进方向与目标点方向的夹角Angle。输出量为机器人左右驱动轮的线速度vl和vr。
图2 模糊控制器结构图
将输入、输出量模糊化,规定模糊语言变量。表1给出了模糊变量的论域和语义对照。
图3是输入量Angle 的隶属度函数,当Angle 值落在L、M、R 上时,模糊规则设置为普通避障,当Angle值落在LB、RB 上时,模糊规则设置为沿墙走行为。所设计的模糊控制规则如表2所示,使用Mamdani法进行模糊推理。
表1 模糊语言变量语义对照表
图3 输入量Angle 的隶属度函数
表2 模糊控制规则表(vl vr)
从表2 中可以看出当Angle=M,[dLdMdR]=FNF or NNN 时有两种动作可选择,根据两种可选动作分为两个模糊控制器,其他规则保持不变。在以上情况中选择左转(SM、SF)的模糊控制器称为左转模糊控制器,选择右转(MS、FS)的模糊控制器称为右转模糊控制器。
通过仿真测试,上述所设计的模糊控制器能够在一般障碍环境和包含U 型障碍物的环境中规划出一条平滑无碰撞的较优路径,但依然存在如下问题:
(1)如何判断机器人即将进入陷阱区,预防死锁,减少路径长度。
(2)在多U型障碍环境中存在局部死锁现象。
(3)在传感器的感知范围内,出现对称无法确定的障碍物时,使用比较dL和dR切换模糊控制器的方法,可能导致转弯方向选择不佳而产生大量冗余路段。
针对以上问题,提出了相应的改进策略。
针对行为融合模糊控制器出现的问题,分别提出了建立陷阱预测机制、设计多U 型复杂障碍物解决策略、人工势场法和有限状态机等方法,使机器人能够跳出死锁状态,正常行驶。
移动机器人在未知环境中根据实时探测的环境信息并按照所设计模糊控制器中的控制规则规划路径,具有一定的局限性,当机器人进入陷阱区直至前方不可通行后沿墙走出陷阱区,产生了大量冗余路径,甚至可能造成死锁。为了减少路径长度,尽量避免进入陷阱区,预防死锁,这里设计了一种简单的陷阱预测机制。
陷阱预测机制根据传感器探测到的19组数据来判断前方是否可通行,若无空值(空值代表传感器探测范围内没有障碍物)如图4(a),则认定前方存在陷阱区域不可通行,更改模糊控制器的输入量,设置左、中、右三方向与障碍物的距离值为NNN ,提前绕开障碍物,避免路径冗余;若有空值如图4(b),则说明前方可通行,不做任何更改,机器人正常行走。
图4 陷阱预测机制环境示意图
其中传感器探测的距离数据是陷阱预测机制的关键,获得的数据越多,区域划分得越细,对陷阱的预测结果越准确。
当前进方向与目标点方向的夹角处于RB 或LB时,机器人可以轻松沿墙走出U 型障碍物;但当障碍物为多U 型时,机器人沿墙行走累计转角超过了180°,前进方向与目标点的夹角不再处于RB 或LB,机器人没有走出障碍陷阱,继续朝目标点前进陷入局部死锁。
假设当机器人向目标点方向行走时,遇到障碍物左转避障,需经过右转回归到正常行驶中。根据上述情景,设置一个变量wc 为累加转角和,初始值为零,以左转角度为正值,右转角度为负值,将每一步的转角角度累加至wc 中,故机器人在正常行走时wc 的绝对值不应超过180°,若超过180°则说明未能走出陷阱区域,根据公式(4)设置Angle 值,使之继续沿墙行走,直至走出陷阱。
当遇到对称无法确定的障碍物,无论是选择一个默认动作或是通过比较传感器测得左右两方向与障碍物的距离来选择动作,都无法达到很好的路径规划效果。针对这种对称无法确定的问题,本文提出了一种基于人工势场法的有限状态机方法。
人工势场法是一种虚拟力法[13],它根据当前环境模拟成虚拟势场,将机器人抽象为一个点,机器人在人工势场中受到目标点产生的引力和周围障碍物产生的斥力,机器人沿合力的方向移动,直至到达目标点。有限状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型[14-15]。
本文利用有限状态机实现所设计的两个模糊控制器的交替执行。将调用左转模糊控制器的状态定义为对称时左转状态,调用右转模糊控制器的状态定义为对称时右转状态,两种状态在非对称环境中均能正常行走。并采用势场法中斥力场的构建方法,当遇到对称无法确定的障碍物时,通过计算出的周围障碍物对机器人斥力的合力方向做出决策,切换有限状态机的状态。
第i 个障碍物对机器人产生的斥力为:
其中,m 为斥力场系数,lmax为传感器的最大探测范围,Pr为机器人当前位置坐标,Pi为第i 个障碍物的位置坐标,d(Pr,Pi)为第i 个障碍物与机器人的距离。
所有斥力在x 轴和y 轴上的分量为:
其中,βi为第i 个障碍物与x 轴正方向的夹角。
斥力的合力方向与机器人前进方向的夹角为:
采用人工势场法中障碍物对机器人产生的斥力方向来切换两种状态,构建斥力场,根据公式(5)~(7)计算出传感器探测范围内的障碍物对机器人的斥力总和的方向α。若α ≤0 则说明斥力方向在机器人的左侧,进入对称时左转状态,机器人左转直至避开障碍物;若α >0 则说明斥力方向在机器人的右侧,进入对称时右转状态,机器人右转直至避开障碍物。图5为有限状态机的状态转换图。
图5 有限状态机转换图
根据以上设计的模糊控制器以及相应的解决策略,为机器人设计了总的局部路径规划算法。首先将传感器测量的值进行数据融合,启动预测机制判断前方是否可通行,若不可通行更新测量值为NNN ;否则执行下一步判断机器人是否处于多U 型陷阱区。若处于多U型陷阱区执行相应的解决策略,不是则执行下一步使用人工势场法计算合力方向选择状态,调用相应的模糊控制器,根据得到的输出量计算机器人下一步的位置坐标,若到达目标点程序结束,否则循环迭代此过程直至到达目标点。所设计的局部路径规划总的算法流程图如图6所示。
图6 局部路径规划算法流程图
在MATLAB R2016 平台上,对本文提出的算法进行了仿真、验证。仿真环境是30×30 的二维直角坐标系,“*”代表起始点,“▷”代表目标点,黑色区域代表障碍物,绿色虚线代表起始点到目标点的直线路径,红色虚线为局部路径规划的结果。
如图7所示,在简单障碍物环境中或针对某种单一障碍陷阱,仅使用融合了普通避障行为和沿墙走行为的模糊控制器即可规划出一条较优的路径。图7(a)为Angle 处于L、M、R 时的正常避障行走,机器人能够自如地避开所有障碍物,规划出一条平滑、较优的路径。图7(b)为Angle 处于LB 时的左沿墙行走,机器人能够沿墙走出此U型陷阱,并在驶离陷阱区域后恢复正常避障行走至目标点。
图7 模糊控制的仿真结果
以图7(b)为例,当机器人进入陷阱后才意识到进入了死区,再沿墙走出死区,就会增加路径的长度。为了能够尽早发现死区,提前绕开陷阱区域,加入了预测机制。由于传感器的测量范围有限,不同的探测距离会影响预测能力。如图8所示,(a)为传感器的探测距离为5的仿真实验,机器人刚刚进入陷阱区域便发现前方不可通行,右转绕开陷阱区到达目标点,减少了冗余路径。(b)为传感器的探测距离为10的仿真实验,当机器人到达陷阱区边缘时已发现前方不可通行,提前右转绕开陷阱区到达目标点,几乎避免了路径冗余。根据实验验证,加入陷阱预测机制后能够有效减少冗余路径,并且当传感器的视野范围更广、对周围环境了解得越多时越容易规划出最优路径。
图8 加入预测机制后的仿真结果
在多U 型的障碍物陷阱中,如图9(a)所示,由于传感器测量范围有限,预测机制无法判断前方为陷阱区,故没有提前绕行。进入陷阱区后机器人以左转沿墙行走,Angle 为LB,当行至A 点时机器人左转了约360°,此时Angle 为M ,不再沿墙行走,继续向目标点方向前进造成局部死锁状态。图9(b)为加入了多U 型障碍解决方法的控制策略,机器人在到达A 点后能继续沿墙行走,直至走出陷阱区域,仿真结果验证了此方法的有效性。
图9 加入多U型障碍物解决策略前后结果比较
在封闭复杂的未知环境中,如图10 所示场景,(a)中黄色扇形区域为机器人位于A 点处传感器的探测范围,此时机器人处于对称无法确定方向的状态,由于dR略大于dL,因此机器人选择了右沿墙行走,产生了大量不必要路径,最终到达目标点。
图10 加入有限状态机切换状态的前后结果比较
机器人在A 点时应能够判断左转或右转哪一个为最佳选择,可以看出A 点右边区域是不可通行的,左边区域可通行。借鉴人工势场法中障碍物对机器人的斥力构建斥力场,若斥力的合力在机器人的左边,则进入对称时左转状态,若在右边,则进入对称时右转状态。图10(b)为所设计的基于人工势场法的有限状态机的仿真验证,机器人在A 点所受斥力的合力向左,进入对称时左转状态,顺利到达目标点,减少了大量冗余路径。
在类似迷宫的障碍物环境中,对本文提出的方法进行了综合验证,如图11所示,(a)中机器人的起始位置位于地图左上角,通过势场法判断进入对称时左转状态,沿墙走出陷阱区域,继续向目标点方向前进,顺利到达目标点。(b)中机器人的起始位置位于地图中下方,到达陷阱区边缘时预测前方不可通行,根据势场法判断进入对称时左转状态沿墙走出第一个陷阱区,继续向目标点方向前行,当遇到对称无法确定方向时根据势场法判断进入对称时右转状态,沿墙走出障碍区,成功到达目标点。根据实验仿真结果表明,本文所设计方法能够规划出一条较优路径,路径平滑未出现碰撞现象,没有过多的冗余路径,达到了预期的规划要求。
图11 迷宫环境的仿真结果
本文提出了一种基于改进模糊控制的移动机器人局部路径规划方法,并针对算法中存在的问题提出了相应的改进策略。设计算法具有以下特点:
(1)在一般障碍物环境中,该算法能够规划出一条从起始点到目标点的较优路径。
(2)在包含陷阱区的障碍物环境中,机器人能够沿墙走出陷阱区,并有一定的预测能力,优化路径。
(3)在遇到对称障碍物时,机器人能够选择正确的避障方向,避开障碍物,到达目标点。
改进后的模糊控制算法,适应能力强,能够在未知、复杂环境下,根据实时传感信息,规划出最优或较优路径。
通常设计模糊控制器,存在当输入量增多,模糊控制规则表急剧膨胀的问题。本文模糊控制器输入量的设计采用了数据融合的方式,将传感器探测到的距离数据固定为三组数据,输入量不会增加。若对输入量的模糊语言变量做更细致的划分也可导致规则数量的增加,由于加入了陷阱预测机制可避免多种情况的产生,并且大量的模糊规则可以融合,因此不会产生规则表急剧膨胀的情况,能够满足工程实用性。
未来的研究工作是将神经网络等算法与模糊控制相结合,增强算法的泛化能力和自学习能力等。