在完成机器人的建模以及运动学分析之后,可以利用Matlab中的Robotics工具箱进行仿真。
本篇目录
一、工具箱下载二、机器人建模仿真三、机器人运动学计算仿真四、小结一、工具箱下载
要在Matlab里进行机器人相关的仿真,首先需要下载Matlab Robotics工具箱,具体的下载及安装方法网上有很多,这里有一篇文章也可以参考一下:
/p/364502466
我自己用的Matlab b,对应工具箱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代码。
六自由度机器人(机械臂)运动学建模及运动规划系列(三)——机器人建模及运动学分析的Matlab仿真