1第七章机器人的轨迹规划7.1机器人规划的定义和作用7.1.1概述机器人学中的一个基本问题是为解决某个预定的任务而规划机器人的动作,然后在机器人执行完成那些动作所需的命令时控制它。这里,规划的意思就是机器人在行动前确定一系列动作(作决策),这种动作的确定可用问题求解系统来解决,给定初始情况后,该系统可达到某一规定的目标。因此,规划就是指机器人为达到目标而需要的行动过程的描述。规划内容可能没有次序,但是一般来说,规划具有某个规划目标的蕴含排序。例如,早晨起床后的安排。缺乏规划可能导致不是最佳的问题求解,甚至得不到问题的求解。2许多规划所包的步骤是含糊的,而且需要进一步说明(子规划)。大多数规划具有很大的子规划结构,规划中的每个目标可以由达到此目标的比较详细的子规划所代替。因此,最终得到的规划是某个问题求解算符的线性或分部排序,但是由算符来实现的目标常常具有分层结构。把某些比较复杂的问题分解为一些比较小的问题的想法使我们应用规划方法求解问题在实际上成为可能。有两条能够实现这种分解的重要途径:第一条是当从一个问题状态移动到下一个状态时,无需计算整个新的状态,而只要考虑状态中可能变化了的那些部分。第二条是把单一的困难问题分割为几个有希望的、较为容易解决的子问题,这种分解能够使困难问题的求解变得容易些。3机器人规划分为高层规划和低层规划。自动规划在机器人规划中称为高层规划。在无特别说明时,机器人规划都是指自动规划。自动规划是一种重要的问题求解技术,它从某个特定的问题状态出发,寻求一系列行为动作,并建立一个操作序列,直到求得目标状态为止。与一般问题求解相比,自动规划更注重于问题的求解过程,而不是求解结果。我们在阐述机器人自动规划问题时,机器人一般配备有传感器和一组能在某个易于理解的现场中完成的基本动作。这些动作可把该现场从一种状态或布局变换为另一种状态或布局。例如,“积木世界”。4机器人能得到的一个解答是由下面的算符序列组成的:目标状态机器人规划是机器人学的一个重要研究领域,也是人工智能与机器人学一个令人感兴趣的结合点。5机器人的规划程序只需要给定任务初始状态和最终状态的描述。这些规划系统一般都不说明为实现一个算符所需的详细的机器人运动。任务规划程序则把任务级的说明变换成操作机级的说明。为了进行这种变换,任务规划程序必须包含被操作物体、任务环境、机器人执行的任务、环境的初始状态和所要求的最终(目标)状态等描述。任务规划程序的输出就是一个机器人程序,在指定的初始状态下执行该程序后,就能达到所要求的最终状态。任务规划有三个阶段:建立模型、任务说明和操作机程序综合。任务的世界模型应含有如下的信息:(1)任务环境中的所有物体和机器人的几何描述;(2)所有物体的物理描述;(3)所有连接件的运动学描述,(4)机器人和传感器特性的描述。在世界模型中,任务状态模型还必包括全部物体和连接件的布局。7.1.2机器人任务规划的作用6机器人轨迹规划属于机器人低层规划,基本上不涉及人工智能问题,而是在机械手运动学和动力学的基础上,讨论机器人运动的规划及其方法。所谓轨迹,就是指机器人在运动过程中的位移、速度和加速度。轨迹规划问题通常是将轨迹规划器看成“黑箱”,接受表示路径约束的输入变量,输出为起点和终点之间按时间排列的操作机中间形态(位姿,速度和加速度)序列。路径约束动力学约束路径设定轨迹规划器7.2机器人轨迹规划的一般性问题由初始点运动到终止点,所经过的由中间形态序列构成的空间曲线称为路径。这些形态序列即是曲线上的“点”。7规划操作机的轨迹有两种常用的方法:第一种方法:要求使用者在沿轨迹选定的位置点上(称为结节或插值点)显式地给定广义坐标位置、速度和加速度的一组约束(例如,连续性和光滑程度等)。然后,轨迹规划器从插值和满足插值点约束的函数中选定参数化轨迹。显然,在这种方法中,约束的给定和操作机轨迹规划是在关节坐标系中进行的。第二种方法:使用者以解析函数显式地给定操作机必经之路径,例如,笛卡尔坐标中的直线路径。然后,轨迹规划器在关节坐标或笛卡几坐标中确定一条与给定路径近似的轨迹。在这种方法中,路径约束是在笛卡尔坐标中给定的。8在第一种方法中,约束的给定和操作机轨迹规划在关节坐标系中进行。由于对操作机手部没有约束,使用者难于跟踪操作机手部运行的路径。因此,操作机手部可能在没有事先警告的情况下与障碍物相碰。在第二种方法中,路径约束在笛卡尔坐标中给定,而关节驱动器是在关节坐标中受控制的。因此,为了求得一条逼近给定路径的轨迹,必须用函数近似把笛卡尔坐标中的路径约束变换为关节坐标中的路径约束,再确定满足关节坐标路径约束的参数化轨迹。轨迹规划既可在关节变量空间中进行,也可在笛卡尔空间进行。对于关节变量空间的规划,要规划关节变量的时间函数及其前二阶时间导数,以便描述操作机的预定运动。在笛卡尔空间规划中,要规划操作机手部位置、速度和加速度的时间函数,而相应的关节位置、速度和加速度可根据手部信息导出。9面向笛卡尔空间方法的优点是概念直观,而且沿预定直线路径可达到相当的准确性。可是由于现代还没有可用笛卡尔坐标测量操作机手部位置的传感器,所有可用的控制算法都是建立在关节坐标基础上的。因此,笛卡尔空间路径规划就需要在笛卡尔坐标和关节之间进行实时变换,这是一个计算量很大的任务,常常导致较长的控制间隔。由笛卡尔坐标向关节坐标的变换是病态的,因而它不是一一对应的映射。如果在轨迹规划阶段要考虑操作机的动力学特性,就要以笛卡尔坐标给定路径约束,同时以关节坐标给定物理约束(例如,每个关节电机的力和力矩、速度和加速度权限)。这就会使最后的优化问题具有在两个不同坐标系中的混合约束。在笛卡尔空间进行轨迹规划的特点:10在关节变量空间的规划有三个优点:(1)直接用运动时的受控变量规划轨迹;(2)轨迹规划可接近实时地进行;(3)关节轨迹易于规划。伴随的缺点是难于确定运动中各杆件和手的位置,但是,为了避开轨迹上的障碍.常常又要求知道一些杆件和手位置。由于面向笛卡尔空间的方法有前述钟种缺点,使得面向关节空间的方法被广泛采用。它把笛卡尔结点变换为相应的关节坐标,并用低次多项式内插这些关节结点。这种方法的优点是计算较快,而且易于处理操作机的动力学约束。但当取样点落在拟合的光滑多项式曲线上时,面向关节空间的方法沿笛卡尔路径的准确性会有损失。11一般说来,生成关节轨迹设定点的基本算法是很简单的:0tt循环:等待下一个控制间隔;时刻操作机关节所处的位置;若,则退出循环;转向循环。ttt()httftt从上述算法可以看出,要计算的是在每个控制间隔中必须更新的轨迹函数(或轨迹规划器)h(t)。因此,对规划的轨迹要提出四个限制。第一,必须便于用迭代方式计算轨迹设定点;第二,必须求出并明确给定中间位置;第三,必须保证关节变量及其前二阶时间导数的连续性,使得规划的关节轨迹是光滑的;最后,必须减少额外的运动(例如,“游移”)。7.3关节插值轨迹12若某关节(例如关节i)的关节轨迹使用p个多项式,则要满足初始和终止条件(关节位置、速度和加速度),并保证这些变量在多项式衔接处的连续性,因而需要确定3(p十1)个系数。若给定附加的中间条件(例如位置),则对每个中间条件需要增加一系数。通常,可以给定两个中间位置,一个靠近初始位置;另一个靠近终止位置。这样做,除了可以较好地控制运动外,还能保证操作机末端以适当的方向离开起点和接近终点。因此,对于连接初始位置和终止位置的每个关节变量,一个七次多项式就足够了,或者用两段四次轨迹加一段三次轨迹(4—3—4),也可以用两段三次轨迹加一段五次轨迹(3—5—3),或五段三次轨迹(3—3—3—3—3)。p+1个点由约束条件数所对应的多项式系数的个数确定多项式的次数13为了控制操作机,在规划运动轨迹之前,需要给定机器人在初始点和终止点的手臂形态。在规划机器人关节插值运动轨迹时,需要注意下述几点:1、抓住一个物体时,手的运动方向应该指向离开物体支承表面的方向。否则,手可能与支承面相碰。2、若沿支承面的法线方向从初始点向外给定一个离开位置(提升点),并要求手(即手部坐标系的原点)经过此位置,这种离开运动就是允许的。如果还给定由初始点运动到离开位置的时间,我们就可以控制提起物体运动的速度。3、对于手臂运动提升点的要求同样也适用于终止位置运动的下放点(即必须先运动到支承表面外法线方向上的某点,再慢慢下移至终止点)。这样,可获得和控制正确的接近方向。4、对手臂的每一次运动,都设定上述四个点:初始点,提升点,下放点和终止点。145、位置约束(a)初始点:给定速度和加速度(一般为零);(b)提升点:中间点运动的连续;(c)下放点:同提升点;(d)终止点:给定速度和加速度(一般为零)。156、除上述约束外,所有关节轨迹的极值不能超出每个关节变量的物理和几何极限。7、时间的考虑(a)轨迹的初始段和终止段:时间由手接近和离开支承表面的速率决定;也是由关节电机特性决定的某个常数。(b)轨迹的中间点或中间段:时间由各关节的最大速度和加速度决定,将使用这些时间中的一个最长时间(即用最低速关节确定的最长时间来归一化)。在关节轨迹的典型约束条件之下,我们所要研究的是选择一种n次(或小于n次)的多项式函数,使得在各结点(初始点,提升点,下放点和终止点)上满足对位置、速度和加速度的要求,并使关节位置、速度和加速度在整个时间间隔[t0,tf]中保持连续。161.位置(给定)2.速度(给定,通常为零)3.加速度(给定,通常为零)4.提升点位置(给定)5.提升点位置(与前一段轨迹连续)6.速度(与前一段轨迹连续)7.加速度(与前一段轨迹连续)8.下放点位置(给定)9.下放点位置(与前一段轨迹连续)10.速度(与前一段轨迹连续)11.加速度(与前一段轨迹连续)12.位置(给定)13.速度(给定,通常为零)14.加速度(给定,通常为零)终止位置中间位置初始位置规划关节插值轨迹的约束条件:17一种方法是为每个关节规定一个七次多项式函数式中,未知系数aj可由已知的位置和连续条件确定。但用这种高次多项式内插给定的结点也许不能令人满意,因为它的极值难求,而且容易产生额外的运动。另一种办法是将整个关节空间轨迹分割成几段,在每段轨迹中用不同的低次多项式来插值。有几种分割轨迹的方法,每种方法的特性各不相同。4—3—4轨迹每个关节有下面三段轨迹:第一段由初始点到提升点的轨迹用四次多项式表示。第二段(或中间段)由提升点到下放点的轨迹用三次多项式表示。最后一段由下放点到终止点的轨迹由四次多项式表示。183—5—3轨迹与4—3—4轨迹相同,但每段所用多项式次数与前种不同。第一段用三次多项式,第二段用五次多项式,最后一段用三次多项式。(3—3—3—3—3)轨迹对五段轨迹都使用三次多项式样条函数。注意,上述讨论对每个关节轨迹都是有效的,即每个关节轨迹可分割成三段或五段。7.3.14—3—4关节轨迹的计算对于N个关节,在每段轨迹规划中就要确定N条关节轨迹,引用归一化时间变量是方便的,它使我们能用同样的方法处理每个关节每段轨迹的方程。时间变化范围均由(各段轨迹的初始时间)变到(各段轨迹的终止时间)。0,1t0t1t19定义下列变量:轨迹是由多项式序列hi(t)构成的,这些多项式合起来形成关节j的轨迹。在每段轨迹中关节变量的多项式用归一化时间表示为:20这些关节轨迹分段多项式所应满足的边界条件为:214—3—4关节轨迹的边界条件如图示。22这些多项式对实际时间t的一阶和二阶导数。可写成第一段轨迹的基本多项式是四次的23对于t=0(这段轨迹的初始位置),要满足此位置的边界条件,则24用求出的这些未知量得到对于t=1(这段轨迹的终点),在此位置,我们放宽插值多项式必须准确通过该点的要求,仅要求在此位置的速度和加速度必须和下一段轨迹起点的速度和加速度连续。此处的速度和加速度为第二段轨迹的基本多项式是三次的25对于t=0(提升点),此点的速度和加速度分别为由于此点的速度相加速度必须分别和前一段轨迹终点的速度和加速度连续,故可得26或或