【机械臂算法】基于Franka Emika Panda机械臂动力学参数辨识/系统辨识、物理一致性/物理合理性(physical consistency)研究及动力学应用

根据之前的理论推导->【机器人算法】机械臂动力学参数辨识仿真,我们在这直接给出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的接口我们可以得出一组轨迹的重力矩,同时我们使用辨识出来的重力和他进行比较。

经过比较可以看出重力可以完美的辨识出来,因此我们可以将动力学简单的用在重力配平上。
其中1和7关节由于噪音的影响并不能辨识完美的辨识出来,但是一关节由于不受重力矩影响,因此可以直接将他设为0。7关节由于质量较小,不能完美的辨识出来。这是需要后续解决的。

### Franka Emika机器人介绍 Franka Emika是一家位于慕尼黑的创业公司,专注于开发低成本的工业协作机器人(cobot)。该公司最著名的产品名为Franka,旨在提供一种易于使用的解决方案来实现工厂车间和其他工作环境中的自动化任务[^1]。 #### 规格参数 尽管具体的硬件规格可能因型号不同而有所变化,但通常情况下,Franka Emika生产的机械具有七个自由度的设计,能够模仿人类的手动作。这种设计使得它可以在狭小空间内灵活操作,并能完成复杂的装配作业。此外,这些设备还配备了高精度传感器以及先进的控制算法,从而实现了安全的人机交互功能[^2]。 #### 应用场景 FRANKA Production 3 (FP3),作为一款基于云端的支持AI学习平台,允许非专业人士快速部署自动化流程。通过FP3,企业内部现有的工作人员能够在短时间内将自己的工艺经验转换成实际运行着的机器人程序,大大降低了引入自动化的门槛和技术难度。因此,无论是在研究实验室还是制造业生产线,都可以看到Franka Emika产品的身影。 为了进一步推动科研领域的发展,社区也贡献了许多开源项目,比如由Zichun Xu等人维护的一个强化学习模拟环境库,该项目利用MuJoCo物理引擎和Franka操纵器构建了一系列实验场景,有助于加速新型控制策略的研究进展[^3]。 ```python import gym from mujoco_py import load_model_from_path, MjSim, MjViewer # 加载包含Franka模型的XML文件路径 model = load_model_from_path('path_to_franka_mujoco_env.xml') sim = MjSim(model) viewer = MjViewer(sim) while True: sim.step() viewer.render() # 渲染每一帧的画面 ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值