机器人动力学是机器人学中最核心的部分,也是机器人力控制的基础。
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;

逆动力学:

已知关节的角度、角速度、角加速度等信息,求各关节所需提供的力
用到的函数是: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.进行运动控制,使机器人按照轨迹规划结果运动

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐