□ 杨松山 □ 徐增丙 □ 王志刚
武汉科技大学 机械自动化学院 武汉 430081
随着科学技术的发展,机械臂的应用要求越来越高。利用虚拟样机技术代替真实物理样机试验,在设计过程中可以提高物理样机性能,避免样机制造的高成本,缩短开发周期[1],对机械臂整体性能指标还可以反复进行试验与改进[2]。笔者利用Adams动力学仿真软件进行运动分析,观察机械臂运动状态,在Matlab软件环境下建立控制系统,发挥两款软件各自集成的优势,对机械臂进行交互式仿真,从而使机械臂快速、精准完成动作,为实际样机制作供理论依据。
Adams软件的三维实体建模环境较差,为了方便分析,降低结构设计和控制系统设计的复杂程度,在SolidWorks软件中建立机械臂实体模型。在结构设计中进行合理的简化,机械臂由底座、转台、四节臂架、执行器组成。
机械臂模型如图1所示。
▲图1 机械臂模型
建立机械臂的连杆坐标系,然后利用Denavit-Hartenberg参数法分析机械臂运动学方程的求解过程[3]。建立连杆坐标系的方法包括标准Denavit-Hartenberg法和改进Denavit-Hartenberg法,标准Denavit-Hartenberg法与改进Denavit-Hartenberg法在建立各连杆坐标系时,原点坐标的选取有所不同。笔者采用标准Denavit-Hartenberg法建立机械臂连杆坐标系[4-5],如图2所示。两相邻连杆之间的关系用连杆长度ai、连杆扭角αi、连杆偏距di、连杆夹角θi四个参数来描述[6],连杆参数见表1。
表1 连杆参数
▲图2 机械臂连杆坐标系
在Matlab软件机器人工具箱环境下建立机械臂数学模型,通过Denavit-Hartenberg坐标参数构建每个关节位置[7],再通过 Link和Robot 函数对连杆关节进行连接组合,完成机械臂建模,如图3所示。
▲图3 机械臂建模
(1)
(2)
nx=sinθ1sinθ6+cos(θ2+θ3+θ4+θ5)cosθ1
cosθ6
(3)
ny=cos(θ2+θ3+θ4+θ5)cosθ6sinθ1-cosθ1
sinθ6
(4)
nz=sin(θ2+θ3+θ4+θ5)cosθ6
(5)
ox=sinθ1cosθ6-cos(θ2+θ3+θ4+θ5)cosθ1
sinθ6
(6)
oy=-cosθ1cosθ6-cos(θ2+θ3+θ4+θ5)sinθ1
sinθ6
(7)
oz=-sin(θ2+θ3+θ4+θ5)sinθ6
(8)
ax=sin(θ2+θ3+θ4+θ5)cosθ1
(9)
ay=sin(θ2+θ3+θ4+θ5)sinθ1
(10)
az=-cos(θ2+θ3+θ4+θ5)
(11)
px=cosθ1[d6sin(θ2+θ3+θ4+θ5)+a3cos(θ2+
θ3)+a2cosθ2+a4cos(θ2+θ3+θ4)]
(12)
py=sinθ1[d6sin(θ2+θ3+θ4+θ5)+a3cos(θ2+
θ3)+a2cosθ2+a4cos(θ2+θ3+θ4)]
(13)
pz=d1-d6cos(θ2+θ3+θ4+θ5)+a3sin(θ2+
θ3)+a2sinθ2+a4sin(θ2+θ3+θ4)
(14)
运动学方程的逆解指根据机械臂末端执行器的位姿变换矩阵,通过运动学方程来求解关节位置,即已知机械臂末端的位置姿态,计算出机械臂对应的全部关节位置变量。机械臂末端执行器在空间运动的轨迹由工作任务确定,通过轨迹规划,将轨迹点映射到机械臂关节空间中,进而选择最合理的逆解。目前,机械臂逆运动学求解的主流方法有解析法、迭代法、代数法、几何法[11-13]。
除式(2)外,机械臂末端期望位姿矩阵还包括:
(15)
(16)
(17)
在式(2)的等号两侧分别乘上对应的逆矩阵,分离变量,根据左右矩阵对应元素相等求解各关节变量的值。求解过程涉及反三角函数,运动学逆解存在多解性。由于机械臂的结构限制,不是所有求出的关节角都能满足要求,因此有必要在所有解中选择最佳解,如时间最短、能耗最小、能够避开障碍物等。
机械臂轨迹规划时,根据作业任务要求,计算出预期的运动轨迹[14]。规划既可以在关节空间中进行,也可以在直角空间中进行,要求所规划的轨迹必须连续、平滑,并且使整个机械臂本体运动平稳。当机械臂的末端轨迹根据工作任务有严格要求时,要选择在合适的空间坐标系中进行规划。笔者在笛卡尔空间坐标系中进行规划,机械臂对封头零件焊缝进行探伤检测时,要求机械臂末端在空间中进行直线运动,同时末端执行器根据工作的要求姿态不变,需要机械臂各个关节协调配合。
以通过机械臂末端从任务空间中点A(12.607,0,6.144)直线运动到点B(7,-4,1)为例,根据目标点利用Transl函数进行两次平移变换,得到机械臂初始位置和终止位置的齐次变换矩阵。用函数Ctraj(T0,T1,N)和Plot3()规划出机械臂由点A运动到点B时的运动轨迹,给定仿真时间为10 s,时间间隔为0.1 s,总时间步数为102步。机械臂末端点空间位移运动轨迹如图4所示,机械臂末端点方向位移运动轨迹如图5所示,机械臂各关节角位移运动轨迹如图6所示。得到机械臂六个关节转角与时间的关系,即为联合仿真轨迹跟踪的期望曲线。
▲图4 机械臂末端点空间位移运动轨迹
▲图5 机械臂末端点方向位移运动轨迹
▲图6 机械臂各关节角位移运动轨迹
为有效对机械臂虚拟样机进行运动控制,以使机械臂能够准确按照作业任务运动,设计机械臂运动学控制流程,如图7所示。为了对各旋转关节位置进行精确控制,采用了比例积分微分位置控制策略。
▲图7 机械臂运动学控制流程
在SolidWorks软件中建立简化后的机械臂虚拟样机模型,以IGS格式保存文件。通过Adams/View窗口导入文件,在Adams软件中对导入的虚拟样机按照实际样机的属性进行编辑定义[15]。在机械臂各关节处添加旋转副约束和底座固定约束,保证模型各部件之间正确的相对运动关系,完成的机械臂虚拟样机模型如图8所示。为了有效实现Adams软件与Matlab软件的实时数据交换,建立输入输出状态变量。针对此机械臂,需建立关节控制力矩、关节角位移、机械臂末端点各方向位移的状态量。其中,各关节控制力矩与机械系统的输入变量关联,关节角位移和机械臂末端点各方向位移与输出变量关联。Matlab/Simulink控制程序与Adams软件虚拟样机模型相连,各个关节的实际关节角位置被实时反馈至闭环控制系统,作用在机械臂关节力矩上,实现关节角位置的实时跟踪。机械臂子系统模块中的期望关节角变量及相应的实际关节角变量见表2,表2中,angle1~angle5对应表1中的变量θ1~θ5。
▲图8 机械臂虚拟样机模型
表2 机械臂子系统变量
机械臂联合仿真控制系统通过机械臂的每个关节角位置误差获得驱动力矩来实现控制。在Matlab/Simulink软件中建立联合仿真控制系统模型,如图9所示。
▲图9 联合仿真控制系统模型
联合仿真系统搭建完成后,通过仿真调节比例积分微分控制器参数,利用位置偏差驱动机械臂各关节的位置控制,从而实现末端轨迹的准确跟踪。机械臂末端点各方向误差曲线如图10所示。机械臂关节角跟踪曲线仿真结果如图11所示。图11中,关节角较迅速地定位到指定位置,跟踪到给定轨迹,并能持续稳定地跟踪。通过Adams软件后处理得到机械臂各关节所需要的关节驱动力矩,如图12所示。机械臂关节驱动力矩平滑,数值合理。机械臂末端在Adams环境中运动轨迹如图13所示。
▲图10 机械臂末端点各方向误差曲线
笔者针对机械臂轨迹规划和运动控制问题,运用虚拟仿真技术,基于Adams软件与Matlab软件进行联合仿真,通过在Matlab软件机器人工具箱中对机械臂进行路径规划,遵循比例积分微分控制规律,得到机械臂运动特性,使机械臂末端运动轨迹得到精确控制。通过Adams环境,可以动态观看机械臂运动过程,并且获得机械臂关节驱动力矩和动力参数。笔者的研究结果可以为类似机械臂的设计与制作提供理论参考。
▲图11 机械臂关节角跟踪曲线
▲图12 机械臂各关节驱动力矩
▲图13 机械臂末端运动轨迹