Robotics Toolbox :(5)机器人动力学

机器人动力学是机器人学中最核心的部分,也是机器人力控制的基础。

matlab Robotics Toolbook 工具箱中有具体的动力学计算函数:

正动力学:

已知各关节上电机提供的力,求对应的各关节的角度、角速度、角加速度等信息。
用到的函数是:SerialLink.fdyn

具体的调用格式:

[T,q,qd] = R.fdyn(T, torqfun) 

T 表示时间间隔,就是采样时间。根据给定的力矩函数 torqfun,求各关节的 q,qd

也可以设定关节角度、角速度的初值,并且确定力矩函数中所含的参数,如下

[T,q,qd] = R.fdyn(T, torqfun, q0, qd0, ARG1, ARG2, …) 

如 PD 控制:

[t,q] = robot.fdyn(10, @mytorqfun, qstar, P, D);

function tau = mytorqfun(t, q, qd, qstar, P, D) 
    tau = P*(qstar-q) + D*qd;
end

逆动力学:

已知关节的角度、角速度、角加速度等信息,求各关节所需提供的力
用到的函数是:SerialLink.rne

具体的调用格式:

tau = R.rne(q, qd, qdd) 

根据给定的 q, qd, qdd,求个关节需要提供的 tau

如果机器人末端受到力的作用 fext ,则可用以下形式:

tau = R.rne(q, qd, qdd, grav, fext) 

其中,grav 是重力加速度;fext=[Fx Fy Fz Mx My Mz]。

控制方案:

一般关节空间控制的总体方案是:

1.确定末端操作器的初始位置和目标位置

2.根据逆运动学求出各关节的初始角度和目标角度

3.估计规划,求出各关节的角度变化曲线

4.进行运动控制,使机器人按照轨迹规划结果运动

猜你喜欢

转载自blog.csdn.net/qq_27838307/article/details/80715241