可得
??atan2(s?ax?c?ay,?s?ox?c?oy) (2-50)
综上分析可得RPY变换各角如下
??atan2(nx,ny)
????180
??atan2(?nx,c?nx?s?ny)
(2-51)
??atan2(s?ax?c?ay,?s?ox?c?oy)2.2.3 球面变换解
也可以把上述求解技术用于球面坐标表示的运动方程,这些方程如式2-9和2-11所示。由式2-9可得
?1Rot(z,?)T?Rot(y,?)Trans(0,0,r) (2-52)
?c????s??0??0?f11(n)??f12(n)?f13(n)??0s?c?0000??nx??00??ny10??nz??01??0f11(a)f12(a)f13(a)0oxoyoz0axayaz0px??c???py??0????s?pz??1??0100s?1000000c?rs???0?rc???1?
f11(o)f12(o)f13(o)0f11(p)??c???f12(p)??0?f13(p)???s???1??00s?0c?rs???0?rc???1?
令上式两边的右列相等,即有
?c?px?s?py??rs???????s?p?c?p0xy????????rc??px????11????
由此可得
?s?px?c?py?0,即
(2-53)
??atan2(px,py) ????180 (2-54) 以及
c?px?s?py?rs?,
pz?rc?。当r>0时
(2-55)
??atan2(c?px?s?py,pz)?1Rot(y,?)要求得z,必须用左乘式2-52的两边,
Rot(y,?)?1Rot(z,?)?1T?Trans(0,0,r)
计算上式,让其右列相等
?c?(c?px?s?py)?s?pz??0??????s?p?c?pxy????0??s?(c?px?s?py)?c?pz??r?????1???1?
从而可得
r?s?(c?px?s?py)?c?pz (2-56)
综上讨论可得球面变换的解为
??atan2(py,px),????180??atan2(c?px?s?py,pz)
r?s?(c?px?s?py)?c?pz (2-57)
2.3 反解的存在性和唯一性
对于任一复杂结构的操臂,运动学反解的研究中心是存在性、唯一性和求解方法。 2.3.1 反解的存在性和工作空间
为了简便起见,下面讨论2R机械手的运动学反解问题。如(图2-8)所示,运动学方程为
x?l1cos?1?l2cos(?1??2)
y?l1sin?1?l2sin(?1??2) (2-58)
(?1,?2)是关节矢量。
式中,1和2是机械手的两个连杆长度;(x,y)是端点的位置矢量;
ll现在我们关心的问题是,对于给定的位置矢量(x,y),根据式2-58,如何求出相应的关节矢量
(?1,?2),这就是运动学反解。在求解之前自然会问,对于给的值(x,y),相应的
(?1,?2)是否存
在?这是运动学反解的存在性问题。
从图2-8可以看出,如果给定的位置矢量(x,y)位于以外半径为1,2内半径为
ll(l1,l2)的圆环上:
(包括边界),则解是存在的,否则解不存在。我们把这个圆环(反解存在的区域)称为机器人的工作空间。粗略地讲,工作空间是操作臀的末端抓手能够到达的空间范围,即抓手能够到达的目标点集合。值得指出的是,工作空间应该严格地区分为两类:
1、灵活(工作)空间指机器人人抓手能够以任意方位到达的目标点集合。因此,在灵活空间的每个点上,抓手的指向可任意规定。
2、可达(工作)空间指机器人抓手至少在一个方位上能够到达的目标点集合。
显然,灵活空间是可达空间的子集。对于上述2R机械手图2-8,如果两臂长相等1=2,那末,
ll可达空间是半径为21的圆,灵活空间只有一点(圆心);如果1≠2,则可达空间是个圆环,内、外半径分别是
lll|l1?l2|和
l1?l2灵活空间是空集。为了使这一平面机械手的整个可达空间成为灵活
空间,在机械手的端部添加一个旋转关节即可,旋转关节3的轴线与关节l和关节2的平行〔平面机械手〕。若在三维空间考虑,这个3关节的平面机械手的灵活空间仍然是空集。
在可达空间内,抓手可能的方位至少有一个,可能有多个。如图2-8所示的2R机械手,在可达空间的内域有两个可能的方位,在可达空间的边界上,只有一个。
上面我们假定两连杆机械手的关节变量的活动范围是360,实际上,操作臂的旋转关节的活动范围难于达到360,而是360的一部分,因此可达空间和可能达到的方位数都会减小。例如,对于2R机械手而言,若
?1可转动360,可是?2的变动范围是0???180。
,那么可达空间与原
来相同,然而可达到的每一点上只有一个方位。
当操作臂的自由度小于6阶,它的灵活空间的体积是零,它不能在三维空间内获得一般的目标位姿。例如2R和3R平面机械手不能到达平面以外(z≠0)的目标点,也不能在Z=0的平面内绕水平轴旋转,3D灵活空间是空集。实际使用的工业机器人的自由度多数为4或5,它的活动范围超出了平面范围,但它不能达到一般的目标位姿。为了确定它的工作空间。需要分析机器人的具体结构。一般而言,机器人的工作空间是位姿空间的某一子空间的一部分。
该子空间与特定的机器人结构有关。给定一个目标系{G},苦机器人的自由度少于6,要它达到
{G},一般是不可能的,因此会提出以下问题:机器人最接近目标系{G}的位姿何在?
实际上,用户最关心的是工具端部所能到达的位姿,因此,通常所说的工作空间有时是指末端执行器的工作空间。显然,这样定义的工作空间与工具系{T}也有关。但是,我们在讨论操作臂运动学和运动学反解时,通常并不把工具系{T}的变换包含在内,而是考虑腕系{W}的工作空间。对于一个给定的终端执行器来说,其工具系{T}已被确定,相对于目标系{G}的腕系{W}便可算出。问题在于:要求的腕系{W}的位姿是否落在工作空间内?如果所期望的腕系{W}的位姿处于工作空间内,那么运动学反解是存在的,否则,反解不存在。 2.3.2 反解的唯一性和最优解
在解运动学方程时,碰到的另一问题是解不唯一(称为多重解)。前面所述的平面3R机械手的灵活空间是整个圆环。在此区域中的任何点,机械手能以任意方位到达。并且,有两种可能的形位,即运动学方程可能有两组解。
机器人操作臂运动学反解的数目决定于关节数目和连杆参数和关节变量的活动范围。
一般说来,非零的连杆参数愈多,到达某一目标的方式也众多,即运动学反解数目愈多。对于6个旋转关节的机器人,表2-1列出了反解的最大数目与连杆长度非零的连杆长度(16。
表2-1反解数目与非零连杆长度(
ai?0的数目之间的关系,可见,
ai?0)的数目愈多。6自由度的旋转关节操作臂的运动学反解的数目最多可达
ai?0)个数的关系
多重解往往和优化联系在一起。人们自然会何:如何从这多重解中选择其中的一个?并且认这多重解中挑选最优的一个?最优解的准则是什么?寻求最优解的方法是什么?值得说明的是,在不同的情况下采用的最优准则也是不同的。最常用的准则是“最短行程”准则。所谓最优解是每个关节的移动量为最小的解,称为“最短行程”准则。所以在没有障碍物时,我们寻求运动学逆问题最优解就是在关节空间中选取一个最接近起始点的解。但是如何衡量“接近的程度”呢?又有不同的定义方法。例如,典型的机器人前面三个连杆的尺寸较大,而后面的三个较小用于使末端操作器定向。在这种情况下,需要应用“加权系数”的概念来衡量“接近的程度”,加权系数的选择应遵循:“多移动小关节;少移动大关节”的原则。
障碍物存在时,沿“最短行程”运动可能引起碰撞。在这种情况下,我们不得不采用其他策略和优化准则。一般,我们在不引起碰撞的可能解之中,选取行程最小的。 2.3.3 求解方法
操作臂运动学反解的方法可分为二类:封闭解和数值解.在进行反解时,总是力求得到封闭解。因为封闭解计算速度快,效率高,便于实时控制。数值解法不具备这些特点,实际上,非线性方程组的数值解本身就是一个有待研究的领战。 “操作臂运动学是可解的”,是指可以找到一种求解关节变量的算法,用于确定末端抓手位姿所对应的关节变量的全部解。在多重解的情况下,应能算出所有的解。某些迭代算法不能保证求出所有的解。这种数值解法不于操作臂的运动学反解问题。