Matlab机器人工具箱(番外篇)———机器人建立的任意方法


Matlab机器人工具箱(番外篇)———机器人建立的任意方法

  • 前言
  • 方法描述

前言 之前在Matlab机器人工具箱(1)——机器人的建立、绘制与正逆运动学中介绍了DH法和MDH建立机器人模型的方法,两种形式都很常用。但是这样有一个问题就是,对于一个机器人必须按照既定的格式建模,一步一步的建立DH坐标系,推导DH模型,形式上有些死板。本篇介绍RTB以任意的格式建立机器人模型的方法。
方法描述 对于一个串联机器人,无非就是一系列的平移旋转的变换,因此,可以任意在关节处建立坐标系,通过一系列关于关节角变量的平移/旋转变换推导机器人运动学。
例如,UR5机械臂的模型长这样:
Matlab机器人工具箱(番外篇)———机器人建立的任意方法
文章图片

我们不妨不按照DH方法建立坐标系,而选择一种最直观的方法,按照连杆的位置建模(rgb颜色的棒棒分别代表xyz轴):
Matlab机器人工具箱(番外篇)———机器人建立的任意方法
文章图片

这样,整个机械臂就可以看做,首先沿基坐标z轴向上移动0.0892mm,然后绕z轴旋转q1(即关节1的转动),得到坐标系1,然后,沿y轴移动0.13585,然后绕y轴旋转90°,最后绕y轴旋转q2,得到坐标系2,以此类推,一直推到tool坐标系就完成了。
这样通过RTB的另一种建模方法,即为:
L1 = 0.0892; L2 = 0.13585; L3 = -0.1197; L4 = 0.425; L5 = 0.39225; L6 = 0.093; L7 = 0.09465; s = 'Tz(L1) Rz(q1) Ty(L2) Ry(90) Ry(q2) Ty(L3) Tz(L4) Ry(q3) Tz(L5) Ry(90) Ry(q4) Ty(L6) Rz(q5) Tz(L7) Ry(q6)'; % 通过s的操作转化为DH参数 dh = DHFactor(s); dh.display; %建立机器人 cmd = dh.command('UR5'); UR5 = eval(cmd); UR5.teach();

可以和标准DH法对比:
clear; clc; close all; a = [0, -0.42500, -0.39225, 0, 0, 0]; d = [0.0892, 0, 0, 0.10915, 0.09465, 0.0823]; alpha = [1.570796327, 0, 0, 1.570796327, -1.570796327, 0]; for i = 1:6 L(i)=Link([0 d(i) a(i) alpha(i)]); L(i).qlim=[-2*pi,2*pi]; end UR5=SerialLink(L,'name','UR5'); UR5.teach();

【Matlab机器人工具箱(番外篇)———机器人建立的任意方法】最终得到的模型是一样的:
Matlab机器人工具箱(番外篇)———机器人建立的任意方法
文章图片

    推荐阅读