https://github.com/zzy5510/adaptive_arm_simulink
本想基于原来的七自由度机械臂做自适应控制,但发现自适应控制需要用到线性化的动力学参数矩阵,七自由度机械臂的参数矩阵太庞大和复杂了。所以新做了一个平面三自由度机械臂,如下图:
机械臂的质量均为10,z轴的惯量为1.05.
首先,需要使用拉格朗日法求出机械臂的动力学方程:
H ( q ) q ¨ + C ( q , q ) q + G ( q ) = τ H(q) \ddot{q}+C(q, q) q+G(q)=\tau H(q)q¨+C(q,q)q+G(q)=τ
拉格朗日法的具体实现可以有不同的方法。本项目采用了霍伟《机器人动力学与控制》中的方法,比较便于编程实现。具体如下:





需要注意以下几点:
1.该方法不依赖于建系方法,即普通DH和改进DH都可应用。但推荐使用改进DH,因为公式中的连杆i质心的坐标是在i系中表达的,如果采用普通DH,这一坐标随关节角度将变化。
2.惯性张量I以 坐标系 的原点为原点,并不以杆的质心为原点。
这部分算法的代码来自https://www.jianshu.com/p/6d04539f1cfe。
本项目假定连杆3由于抓取了未知物体,质量和转动惯量变为未知。因此需要采用自适应算法来实现对机械臂的控制。算法的思路来自《漂浮基单_双臂空间机器人捕获目标过程接触碰撞动力学分析与镇定控制》
设定系统位置误差为
e = q d − q e=q_{d}-q e=qd−q
定义增广误差:
s = e ˙ + λ e s=\dot{e}+\lambda e s=
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删