目录 1. 为什么研究机械臂的动力学 2. Robotics System Toolbox(RST)中的动力学算法 3. Simulink示例
前面,我们讲了机械臂的运动学(kinematics):正向运动学和反向运动学。正向运动学指的是在已知机械臂各个关节角度的情况下,推算end-effector(机械臂终端)的位置和方向(合称pose)。反向运动学指的是在已知end-effector的位置和方向,推算各个机械臂的关节角度。我们主要研究反向运动学。
让我们看一下基于反向运动学的控制逻辑图:
![ddf6a21e7e009e310c7d40ad8708c8b4.png](https://img-blog.csdnimg.cn/img_convert/ddf6a21e7e009e310c7d40ad8708c8b4.png)
在给出机械臂的end-effector的pose后,反运动学模块计算出各个关节所需要的角度,然后通过电机产生力矩(torque)去执行。在此期间,通过反馈(feedback)去消除一些控制误差。
但是,事实上会有很多的干扰因素存在。例如:地球引力(gravity)
惯量(inertia)
摩擦力(friction)
科里奥利力和离心力(Coriolis and centrifugal)
由于连杆之间是通过关节(joint)耦合在一起,连杆之间会有反作用力和反向惯量
- 我们想要机械臂运动的速度,按照我们预先的设定运行(velocity and acceleration)
我们想要求机械臂在触碰外物时候做出安全保护(external force)
这些我们暂且称之为disturbance(干扰),当然有些“干扰”是我们故意要求的,比如说需要按照预设轨迹的速度运行。加入“干扰”后的示意图如下
![449db9b015b8efea22d2fdcf03f7a6a6.png](https://img-blog.csdnimg.cn/img_convert/449db9b015b8efea22d2fdcf03f7a6a6.png)
如果我们能提前计算出来这些“disturbance”,然后在控制环路中将它“抵消”(有时候也叫前馈控制)。这样,就能使得机械臂“完美”运行了。让我们再改一下控制逻辑图:
velocityacceleration
![ce844b7c2bb470f2feacadc14b920150.png](https://img-blog.csdnimg.cn/img_convert/ce844b7c2bb470f2feacadc14b920150.png)
为了计算这些“disturbance”。我们需要考虑几个因素
机械臂各个关节角度,即q