钱冠杰,谭跃刚
(武汉理工大学 机电工程学院,湖北 武汉 430070)
在约束方程中,含有系统位置坐标对时间的微分且不能直接积分为有限形式,这类约束称为非完整约束,含有非完整约束的系统称为非完整系统[1]。非完整约束会限制速度、加速度等位置坐标的微分量,但不会限制系统的位置坐标。因此,非完整系统的控制输入数目可以少于广义位置坐标数目,系统具有欠驱动特性。驱动器的减少可以降低成本,对于开发结构紧凑,质量轻的机构具有重要意义[2]。
非完整系统本质上是非线性的,不存在连续时不变状态反馈可对其进行镇定,直接对其进行运动规划很困难[3]。Murray等[4]通过坐标变换将轮式移动机器人转换成一类结构简单的非完整系统——链式系统。Nakamura等[5]利用摩擦球运动分解合成机构,设计了一种非完整多关节机械臂,并通过将机械臂系统转换为链式系统来对其进行运动规划。Tilbury等[6]将多项式、三角函数等作为控制输入,可以对链式系统进行有效的运动规划。
笔者以一种非完整四关节机械臂为研究对象,采用链式变换方法进行运动规划。由于非完整机械臂的运动学模型与链式模型并不是完全微分同胚的,导致在链式模型中规划的路径不能完全映射到关节空间而出现奇异位形[7]。利用四关节机械臂的冗余性,通过合适的逆运动学来求解优化运动轨迹,可以实现机械臂有效的运动控制。
非完整机械臂以一种摩擦轮盘机构[8]作为关节运动传递单元,其机构图如图1所示。
图1 摩擦轮盘机构
(1)
式中:α为变量,会随着机械臂关节角度的改变而变化,从而改变摩擦轮盘机构的传动比。摩擦轮盘机构的约束是一种速度约束,因此非完整机械臂是一种一阶非完整系统。
在非完整机械臂中布置了三组摩擦轮盘机构,机械臂的机构如图2所示。其中,电机2直接驱动关节1转动。可伸缩双万向节及两端的传动轴连接组成一条运动传递链,运动传递链上的各传动轴等速转动。电机1驱动运动传递链,通过齿轮、摩擦轮盘机构、同步带轮机构带动关节2、3和4转动。
图2 非完整机械臂机构图
机械臂的位形空间由5个状态变量确定,即4个关节的角位移θi以及与电机1连接的运动传递链的角位移φ。因此,可定义机械臂系统广义坐标矢量为q=[φ,θ1,θ2,θ3,θ4]T。根据机械臂运动关系,可推导出其运动学模型如下:
(2)
式中:k为r/R;μ1和μ2为电机1和电机2的转速。
机械臂的各个关节之间存在运动耦合关系,直接进行运动规划十分复杂。一种有效的方法是将机械臂系统转换为链式系统,运用链式系统的运动规划方法对机械臂进行运动规划。Sordalen在研究多挂车系统的链式变换时,提出了将符合三角形构造的非完整系统转换为链式系统的方法[9]。具有三角形构造的系统如下:
(3)
根据上述方法,非完整机械臂系统可以转换为如下链式系统:
上述系统是一种两输入四输出的单链系统,其通式为:
(5)
式中:v1,v2为系统的两个状态输入量。
运动规划即求解有界的输入,使机械臂在规定时间内由初始位形运动到目标位形。首先将机械臂关节的初始位形qi和目标位形qg映射到链式空间中的初始位形zi和目标位形zg,然后以zi和zg作为边界条件在链式空间中规划出一条运动路径,再将路径进行链式逆变换到关节空间,即得到了机械臂的运动路径。边界约束方程如下:
(6)
式中:zi(T)(i=2,3,4,5)为在控制输入作用下链式空间中各个状态变量在终止时刻T时对应的值,是控制输入的函数。
采用时间多项式输入法对链式系统进行运动规划,则系统的控制输入为:
(7)
若知道机械臂的运动时间T以及边界条件qi和qg,则利用边界约束方程可以求解出控制输入中的待定系数ai(i=1,2,3,4)。将控制输入v1和v2带入单链系统式(5),即可以得到链式空间中各个状态变量zi(i=1,2,…,5)的运动轨迹,然后通过链式逆变换得到机械臂4个关节θi(i=1,2,3,4)的运动轨迹。
非完整多关节机械臂是一种四关节的平面机械臂,而确定平面中机械臂末端执行器的位置只需要两个关节即可。因此机械臂有两个冗余关节,这使得机械臂具有更高的灵活性。
由于机械臂具有冗余性,对于机械臂末端执行器的一个位置P,有无数种逆运动学解。在机械臂的运动规划中以机械臂的初始位形qi和目标位形qg作为边界条件进行运动规划。因此,对于机械臂末端执行器的一个目标位置,有无数个目标位形qg,每一个目标位形都对应机械臂的一种运动路径。对于一个确定的末端执行器目标位置P,取其中3组逆运动学解进行运动规划。其中关节 1的初始角度为5°,任取3组逆运动学解中关节1对应的目标角度分别为30.25°、30°、33°。运动规划得到的关节1运动路径如图3所示。
图3 关节1运动轨迹图
在无数种逆运动学解对应的运动轨迹中,有很多轨迹是不可取的。由机械臂的链式变换表达式(4)可以看出,在链式变量z向关节变量θ进行链式逆变换的过程中需要进行开方和反三角函数运算,如果链式状态变量z的值超过一定范围,在链式逆变换求取关节变量θ时就会出现无解的情况,这种性质称为链式逆变换的奇异性。显然,逆运动学解中这种奇异位形是不可取的,图3关节1的运动轨迹1就是一种奇异位形。从运动轨迹3可以看出,在运动过程中关节1出现了两次反向转动的情况。由于机械臂中有齿轮和同步带传动机构,关节频繁地反向转动会引入误差,因此运动轨迹3也是不可取的。而轨迹2中,关节1从5°运动至30°的过程中没有出现反转的情况,运动轨迹2是可取的。
机械臂的逆运动学解有无数种,而且其中有很多解并不可取,因此需要对逆运动学解进行优化,求取最优解。冗余解的优化求取方法通常是基于给定的评价函数,即通过求取评价函数的最值来确定逆运动学的最优解[10]。
在给定机械臂初始位形qi时,对机械臂的一组逆运动学解目标位形qg进行运动规划,可以得到机械臂各个关节的运动轨Pi(i=1,2,3,4)。过各个关节初始位形qi和目标位形qg可以得到一条直线Qi(i=1,2,3,4),以曲线Pi和Qi所围的面积构建线性评价函数,如图4所示。
(8)
图4 线性评价函数图
机械臂逆运动学解优化是一个二维优化问题。确定平面机械臂末端执行器需要两个关节变量,以另外两个关节角作为变量,采用遍历的方法,通过比较线性评价函数f的大小对各组逆运动学解进行取舍,f最小时对应的解即为最优逆运动学解。对最优逆运动学解进行运动规划时,机械臂不会出现反向转动和奇异位形。
假定机械臂的初始位形为qi=[10° 10° 10° 10°]T,机械臂末端执行器的目标位置为P=[80,575]T,机械臂的臂长l=180。通过评价函数式(8)求得P点对应的最优逆运动学解为qg=[32.7064° 32.9134° 32.9° 32.9°]T。以qi和qg作为边界条件建立约束方程,采用牛顿迭代法求解约束方程可以得到链式系统控制输入中的未知参数。解得a1=0.074 129 177、a2=0.007 095 292、a3=0.001 591 411、a4=-0.000 103 037。进而可以得到各个状态变量z的轨迹如图5所示。
图5 z的运动轨迹
状态变量z经过链式逆变换可以得到机械臂4个关节的运动轨迹如图6所示。
图6 各个关节的运动轨迹
在四关节机械臂运动控制实验平台上进行实验研究。以UMAC运动控制器控制两个伺服电机驱动机械臂运动,通过安装在各个关节处的角位移传感器来测量关节的实际角位移。运动控制试验平台如图7所示,机械臂各个关节的实际运动轨迹如图8所示。
图7 运动控制实验平台
图8 各个关节的实际运动轨迹
机械臂的理论目标位形是qg=[32.706 4° 32.913 4° 32.9° 32.9°]T,在试验中机械臂各个关节运动至qg′=[32.7° 30.9° 31.8° 29.8°]T。由于关节1直接由电机1驱动,其转角由电机编码器读出,因此关节1运动曲线比较光滑。关节2、关节3和关节4的实际角度和理论值相比都有一定的误差,其中关节4的误差最大,这是由于前面关节误差累计影响造成的。但是总体来看,机械臂各个关节的运动趋势与理论曲线基本相同,这表明笔者提出的运动规划方法可以对机械臂进行有效的运动控制。
笔者提出了一种非完整四关节机械臂的运动控制方法。通过将机械臂运动学模型转换为链式模型,然后在链式模型中进行运动规划,将规划好的路径通过链式逆变换就可以得到机械臂各个关节的运动轨迹。对机械臂进行了冗余性分析,根据线性评价函数对逆运动学解进行优化,从而得到最优逆运动学解。仿真和实验结果表明了所提出的运动规划方法的可行性。