概述
任务
使用 matlab 的 robotics toolbox
完成5自由机械臂的建模与运动学仿真。并计算8个点的运动轨迹并绘制运动动画动画。
第一步 DH建模
首先,我们先来分析机器人的图纸,来建立一下机器人的DH参数。
机器人包含5个关节
我们建立以下的DH参数表。
连杆 | a i − 1 a_{i-1} ai−1 | α i − 1 alpha_{i-1} αi−1 | d i d_i di | θ i theta_i θi |
---|---|---|---|---|
0 | 0 | 0 | 0 | θ 1 theta_1 θ1 |
1 | 0 | π / 2 pi/2 π/2 | L1 | θ 2 theta_2 θ2 |
2 | 0 | − π / 2 -pi/2 −π/2 | 0 | θ 3 theta_3 θ3 |
3 | 0 | π / 2 pi/2 π/2 | L2 | θ 4 theta_4 θ4 |
4 | 0 | − π / 2 -pi/2 −π/2 | 0 | θ 5 theta_5 θ5 |
连杆的参数建完之后,我们写一下代码,在matlab中看看效果
发现我们末端执行器没有,这怎么办呢?
我们需要为SerialLink
指定一下 tool
发现末端执行器反方向了,我们把Link5
的方向调整一下,增加一个offset
,转180°。
这时候发现已经大致和我们想要的模型差不多了
但在坐标上还存在一下差别。
我们给机器人转个方向,通过设置base
来完成,也可以通过给Link1
添加一个offset
来实现
在把Link5
的关节转一下,通过设置Link4
的offset
来实现
最后我们在把机械臂末端的坐标系转到与世界坐标系平行的形式
这样就得到了和题目中一样的方式了。
第二步 绘制目标点
这一步就很简单,我们只需要 将 问题中的目标点绘制出来就行,通过一个for
循环就能实现。
第三步 逆运动学
逆运动学就是已知机器人末端的位姿,然后反解 机器人的关节角度。
robotics toolbox
提供了六自由度机械臂的反解函数ikine
,但是并不是所有情况都能求出反解的。我们这里面只有5自由度,所以在反解时一定要给定 mask
。
由于我们只有末端的位置,但反解需要末端的位姿,所以我们通过 transl
函数构建末端的位姿矩阵,默认位姿矩阵与世界坐标系平行的。
然后可以通过逆运动学计算出来机器人的关节角组成的向量。
我们测试一下 让机器人反解出第一个目标位置的关节角,并绘制机器人的各个关节
发现没有问题。
第四步 运动轨迹
我们使用jtraj
函数
jtraj计算两点之间一个关节(joint)的空间轨迹。
[Q,QD,QDD]=jtraj(Q0,QF,M)是一个joint空间轨迹Q(MxN)。其中joint 坐标从Q0 (1xN)变到 QF (1xN)。它使用具有0边界条件的5阶quintic多项式(http://en.wikipedia.org/wiki/Quintic_function)来表示速度和加速度。
该函数假定时间从0变到1,共经过M步。它将轨迹返回到Q中,速度和加速度返回到QD和QDD中,它们都是MxN矩阵,每个时间步长一行,每个joint一列。
[Q,QD,QDD] = jtraj(Q0, QF, M, QD0, QDF)在上述基础上指定轨迹的始终关节速度。
[Q,QD,QDD] = jtraj(Q0, QF, T) 同上但轨迹长度由时间矢量长度T (Mx1)定义。
[Q,QD,QDD] = jtraj(Q0, QF, T, QD0, QDF) 同上但指定轨迹的始终关节速度以及时间矢量。
计算出轨迹之后,我们再利用 机器人的plot
绘制机器人的运动动画。
最终效果就是这个样子了。
完整代码查看
matlab仿真5自由度雄克机械臂代码
最后
以上就是和谐棉花糖为你收集整理的matlab实现5自由度雄克机器人的运动仿真任务第一步 DH建模第二步 绘制目标点第三步 逆运动学第四步 运动轨迹的全部内容,希望文章能够帮你解决matlab实现5自由度雄克机器人的运动仿真任务第一步 DH建模第二步 绘制目标点第三步 逆运动学第四步 运动轨迹所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复