六自由度机器人(机械臂)运动学建模及运动规划系列(三)——机器人建模及运动学分析的Matlab仿真

在完成机器人的建模以及运动学分析之后,可以利用Matlab中的Robotics工具箱进行仿真。

一、工具箱下载

要在Matlab里进行机器人相关的仿真,首先需要下载Matlab Robotics工具箱,具体的下载及安装方法网上有很多,这里有一篇文章也可以参考一下:
https://zhuanlan.zhihu.com/p/364502466
我自己用的Matlab 2018b,对应工具箱10.2版本,有需要的可以点击下载:
机器人工具箱Robotic tools 10.2版本

二、机器人建模仿真

这是利用Matlab进行建模的代码:

clear;
close all;
clc;
huan=10^-3;
H=pi/180;
theta1 = 0;   D1 = 430*10^-3;   A1 = 0    ; alpha1 = 0;    offset1 = 0;
theta2 = 0;   D2 = 0;     A2 = 100*10^-3;  alpha2 = pi/2;    offset2 = 0;
theta3 = 0;   D3 = 0;     A3 = 650*10^-3; alpha3 = 0; offset3 = 0;
theta4 = 0;   D4 = 700*10^-3;   A4 = 0;     alpha4 = pi/2; offset4 = 0;
theta5 = 0;   D5 = 0;     A5 = 0;     alpha5 = -pi/2; offset5 = 0;
theta6 = 0;   D6 = 0;     A6 = 0;     alpha6 = pi/2;    offset6 = 0;
L(1) = Link([theta1, D1, A1, alpha1, offset1], 'modified');
L(2) = Link([theta2, D2, A2, alpha2, offset2], 'modified');
L(3) = Link([theta3, D3, A3, alpha3, offset3], 'modified');
L(4) = Link([theta4, D4, A4, alpha4, offset4], 'modified');
L(5) = Link([theta5, D5, A5, alpha5, offset5], 'modified');
L(6) = Link([theta6, D6, A6, alpha6, offset6], 'modified');

robot0 = SerialLink(L,'name','kwa');
Theta=[pi,0.523598775598299,-0.109781209950443,0,0.413817565647856,0];

figure(1);
robot0.plot(Theta);
robot0.teach;

对于代码,有几个注意的点:
(1)Link函数里的六个变量:前四个表示每个连杆的四个连杆参数;第五个代表关节形式。0代表旋转关节;最后的’modified’代表采用改进D-H法建模,如果用标准D-H法的话,可不写这一项。
(2)robot0.plot为展示给定关节角下机器人运动状态的命令;;robot0.teach;为展示示教界面的命令。
给定关节角,机器人的运动状态界面如下:
在这里插入图片描述
加入示教命令后,界面如下:
在这里插入图片描述
其中,左下角为示教器,可调节各个关节角度,左上角为机械臂末端的位姿,包括末端位置及表示姿态的RPY角。

三、机器人运动学计算仿真

在Matlab里,有两个函数,可以进行机器人正逆运动学的计算,即fkine与ikine函数,前者为正运动学,后者为逆运动学。使用格式为:

T=robot0.fkine(Theta);
theta=robot0.ikine(T);

其中,第一个theta为给定的关节角向量,得到的T转换矩阵,不过以SE3的结构体形式存储。
要处理这个类型的变量,可以使用如下命令:

TT=T.T

得到的TT矩阵便为四乘四的矩阵。
这里要注意的是
ikine函数仅可以得到一组逆解,如果想要完整求出所有逆解,还是要自己求出解析解的表达式,然后编程计算。

四、小结

本篇介绍了使用Matlab进行机器人建模及正逆运动学计算的仿真过程,提供了Matlab代码。

  • 11
    点赞
  • 207
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
首先,需要定义机械臂的几何参数,包括关节长度、关节角度、末端执行器的位置和姿态等。然后,可以使用正向运动学方法计算末端执行器的位置和姿态,也可以使用逆向运动学方法计算关节角度。 以下是一个简单的四自由度机械臂运动学仿真的示例: 假设机械臂的四个关节长度分别为 L1、L2、L3、L4,关节角度分别为 θ1、θ2、θ3、θ4,末端执行器的位置和姿态为 (x, y, z, α, β, γ)。 正向运动学方法: 根据机械臂的几何参数和关节角度,可以计算出末端执行器的位置和姿态,具体方法如下: 1. 计算第一关节到第二关节的变换矩阵 T1_2: T1_2 = DH(L1, 0, 0, θ1) 其中 DH(d, θ, a, α) 表示 DH 参数,表示从前一个坐标系到后一个坐标系的变换矩阵。 2. 计算第二关节到第关节的变换矩阵 T2_3: T2_3 = DH(L2, 0, 0, θ2) 3. 计算第关节到第四关节的变换矩阵 T3_4: T3_4 = DH(L3, 0, 0, θ3) 4. 计算第四关节到末端执行器的变换矩阵 T4_5: T4_5 = DH(L4, 0, 0, θ4) 5. 计算从基坐标系到末端执行器坐标系的变换矩阵 T0_5: T0_5 = T1_2 * T2_3 * T3_4 * T4_5 6. 根据 T0_5 可以计算出末端执行器的位置 (x, y, z) 和姿态 (α, β, γ): x = T0_5(1, 4) y = T0_5(2, 4) z = T0_5(3, 4) α = atan2(T0_5(2, 1), T0_5(1, 1)) β = atan2(-T0_5(3, 1), sqrt(T0_5(3, 2)^2 + T0_5(3, 3)^2)) γ = atan2(T0_5(3, 2), T0_5(3, 3)) 逆向运动学方法: 根据末端执行器的位置和姿态,可以计算出关节角度,具体方法如下: 1. 根据末端执行器的位置和姿态,可以计算出第四关节的位置和姿态: T0_4 = inv(T4_5) * T0_5 其中 inv(T) 表示矩阵 T 的逆矩阵。 2. 根据第四关节的位置和姿态,可以计算出关节角度 θ4: θ4 = atan2(T0_4(2, 3), T0_4(1, 3)) 3. 根据第二、、四关节的位置和姿态,可以计算出第一关节到第四关节的变换矩阵 T1_4: T1_4 = inv(T1_2) * inv(T2_3) * inv(T3_4) * T0_4 4. 根据 T1_4 可以计算出关节角度 θ1、θ2、θ3: θ1 = atan2(T1_4(2, 1), T1_4(1, 1)) θ2 = atan2(sqrt(1 - T1_4(3, 1)^2), T1_4(3, 1)) θ3 = atan2(T1_4(3, 2), T1_4(3, 3)) 以上就是一个简单的四自由度机械臂运动学仿真的示例,可以根据实际需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菠萝爱吹雪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值