Chapter 1 Create a motion
% 一个机械臂由一组连杆组成,每个连杆均可以被DH参数描述,下面以两连杆为例。
% 第一组连杆
>> L1 = Link('d', 0, 'a', 1, 'alpha', pi/2)
L1 =
theta=q, d= 0, a= 1, alpha= 1.571, offset= 0 (R,stdDH)
% 该连杆DH参数可以查询方法为,L1.a/d等
>> L1.a
ans =
1
%除此以外,还可以判断其是否是旋转关节
>> L1.isrevolute
ans =
1
% 对于给定的关节角而言,以q=0.2rad为例,我们可以计算出连杆的变换矩阵,方法是L1.A(q)
>> L1.A(0.2)
ans =
0.9801 -0.0000 0.1987 0.9801
0.1987 0.0000 -0.9801 0.1987
0 1.0000 0.0000 0
0 0 0 1.0000
% 再建立第二根连杆
>> L2 = Link('d', 0, 'a', 1, 'alpha', 0)
% 然后,将两组连杆连接到一起
>> bot = SerialLink([L1 L2], 'name', 'my robot')
bot =
my robot (2 axis, RR, stdDH, fastRNE)
+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0| 1| 1.571| 0|
| 2| q2| 0| 1| 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
% 当然,以组合后的连杆,也有一组参数可以查询,如关节个数等
>> bot.n
ans =
2
% 当有给定的关节角时,可以以此为基础,计算机械臂末端的位姿,这里以q1=0.1,q2=0.2为例进行说明,采用了fkine函数计算
>> bot.fkine([0.1 0.2])
ans =
0.9752 -0.1977 0.0998 1.9702
0.0978 -0.0198 -0.9950 0.1977
0.1987 0.9801 0.0000 0.1987
0 0 0 1.0000
% 作为机械臂连杆,可以用plot、animate、teach等方法,以图形方式展现
>> bot.plot([0.1 0.2])