根据之前的理论推导->【机器人算法】机械臂动力学参数辨识仿真,我们在这直接给出franka机械臂的最小参数集和激励轨迹,
激励轨迹
激励轨迹如下(这里考虑到了碰撞的情况->【算法】基于分离轴定理的机器人碰撞检测,自碰撞和与安装桌面干涉碰撞):
最小参数集
最小参数集有43个元素,如下:
实验
使用libfranka的接口对franka emika panda进行控制,实际采集的力矩如下:
为了验证采集数据的正确性,我们可以用rtb进行仿真比较。可以看出,从趋势上讲力矩是可以对的上的,因此采集的数据有效。
由于采集信号中存在大量的噪音,因此需要对信号进行滤波,滤波前后对比如下:
验证
我们将滤波后的信号进行参数辨识使用,将辨识出的最小参数集代入。使用另一端轨迹可得:
辨识误差如下:
误差是由于:
- 信号存在噪音
- 辨识轨迹过约束
- 没有考虑摩擦力
其中,信号噪音问题是难免的,在线情况下只能通过调节滤波器系数来进行改善,这里就不再赘述。辨识轨迹过约束是因为在轨迹规划过程中,考虑到了防碰撞等问题导致关节1关节运动不充分,信号质量不佳,可以通过轨迹规划来提升,
摩擦力可以在关节在关节7中看出,摩擦力的比重很大,因此我们对观测矩阵进行调整,将摩擦力(摩擦力包括:滑动摩擦 粘滞摩擦 和 偏执)考虑进去,考虑摩擦力模型的辨识结果如下:
可以看出,辨识结果确实更准确了。
物理一致性
在参数辨识中,我们发现一个问题,那就是辨识的参数往往与实际值不同。
这里首先给出一篇参考论文,Dynamic Identification of the Franka Emika Panda Robot With Retrieval of Feasible Parameters Using Penalty-Based Optimization,本篇论文虽然是通过逆向工程来进行参数辨识的,但是其基于物理一致性原理是可参考的。并且mdl_panda的动力学也是根据这篇论文来实现的。
物理一致性问题实质上就是优化问题,在求解最小惯量参数集的时候加上约束即可:
- 质量>0;
- 转动惯量的特征值满足物理一致性,可以直接参考论文里写的;
- 质心在指定方框内。
具体的优化方式可以直接参考上述论文。
下图是,“真实的”franka的机械臂各杆质量(mdl_panda)和根据物理一致性参数优化的各杆质量。
可以看出优化数据和“真实”数据还是有差异的,这个差异最核心上还是由于信号采集的干扰问题,并且mdl_panda的参数其实也是论文辨识出来的,和真实的机械臂有区别。
重力配平
通过实践我们可知,动力学中比较难以解决的一点就是信号获取,例如,速度及加速度一般需要很强的滤波才能保证动力学的稳定性,但是在线的滤波又会导致信号的滞后,但是一般位置信号的获取并不需要特别强的滤波,因此我们可以将辨识出来的重力参数加以使用,来实现重力配平的功能。
通过libfranka的接口我们可以得出一组轨迹的重力矩,同时我们使用辨识出来的重力和他进行比较。文章来源:https://www.toymoban.com/news/detail-785285.html
经过比较可以看出重力可以完美的辨识出来,因此我们可以将动力学简单的用在重力配平上。
其中1和7关节由于噪音的影响并不能辨识完美的辨识出来,但是一关节由于不受重力矩影响,因此可以直接将他设为0。7关节由于质量较小,不能完美的辨识出来。这是需要后续解决的。文章来源地址https://www.toymoban.com/news/detail-785285.html
到了这里,关于【机械臂算法】基于Franka Emika Panda机械臂动力学参数辨识/系统辨识、物理一致性/物理合理性(physical consistency)研究及动力学应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!