张 卓,冯海杰,邓振杰
(广东科学技术职业学院 机器人学院,广东 珠海 519090)
Simscape Multibody是集成在Matlab/Simulink为三维机械系统(例如机器人)提供多体仿真环境的扩展工具箱[1]。通过工具箱可以构建刚体、关节、传感器等模块的连接关系,从而对机械动力系统进行建模,也可以在模型中导入包括质量、惯性、三维几何图形等属性的CAD组件,自动生成三维动画。
SCARA是现代工业中广泛应用的一种机器人,第一台SCARA机器人于1978年由日本山梨大学研制[2]。由于SCARA采用RRPR型结构(Revolute Revolute Prismatic Revolute),其具有结构紧凑、高速度、高精度等优势,常用于执行速度和精度要求较高的轻量型作业,如产品质量检测、螺丝拧紧、电子元件组装、钻孔、攻丝、倒角、去毛刺、抛光等。近年来,国内外学者针对SCARA的各项性能指标已经进行了较为全面的研究,文献[3]对四自由度SCARA的正、逆运动学进行了研究;文献[4]使用Solidworks和Simmechanics(较早版本的Multibody)对SCARA机器人进行建模和动力学仿真;文献[5]通过研究大量文献资料,总结了用于量化机器人动作和性能的各种指标的范围和优缺点。
本文的主要工作是对SCARA建模与运动控制仿真方法进行了完善与优化。建模和仿真主要分为3个阶段,首先,利用Multibody工具创建SCARA动力学模型;然后导入CAD组件;最后进行仿真,输出动态参数。
利用Solidworks等CAD设计软件可以绘制SCARA模型,参考IRB910-450型SCARA机器人,得到SCARA模型如图1所示。其参数见表1。
表1 IRB910-450参数值
图1 SCARA结构正视图
Multibody是基于Matlab/Simulink的多体运动机构仿真工具箱。Multibody可以通过连接并设置刚体、关节、约束、力元等条件来进行多体运动机构建模,可以通过导入CAD组件并在Mechanics Explorer中自动生成三维动画,使仿真输出更加形象与直观。可以将SCARA机器人机构拆解为3类功能模块:仿真环境、机器人转动关节和机器人滑动关节。
仿真环境模块组成如图2所示,此功能模块包括世界参考坐标系、仿真参数配置以及解法器,是Multibody的基本配置。
图2 仿真环境模块
机器人转动关节如图3所示,此功能模块包括刚体坐标系变换、转动关节和关节零部件,在转动关节中输入扭矩tin,可以获得关节的转动角度q、角速度w、角加速度b以及输出扭矩tout。
图3 机器人转动关节模块
机器人滑动关节如图4所示,此功能模块构成与机器人转动关节相似,包括刚体坐标系变换、滑动关节和关节零部件,在滑动关节中输入力fin,可以获得关节的滑动距离p、速度v、加速度a以及输出力fout。
图4 机器人滑动关节模块
上述功能模块中,端口Conn表示世界参考坐标系的原点,端口B表示模块的基础坐标系,端口F表示模块的跟随坐标系,关节的输入扭矩或力由控制器给定,各项输出则用于反馈给控制器并由信号采集模块将数据传递至Matlab Workspace进行数据分析。
根据上述结论,利用上述功能模块容易得到SCARA动力学模型,如图5所示。其中Base为机器人基座(可连接外轴模块)、Link1-4为机器人刚体组件(Link4可连接治具模块以及载荷模块)。
将图1所示CAD模型导入图5所示仿真模型,可以在Mechanics Explorer中得到带有动力学参数的SCARA模型,如图6所示。
图5 利用功能模块建立SCARA机器人模型
图6 带有动力学参数的SCARA模型
为使该SCARA模型可以进行运动仿真,SCARA模型外围至少应当包含轨迹规划模块和控制器模块,为了对仿真结果进行分析,还应当包含信号采集模块。各个模块的信号关系如图7所示。模型提供了丰富的接口,整体采用模块化的建模方法,使得其能够重复高效使用,便于扩展算法模块和创建机器人模型结构。轨迹规划模块可以通过添加不同的插值算法生成机器人动态目标参数,可以将动态参数传递给控制器以验证控制算法的有效性,也可以将目标参数直接传递给机器人从而获得机器人各个关节的所需实时扭矩或力(需要简单修改机器人关节模块,以旋转关节为例,修改后的关节模型如图8所示),用以验证该轨迹参数的可实现性。控制器模块依照算法计算得出需要为每一个关节添加的驱动信号,可以通过仿真验证控制算法的有效性。故该模型实际上提供了一个可以用于机器人轨迹规划以及运动控制算法研究的仿真平台,且具有较高的通用性。
图7 SCARA模型信号关系示意图
图8 输入信号为目标动态参数的机器人转动关节模块
在关节空间中对机器人各关节角度(距离)变量进行线型插值轨迹规划,在控制器模块使用PID控制,利用Tune功能设置系统响应时间和暂态特性获得的参数进行仿真,可以得到全部仿真数据,同时在Mechanics Explorer自动生成机器人运动的三维可视动画。根据信号采集模块输出数据,利用Matlab进行绘图,SCARA模型在PID控制下,针对关节空间线型插值轨迹进行的运动过程仿真结果如图9所示(SCARA所规划的轨迹为机器人末端执行器由起点出发,经过进出点1后抵达工作点1,再返回进出点1,然后经过进出点2后抵达工作点2,再返回进出点2,仿真结束)。
图9 SCARA目标轨迹与运动仿真轨迹
本文提出了一种利用Simscape Multibody对SCARA机器人进行模块化建模和运动控制仿真的方法。针对SCARA机器人,通过设定机器人关键结构参数,并将CAD模型导入,可以得到SCARA动力学模型。然后通过集成轨迹规划、控制器和数据采集功能模块,完成该SCARA运动仿真模型。
该模型利用Multibody简化了机器人动力学建模过程,具备一定的通用性,易扩展,可以通过改变或增减关节组合创建其他型号的机器人动力学模型。模型的运动控制仿真通过Mechanics Explorer自动生成动画,可以准确输出机器人运动状态。通过数据采集模块获取动态参数,同时提供了机器人轨迹规划模块和控制器模块(该模型不包含电机,控制器模块输出驱动信号为转矩或角位移,可以使用文献[6]的方法在控制器模块中添加伺服电机仿真模块)的接口,便于进行机器人轨迹规划或运动控制算法等方面的后续研究。