Friction Margin: From Climbing to DexHands
Why climbers care about friction (and why robots should too)
Core idea: estimate the friction margin, not “the friction”
Watching Alex Honnold climb, the key mental model is simple: continuously estimate how much friction budget you have left. In mechanics, the contact constraint is ‖Ft‖ ≤ μN. The actionable quantity is the margin: m = μeffN − ‖Ft‖.
For dexterous hands, “robust grasping” is mostly “keep m positive under uncertainty”.
From rock to robot: what changes?
- μ is not a constant: surface films (dust/oil/water), temperature, speed, and material compliance all change μeff.
- Slip is not binary: incipient slip starts locally (edges), then propagates. Early warnings matter.
- Contact area and pressure distribution change the effective constraint (smearing vs edging in climbing; soft pad vs hard edge in hands).
What sensing should optimize for
Design the sensing stack around three questions:
- Can we estimate N and Ft (or their proxies) at the contact?
- Can we detect incipient slip before macroscopic slip?
- Can we update μeff online (even roughly) to keep margin under control?
Minimal friction-aware loop
Sensors:
N (normal) + Ft (shear proxy) + pre-slip cue (micro-slip/vibration)
Estimator:
mu_eff <- online update (filtered / Bayesian / probe)
margin m = mu_eff * N - |Ft|
Controller:
keep m >= m_min by adjusting:
- normal force (grip)
- contact area / pose (regrasp, roll)
- tangential load (trajectory / impedance)
Sensing options that map to “climbing friction”
- Force/torque: fingertip normal + wrist 6D F/T (best if you can afford it).
- Shear + micro-slip: shear taxels, or infer shear from deformation field (visuotactile).
- Vibration / stick-slip: small IMU near fingertip, or vibro-acoustic pickup on the structure.
- Contact patch: contact area + pressure distribution to predict where slip will start.
- Surface state proxies: temperature / humidity / contamination class (even coarse helps explain μ drift).
Rate-and-state friction as a useful mental model
In many real contacts, μ depends on sliding speed and “state” (aging / film / contact history). You don’t need the full theory to benefit: treat μeff as a latent variable with slow drift, and update it when your pre-slip cues and force balance disagree.
Practical evaluation: what to measure in experiments
- Margin tracking: how often m crosses below 0 before recovery?
- Pre-slip lead time: how early can you detect slip onset (ms) at given loads?
- Robustness: performance across surface changes (dry/wet/dusty), temperature, and object materials.
- Data usefulness: can logged signals support learning a reusable μ estimator?
把攀岩的“摩擦估算”借给灵巧手
核心不是“摩擦系数是多少”,而是“还剩多少摩擦裕度”
看 Alex Honnold 攀岩,最关键的能力其实是:在不确定接触面上实时估算“我还能靠摩擦撑多久”。 物理约束是 ‖Ft‖ ≤ μN。对机器人最有用的量是摩擦裕度: m = μeffN − ‖Ft‖。
灵巧手的稳定抓取,本质上就是:在 μ 不确定时,仍然让 m 保持为正,并且能够提前发现 m 在变小。
攀岩摩擦学对灵巧手的三条迁移
- μ 不是常数:粉尘/油膜/水膜、温度、速度、材料粘弹性都会改变 μeff。
- 滑移不是二元事件:通常从局部(边缘微滑)开始,再扩展成宏观滑移。
- 接触面积与压力分布很重要:攀岩的 smearing/edging,等价于机器人里“软指腹贴合 vs 硬边点接触”。
传感方案应该围绕三个问题来设计
- 能否测到 N 和 Ft(或可靠代理量)?
- 能否在宏观滑移前发现预滑(微滑/振动/接触斑点变化)?
- 能否在线更新 μeff(哪怕粗糙),从而直接控制摩擦裕度 m?
最小“摩擦感知”闭环
传感:
N(法向) + Ft(切向代理) + 预滑线索(微滑/振动/接触斑点位移)
估计:
mu_eff <- 在线更新(滤波/贝叶斯/小幅主动探测)
m = mu_eff * N - |Ft|
控制:
让 m >= m_min,通过:
- 调整法向力(抓紧/放松)
- 调整接触面积/姿态(滚动/复抓)
- 调整切向载荷(轨迹/阻抗)
对应到传感器:哪些东西最“像攀岩”
- 法向 + 切向:指尖法向力 +(最好有)腕部 6D F/T。
- 剪切/预滑:剪切 taxel,或用视触觉从形变场推断切向载荷与微滑。
- 振动谱 / stick–slip:指尖附近 IMU,或结构声学拾音(对粘着-滑移很敏感)。
- 接触斑点:接触面积与压力分布,预测“从哪里先滑”。
- 表面状态代理:温度/湿度/污染等级(哪怕粗略,也能解释 μ 漂移)。
可借用的理论:速率-状态摩擦(rate-and-state)
很多真实接触里,摩擦取决于速度与“状态”(接触老化/表面膜/历史)。 工程上不必完整复刻:把 μeff 当作缓慢漂移的隐变量,用预滑线索与力平衡残差来校正它, 就能把“摩擦不确定”变成“可控的不确定”。
怎么评测:不要只测“有没有滑”,要测“裕度控制得好不好”
- 裕度穿越率:m 变成负之前,系统是否能触发恢复?频率多高?
- 预滑提前量:在给定载荷下,能提前多少毫秒发现滑移趋势?
- 跨表面鲁棒性:干/湿/粉尘、不同材料、温度变化下是否稳定?
- 数据可学习性:记录的信号是否足以训练通用的 μ 估计器?