基于末端六维力传感器的拖动示教是如何完成的?

本文汇集了多位大拿的关于“基于末端6维力传感器的拖动示教是如何完成的”的详细回答。
标题

小编感谢:

非常感谢@师云雷-许三多,@桂凯,@李淼robot等,为我们分享自己的知识和经验。


楼主邀请:
现在比较火的拖动示教是怎么实现的?只基于末端六维力传感器的拖动示教又该如何实现?


谢邀回复:

师云雷-许三多:

谢邀。这个问题不算复杂,我建议你应该去搜下论文看看,我简单回答一下。

一般情况下6维力传感器安装在机器人末端,那么人手握持着力传感器去用力就能测量出来3个力和3个扭矩,对应机械臂笛卡尔末端的力和力矩即F=(FX,FY,FZ,TX,TY,TZ),用这个期望的F去做控制有几个思路:

1. 用机械臂雅克比的转置右乘F就得到了关节的期望力矩,你可以把这个关节力矩作为控制力矩发出去,当然前馈力矩要加上(重力补偿,摩擦补偿,适当的阻尼等等);这种方法风险比较高安全性差了点,,但是非常符合物理直觉,如果各项参数精确,效果是最好的;

2. 用机械臂雅克比的转置右乘F得到关节的期望力矩,得到关节力矩后不要直接用,乘以一个系数(变换)得到期望的关节角加速度,然后积分得到速度和位置,去做PID控制,比第一个好的是你可以自己限制一下加速度的量,安全一些,但是关节力矩映射到关节加速度最好是用惯量矩阵算一下,不算的话也可以直接当成E矩阵·····也能用,但是操作手感不会太轻盈;

3. 用机械臂雅克比的转置右乘F得到关节的期望力矩,得到关节力矩后不要直接用,乘以一个系数(变换)得到期望的关节角速度,积分得到期望位置,然后去给各个关节做PID,这个方法更简单,甚至你可以去限制关节速度也会更安全;这个思路类似第二个,但是没有太明显的物理意义,毕竟直接关节力矩映射到关节速度不是很有物理道理,但是it works,手感也不太好.


桂凯:

谢邀。

1.拖动示教的实现原理有多种,楼上@师云雷-许三多 说的很详细,可以参考国内一篇文章《面向直接示教的机器人零力控制》。拖动示教关键在于建立机器人系统的动力学方程及系统辨识,当你这两部分弄得很清楚时,你会发现拖动示教只是一个小小的策略游戏而已;而这两部分弄不清楚,做拖动示教感觉就是花拳绣腿。

2.通过力传感器做拖动示教,只是理论上非常容易做,基本原理是阻抗/导纳控制,楼上的说的很详细。但实际应用中也有不少难点,特别是工业上:质量不好的力传感器零点容易漂,会有安全隐患;质量稍微好点的力传感器价格贵的要死,基本比机器人本上还贵。

所以工业中更倾向于只用电流环做拖动示教,而此时,就更需要对机器人动力学与系统辨识有较深的认识。


李淼robot:

谢邀。在工业上的做法很多取决于你能够控制机器人的哪一层了。基本的核心原理都是假想机器人末端是一个virtual dynamics。

但是要完全实现virtual dynamics,首先就需要对机器人本身的dynamics 完全的补偿掉,不是每一个机器人都能这么准确的去做这个的。目前市面上的就KUKA iiwa,LWR能够有这个效果。FRANKA据说有,但是一直没有面向市场,这种做法标定是个坑,不是那么容易。

如果不能完全实现virtual dynamics,退而求其次,我们在运动学层面,保证速度的一致性,但是这样会有一些阻力的感觉,因为加速度项毕竟没有考虑了。这些是工业上用的最多的,一个力传感器加上一个可以位置控制的机器人。直接用电流,有一定的安全风险,除非是机器人厂家许可,一般不建议这么做。

上面说的都是公式层面的东西,一行公式都解决了,实际中比这个要麻烦一点。力传感器本身噪音非常大,人的手还有一个20hz左右的抖动,这些都要靠滤波,滤波的参数也是需要一个个去调试的。
 

参与评论