六自由度工业机器人运动学分析与仿真
2022-08-31李雪梅崔菲菲骆海涛
李雪梅,崔菲菲,骆海涛,李 喆
(1.桂林电子科技大学 机电工程学院,桂林 541004;2.中国科学院沈阳自动化研究所,沈阳 110016)
0 引言
随着制造业的日益发展与进步,各行各业对产品的质量和生产效率的要求也在不断提高,然而人工作业很难满足工业发展的需求[1]。为了解决这一问题,许多行业开始使用机器人代替人工作业,从而促使工业机器人的需求量越来越大。同时,对机器人的控制精度、稳定性以及生产效率的要求也在不断提高[2],而机器人运动学分析是实现机器人运动控制与轨迹规划,提高机器人控制精度、稳定性以和生产效率的基础[3]。
机器人的所有操作动作都靠其关节变化来实现,关节数越多其灵活性越高,越能完成较复杂的动作[4]。目前使用最为广泛的是6自由度工业器人,该类型机器人的运动学分析相对复杂。因此,对6自由度机器人的运动学进行研究很有必要。
1 机器人运动学分析
1.1 基于D-H参数法的机器人模型
以EFORT机器人作为分析模型,该模型是一个开式运动链机器人。它由7个连杆通过6个旋转关节串联而成,可以在工作空间以不同的方式运动。采用Denavit与Hartenberg两位科学家提出的D-H参数法来描述连杆和关节的几何关系。由于连杆0是机器人的基座,连杆6连接着末端执行器。因此,在机座处建立基坐标系{0},在连杆6处建立工具坐标系{6},其他坐标系分别建在余下的各个关节处[5],如图1所示。
图1 机器人的D-H空间坐标系
根据图1建立的机器人连杆坐标系,可以获得EFORT机器人的D-H参数表,如表1所示。
表1 EFORT机器人参数
1.2 正运动学分析
机器人正运动学分析是在已知机器人各个关节的转角θi和关节偏移di的条件下,通过运动学方程求解出机器人末端执行器任意时刻的位姿[6]。根据EFORT机器人坐标系和D-H参数表,可以计算出相邻两个坐标之间的变换矩阵nTn+1(i=1,2,…,6)。即:
由于该型机器人含有6个旋转关节,所以存在6个未知变量,即关节角θ1~θ6,将6个关节参数代入到式(1)中,然后依次相乘,得到六自由度机器人末端执行器相对基坐标系的总变换矩阵:
为了检验机器人的正运动学方程是否正确,将表1中的数据代入式(2)中并利用MATLAB计算,计算的结果为:
0T6的左侧3x3矩阵表示机器人的姿态,可以发现:机器人末端的x轴与基坐标系的y轴方向相反,y轴与基坐标系的x轴同向,z轴与基坐标系的z轴同向。第四列元素代表机器人末端的位置,可以发现:机器人末端位置在基坐标系中沿x0轴平移了940mm的距离,沿z0轴平移了1290mm的距离[7]。计算结果与图1所示的工具坐标系6的位姿完全相同,表明正运动学方程是正确的。
1.3 逆运动学分析
机器人的逆运动学分析是在已知机器人末端执行器某一个期望点位置和姿态的条件下,求解机器人6个旋转关节的参数。由于所研究的EFORT机器人满足Piper准则,所以采用反变换法求解6个关节角度值。由式(1)可以发现,矩阵中含有三角函数,为了使角度解耦[8],可用单个矩阵的“逆”左乘末端执行器的位姿矩阵0T6,于是可求得各关节变量θ1~θ6,依次求得结果如下:
由于在[-180°,180°]区间内,θ1有1个解,θ2、θ3分别有4个解,θ4、θ5、θ6分别有8个解,因此可以得到8组封闭解。
为了检验逆运动学算法是否正确,在机器人的工作空间中任意选取一个末端点的位姿,其矩阵为:
调用MATLAB工具箱中的robot.ikine(T)函数,计算出各个连杆的关节角为:
q=[0,-1.5708,0.5236,0,1.0472,0]
用时0.043毫秒。由于机器人工具箱中自带的ikine函数在求解时会出现迭代不收敛的情况,从而无法确定每次获得的任意位姿下机器人的关节角度是否都是准确的、合理的[9]。因此,用MATLAB编写出前文用反变换法计算出的逆解表达式的相应代码,可求出机器人的8组封闭解:
用时0.006毫秒。将以上8组解分别代回MATLAB的fkine函数中,均能得到与式(4)相同的结果,从而对逆运动学算法的准确性进行了检验。
2 运动学仿真
为了更直观地观察机器人在工作空间中的运动状态,采用MATLAB软件对其进行运动学仿真。利用MATLAB Robotics Toolbox中的Link和robot函数对机器人的初始位姿进行建模。相关程序如下:
建立的模型如图2所示。
图2 机器人三维结构图
图2显示,将初始值(0,-pi/2,0,0,pi/2,-pi/2)分别输入到q1~q6中,可以得到机器人末端的位姿,与图1所示位姿相同,进一步检验了正运动学的正确性。也可以通过拖动q1~q6的值来观察机器人在空间中的运动情况,方便实时模拟仿真。
3 机器人工作空间分析
当机器人的所有关节进行所有可能的运动时,机器人末端执行器所能达到的所有点的集合称为机器人的工作空间。对机器人的工作空间进行分析,常用的方法是蒙特卡罗法,该法是通过随机抽样来使机器人的关节取值多样化,以便在笛卡尔空间中获得大量的末端点,进而可获得机器人工作空间的形状。该法求解步骤如下:
1)由机器人的正运动学方程,可以求解到机器人末端参考点在笛卡尔坐标系中的位置向量为:
2)使用MATLAB中的RAND函数,可以在0~1范围内得到一组伪随机数,得到各个关节变量的随机值:
其中:θimax、θimin分别表示关节i运动转角范围的最大、小值;N为迭代次数,这里N取值为20000。
3)将机器人各关节变量随机生成的N个随机数代入末端执行器位置向量[px,py,pz]T中,可得机器人末端执行器在笛卡尔空间中的位置坐标。
4)借助MATLAB中的plot3函数绘制出机器人末端的工作空间点状云图,如图3所示。
图3 三维工作空间
图4、图5分别为空间点云图在xoy二维平面和xoz二维平面上的投影。机器人的三维空间随机位置点数量足够的多,获得的空间的精确度就越高,空间轮廓也越清晰。
图4 XOY平面投影
图5 XOZ平面投影
通过分析机器人的工作空间点云图可以发现,机器人的工作空间没有出现空腔和空洞,说明机器人整体上满足作业要求[10]。
4 机器人的可操作性分析
机器人的可操作性是一个相对重要的技术指标,它关系到机器人在工作过程中与操作目标之间的协调性,这对于提高生产效率及生产安全性都至关重要[11]。
分析机器人的可操作性,一般用雅克比矩阵J(q)的行列式是否为0来判别机器人是否处于奇异位置,用雅克比矩阵的奇异性来描述机器人的灵巧性[12]。速度可操纵性椭球体可以表示机器人任意改变末端执行器位置和方向的能力。
末端执行器速度空间椭球体方程为:
式(J(q)J(q)T)-1指工作空间中的某个椭球,也叫作机器人操作度椭球。末端执行器可以以较高的速度沿着椭球的主轴方向运动,而以较慢的速度在副轴上运动。如果该椭球的形状近似于球形,即它所有的半径均在同一数量级,那么机器人末端可以达到任意的笛卡尔速度。如果其中一个或多个半径相对较小,表明机器人末端不能达到那些小半径所对应的速度。
当关节角为[0,-π/2,-π/2,0,π/6,-π/2]时,机器人是奇异的。然后用MATLAB 中的plot_ellipse(J*J’)函数绘制出末端执行器平移速度椭球,如图6所示,可以发现,末端执行器的平移速度椭球近似于一个厚度几乎为零的厚板。这表明机器人不能绕小半径对应的方向旋转,同时用MATLAB工具箱中的maniplty函数计算出此状态下的机器人可操作度为0。
图6 机器人末端平移速度椭球
当机器人处于标准位置时,末端执行器的旋转速度椭球如图7所示。由图7可以看出:机器人末端执行器旋转速度椭球近似于一个球体,所以末端执行器可以在y轴和z轴方向实现比x轴方向更高的速度,机器人的可操作度大一些。此时机器人旋转操作度为0.475631,平移操作度为2.44949。
图7 机器人末端旋转速度椭球
5 结语
以EFORT机器人作为研究目标,采用D-H方法完成了6R机器人的运动学分析。通过两个相邻连杆之间的变换矩阵顺次相乘得到末端执行器的位姿矩阵。根据反变换法求解出机器人的8组封闭解,并运用MATLAB软件检验了其正、逆运动学方程的准确性和合理性。结果表明:用反变换编写的函数求解速度要快于工具箱自带函数求解速度。其次,依据蒙特卡罗法分析了机器人的工作空间,结果显示,所得到的点云图均匀且并不存在空腔等问题。最后,利用雅克比矩阵函数,分析了机器人的灵活性,结果表明机器人具有良好的可操作性。