Link 对象包括连杆的各种属性:运动学参数、惯性张量、电机、传递矩阵等
Link 的类函数:
信息/显示方式:
display : 显示连杆参数表格
dyn : 显示动力学参数
type: 关节类型:‘R’或者’P’
转换方式:
char : 转化为字符串
运算方式:
A :关节传动矩阵
friction : 摩擦力
nofriction : 摩擦为0
测试方式:
islimit:检测关节变量是否超出范围
isrevolute : 检测关节是否为转动关节
isprismatic : 检测关节是否为移动关节
issym: 检测关节和连杆是否有符号参数
Link 的类属性(读/写):
运动学:
theta: 关节角
d: 连杆偏移量
a: 连杆长度
alpha:连杆转角
mdh: 默认0,SDH;1,MDH
offset:关节变量偏移量
qlim:关节变量范围[min max]
动力学:
m: 质量
r: 质心
I: 惯性张量
B: 粘性摩擦
Tc: 静摩擦
G: 减速比
Jm: 转子惯量
类函数比较多,包括显示机器人、动力学、逆动力学、雅可比等
Seriallink 的类函数:
显示/画图方式:
animate: 动画机器人模型
display: 显示连杆参数表格
dyn: 显示动力学参数
edit: 显示和编辑运动学与动力学参数
getpos: 获取机器人图形位置
plot: 显示机器人模型
plot3d: 显示机器人3d模型
teach: 驱动机器人模型
显示/画图方式:
islimit: 检测机器人是否超出范围
isconfig: 检测机器人关节结构属性
issym: 检测关节和连杆是否有符号参数
isprismatic: 检测是否移动关节
isrevolute: 检测是否转动关节
isspherical: 检测是否为球关节
转换方式:
char : 转化为字符串
sym: 转化为符号参数
todegrees: 关节角转化为角度
toradians: 关节角转化为弧度
选项
‘name’,NAME: 设置机器人名字属性为NAME
‘manufacturer’,MANUF : 设置机器人制造者的名字为MANUF
‘comment’,COMMENT: 设置机器人注释为COMMENT
‘base’,T: 设置基坐标系矩阵属性为T
‘tool’,T: 设置工具坐标系矩阵属性为T
‘gravity,G’: 设置重力矢量属性为G
‘plotpt’,P: 为.plot()设置默认选项为P
‘plotpt3d’,P: 为.plot3d()设置默认选项为P
‘nofast’: 不使用
1、SDH建模仿真:
L1 = Link('d', 0, 'a', 160, 'alpha', -pi/2);
L2 = Link('d', 0, 'a', 580, 'alpha', 0,'offset',-pi/2);
L3 = Link('d', 0, 'a', 200, 'alpha', -pi/2);
L4 = Link('d', 640, 'a', 0, 'alpha', pi/2);
L5 = Link('d', 228, 'a', 0, 'alpha', -pi/2);
L6 = Link('d', 0, 'a', 0, 'alpha', 0);
robot=SerialLink([L1,L2,L3,L4,L5,L6]); %SerialLink 类函数
robot.display(); %Link 类函数
theta=[0 0 0 0 0 0];
robot.plot(theta); %SerialLink 类函数
运行结果:
robot =
noname:: 6 axis, RRRRRR, stdDH, slowRNE
+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 0| 160| -1.5708| 0|
| 2| q2| 0| 580| 0| -1.5708|
| 3| q3| 0| 200| -1.5708| 0|
| 4| q4| 640| 0| 1.5708| 0|
| 5| q5| 228| 0| -1.5708| 0|
| 6| q6| 0| 0| 0| 0|
+---+-----------+-----------+-----------+-----------+-----------+
2、MDH建模仿真:
L1 = Link([ 0, 450, 0, 0, 0, 0], 'modified');
L2 = Link([ 0, 0, 160, -pi/2, 0, -pi/2], 'modified');
L3 = Link([ 0, 0, 580, 0, 0, 0], 'modified');
L4 = Link([ 0, 640, 200, -pi/2, 0, 0], 'modified');
L5 = Link([ 0, 0, 0, pi/2, 0, 0], 'modified');
L6 = Link([ 0, 228, 0, -pi/2, 0, 0], 'modified');
robot=SerialLink([L1,L2,L3,L4,L5,L6]); %SerialLink 类函数
robot.display(); %Link 类函数
theta=[0 0 0 0 0 0];
robot.plot(theta); %SerialLink 类函数
robot =
noname:: 6 axis, RRRRRR, modDH, slowRNE
+---+-----------+-----------+-----------+-----------+-----------+
| j | theta | d | a | alpha | offset |
+---+-----------+-----------+-----------+-----------+-----------+
| 1| q1| 450| 0| 0| 0|
| 2| q2| 0| 160| -1.5708| -1.5708|
| 3| q3| 0| 580| 0| 0|
| 4| q4| 640| 200| -1.5708| 0|
| 5| q5| 0| 0| 1.5708| 0|
| 6| q6| 228| 0| -1.5708| 0|
+---+-----------+-----------+-----------+-----------+-----------+