上一篇文章介绍了matlab的基本使用和机器人工具箱提供的基本接口,本章将具体的机器人模型搭建以及过程中遇到的一些坑,其他的博文都介绍的是转动关节的模型搭建,本文将介绍直角坐标式机器人模型的搭建,即有转动关节又有移动关节。
建模
- 龙门焊接机器人的原图如下所示,这里使用的是武汉蓝讯的龙门式焊接机器人。
文章图片
- 运动模型和坐标系如下图所示,所有坐标系都建在O点位置。
文章图片
- D-H参数表如下图所示:
文章图片
- 确定了D-H参数以后,直接建模,如下图所示,display接口调用成功,打印了参数表信息,但是调用teach成功出现示教的模型图。
文章图片
- 但是这种建模方式建立的模型不能够按照要求方向正确的运行,推测是Matlab建模方式的和我所理解的有区别。因此,需要对Matlab的建模方式进行研究。
参考:
1.标准DH和改进DH的区别
2.机械臂的坐标系与数学模型:传说中的DH参数
3.建立DH模型的三种方法以及区别
4.基于MATLAB机器人工具箱的KUKA youBot机械臂运动学建模——DH法
DH参数法在Matlab中也分为标准DH和改进DH,默认情况下Matlab使用的是SDH的方法,其中主要包含的四个参数如下:
- θ:表示绕Z轴的旋转角
- d:表示Z轴上两条相邻的公垂线的距离(关节偏移)
- a:表示每一条公垂线的长度(连杆长度)
- α:表示相邻Z轴之间的角度(扭角)
- 一般只有θ和d是变量。
文章图片
SDH法建模步骤:(n从0开始,且按照顺序,在i关节上安i-1坐标系,坐标系建在连杆尾端)
- θn+1 = 绕Zn轴,从Xn转动到Xn+1的角度。
- dn+1 = 沿Zn轴,使得Xn移动到Xn+1的距离。
- an+1 = 沿Xn轴,使得坐标系原点重合所移动的距离
- αn+1 = 绕Xn+1轴,从Zn转动到Zn+1的角度。
MDH法建模步骤:(n从1开始,且按照变换的顺序,在关节i上安装i坐标系,坐标系建在连杆的首端)
- an = 沿Xn轴,从Zn移动到Zn+1的距离。
- αn = 绕Xn轴,从Zn转动到Zn+1的角度。
- dn = 沿Zn轴,从Xn-1移动到Xn的距离。
- θn = 绕Zn轴,从Xn-1转动到Xn的角度。
文章图片
维基百科对比图:
文章图片
- Matlab中DH参数建模顺序都是[theta d a alpha],当建模为MDH方式时,a和alpha的下标是i-1。
- 找出各个关节,并标出这些轴线的延长线。
- 找出关节i和i+1之间的公垂线或者关节轴i和i+1的交点,关节轴i和i+1的交点或垂线与关节轴i的交点作为连杆坐标系的原点。
- 规定Z轴沿着关节方向。
- 规定X轴沿着公垂线的方向,如果关节轴i和i+1相交,则规定X轴垂直于关节轴i和i+1所在的平面。
- 按照右手定则确定Y轴。
- 当第一个关节变量为0时,规定坐标系{0}和{1}重合。对于坐标系{N}。其原点和X方向可以任意的选取,但是尽量使得连杆参数为0.
文章图片
- 由于本文使用的机器人是五轴的机器人,Matlab中的反解结果是默认是6个自由度的机器人。对于小于6个自由度的机器人,需要另外在SerialLink提供的ikine实现中改变选项的mask值,目标是几个轴的就将mask中的值设置为1.否则会报出Number of robot DOF must be >= the same number of 1s in the mask matrix的错误。
文章图片
推荐阅读
- 伺服电机控制
- Matlab|Matlab——KUKA机器人
- 机器人基础——为什么要坐标变换
- Matlab|Matlab——robotics toolbox
- Matlab Robotics 逆运动学求解函数(ikine)分析
- 控制系统|基于重力补偿的 PD 控制
- 机器人|matlab机器人工具箱