机器人模型的建立
1、Link()
link对象保存于机器人关节和连接有关的所有信息(如运动学参数、刚体惯性参数等)
L = Link([theat , d , a , alpha,sigma] , options)
- 属性
L.type: 获取连杆关节类型 L.theta : 获取连杆关节角 L.d : 获取连杆偏距
L.a :获取连杆长度 L.alpha:获取连杆扭转角
L.mdh : 默认为0(标准D-H); 1表示其他
- sigma : 默认0(转动关节,可省略),1(移动关节)
2、SerialLink()
描述串行链接手臂型机器人,将所创建的Link整合在一起。
Robot = SerialLink ([L1,L2...] , options)
根据下图PUMA 560 操作臂运动参数和坐标系数分布建立相应的机器人模型。
%创建六个连杆,运用改进型D-H模型参数
L1 = Link([0 , 0 , 0 , 0 ], 'modified');
L2 = Link([0, 0 , 0, -pi/2], 'modified');
L3 = Link([0, 0.3, 1.5, 0 ], 'modified');
L4 = Link([0, 1, 0.5, -pi/2], 'modified');
L5 = Link([0, 0 , 0, pi/2 ], 'modified');
L6 = Link([0, 0 , 0, -pi/2], 'modified');
Robot = SerialLink([L1, L2, L3, L4, L5, L6]); %创建了一个6自由度机器人
- 操作属性
links :连杆向量信息 offset:关节偏移量 gravity :重力加速度 name: 机器人名字
base:基坐标系 tool:与基坐标系的变换矩阵 qlim:关节极限位置 n:关节数
config:关节配置(如’RRRRRR’)
links = Robot.links %关节向量
n = Robot.n %关节名称
config = Robot.config %配置信息
- Robot.plot(theta)
根据输入的关节参数变量画出对应的机器人图形。
Robot.plot ([pi/2,0,0,0,0,0]) %画出关节变量1旋转90°后的图形
- Robot.display( )
把建立机器人模型的一些相关信息展示出来。
- Robot.teach
画出机器人模型,并在图窗左侧出现一些可控元件。
(x , y , z )表示末端执行器想对于及基坐标的位置
q1~q6: 分表表示个关节变量的数值。在上图中表示六自由度中的各个旋转变量。可通过拖动滑块控件来调节机器人的位姿(也可以在滑块控件后的方框内输入所需的数值等),同时,在右图机器人模型中会根据数值的改变而进行相应的转动(或平移)。
至此,一个简单机器人模型就建立完成了。
3、运动学
- Robot.fkine() %正运动学函数
该函数为正向运动学求解,输入为各关节变量参数(如上面6自由度机器人各关节角度),输出为末端的姿态矩阵(4x4)。例如求解上面Robot.polt()所画机器的末端姿态。
T = Robot.fkine([pi/2,0, 0 , 0 0 0]) %求解特定角度下末端相对于基坐标的姿态
- Robot.ikine6s( ) & Robot.ikine( ) %逆运动学函数
这两个函数都是用来求解机器人逆运动学,前者是逆运动学的封闭解(几何解和代数解),后者是逆运动学的数值解。通过输入末端的姿态矩阵可以得到该姿态的一组解(注:对于有多个解的态,解不唯一。同时,ikine6s只能对标准D-H模型求解,对改进性D-H模型会报错)
Th = Robit.ikine(T) %求出末端姿态矩阵的逆运动学解
T1 = Robot.fkine(Th) %验证求出的解是否正确
评论(0)
您还未登录,请登录后发表或查看评论