时间:2024-07-28
潘 健,郭忠峰,王赫莹(沈阳工业大学辽宁省智能制造与工业机器人重点实验室,辽宁 沈阳 110870)
机器人已广泛地应用于各个领域,传统串并联机器人由于尺寸和灵活性限制难以适用于复杂狭窄的作业环境,超冗余机械臂因其具有良好的环境适应性和避障能力[1],逐渐成为机器人领域研究的热点。
国外对超冗余机械臂的研究起步较早,1991年,Chikjian和Burdick最先提出“超冗余”一词[2],后续许多团队设计了不同的机械结构。Walker及其团队[3-5]开发了一种线驱动机械臂,并建立了运动学模型,英国OC Robotics公司[6-7]先后研发了多款超冗余机器人,用于飞机零部件组装、狭小空间焊接切割等。国内对超冗余机械臂的研究比国外晚,主要的研究单位有哈尔滨工业大学、沈阳自动化研究所、北京航天航空大学[8-10]等。超冗余机械臂因其自由度数多,所以逆运动学求解困难,传统的广义逆法求解超冗余机械臂运动学存在计算量巨大甚至无法求解的问题[11],针对这一问题,Chikjian和Burdick于1994年提出了基于脊线的逆运动学求解算法并应用于超冗余机械臂的逆运动学求解[12],但是该方法将机械臂关节尽可能的拟合在脊线上,导致机械臂丧失了许多自由度。
本文针对传统机器人尺寸大、灵活性不足的缺点,设计了一款基于新型球形关节串联而成的超冗余机器臂,以其为基础,提出一种基于改进脊线法的超冗余机械臂逆运动学求解算法,用于新型超冗余机械臂操作空间和关节空间之间的逆运动学求解,利用Matlab对空间脊线及机械臂逆运动学进行数值仿真。
新型超冗余机器臂整体机械结构如图1所示,整个机械系统由机械臂模块和驱动模块组成。
图1 超冗余机器人机械系统原理图
机械臂模块由10个模块化单关节串联而成,每个模块化单关节具有两个自由度,机械臂的末端可以安装机械抓手和摄像头。驱动模块采用箱体式结构,内置30个电机采用分层布置方式,每一层6个电机,分为5层,机械臂通过法兰与驱动模块箱体连接。
驱动模块的单层驱动结构示意图如图2所示,底座上等间距安装6个电机,电机输出端通过联轴器与丝杠连接,机械臂关节的驱动绳索通过双U形槽轮导线装置与丝杠螺母上的压线装置连接,通过丝杠螺母的直线运动可以实现驱动绳索的拉紧和放松。
图2 单层驱动模块结构示意图
新型超冗余机械臂由10个新型球型关节串联而成,新型球型关节的结构如图3所示。
图3 新型球形结构示意图
一个新型球型关节包括中间球体及两端与之配合的导绳盘,中间球体上均匀设置4个半球形轨道,导绳盘上与中间球体配合的内球面上两侧分别设置两个半球形孔用于安装滚珠,实现导绳盘在中间球体轨道上的滚动,可以减小关节运动时的摩擦损耗,提高关节使用寿命,导绳盘两侧的侧耳上设置螺纹孔,用于挡块和导绳盘侧耳的连接。关节与关节之间用法兰连杆连接,单关节长度为150 mm,新型球型关节的单自由度旋转角度范围为[-30°,30°]。新型超冗余机械臂直径为50 mm,中间球体、导绳盘、连杆中心轴线方向均采用空心结构,减轻了整个机械臂的重量,同时电缆可由机械臂中心穿过,实现末端电子设备的供电和信号传输。机械臂采用电机外置三线驱动方式,三根绳索呈120°布置,每个导绳盘上均匀布置导绳孔,驱动绳索直径为1.2 mm。
图4 空间脊线示意图
空间脊线是一条可以描述超冗余机械臂空间形态的曲线[13],其示意图如图4所示。
空间脊线的数学表达式[14-16]可描述为:
(1)
式中:s为归一化脊线长度的参数;X(0)为脊线的起点位置;X(1)为脊线的终点位置;L为脊线的实际长度;u(σ)为脊线在点σ处的脊线切线向量。
空间脊线的切线向量u(σ)可以表示成:
(2)
其中,ψ(σ)为空间线段Oσ与其在XOY平面上投影之间的夹角,φ(σ)为空间线段Oσ在XOY平面上投影与Y轴之间的夹角。
脊线的运动学是研究脊线参数与脊线末端点之间的关系,而到达空间一点不止一条脊线,因此需要对脊线形状进行限制,令{si(s)}为对应的脊线形状约束方程:
(3)
式中:Nsi为模态子方程的个数;aij(t)为模态协同参数;φij(s)为模态子方程。
由于空间脊线方程表达式比较复杂,协同参数一般无法由显示方程求解,因此采用数值方法求解空间脊线协同参数,下面简述脊线协同参数的求解过程。
脊线方程对时间t求导得:
(4)
式中:J(a)为脊线的模态雅克比矩阵,是脊线协同参数的函数。
(4)式用来求解t时刻脊线协同参数集合a。
上述脊线协同参数求解可能会使脊线末端位姿产生较大的误差,因此需要对协同参数进行修正,下面采用迭代法进行参数修正。
ak+1=ak+α·J-1(ak)·[XD-X(ak)]
(5)
式中:J-1(ak)为模态雅克比矩阵的逆矩;ak为第k次迭代a的计算值;XD为脊线的末端点位置;X(ak)为当ak为脊线协同参数时计算出的脊线末端位置;α为常数,控制迭代收敛速度。
脊线运动学描述:正运动学是已知脊线的模态协同参数求解脊线的末端位置;脊线的逆运动学是已知脊线的末端位置求解脊线的模态协同参数。
本文提出基于障碍物位置的机械臂关节拟合方法,关节拟合示意图如图5所示,拟合过程主要包含三个步骤:末端关节拟合;剩余关节预拟合;局部关节位置调整。
图5 机械臂关节拟合示意图
2.3.1 末端关节拟合
为使脊线末端指向与机械臂末端执行器指向相匹配,假定机械臂末端执行器指向方向的单位向量为kn,末端位置坐标为Xe=[xeyeze]T,机械臂总长度为l,关节数为n,则机械臂末端关节的位置坐标为:
Xn=[xnynzn]T=Xe-kn·l/n
(6)
2.3.2 剩余关节位置预拟合
为使剩余关节尽可能地落在或者接近脊线,对剩余关节位置进行预拟合,由于靠近机械臂始端的关节位置由后一关节的位置和关节长度决定,所以在剩余关节拟合时由机械臂末端关节向机械臂始端关节开始拟合,假设机械臂任意关节i的位置坐标为Xi=[xiyizi]T,其中i∈[3,n-1],以点ji+1为球心,以l/n为半径作球体,与脊线相交于一点ji,以点ji为关节i的拟合点,以点ji到点ji+1之间的脊线的内接弦向量li作为关节i的拟合量,则关节i的位置向量可以表示为:
Xi=Xi+1-li
(7)
由(7)式可以推导i≥3关节的位置向量,为了保证i≥3关节都拟合在脊线上,取各段脊线的内接弦作为拟合量,当k=2时,剩余脊线的长度会小于2L/n,导致关节2无法拟合到脊线上,取点j2、j1分别为关节1、2的拟合点,其中关节1为原点。
图6 关节2拟合 示意图
如图6所示,分别以点j1、j3为球心,以l/n为半径作球体,两个球体的交线为空间圆,在该圆上求解一点j2,使得j2到脊线的距离最短。以j2为关节2的拟合点,点j2到点j3之间的线段作l2为关节2的拟合量,点j2到点j1之间的线段l1作为关节1的拟合量,关节2的位置向量可以表示为:
X2=X3-l2
(8)
2.3.3 局部关节位置调整
在预拟合过程中,机械臂所有的关节接近或落在脊线上,对于无障碍路径,这种拟合求解方法可以减少计算量,但是对于有障碍路径,这种拟合求解方法由于牺牲了大量自由度而导致机械臂丧失灵活性,故本文提出基于障碍物位置的关节拟合算法,即引入障碍物参数(包括障碍物位置参数和尺寸参数),对局部关节位置进行调整。
图7 障碍物模型示意图
如图7所示,首先对障碍物进行建模,为了便于描述机械臂关节与障碍物之间的位置关系,将障碍物的外接球面视为机械臂所能到达的极限位置,称之为危险边界,其半径为Rw,同时,为了保证机械臂运动过程中的绝对安全,在危险边界周围设置预警区域,预警区域的外围边界是机械臂的安全运动边界,其半径为Ra。在一般工况下,要求机械臂绝对安全运行,所以机械臂关节要始终处于安全边界之外。
假设机械臂第i个关节ji处于安全边界范围之内,为了使机械臂安全运行,需要对机械臂关节ji的位置进行调整,调整后的关节需要满足以下边界条件:
(9)
根据上述条件限制,求解得到一系列满足条件的关节空间位置坐标后,为了使调整后的关节更好地与脊线吻合,在上述边界条件的解集中确定调整后关节的位置,使其满足到预拟合确定的关节ji位置的欧氏距离最小,将该位置作为调节后的关节位置,即满足下列公式:
(10)
同样地,对于复杂工况环境,若同时出现多个关节在安全边界以内,则可以引入多组障碍物参数,应用同样的方法对多个关节位置进行调整。
求得各个关节拟合后的位置坐标后,下面求解关节k的旋转角度θk、θ2k,结合常用的D-H坐标系法进行关节变量求解,以本文设计的新型超冗余机械臂为例,建立机械臂的D-H坐标系如图8所示,得到各个关节的D-H参数如表1所示。
图8 新型超冗余机械臂D-H坐标系
表1 新型超冗余机械臂关节D-H参数
(11)
式中,c*是cosθ*的简写,s*是sinθ*的简写。
对于1关节,可以通过下式求解旋转角度θ1、θ2。
(12)
X1=0P2
(13)
(14)
Xk=0P2k
(15)
在上述关节旋转角度求解过程中,因为末端关节求解时用到前面关节的旋转角度变量,所以求解时需要从首端关节到末端关节依次求解。
根据超冗余机械臂的结构特点,本文选取模式函数为:
(16)
脊线约束方程为:
(17)
任意给定脊线的末端位置,在上述约束方程的约束下可以求解出空间唯一一条脊线与之对应,假设给定脊线的末端位置为空间圆,其方程为:
根据给定的脊线末端点位置,本文通过数值方法(newton法)求解脊线的协同参数,得到空间脊线方程,在matlab中绘制空间脊线的三维图形(图9)及XY平面投影(图10),脊线较光滑,没有曲率较小的脊线段,因此超冗余机械臂可以与脊线很好的拟合。
图9 空间脊线三维图 图10 空间脊线YZ平面投影图
为了验证本文提出的基于改进脊线法的超冗余机械臂逆运动学算法的有效性,本文用matlab进行仿真计算。设置机械臂参数:机械臂的末端位置为X=[600,450,900]T,归一化后对应脊线的末端为:
Xd=[0.4,0.3,0.6]T
设置障碍物参数:障碍物模型1的位置为[290,550,255]T,半径为30 mm,障碍物模型2的位置为[485,550,480]T,半径为30 mm。归一化后对应的障碍物参数为:
Xa1=[0.193,0.367,0.170]TRa1=0.02
Xa2=[0.323,0.367,0.320]TRa2=0.02
根据本文所提出的改进脊线逆运动学求解算法和空间超冗余机械臂拟合算法进行超冗余机械臂逆运动学求解并通过matlab仿真,结果如图11所示,图中实线曲线表示空间脊线,虚线折线表示机械臂中心线的拟合,每个折线段表示机械臂连杆的位置,圆圈表示超冗余机械臂关节。
图11 基于改进脊线法逆运动学仿真结果
根据本文所提出的机械臂关节自由度求解算法,通过matlab求解各个关节的自由度变量,运用matlab机器人工具箱函数robot.plot()绘制超冗余机械臂空间构型,如图12所示。
图12 新型超冗余机械臂空间构型图
本文设计了一款基于新型球形关节串联而成的超冗余机械臂,提出了一种基于改进脊线法的超冗余机械臂逆运动学求解算法,并且结合D-H坐标系法,完成了各个关节变量的求解及仿真,为进一步对超冗余机械臂运动学及动力学分析奠定了基础。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!