文章目录
- R.dyn
- R.fdyn
- R.accel
- R.rne
- R.gravload
- R.inertia
- R.coriolis
- R.payload
- 参考链接
官网:Robotics Toolbox - Peter Corke
R.dyn
查看动力学参数
mdl_puma560;
p560.dyn;%查看puma560机械臂所有连杆的动力学参数
p560.dyn(2);%查看puma560机械臂第二连杆的动力学参数
p560.links(2).dyn;%查看puma560机械臂第二连杆的动力学参数
R.fdyn
正动力学函数,根据力矩求解关节值。
[Tsim, q, qd] = R.fdyn(T, torqfun)
输入:T表示整个时间间隔,torqfun表示力矩函数
输出:Tsim表示每个采样时间点,q、qd表示各关节角度、角速度
[T, q, qd] = R.fdyn(T, torqfun, q0, dq0, ARG1, ARG2, ...)
% PD控制例子
[t, q] = R.fdyn(10, @mytorqfun, qstar, P, D);
function tau = mytorqfun(t, q, qd, qstar, P, D)
tau = P*(qstar-q) + D*qd;
设定关节角度、角速度的初值,并确定力矩函数中所含的参数。
R.accel
计算角加速度。
qdd = R.accel(q,qd,torqfun); %输入位置、速度、力矩,求解角加速度
% torqfun = [0,30,6,0,0,0];%设定一组关节力
bot_nf=bot.nofriction();
[T,q,qd] = bot_nf.fdyn(1, torqfun)
for i=1:65,
qdd = bot_nf.accel(q(i,:),qd(i,:),torqfun)
end
R.rne
根据关节值求解所需力矩。
% 根据关节角度、角速度、角加速度等信息,求解各关节所需力矩
tau = R.rne(q, qd, qdd)
% 根据关节角度、角速度、角加速度、机器人末端作用力fext,求解各关节所需力矩
tau = R.rne(q, qd, qdd, grav, fext)
% 其中grav是重力加速度
% 其中fext=[Fx Fy Fz Mx My Mz]
R.gravload
求解重力载荷
>> mdl_puma560;
>> p560.gravload([1 2 3 4 5 6])%给定关节角度,求解出重力载荷
ans =
0.0000 -7.9683 8.4581 -0.0197 0.0027 0
R.inertia
求解关节空间惯性矩阵
>> mdl_puma560;
>> p560.inertia([1 2 3 4 5 6])%给定关节角度,求解出关节空间惯性矩阵
ans =
2.6152 -0.6550 -0.0363 0.0001 0.0010 0.0000
-0.6550 4.3038 0.2953 -0.0008 -0.0017 0.0000
-0.0363 0.2953 0.9366 -0.0009 -0.0006 0.0000
0.0001 -0.0008 -0.0009 0.1926 0.0000 0.0000
0.0010 -0.0017 -0.0006 0.0000 0.1713 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.1941
R.coriolis
求解科氏力和向心力的耦合矩阵
>> mdl_puma560;
>> qd = [0.1 0.1 0.1 0.1 0.1 0.1];%给定关节速度
>> C = p560.coriolis(qn,qd)%给定关节角度、关节速度,计算科式力和向心力的耦合矩阵
C =
-0.0267 -0.1291 0.0170 -0.0000 -0.0003 0.0000
0.0627 0.0386 0.0771 -0.0002 -0.0000 -0.0000
-0.0361 -0.0387 -0.0001 -0.0001 -0.0003 -0.0000
0.0000 0.0001 -0.0000 0.0000 0.0000 -0.0000
-0.0000 0.0001 0.0002 -0.0000 -0.0000 -0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0
R.payload
求解有效载荷
>> mdl_puma560;
>> p560.inertia([1 2 3 4 5 6])%没有施加有效载荷时的惯性矩阵
ans =
2.6152 -0.6550 -0.0363 0.0001 0.0010 0.0000
-0.6550 4.3038 0.2953 -0.0008 -0.0017 0.0000
-0.0363 0.2953 0.9366 -0.0009 -0.0006 0.0000
0.0001 -0.0008 -0.0009 0.1926 0.0000 0.0000
0.0010 -0.0017 -0.0006 0.0000 0.1713 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.1941
>> p560.payload(1,[0,0.1,0.2])%施加有效载荷
>> p560.inertia([1 2 3 4 5 6])%施加有效载荷后的惯性矩阵
ans =
2.8033 -0.8506 -0.0951 0.0079 0.0778 0.0368
-0.8506 4.6513 0.4828 -0.0858 -0.1011 -0.0584
-0.0951 0.4828 1.1338 -0.0988 -0.0169 -0.0214
0.0079 -0.0858 -0.0988 0.2416 0.0029 0.0082
0.0778 -0.1011 -0.0169 0.0029 0.2120 0.0192
0.0368 -0.0584 -0.0214 0.0082 0.0192 0.2041
参考链接
MATLAB机器人工具箱【3】—— 动力学相关函数及用法