电气工程学院机器人大作业 联系客服

发布时间 : 星期三 文章电气工程学院机器人大作业更新完毕开始阅读

机器人测控技术

C-空间障碍物信息C-空间障碍物信息几何描述C-空间避障路径搜索算法控制关节角 图3-17机械臂路径规划算法示意图

3.4.1 建立C-空间障碍栅格模型

美国CMU大学首先利用栅格法来表示环境模型中的障碍物。它将规划空间

划分成等面积的栅格,所要求的搜索精度一般就决定了栅格的大小。我们已经在前面章节讲到,利用C-空间作为规划空间,是一个长与宽均为-180°~180°的二维平面,表示的是机械臂的关节角。C-空间中栅格划分情况如图3-18所示。

图3-18栅格划分

栅格法是一个将连续路径信息离散化的过程。机械臂的路径信息利用栅格离散化以后,机械臂关节的运动轨迹将被分解为单个的运动,于是每个栅格上就记录了机械臂关节各个单个的运动。 1) C-空间障碍信息描述及栅格范围判断

我们在前面的章节中已经成功利用边界函数来对C-空间障碍进行了描述。但是,由边界函数表示的C-空间障碍并不适合于避障路径规划搜索算法的实现。所以对C-空间的栅格化过程利用MATLAB软件进行算法编写来完成。

假设利用范围大小为180X 180的栅格对C-空间障碍进行栅格化,即关节角

25

机器人测控技术

变化范围是-180°~180°,栅格间距(Interval)选为1°。那么,如果机械臂的关节角度已知,规划者就应该判断出其属于哪一个离散化后的栅格。这个过程可以利用栅格判断算法来实现。例如在前面已经得到的C-空间障碍如图3-8所示,此时障碍物点的位置为p(x=50,z=0)。利用MATLAB进行编程计算,得到其在二维平面内点p的C-空间障碍边界临界值θ1,,碰撞角θThita1=

-21.0000 -19.0000 -17.0000 -15.0000 -13.0000 -11.0000 -9.0000 -7.0000 -5.0000 -3.0000 -1.0000 1.0000 3.0000 5.0000 7.0000 9.0000

11.0000 13.0000 15.0000 17.0000 19.0000 21.0000 Thita2UC=

35.5830 31.8729 28.0504 24.1201 20.0891 15.9672 11.7666 7.5023 3.1913 -1.1472 -5.4931 5.4931 1.1472 -3.1913 -7.5023

-11.7666 -15.9672 -20.0891 -24.1201 -28.0504 -31.8729 -35.5830 Thita2LC=

48.8323 45.4334 41.9119 38.2677 34.5030 30.6223 26.6327 22.5443 18.3697 14.1242 9.8255 -9.8255 -14.1242 -18.3697 -22.5443 -26.6327 -30.6223 -34.5030 -38.2677 -41.9119 -45.4334 -48.8323 得到上面三式边界值以后,接下来继续代入栅格判断程序:

[XY1,Numb,Interval]=Grid _Judge(Thita1, Thita2UC,180,-180,180,-180,2) 于是求得:

2LC与θ2UC的值如下:

26

机器人测控技术

从上可知,[XY1]表示的是机械臂上临界关节碰撞角所属的栅格矩阵,每一列代表所属栅格是G ( I,j )。同理,可以求得机械臂下临界关节碰撞角所属的栅格矩阵为:

2)栅格填充

之前利用边界函数已经完成了C-空间障碍建模,接下来便对该边界包围的障碍空间进行填充,即如图3-19所示。

27

机器人测控技术

图3-19点障碍物栅格填充示意图

3.4.2 避障(自由)路径规划概述

在上一章中,选择路径规划空间与建立C-空间障碍的工作任务已经完成,并且成功建立了C-空间障;在上一节中又完成了自由区域与障碍物区域的栅格法描 述。所以,在已经完成的工作基础上,利用一种高效的路径搜索算法,从而得到 一条从初始位置无碰撞到达目标位置的路径是接下来的任务。

搜索算法已经比较成熟,有盲目搜索、启发式搜索之分。根据已经预定好了 的控制策略来进行信息搜索,在此期间得到的中间信息不参与控制策略的改变, 即盲目搜索;而在搜索过程中会有启发性信息的加入,且这些信息会起到一定的 指导作用和加快求解速度,即启发式搜索。 1) A*算法简介

A*算法是一种典型的启发式搜索算法,其引入了启发式估价函数f*( n ) =g* (n) +h* (n),其中:g*(n)为源节点到达当前节点n之间的实际cost,h* (n)表示当前节点n到目标节点的估价cost,其示意图如图3-20所示。

图3-20 A*算法示意图

A*算法搜索过程中不会舍弃死点以外的节点,在每一步都会利用当前节点与以前节点的估价值进行比较,以其为得到最佳节点。同时,由于A*算法的约束

28