- 每 10 ms 只更新一个位置目标:电机可能提前到达并保持,也可能跟不上。Ruckig 规划的速度、加速度、jerk,不能因此保证在真机上严格成立。
IK 目标位置:例如 1 rad,要求最终到达时速度为 0
↓ Ruckig 规划100hz控制下发
10 ms 后的位置:q₁,此时速度可能仍在增加
20 ms 后的位置:q₂,此时速度也可以不为 0
......
最终到达 1 rad,速度降到 0
- IK 输出:这一刻希望机器人处于哪个关节角。
- Ruckig 输出:从上一帧的 q、dq、ddq 出发,受速度、加速度、jerk 限制,前进 10 ms 后理论上能到哪个关节角。
理论上是因为:视觉目标突然变化很大,Ruckig 就不能在 10 ms 内直接跳过去,所以到不了预定目标 。实际遥操中,10 ms 后目标又更新,它便带着上一帧的速度、加速度继续重规划,因此不会每帧都停下来。假如最新 IK 目标不再变化,就规划到那里停下。


所以我理解每10ms发送的rucking插值点,电机执行,在10ms之前到预定q,则会停止,等下一个10ms目标来在动,宏观反映就是点击卡顿,此时应该把频率加大就会好。 比10ms之后到,即10ms结束了,电机实际执行没有到预定规划q,则接受下一个10ms新的目标,宏观反映就是又延迟。
当然延迟和抖动是多方面的,这两个只是其中之一。