MATLAB在机器人技术教学改革中的探索
2021-03-25郭建
郭 建
(华南理工大学广州学院机械工程学院 广东·广州 510800)
0 引言
机器人的位置和姿态称为位姿。位姿的数学描述是表达机器人的线速度、角速度、力和力矩的基础,坐标变换是研究不同坐标系中的机器人位姿关系的重要途径。当得到位姿的描述以后,就可以利用各关节位姿之间的关系来描述机器人的整个运动链,进而得到机器人的基坐标系和末端坐标系之间的关系。机器人运动学的计算主要围绕两个问题进行展开,机器人正逆运动学,两者是机器人运动学的核心。机器人的正运动学是已知或者给定一组关节角,计算出工具坐标系相对于基坐标系的位置和姿态,也就是求解机器人末端执行器的位姿。机器人的逆运动学是给定机器人末端执行器的位置和姿态,计算所有可到达指定位置和姿态的关节角。
1 传统教学存在的问题
在进行机器人运动学教学过程中,通常以四足机器人或者六轴关节机器人作为实际分析对象机器人模型如图1所示,外观尺寸长×宽×高为:300mm×250mm×263mm。
图1:整体结构
图2:D-H坐标系
机器人腿部处于摆动相时,机器人的腿部结构可以看成一串转动关节连接的刚体连杆构成,基体坐标系{O}建立在机器人腿部侧摆转动关节轴处;OX轴正向是机器人运动方向的相反方向;OY轴方向是与重力方向平行;OZ轴方向用右手法则判定。利用 D-H方法建立的坐标系如图2所示。是相应关节的转动角度变量,L1是基坐标系原点到坐标系{2}原点之间的距离,L2、L3是大腿与小腿的等效长度。右前腿的D-H参数如表1所示。
表1:右前腿D-H参数表
根据表1中的参数,可以得到如下变化矩阵:
(1)数学计算量较大,对于应用型本科院校的学生来讲,对于以上公式的理解比较费劲。
(2)对学生的线性代数基础知识要求很高。
(3)很多学生以为又是线性代数的计算,每天忙着记忆公式,对公式不理解。
(4)对实际的机器人运动学分析无从着手,只知道对着公式计算,参数有时候对应不上。
2 MATLAB在机器人运动学的应用
在MATLAB的机器人工具箱中,可以实用两种函数实现坐标的旋转可视化,函数trplot()可以用图形表示相应的体坐标系,函数tranimate()用动画展示世界坐标系旋转为体坐标系的过程。这两个功能可以有助于学生看清楚坐标旋转的过程,以及旋转之后新坐标系和旧坐标系的位置关系。
笔者在实际的教学过程中发现,旋转矩阵的物理含义是学生最难理解的地方,对于矩阵的理解很容易,但是经过几旋转后的计算就会变得很繁琐,在计算过程很容易出错。在MATLAB的机器人工具箱中,3X3的旋转矩阵可以用rotx()、roty()、rotz()来计算。T=rotx(pi/6)表示围绕 X 轴旋转 30°得到的旋转矩阵。机器人工具箱分别提供了trotx()、troty()、trotz()三个函数计算4X4的齐次变换矩阵,分别对应X轴,Y轴,Z轴旋转一定的角度,比如图1的坐标系o'-XYZ绕着o-XYZ的X轴旋转30°。则旋转矩阵可以直接表示为T0=trotx(pi/6)。对于平移坐标变换,机器人工具箱提供了函数transl()。
对机器人的运动学方程求解,是一个非线性的问题。目前主要分为两类:数值解和封闭解。笔者在实际教学中发现吗,学生在进行数学公式推导过程中,很容易出现厌学,觉得机器人运动学枯燥的情况。在MATLAB的机器人工具箱中,封闭解使用ikine6s()完成,这个只适用于关节数为6,且腕部三个旋转关节相交于一点的情况。数值解使用ikine()完成,它适用各种关节数目的机械臂通过设定初始的关节角坐标对机械臂运动学配置进行隐藏式控制。
D-H建模方法是使用连杆参数来描述机构运动关系。一个长度不为零的连杆的两端连接了两个关节,连杆的运动学功能在于保持两端关节轴线之间固定的几何关系。关节轴线i-1和关节轴线i的公法线长度用表示,关节轴线i-1和关节轴线i的夹角用表示;关节i上的两条公法线ai与ai-1之间的距离用di表示;连杆i相对于连杆i-1绕轴线i的旋转角度,绕关节轴线i测量,用表示。在MATLAB机器人工具箱中,还用变量表示机器人的关节类型,其中=0表示转动关节,=1表示移动关节。在MATLAB的机器人工具箱中,用函数Link()可以创建一个机械臂对象,其中输入参数的顺序分别是关节角、连杆偏距di、连杆长度ai-1、连杆转角、关节类型。利用MATLAB同样可以完成机器人的数学建模个计算,部分代码如下。在MATLAB中利用D-H参数法建立的机械臂如图3所示。
图3:MATLAB建立D-H坐标系
3 教学效果
在2020-2021第一学期的机器人技术教学中,前两周利用传统教学方法进行教学,前期学生反馈比较多的就是公式计算麻烦,不理解公式,只会计算例题,从第三周开始引入MATLAB进入课堂,很多学生对运动学计算的物理含义开始逐渐清晰。对于旋转和平移的计算超过80%的学生没有障碍,部分学生开始对六足机器人和康复机器人进行运动学分析,有一组学生基于机器人的运动学计算申请了广东省大学生攀登计划,用于分析上肢康复机器人。引入MATLAB进入课堂能较好地激发学生的学习兴趣,本次期末考试中,全班同学51人,只有两人挂科,取得了较好的教学效果。