在完成机器人的建模以及运动学分析之后,可以利用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代码。