1第7章机器人路径规划在机器人完成指定任务时,需要规划机器人在空间中的期望运动轨迹或者路径。路径和轨迹是两个相似但含义不同的概念,机器人运动的路径描述机器人的位姿随空间的变化,而机器人运动的轨迹描述机器人的位姿随时间的变化。所谓轨迹是指机器人每个自由度的位置、速度和加速度的时间历程。本章将介绍移动机器人路径规划和机械臂的轨迹规划问题。移动机器人路径规划移动机器人路径规划的任务:已知机器人初始位姿、给定机器人的目标位姿,在存在障碍的环境中规划一条无碰撞、时间(能量)最优的路径。若已知环境地图,即已知机器人模型和障碍模型,可采用基于模型的路径规划。若机器人在未知或动态环境中移动,机器人需要向目标移动、同时需要使用传感器探测障碍,称为基于传感器的路径规划。为了简化问题描述,假定机器人为两个自由度,即只考虑机器人的位置,不考虑其姿态。2起点S终点G图7-1障碍物扩张法路径规划任务是规划一条路径,使得机器人从起点达到目标点(终点),同时不与环境中的障碍发生碰撞。以平面全向移动机器人为例,假设机器人为半径为r的圆形机构。首先,由于机器人可以全方向移动,所以可以忽略移动机器人的方向(姿态的自由度)。其次,因为能用园表示机器人,所以可把障碍物沿径向扩张r的宽度,同时将机器人收缩成一个点(如图7-1所示)。因此,移动机器人路径规划可以简化为在扩张了障碍物的地图上,点机器人的路径规划问题。3人工势场方法人工势场的基本思想是构造目标位置引力场和障碍物周围斥力场共同作用下的人工势场。搜索势函数的下降方向来寻找无碰撞路径。下面给出各种势场的定义①目标引力场212attgoalEK-ppp7-1其中p是机器人位置,pgoal是目标位置,K是引力常数。目标点G障碍点O机器人位置点pFattFtotalFrep图7-2机器人受力示意图②障碍物斥力场2001120obsrepobsdEdelse---ppppp7-2其中pobs是障碍物位置,d0表示障碍物的影响范围,h是斥力常数。根据(7-1)式,机器人受到的引力表示为attattgoalEK--Fppp7-34目标点G障碍点O机器人位置点pFattFtotalFrep图7-2机器人受力示意图根据(7-2)式,机器人在障碍物的影响范围内受到的斥力表示为3011obsrepobsobsd----ppFppppp7-4可得机器人所受合力为:Ftotal=Fatt+Fobs(7-5)这样,我们就在环境地图中定义了机器人的引力场因此,机器人的路径规划问题被转化为点在引力场中的运动问题。而点在引力场中的运动问题在物理学和数学中已经研究得非常清楚,可以比较方便地进行求解。算法优点:①简单方便,可以实时规划控制,并能考虑多个障碍,连续移动。②规划的路径比较平滑安全。5算法缺点:①规划算法是局部最优算法②复杂多障碍环境中可能出现局部极值点,即在非目标点达到平衡状态而停滞。因而不能规划出达到目标点的路径。前面只介绍了基本的人工势场方法。近年来,针对基本人工势场方法的的不足,人们提出了许多改进的人工势场方法。目标点G起始点S障碍栅格自由栅格图7-3栅格法路径规划示意图栅格法栅格法的基本思想:将机器人工作空间划分为多个简单区域,称为栅格。若栅格内没有障碍物称为自由栅格,否则称障碍栅格。将栅格编号,机器人路径规划就是搜索由起点到目标点的自由栅格组成的连通域。可以用栅格序号表示,再将栅格序号转换成机器人空间的实际坐标,令机器人按此路径运动。图7-3给出了栅格法路径规划的示意图。6栅格法路径规划步骤:1.建立栅格。将机器人和目标点间区域划分栅格,大小与机器人相关。2.障碍地图生成。标注障碍栅格和自由栅格。3.搜索无障碍最优路径,AA*搜索算法,遗传算法,人工势场,蚁群算法等。优点:①若存在最优路径,算法得当一定可以得到问题最优解。②有成熟的路径搜索算法使用。缺点:①栅格粒度影响较大。划分细时,存贮大和搜索时间长。②得到的是折线,需要光滑处理。7机械臂路径规划在实际问题当中,一般用工具坐标系{T}相对工作台坐标系{S}的运动来描述机械臂的运动。当用工具坐标系{T}相对工作台坐标系{S}的运动来描述机械臂的路径时,使得路径规划与具体的机械臂、末端执行器和工件相分离。这种规划方法具有通用性,适合不同的机械臂和工具,同时也适用于运动的工作台(如传送带)。在进行机械臂路径规划时,经常需要规划运动的细节,而不是简单地指定期望的终端位姿。例如,一个完整的操作由若干步组成,每一步的都有期望的位姿,或者在机械臂运动过程中需要规避障碍等。解决该问题的方法是在规划的路径中增加一系列的中间点。为了完成整个运动,工具坐标系必须通过中间点所描述的一系列过渡位姿。称路径的起点、中间点和终点为路径点。通常都期望机械臂的运动过程是平滑的,因此一般要求规划的路径是光滑的,至少具有连续的一阶导数,甚至要求二阶导数也是连续的。一阶导数对应机械臂的运动速度,二阶导数对应加速度。光滑性要求就是要使机械臂的运动更加平稳,避免突然的剧烈加速或者减速产生冲击作用而影响机械臂的运动精度并加剧机构的磨损。8关节空间规划方法前面介绍了机械臂的期望运动一般由指定的路径点来描述,其中的每个点都代表工具坐标系{T}相对工作台坐标系{S}的位姿。我们可以采用第4章介绍的逆运动学方法获得这些路径点对应的关节角度。规定机械臂的关节同步运动,即每个关节角都同时达到路径点期望的角度。上述规定就是在相邻路径点之间每个关节的运行时间都是相等的。这样,我们可以独立规划每个关节的轨迹、关节之间没有影响。因此,机械臂轨迹规划问题可以分解为n个独立的单关节轨迹规划问题。单区间三次多项式插值任务就是确定函数q(t),使其在t=0时刻的值为关节角的初始位置,在t=tf时刻的值为关节角的目标位置。另外,一般要求在初始时刻和终止时刻关节的速度均为零。因此,关节轨迹规划在数学上就是满足4个约束条件的函数插值问题。多项式插值比较简单,同时便于计算,因此常用来解决函数插值问题。满足4个约束条件的多项式函数插值函数是三次多项式。9位置约束:0(0)()fftqqqq7-8速度约束:(0)0()0ftqq7-9关节角轨迹可以用三次多项式表示为:230123()taatatatq7-10关节角速度和加速度轨迹可以表示为:212323()23()26taatattaatqq7-11把四个约束条件式7-8和式7-9代入到式7-10和式7-11得:00230123121230023ffffffaaatatataaatatqq7-12其解为:0010aaq2023033()2()ffffatatqqqq--满足约束条件的三次多项式:230002332()()()fffftttttqqqqqq---例7-1假设一个具有单旋转关节单自由度机器人,处于静止状态时,关节角q15o。期望在2秒内平滑移动到关节角q75o的目标位置,并在目标位置处于静止状态。求满足约束条件的三次多项式,并画出关节角位置、速度和加速度随时间变化的曲线。10解:tf=2,位置和速度约束分别为:0(0)15()75fftqqqq(0)0()0ftqq代入到7-14式得关节角轨迹:23()154515tttq-230002332()()()fffftttttqqqqqq---关节角速度和加速度轨迹为:2()9045()9090tttttqq--图7-4关节角位置、速度和加速度随时间变化的曲线可以看出,起点和终点的角度值等于指定角度,且速度为零,加速度线性变化。11具有中间点的三次多项式插值一般情况下,机械臂需要连续经过若干中间点,因此需要建立满足这些约束的插值函数。若仍然采用三次多项式插值函数,则必须采用分段插值方法。即在相邻路径点组成的每个区间内进行三次多项式插值,同时要求在两段曲线的连接处满足一定的光滑条件。比较简单的做法是,指定中间点关节角的位置和速度,这样每个区间可以独立进行插值计算。这样与单区间三次多项式插值基本类似,只是7-9式的速度约束一般不为零,而是指定的速度:0(0)()fftqqqq满足约束条件的三次多项式系数的解0010aaqq200230032321()21()()fffffffffatttattqqqqqqqq-----例7-2假设一个具有单旋转关节单自由度机器人,起始点和终止点速度为零,且位置满足q0=15o,qf=45o。设置一个中间点,位置和速度分别为qm=75o和。10deg/smq-假设两段区间的长度均为2秒。求满足约束条件的分段三次多项式,并画出关节角位置、速度和加速度随时间变化的曲线。12解:先计算起始点到中间点的三次多项式。其中tf=2,位置和速度约束分别为:0(0)15()75fftqqqq(0)0()10ftqq-关节角轨迹:23()155017.5tttq-关节角速度和加速度轨迹为:2()10052.5()100105tttttqq--中间点到终止点的关节角轨迹:23()751012.55ttttq--关节角速度和加速度轨迹为:2()102515()2530tttttqq---13具有抛物线拟合的线性插值连接相邻两个路径点的最简单曲线是直线,因此希望采用线性插值,但线性插值在连接点处速度不连续。获得速度连续光滑曲线的方法是在直线段两端采用抛物线拟合段。因为抛物线是二次函数,所以在拟合段内加速度为常数。t0tmtfttbtf-tbq0qmqfq假设两端抛物线拟合段的加速度数值相等(符号相反),如图所示,满足条件的解不唯一,但每个解都是关于时间中点tm和位置中点qm对称的。抛物线和直线的连接点处的速度相同,而整个直线段内速度是常值,所以mbbmbtttqqqq--其中qb是tb时刻的角度值,是拟合段加速度值,是直线段速度值。qq2012bbtqqq7-187-19将7-19式代入到7-18式,并且注意到tm=t/2,qm=(q0+qf)/2可以得到以下关系式200bbftttqqqq--t是期望运行时间。04()/ftqqq-通常先选择加速度,在计算时间tb14具有中间点的三次样条插值那么能否得到不需要指定中间点的速度,同时在整个运行时间内位置、速度和加速度都是连续的插值函数?前面介绍的具有中间点的三次多项式插值方法需要指定中间点的速度,同时在中间点处的加速度不连续。答案是肯定的,方法就是采用样条插值技术。下面针对关节角轨迹规划问题,给出常用的三次样条插值函数的定义。在机械臂运行区间[0,tf]上取n+1个时间节点0=t0t1t2tn-1tn=tf给出这些点处关节角位置函数的n+1个值(路径点)qi,i=0,1,2,…,n。要求构造一个三次样条插值函数q(t),满足以下条件:1)q(ti)=qi,i=0,1,2,…,n。2)在每个子区间[ti,ti+1]上,q(ti)是三次多项式。3)q(t)在整个运行区间[0,tf]上具有二阶连续导数。从上面的定义可以发现,样条插值函数q(t)是分段三次多项式,即在每个子区间上都是一个三次多项式。确定样条插值函数q(t)只需要n+1个路径点qi值,而不需要其导数(速度)值,且在整个机械臂运行时间内样条插值函数q(t)的二阶导数都是连续的。15三次样条插值函数q(t)的存在性因为每个区间都是一个三次多项式,因此有4个未知量,有n个子区间,所以未知量个数共有4n个。每个区间两个端点的函数值是事先指定的,所以有2n个约束,n-1个中间点处的一阶和二阶导数(速度和加速度)连续,所以有2(n-1)个约束。约束的个数为2n+2(n-1)=4n-2因此,单从三次样条插值函数q(t)的定义不能唯一确定函数本身。对于机械臂轨迹规划问题,一般要求初始点和终止点的速度(一阶