王伟 储泽楠
摘 要: 文章以六足机器人作为研究对象,分析了六足机器人的步态运动及其在有障碍的复杂环境下基于蚁群算法的最短路径规划。通过实验验证了蚁群算法可以在复杂场景下对六足机器人的步态规划进行收敛评估,并给出最短路径。
关键词: 六足机器人; 步态规划; 蚁群算法; 模拟仿真
中图分类号:TP301 文献标志码:A 文章编号:1006-8228(2019)12-08-04
Research on gait planning of hexapod robot
Wang Wei, Chu Zenan
(School of Computer Science and Information Engineering, Anyang Institute of Technology, Anyang, Henan 455000, China)
Abstract: Taking the hexapod robot as the research object, this paper analyzes the gait motion of the hexapod robot and the shortest path planning based on ant colony algorithm in the complex environment with obstacles. Experiments show that ant colony algorithm can evaluate the convergence of gait planning of hexapod robot in complex scenes, and give the shortest path.
Key words: hexapod robot; gait planning; ant colony algorithm; simulation
0 引言
二十一世纪以来,机器人技术快速发展,机器人被广泛的应用于工业,农业,交通运输等行业。与此同时,探险救灾,仓库物流行业对于机器人的需求量也在不断增加。为了让机器人更好的为人类服务,机器人的避障和路径规划能力就显得尤其重要[1-3]。
六足机器人凭借自身独特的优势已经成为了当代仿生机器人研究的热点。二十世纪八十年代,国外已经产生一大批成熟的六足机器人。美国宇航局喷气实验室研制的六足机器人目的是用来探测排雷的六足机器人,日本千叶大学设计的六足机器人COMET-IV可以通过探测周围环境来调整自己的运动姿态。从国外的情况看六足机器人的技术越来越完善,对于六足机器人的应用场景也越来越多样化[4-6]。
我国对于六足机器人的研究相比国外来说发展相对较晚,但是六足机器人的技术也越来越完善。北京理工大学设计的弓背蚁机器人,提出了应用于六足机器人运动规划的五项结论。华中科技大学设计制造的“4+2”型六足机器人能更好的适应复杂环境,可以更加高效的工作。但是目前这些六足机器人还是不能真正的做到仿生,其中步态路径的影响因素至关重要。
因此,本文提出了使用蚁群算法对机器人进行路径的规划研究,并结合STM32F103ZET6单片机进行六足机器人的步态规划模拟仿真。
1 步态规划
步态规划对于仿生机器人来说,是至关重要的。就比如人来说,如果不事先规定好腿
与臂膀之间的配合,那么你会发现好多人将不会走路或者会出现顺拐的现象。对于六足机器人更是如此。六足机器人有六条机械足,如果没有给它相应的步态规划,那么或许会出现一大堆脚四处摆动而寸步难行的局面。所以需对六足机器人的机械足运动模式进行规划。比较经典的有:三足步态,四足步态,五足步态等。下面逐一阐述。
1.1 三足步态规划
六足机器人的三足步态是多种行走步态里较为稳定的一种。三足步态是将六足机器人六条机械足分成两组来实现步态规划就如人类的左右腿一样来行走。首先将六足机器人的六条机械足按顺时针编码,分别标记为1,2,3,4,5,6。将六足机器人相间隔的机械足分为一组。分别是1,3,5为第一组,2,4,6为第二组。现在将六足机器人的第一组看成人的左腿,第二组看成人的右腿。六足机器人行走时,就如人走路一样,先左腿再右腿,重复,这样反复交叉运行就构成了六足机器人的三足步态,如图1所示。
1.2 四足步态规划
六足机器人的四足步态规划相比三足步态来说速度上就没有三足步态快。因为三足步态相当于是一组互相间隔的腿向前放旋转一定的角度,来实现前行,四足步态是指六足机器人以四只脚支撑两只脚向前方水平摆动前行。首先要将六足机器人顺时针编码为1,2,3,4,5,6。如图2所示,四足步態是让六足机器人六条腿分成三组,第一组是1,5第二组2,6第三组3,4。四足步态通过第一组、第二组、第三组脚按顺序执行就可以完成六足机器人的运动。
1.3 五足步态规划
六足机器人的五足步态如图3所示,相对于三足步态和四足步态而言,五足步态是六足机器人步态中最稳定的一种步态,但是速度是六足机器人步态规划中最慢的一种。五足步态是将六足机器人的六条机械足顺时针编码后,行走时六条腿依次前进。不过每次移动的腿只能是一条,另外的五条腿在这个过程中其支撑机器人的作用。
2 蚁群算法在路径规划中的实现
2.1 蚁群算法基本原理
蚁群算法是由观察真实的蚁群觅食得出的思路灵感,设计出的一种群集智能算法[7-8]。经过研究人员大量的实践证明,当蚂蚁在觅食的过程中,蚂蚁可以在行进的路线上留下一种叫信息素的物质,这样后来的蚂蚁不仅能够感知信息素的强度,而且还能得到指引的方向。如果说蚂蚁的巢穴到食物的距离比较短,那么由于蚂蚁来回搬运食物的次数就会越来越多,这样过了一大段时间后,会出现这么一个正反馈现象,该现象是当某一条路径越短,蚁群中通过该路径的蚂蚁的数量也越多,而信息素的强度也越高,蚁群选择这条路径的概率也会越高。通过这种正反馈现象就会逐渐接近最优路径,得到最优路径。
2.2 蚁群算法实现准备工作
2.2.1 环境建模
为了更好的研究机器人的路径规划,需要对机器人周围随机的环境进行数字建模,将环境信息转换为矩阵存储,矩阵中数据1表示前方有障碍,不能通过,0表示前方没有障碍可以通过。最后以栅格地图的形式表示出来。
2.2.2 栅格地图
本文是将六足机器人和障碍物按比例缩小,将六足机器人比例化后的大小作为一个栅格的大小,这样就可以将六足机器人看成是一个质点。如果地图某一个位置有障碍的话,那么该栅格的颜色是黑色标识,表示有障碍不能通过。如果栅格是白色就代表此处无障碍,可以通过。本文坐标系的建立是和栅格地图密不可分的。以栅格地图的左下角为原点,栅格地图的水平方向为X轴,竖直方面为Y轴。
3 蚁群算法实现最短路径规划
3.1 蚁群算法基本步骤
蚁群算法的基本思想来源于自然界蚂蚁觅食的最短路径原理,根据昆虫学家的观察发现,自然界的蚂蚁虽然视觉不发达,但它们可以在没有任何提示的情况下找到从食物源到巢穴的最短路径,并在周围环境发生变化后,自适应地搜索新的最佳路径。
其算法的具体步骤如下。
Step1:对相关参数进行初始化,包括蚁群规模、信息素因子、启发函数因子、信息素挥发因子、信息素常数、最大迭代次数等,以及将数据读入程序,并进行预处理:比如将城市的坐标信息转换为城市间的距离矩阵。
Step 2:随机将蚂蚁放于不同出发点,对每个蚂蚁计算其下个访问城市,直到有蚂蚁访问完所有城市。
Step 3:计算各蚂蚁经过的路径长度Lk,记录当前迭代次数最优解,同时对路径上的信息素浓度进行更新。
Step 4:判断是否达到最大迭代次数,若否,返回步骤2;是,结束程序。
Step 5:输出结果,并根据需要输出寻优过程中的相关指标,如运行时间、收敛迭代次数等。
应用蚁群算法来实现机器人在有障碍的复杂环境下实现最短路径规划步骤如下:
首先用栅格法建立六足机器人的工作环境,环境信息有只有1和0构成的矩阵来表示。其中0表示此处可以通过,1表示此处为障碍物,不能通过。
下面通过一个实例来表示初始化地图,初始化栅格地图代码如下:
map=[0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0; 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0; 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0; 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0; 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0; 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0; 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0;];
接下来要初始化一个信息素矩阵,并且要初始化一些参数比如起始位置,最终位置等其他参数。
随后需要在确定初始位置后,找到下一步可以到达的位置。我们是这样做的。根据每个节点的信息素浓度情况求出前往各个节点的概率大小。这里选用轮盘算法来选择下一步的起始点。轮盘法公式如下:
轮盘算法公式参数解释如表1所示。
3.2 蚁群算法路径规划实验
为了验证算法的有效性,本文做了大量的仿真实验,分别考虑了具有任意障碍物和复杂程度不同的工作空间。机器人的工作环境建模为(20×20)栅格,传统蚁群算法蚁群规模设置为30,算法的最大迭代次数设置为300。图6显示出了迭代次数和机器人的最短路径长度的变化图。
4 结论
本文以六足机器人作为研究对象,基于多足机器人腿部关节灵活的特点,以及能更好的适应周围环境的诸多特点,来分析六足机器人的步态运动及其在蚁群算法下仿真机器人在有障碍的复杂环境下实现最短路径规划,通过实验验证了蚁群算法可以在复杂场景下对六足机器人的步态规划进行收敛评估,并给出最短路径。如何进一步的提高稳定性以及障碍同时又能快速找出最短路径是下一步的研究目标。
参考文献(References):
[1] 李满宏,张明路,张建华,田颖,马艳悦.基于增强学习的六足机器人自由步态规划[J].机械工程学报,2019.55(5):36-44
[2] 雪锋,郭振武,王斌锐,王凌,金英连.基于带反馈Hopf振荡器的六足机器人斜坡步态发生器设计[J].机械工程学报,2018.54(21):41-48
[3] 李远笛,李欢欢,高易佳,胡浩.六足步行机器人的步态规划及运动学分析[J].昆明理工大学学报(自然科学版),2018.43(1):39-44
[4] 詩,张磊,谢子琼,张健.基于机器视觉的目标跟随六足机器人[J].重庆邮电大学学报(自然科学版),2017.29(4):557-562
[5] 国杰,田文凯,吕承哲,褚林银,王斌锐.六足仿生机器人机构与控制系统设计[J].测控技术,2017.36(1):55-58
[6] 郭祖华,王申江,赵士杰.基于全局轨迹的六足机器人运动规划算法[J].系统仿真学报,2015.27(11):2682-2688
[7] 赵怀北,刘叔军,吕庭.基于远程控制的六足搜救机器人系统的设计[J].计算机测量与控制,2015.23(7):2392-2395
[8] 刘逸群,邓宗全,赵亮,丁亮,佟志忠,高海波.液压驱动六足机器人步行腿性能[J].吉林大学学报(工学版),2015.45(5):1512-1518