matlab实现5自由度雄克机器人的运动仿真

任务

使用 matlab 的 robotics toolbox 完成5自由机械臂的建模与运动学仿真。并计算8个点的运动轨迹并绘制运动动画动画。

第一步 DH建模

首先,我们先来分析机器人的图纸,来建立一下机器人的DH参数。

机器人配置

机器人包含5个关节

我们建立以下的DH参数表。

连杆 a i − 1 a_{i-1} ai1 α i − 1 \alpha_{i-1} αi1 d i d_i di θ i \theta_i θi
0000 θ 1 \theta_1 θ1
10 π / 2 \pi/2 π/2L1 θ 2 \theta_2 θ2
20 − π / 2 -\pi/2 π/20 θ 3 \theta_3 θ3
30 π / 2 \pi/2 π/2L2 θ 4 \theta_4 θ4
40 − π / 2 -\pi/2 π/20 θ 5 \theta_5 θ5

连杆的参数建完之后,我们写一下代码,在matlab中看看效果

发现我们末端执行器没有,这怎么办呢?

我们需要为SerialLink 指定一下 tool

发现末端执行器反方向了,我们把Link5的方向调整一下,增加一个offset,转180°。

这时候发现已经大致和我们想要的模型差不多了

但在坐标上还存在一下差别。

我们给机器人转个方向,通过设置base来完成,也可以通过给Link1添加一个offset来实现

在把Link5的关节转一下,通过设置Link4offset来实现

最后我们在把机械臂末端的坐标系转到与世界坐标系平行的形式

这样就得到了和题目中一样的方式了。

第二步 绘制目标点

这一步就很简单,我们只需要 将 问题中的目标点绘制出来就行,通过一个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自由度雄克机械臂代码

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
自由度Stewart并联机器人是一种具有六个独立自由度机器人系统,由一个固定底座和一个移动平台组成,通过六个伺服驱动的液压缸连接底座和平台,可以实现平移和旋转等各种自由度运动。 在Matlab中可以使用Simulink和Simscape工具箱进行六自由度Stewart并联机器人仿真。首先,通过Simulink构建六个伺服系统分别控制六个液压缸的运动,设置液压缸的位移作为输入,输出平台的位姿信息。根据机器人运动学模型,可以将平台的位姿信息转换为底座的位姿信息,并通过图像显示器显示机器人运动轨迹。 为了实现仿真,需要创建并联机器人的模型,将其物理特性建模并导入到Simscape环境中。然后,使用控制器模块实现机器人运动和姿态控制。可以选择PID控制器或模糊控制器等方法进行控制算法的设计。在仿真过程中,根据输入的控制信号,模拟机器人运动,观察机器人运动轨迹和姿态变化。 通过Matlab仿真,可以对六自由度Stewart并联机器人运动性能进行评估和优化设计。可以调整控制算法的参数,改变机器人运动方式,以满足特定的任务需求。同时,还可以通过仿真数据进行后续控制器设计和路径规划等工作。 总之,利用Matlab的Simulink和Simscape工具箱进行六自由度Stewart并联机器人仿真,可以帮助工程师和研究人员更好地理解并联机器人运动特性,并优化其控制算法,提高机器人的性能和运动精度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Craipy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值