机器人工具箱 V9.10 有很多函数,对于一般的简单进行建模、仿真常用的函数如下:
建立机器人:
Link
SerialLink. name
SerialLink. plot
SerialLink.display
运动学:
SerialLink.A
s = R.A(jlist, q) %返回 jlist 关节的齐次矩阵,关节变量为 q
SerialLink.trchain
SerialLink.getpos
q = R.getpos(), %返回图形中机器人在当前位置是的各关节角度
SerialLink.fkine
T = R.fkine(q, options),%求正运动学,options 可设置为‘deg’
逆运动学:
SerialLink.ikine6s
q = R.ikine6s(T),%求带有球形腕的六自由度机器人逆运动学
SerialLink.ikine
q = R.ikine(T) %逆运动学
q = R.ikine(T, q0, options),%逆运动学,可用于大于或等于6关节的机器人
SerialLink.ikine3
q = R.ikine3(T), %求没有腕关节的机器人(三自由度)逆运动学
SerialLink.ikine_sym
q = R.IKINE SYM(k, options),%求末端位姿矩阵为symbolic matrix 类型的逆运动学
雅可比矩阵:
SerialLink.jacob0
j0 = R.jacob0(q, options),%求雅可比矩阵,在世界坐标系下
V = j0*QD
SerialLink.jacobn
jn = R.jacobn(q, options),%求雅可比矩阵,在末端操作器空间中
V = jn*QD
SerialLink.jacob_dot
jdq = R.jacob_dot(q, qd),%求雅可比矩阵的微分
XDD = J(q)QDD + JDOT(q)qd
动力学:
SerialLink.pay
tau = R.PAY(w, J),%根据末端负重w和雅可比矩阵j,求关节力
tau = R.PAY(q, w, f),%根据末端负重w和关节变量为q雅可比矩阵,求关节力。f=0,世界坐标系。f=1,末端关节坐标系。
tau = J'w
SerialLink.paycap
[wmax,J] = R.paycap(q, w, f, tlim),%求关节变量为q,有效负荷为w,关节能承受的参考力为tlim时,末端允许的最大力 wmax,和此时达到力极限的关节J
SerialLink.payload
R.payload(m, p),%在末端关节坐标系下,坐标为p处,添加质量为m的负荷
SerialLink.dyn ,%返回动力学参数
SerialLink.rne
tau = R.rne(q, qd, qdd),%逆动力学,达到预定的(q, qd, qdd),所需要的力tau
tau = R.rne(q, qd, qdd, grav, fext),%逆动力学,达到预定的q, qd, qdd),重力加速度为grav,末端受力为fext,各关节所需要的力tau
SerialLink.fdyn
[T,q,qd] = R.fdyn(T, torqfun)
%时间[0,T], 返回时间、位置、速度,关节初始位置和速度为0。关节上的力矩用户提供的函数提供:
TAU = TORQFUN(T, Q, QD)
%力矩是时间、位置、速度的函数。
[ti,q,qd] = R.fdyn(T, torqfun, q0, qd0)
在力矩函数中,可以自定义参数:
[T,q,qd] = R.fdyn(T1, torqfun, q0, qd0, ARG1, ARG2, ...)
TAU = TORQFUN(T, Q, QD, ARG1, ARG2, ...)
例如,对PD 控制
function tau = mytorqfun(t, q, qd, qstar, P, D)
tau = P*(qstar-q) + D*qd;
调用格式为:
[t,q] = robot.fdyn(10, @mytorqfun, qstar, P, D)