機器人工具箱 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 的類函式:
類函式比較多,包括顯示機器人、動力學、逆動力學、雅可比等,用的最多的是: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.