1. 程式人生 > >機器人工具箱 V9.10(Robotics Toolbook) (1):建立機器人模型

機器人工具箱 V9.10(Robotics Toolbook) (1):建立機器人模型

機器人學工具箱(Robotics Toolbook for Matlab) 是matlab中專門用於機器人模擬的工具箱,在機器人建模、軌跡規劃、控制、視覺化方面使用非常方便。

建立機器人的兩個最重要的函式是:Link和Seriallink

Link類

Link 物件包括連桿的各種屬性:運動學引數、慣性張量、電機、傳遞矩陣等
Link 的類函式:
A :關節傳動矩陣
RP :關節型別
friction : 摩擦力
nofriction : 摩擦為0
dyn : 顯示動力學引數
islimit:檢測關節變數是否超出範圍
isrevolute : 檢測關節是否為轉動關節
isprismatic : 檢測關節是否為移動關節
display : 顯示D-H矩陣
char : 轉化為字串

Link 的類屬性(讀/寫):
theta:D-H引數
d:D-H引數
a:D-H引數
alpha:D-H引數
sigma: 預設0,旋轉關節;1,移動關節
mdh: 預設0,標準D-H;1,改進D-H
offset:關節變數偏移量
qlim:關節變數範圍

m: 質量
r: 質心
I: 慣性張量
B: 粘性摩擦
Tc: 靜摩擦
G: 減速比
Jm: 轉子慣量

例如:定義連桿

L =link('d',1.2,'a', 0.3,'alpha',pi/2,'offset',pi/2,‘mdh’,1,'qlim',[-pi,pi],'m',0.5,'r',[0 0 0.05],'I'
,[0.001 0 0; 0 0.001 0; 0 0 0.05]); b1=isrevolute(L); %判讀L是否為旋轉連桿 b2= L.d; %讀取L連桿的長度

Seriallink 的類函式:
類函式比較多,包括顯示機器人、動力學、逆動力學、雅可比等,用的最多的是:SerialLink 和 plot,用來顯示機器人

R=SerialLink(links, options);
R.plot(theta);

Seriallink 的類屬性(讀/寫):
links :連桿向量
gravity :重力加速度
base :基座標系
tool:與基座標系的變換矩陣
qlim :關節極限位置
offset :關節偏移量
name :機器人的名字
manuf :製造者的名字
comment: 註釋

Seriallink 的類屬性(讀):
n :關節數
config: 關節配置,如‘RRRRRR’
mdh :D-H矩陣型別
theta :D-H引數
d :D-H引數
a :D-H引數
alpha: D-H引數

建立機器人

首先用Link建立連桿,再用SerialLink建立機器人,最後用plot顯示機器人。

clear;
clc;
L1 = Link('d', 0, 'a', 0, 'alpha', pi/2);
L2 = Link('d', 0, 'a', 0.5, 'alpha', 0,'offset',pi/2);
L3 = Link('d', 0, 'a', 0, 'alpha', pi/2,'offset',pi/4);
L4 = Link('d', 1, 'a', 0, 'alpha', -pi/2);
L5 = Link('d', 0, 'a', 0, 'alpha', pi/2);
L6 = Link('d', 1, 'a', 0, 'alpha', 0);
b=isrevolute(L1);  %Link 類函式
robot=SerialLink([L1,L2,L3,L4,L5,L6]);   %SerialLink 類函式
robot.name='帶球形腕的擬人臂';
robot.comment='飄零過客';
robot.display();  %Link 類函式
theta=[0 0 0 0 0 0];
robot.plot(theta);   %SerialLink 類函式

在 Matlab 的命令列視窗中顯示 display 的結果:

robot = 

帶球形腕的擬人臂 (6 axis, RRRRRR, stdDH, fastRNE)                        
 飄零過客;                   
+---+-----------+-----------+-----------+-----------+-----------+
| j |     theta |         d |         a |     alpha |    offset |
+---+-----------+-----------+-----------+-----------+-----------+
|  1|         q1|          0|          0|      1.571|          0|
|  2|         q2|          0|        0.5|          0|      1.571|
|  3|         q3|          0|          0|      1.571|     0.7854|
|  4|         q4|          1|          0|     -1.571|          0|
|  5|         q5|          0|          0|      1.571|          0|
|  6|         q6|          1|          0|          0|          0|
+---+-----------+-----------+-----------+-----------+-----------+

grav =    0  base = 1  0  0  0   tool =  1  0  0  0              
          0         0  1  0  0           0  1  0  0              
       9.81         0  0  1  0           0  0  1  0              
                    0  0  0  1           0  0  0  1              

plot 的圖形為:
這裡寫圖片描述

引數說明

display 顯示的結果中,除了D-H引數外,還有三個矩陣,grav,base,tool
grav,重力加速度向量
base,基座標的齊次矩陣,正常情況下,豎直方向Z軸(看重力加速度向量),如上圖所示。但有些機器人的基座標系豎直方向不是Z軸(如下圖,兩連桿機械臂),基座標矩陣就是機械臂的基座標系與plot圖的預設座標系之間的變換關係。如果不改變base座標,那麼就要改變grav向量的值了。
tool,指工具座標系和末端連桿的座標系之間的變換矩陣。一般情況下是重合的。
這裡寫圖片描述

參考

Peter Corke,Robotics Toolbox for MATLAB Release 9(Version,9.10),2015.02
P.I. Corke, Robotics, Vision & Control: Fundamental Algorithms in MATLAB.Springer, 2011.