为什么接触力是机器人操纵的关键
如何改变操纵力感应 接触物理,为什么视觉本身会失败,以及接触丰富任务的实际策略.
机器人武器指南
仅仅视觉操纵达到基本的物理限制. 了解为什么
联系问题
最先进的RGB-D感知系统在场景中的物体上实现2-5mm定位精度.这听起来令人印象深刻,直到你考虑了需要的精度组装:
接觸本身是以相機看不见的方式改变系统状态.当抓住器手指与表面接触时,在毫米以下尺度上发生力量和变形.相机看到抓住器接近物体;它无法看到接觸是否稳定,滑动,或即将导致物体从抓住中转转.
合规与严格控制:基本选择
在讨论感觉力量硬件之前,对于接触任务,必须了解两个基本的控制理念:
**
** 符合 (阻力/容量) 控制:** 机器人在终端效应器上表现像虚拟弹
阻力控制理论
控制器定义了最终效应器所需的机械阻力 (位置错误和应用力之间的关系):
F = K * (x__ वां望 - x_actual) + D * (v_ वां望 - v_actual) 哪里: K =
关键见解:阻抗控制不需要强力传感器. 它使用指挥位置和测量位置 (从联合编码器) 来估计应用强力. 然而,添加手腕F/T传感器使得可以进行 _explicit_力量测,比基于动态模型的估计更准确 (特别是关节中显著摩擦的手臂,其中包括大多数手臂在50K美元以下).
控制力方式
操作模式包括三个操作模式,覆盖了大多数接触操纵任务:
**1.纯阻抗控制:**设置在6个卡特西亚轴上所需的
2. 强力/位置混合控制: 控制某些卡特西亚轴在位置模式下,其他在强力模式下. 经典的例子是表面抛光:控制X和Y在位置模式下 (遵循表面轨迹),同时控制Z在强力模式下 (保持5N对表面的接触力). 这需要一个强力传感器来测量控制的轴中接触力.
3. 强力引导搜索: 使用强力反
| Control Mode | Sensor Required | Typical Tasks | 精度 | Implementation Complexity |
|---|---|---|---|---|
| Pure impedance | None (optional F/T) | Safe grasping, contact exploration | +/-2-5mm | Low |
| Force/position hybrid | Wrist 6-axis F/T | Polishing, deburring, surface following | +/-0.5N force | Medium |
| Force-guided search | Wrist 6-axis F/T | Peg-in-hole, connector insertion | +/-0.1mm | Medium-high |
| Tactile-guided manipulation | Tactile array (GelSight/XELA) | In-hand rotation, slip recovery | 3mm spatial | High |
联系机械基础知识
接触机械学的三个概念对于理解为什么感觉力量是重要的:
- 摩擦
: 摩擦内必须存在接触力,以避免滑动. 半角是 (arctan) (mu),而mu是摩擦系数.对于钢上的 (在工业环境中常见),mu = 0.3.对于玻璃上的 (silicone),mu = 0.5.摩擦 外测量的接触力预测即将滑动的信息,而没有摄像头可以提供. - ** 强力闭合与形式闭合:** 形式闭合抓取仅仅通过几何学来限制对象 (例如,在匹配的V槽中抓住
).强力闭合抓取通过从多个方向施加接触力来限制对象,使它们的摩擦角座一起阻止任何硬体运动.强力传感器可以让您验证您已经实现了强力闭合;视觉不能. - 可伦布摩擦模型: 预测滑动的标准模型:
F_tangential E <= mu x F_normal. 在接触点测量F_normal使您计算滑动前最大的 力,这是精巧操纵的基本限制.
视力失败的现实
在实际操纵系统中,主要存在三个故障模式:
- 接近时
罩: 当抓住器接近抓住物体时,手指遮盖接触表面.相机在接近后2-5厘米时就会消失,这是最关键的阶段,以准确地放置. - **近距离
音:**由于自抓器本身的结构性光 interference 和 IR 反射,深度传感器在工作距离以下的精度丧失.在典型的操纵距离上运行的手腕安装摄像头在可靠的距离边缘运行. - **抓地表面上的深影:**抓地结构在抓地目标表面上投射深影,在最好的定位需要的地方就会在点云中产生缺失的数据.
强力传感器类型:详细的比较
| Sensor Type | What It Measures | 精度 | Bandwidth | Cost | Best For |
|---|---|---|---|---|---|
| Wrist 6-axis F/T (ATI Mini45) | Full 6-DOF contact wrench | +/-0.05N / +/-0.5Nmm | 7 kHz | $3K-8K | Insertion, assembly, grinding |
| Wrist 6-axis F/T (Robotiq FT300) | Full 6-DOF contact wrench | +/-0.1N / +/-1Nmm | 100 Hz | $1.5K-3K | General manipulation, cobots |
| Joint torque estimation | Estimated external torques | +/-0.5Nm | 1 kHz | $0 (software) | Collision detection, rough contact |
| Fingertip F/T (Bota SensONE) | 6-axis force at fingertip | +/-0.01N | 800 Hz | $2K-5K/finger | Delicate grasping, surface following |
| Tactile array (XELA uSkin) | 3-axis force per taxel | 3mm spatial | 100-500 Hz | $800-3K | Slip detection, contact localization |
| Optical tactile (GelSight Mini) | High-res contact geometry | 25 micron depth | 30-60 Hz | $300-600 | Texture recognition, object ID |
| Paxini tactile sensor | Distributed normal + shear | 1mm spatial | 200 Hz | $500-1.5K | Slip prediction, grasping |
实际例子 接触感觉使任务能够完成
以下是发表的研究和RCSV内部项目中的具体例子,其中增加力/触觉感觉使得仅仅视觉无法完成的任务实现:
**Peg-in-hole插入 (0.5mm清除):**一只Fanka Research 3臂,配备ATI Mini45手腕F/T传感器.控制器采用螺旋搜索策略:下降到Z-force超过5N (与表面接触),然后在X-Y中螺旋向外,同时保持3N Z-force下降 (peg入孔).成功率:89%在F/T中,而仅为视力:62%.
PCB连接器组装: USB-C连接器需要+/-0.3mm的对齐和10-15N的插入力应用于正确的方向.只能视觉的政策可以将连接器定位在1-2mm内,但不能控制插入力. 加入手腕F/T传感器可实现强力限制插入,并实现合规性. 控制器在插入方向应用12N,同时允许+/-5mm的垂直轴合规性.成功率从45% (仅视力) 跳到92% (视力+F/T).
**表面接下来 (抛光,擦拭):**在跟随不规则的表面形状时保持一致的5N接触力.视觉可以在接触之前估计表面几何,但无法测量在擦拭期间的实际接触力.在
关键文件和系统
根,1985年"阻力控制":** 建立阻力控制理论的基础论文. - 雷伯特和克雷格,1981年"混合位置/力控制": 引入了在直角任务空间方向独立控制位置和力的概念.所有现代力/位置混合控制器的基础.
- Calandra等., 2018
"不仅是一种感觉": 证明GelSight触觉感觉能够抓住视觉无法感知的物体 (透明,反射,薄). 这篇论文认为触觉感觉是一种实用工具而不是研究好奇. - **Qi et al., 2023
"一般手中物体旋转":**使用触觉传感器与RL实现任意物体手中旋转. 显示触觉反 是必要的手中操纵 仅视觉政策在旋转任务的成功率达到30%而触觉支持的政策达到85%. - **Suresh et al., 2024
"神经接触领域":**从触觉传感器读取中学会了接触预测,从而实现了基于模型的规划,用于接触丰富的操纵.
电磁传感器比较:详细规格
| Sensor | Fx/Fy Range | Fz Range | Resolution (Fx/Fy) | Bandwidth | Weight | Price |
|---|---|---|---|---|---|---|
| ATI Gamma | +/-65 N | +/-200 N | 0.0125 N | 7 kHz | 255 g | $6,000-8,000 |
| ATI Mini45 | +/-145 N | +/-290 N | 0.0625 N | 7 kHz | 94 g | $3,500-5,500 |
| Robotiq FT300 | +/-300 N | +/-300 N | 0.1 N | 100 Hz | 300 g | $1,500-3,000 |
| OnRobot HEX | +/-200 N | +/-200 N | 0.2 N | 100 Hz | 230 g | $2,000-3,500 |
| Bota SensONE | +/-200 N | +/-1000 N | 0.01 N | 800 Hz | 120 g | $2,500-5,000 |
内置F/T传感器. 许多现代机器人手臂包括内置关节扭矩传感器或手腕F/T估计,而无外部传感器. UR5e和UR10e在工具
传感器选择指南: 对于从力感测开始的研究实验室,Robotiq FT300提供了最佳价值 - 它具有广泛的力范围,通过标准工具
阻力控制的实施
下面的Python代码为7DOF机器人臂实施了卡特西亚阻力控制.这是之前讨论的阻力控制理论的实际实施,适合与ROS2控制框架集成.
# impedance_controller.py -- Cartesian impedance control for manipulation
import numpy as np
class CartesianImpedanceController:
"""6-DOF Cartesian impedance controller with configurable stiffness/damping."""
def __init__(self):
# Stiffness matrix: [Kx, Ky, Kz, Krx, Kry, Krz]
# Low stiffness = compliant (good for contact exploration)
# High stiffness = stiff (good for free-space tracking)
self.K = np.diag([
800.0, # X stiffness (N/m) -- approach direction
800.0, # Y stiffness (N/m)
400.0, # Z stiffness (N/m) -- lower for contact tasks
30.0, # Rx stiffness (Nm/rad)
30.0, # Ry stiffness (Nm/rad)
20.0, # Rz stiffness (Nm/rad)
])
# Damping: critically damped = 2 * sqrt(K * m)
# m_eff ~ 2-5 kg for most 7-DOF arms at typical configurations
m_eff = 3.0 # effective end-effector mass (kg)
self.D = 2.0 * np.sqrt(self.K * m_eff) # Critical damping
def compute_wrench(self, x_desired, x_current, xdot_current):
"""Compute the 6-DOF wrench (force + torque) to apply.
Args:
x_desired: desired pose [x, y, z, rx, ry, rz] (6,)
x_current: current pose [x, y, z, rx, ry, rz] (6,)
xdot_current: current velocity [vx, vy, vz, wx, wy, wz] (6,)
Returns:
wrench: [fx, fy, fz, tx, ty, tz] (6,) in Newtons and Nm
"""
pose_error = x_desired - x_current
wrench = self.K @ pose_error - self.D @ xdot_current
return wrench
def set_contact_mode(self, contact_axis='z', contact_force=5.0):
"""Switch specified axis to force control mode.
For hybrid force/position control: set low stiffness on the
contact axis and command a desired force instead of a position.
"""
axis_map = {'x': 0, 'y': 1, 'z': 2, 'rx': 3, 'ry': 4, 'rz': 5}
idx = axis_map[contact_axis]
self.K[idx, idx] = 50.0 # Very low stiffness = compliant
# Desired "position" on this axis becomes force/K:
# x_desired[idx] = x_current[idx] + contact_force / K[idx]
return contact_force / self.K[idx, idx]
调整指南: 开始从上面所示的
特定任务的接触传感要求
了解这些要求可以防止不充分规范 (传感器无法解决重要接触事件),以及过度规范 (付费为不需要的精度).
**
**
**PCB组件插入 (5-15N,0.3mm对齐).**表面安装和孔孔组件插入需要将
触觉感知:手腕外 F/T
腕部安装的F/T传感器测量手腕关节的总力/扭矩,从而捕获了抓住器与环境之间的净相互作用.安装在抓住器手指或抓住器手指上的触觉传感器测量了接触接口的局部压力分布.这提供了基本不同的信息.
GelSight / GelSight Mini. 光学触觉传感器可以以30fps捕获高分辨率 (640x480) 的变形接触表面图像.GelSight可以检测表面纹理,估计接触正常情况,测量切割力 - - 这对手腕F/T传感器而言是不可见的信息.价格:每手指500-1,500美元.理想用于:滑动检测,表面质量检查,触摸对象识别.
**XELA uSkin.**可容量触觉传感器阵列,可在灵活传感器
**Paxini触摸传感器.**可通过 [RCSV硬件目录]
新兴:基于学习的触觉传感器. 越来越多的触觉传感器使用神经网络来估计来自原始传感器数据的接触属性.GelSight型传感器产生可通过标准视觉模型处理的图像,以估计接触正常,摩擦系数和滑动概率. 优势与传统容量传感器:来自单个传感器的更丰富的联系信息. 缺点:推断延迟 (5-15ms对于ResNet-18处理240x320触觉图像) 和培训数据的必要性来校准神经估计器. 对于已经使用学习操纵策略的团队来说,添加学习触觉处理模块是具有架构一致性,并提供补充的联系信息.
**当使用触摸与手腕F/T时.**使用手腕F/T用于:粗势控制 (插入,组装),碰撞检测,阻力控制.使用触摸传感器用于:在运输过程中发现滑动,基于纹理的物体分类,稳定的抓住验证和在当地接触几何学方面处理可变化的物体. 为了最大的容量,使用两种方法:控制循环的手腕F/T和触觉传感器,用于抓住监测和滑动预测.
集成力量数据到学习管道中
对于培训团队 (模拟学习) 关于接触式任务的政策,应将力/扭矩数据作为相机图像和联合状态的附加观察
- **数据格式:**记录F/T读数作为传感器框架中的六维向量 (Fx, Fy, Fz, Tx, Ty, Tz) 在30Hz (从原始500-1000Hz传感器速度下调以匹配摄像头框架速度).
- 正常化: 通过传感器的指标范围正常化F/T读数 (例如,为ATI Mini45将强力分为100N,扭矩分为10Nm). 这使得值保持在类似于正常化的关节角和图像特征的范围内.
- 特征提取: 为了简单的整合,将原始6DF/T向量与自体感受状态向量连接,并将它们都输入到政策状态编码器中.
- 预期改善: 加入F/T观察到政策输入中,仅对视觉+自觉化 (插入,组装) 具有接触丰富的任务的成功率提高了10-25%;对于没有显著的接触要求 (空域选择) 的任务,改善是边缘的 (<5%).
控制力安全:保护硬件和工件
没有适当的安全限制的强力控制对机器人和它操纵的物体都具有危险性.
- 硬力限制: 设定每轴的绝对最大力门
值 (例如,在桌面操纵设置上,Fx/Fy为50N,Fz为80N).如果任何轴超出门 值,控制器立即转向符合的重力补偿模式.这些限制保护控制器的错误,意外碰撞和传感器故障. - 强度限制: 限制命令力变化速度 (例如,最大20N/s). 这可以防止突然的强力冲动损害微妙物体或机器人的轮
. - 接触监视犬: 如果F/T传感器超过预期的门
(例如,在2秒内完成任务时,超过5秒),触发时间过关并退缩. 这可以捕捉控制器在不取得进展的情况下向阻碍物推进的情况. - **传感器健康监测:**检查传感器的F/T
度 (所有读数最大),传感器的断开 (读数跳到零),以及过度噪音 (变量超过基线的5倍).
精确的装配的强迫导向搜索策略
对于需要分毫米的配列 (连接器插入,插孔插孔,螺丝启动) 的任务,视觉本身无法提供足够的精度. 强力引导搜索策略使用F/T传感器反
| Strategy | Description | Best For | Typical Search Time | Success Rate |
|---|---|---|---|---|
| Spiral search | Maintain Z contact force while spiraling outward in XY until Z force drops (entry detected) | Round peg-in-hole, centering | 1-5 seconds | 85-92% |
| Raster scan | Systematic XY grid search with contact detection at each point | Rectangular slot insertion, large uncertainty region | 3-15 seconds | 90-95% |
| Force gradient descent | Move in direction that reduces lateral force magnitude (toward chamfer center) | Chamfered holes, self-aligning geometries | 0.5-2 seconds | 88-94% |
| Wiggle insertion | Apply small oscillating rotations around insertion axis while maintaining Z force | Tight clearance insertion, friction-dominated entry | 2-8 seconds | 80-88% |
| Learned residual | Classical search + learned correction from F/T history | Complex geometries, non-standard fixtures | 1-5 seconds | 90-96% |
学习的残留方法是目前的技术状态:使用经典搜索策略 (螺旋或梯度下降) 作为基调控器,然后训练一个小型神经网络在F/T传感器历史记录预测纠正.网络学习了力量签名和最佳搜索调整之间的关系,您的特定硬件和任务几何. 这种混合方法在复杂插入任务上始终超过纯经典和纯学习控制器的5-8%.查看我们的 [经典与学习机器人指南]
强度传感器集成检查列表
对于增加强力感觉到现有操纵设置的团队,本清单涵盖了经常错过的关键集成步骤.
- 机械安装. 安装F/T传感器在机器人的手腕
和抓住器之间.确保安装界面是刚性 - - 传感器和抓住器之间的任何合规性会引入测量错误.使用传感器制造商建议的安装螺栓和扭矩规范.对于ATI传感器,扭矩为2.5Nm;对于Robotiq FT300,使用提供的适配板. - **重力补偿.**传感器以恒定的偏移来测量抓紧器的重量.在启动时,通过在5+臂配置 (不同方向) 记录读数并安装重力补偿模型来校准这一偏差.没有重力补偿,随着臂部移动,"零力"读数变化为2-10N,掩盖实际接触力.
- **电气噪音降低.**F/T传感器电缆容易受到伺服电机的电气噪音.将电缆从电动电源电缆中移开.使用屏蔽电缆,只将屏蔽在一端 (传感器端) 停下来.如果您看到60Hz噪音在力读数中,请检查地面环节.
- **与摄像头和关节的同步.**确保F/T读数与摄像头框架和联合编码器读数有时间标记和同步.对于学习管道,F/T和摄像头数据之间的时间标记偏移超过20ms会降低政策质量.使用硬件同步 (PTP或触发信号) 而不是软件时间标记以获得最佳结果.
- **录制带宽.**F/T传感器以500-7000Hz的原产量输出.对于学习管道,使用平均
镜下样30-50Hz (相匹配摄像头框架速度).用于实时力控制,使用全原产带宽.存储下样和原始数据 - 高带宽数据是用于后处理的接触事件检测.
常见的力感失效模式和调试
了解这些故障模式及其诊断标志可以节省几个小时的调试时间.
| Symptom | Likely Cause | Diagnostic Check | Fix |
|---|---|---|---|
| Force readings drift over a session (0.5-3N/hour) | Thermal drift in strain gauge | Log readings at rest over 2 hours; plot trend | Re-bias every 30 min or use temperature compensation |
| 60 Hz oscillation in force signal | Electrical ground loop | FFT of raw signal; look for spike at 60 Hz | Ground shield at sensor end only; route cable away from motors |
| Large force offset that changes with arm pose | Missing gravity compensation | Record readings at 5+ orientations; offset should correlate with gravity vector | Calibrate gravity model; see integration checklist step 2 |
| Sudden force spikes (50-100N) with no contact | Cable strain or connector intermittent | Wiggle cable during logging; spikes correlate with cable movement | Replace cable; secure cable routing with strain relief |
| Force readings saturate during light contact | Wrong sensor range selected | Check sensor configuration; compare rated range to task forces | Switch to higher-range calibration or a different sensor model |
| Inconsistent readings between left and right fingers | Asymmetric gripper wear or misaligned tactile pad | Apply known force to each finger separately; compare | Replace worn finger pad; recalibrate tactile sensor mounting |
据了解,RCSV在线电脑系统中使用了强度传感器调试的诊断套件,包括精度强度测量器 (Omega DFG35,0.01N分辨率),电缆测试器和一组校准权重.租用RCSV硬件收集数据的团队可以访问该套件以及我们的传感器集成支持.
训练管道中的力量数据:建筑模式
对于将力/扭矩数据纳入学习的操纵策略,有三个已经过验证的架构.
模式1:早期融合 (
**模式2:时间卷积在力史上.***而不是即时的6D读取,通过1D卷积网络传递F/T历史的最后0.5-1.0秒 (15-30读取在30Hz) 通过时间卷积的特征 (接触开始,力坡,振荡频率).结果的特征向量是连接的视觉特征. 对于插入任务,这种模式是优秀的,在这种情况下,力轨迹形状是诊断性的.
模式3:强力定制注意. 在变压器政策中,使用强力读数作为跨注意的定制信号.视觉代币会关注强力特征,使得政策能够学习什么时候根据感觉来看视觉区域.这是最具表达性的架构,但需要500多个示范才能有效训练. 典型的改进:多阶段接触任务 (搜索,插入,验证) 上 20-30%. 仅使用大量数据和具有不同的力调节阶段的任务.
# Pattern 2: Temporal convolution on F/T history
import torch
import torch.nn as nn
class ForceTemporalEncoder(nn.Module):
"""Extract temporal features from F/T sensor history."""
def __init__(self, history_len=30, ft_dim=6, out_dim=32):
super().__init__()
self.conv = nn.Sequential(
nn.Conv1d(ft_dim, 16, kernel_size=5, padding=2),
nn.ReLU(),
nn.Conv1d(16, 32, kernel_size=5, padding=2),
nn.ReLU(),
nn.AdaptiveAvgPool1d(1), # Global average pooling
)
self.fc = nn.Linear(32, out_dim)
def forward(self, ft_history):
# ft_history: (batch, history_len, 6)
x = ft_history.transpose(1, 2) # (batch, 6, history_len)
x = self.conv(x).squeeze(-1) # (batch, 32)
return self.fc(x) # (batch, out_dim)
这种时间编码器产生了紧
**训练提示:**在F/T观察训练时,通过传感器的额定范围 (而不是数据集的实验统计数据) 将强力值正常化.使用实验正常化在部署任务产生训练分布之外的强力时会导致问题 - - 正常化值将超过 [0, 1],政策将获得出于分布输入. 基于范围的正常化 (将Fx分为传感器的Fxmax) 确保输入始终保持在[0, 1]内,无论遇到的特定力量.
** 缺失模式处理:** 如果你的部署有时会没有F/T数据 (传感器故障,硬件配置不同),随机F/T中断训练:在训练期间,全F/T输入率为10-20%的概率. 这教导了政策,在没有F/T数据时,仅仅从视觉上做出合理的预测,而在存在时,F/T提供了改善,而不是是一个难以依赖的因素.
训练时间上空费率与视觉编码器前进传递相比是微不足道的 (5%的增加).
绩效影响:数字
强力操作和仅视力操作之间的性能差异在机器人文献中很大,并且已得到充分记录.对于5mm的清除:强力/扭矩指导方法达到89%的成功率,而仅视力方法达到62%的成功率,基于在Franka Research 3臂上的ATI赞助的基准.
电缆插入
对于处理任务,容量超过5mm,并不需要遵守,仅视觉方法通常是足够的.但对于任何涉及限制适应,滑动接触或微妙的力限制的东西,
成本效益分析:何时增加强力感应
强力感知硬件将为机器人设置增加1,500至8,000美元,需要1-3天的集成时间.
- 总是合理的: 插入距离 <1mm,装配即时或按压连接器,处理脆弱物体 (
蛋,玻璃,电子),表面追踪或抛光,以及任何施加过多的力造成损害的任务. - **有时可以证明是合理的:**一般的物体重量不同的地方 (力帮助检测在运输过程中抓住故障),多物体任务,碰撞检测提高了可靠性,以及质量检查任务,接触力是质量信号.
- 很少有理由: 简单的可靠物体的垃圾
选,软 带的任务提供固有的合规性,以及仅视力提供足够的反 (大距离,不需要接触精度).
增强效率计算:如果加强度感应在每天运行1000个周期的任务上增加15%的任务成功率,并且每个失败周期的重复工作或停机成本为0.50美元,传感器在 2-4 周内自行支付.对于高价值任务 (电子设备组装,医疗设备处理),回报期通常以几天计.
瑞士电脑系统 (RCSV) 拥有各种功能强力操纵硬件,包括手腕F/T传感器,[Paxini触觉传感器]
相关阅读
- 机器人传感指南
- 机器人摄像头设置
T12 ) 关于"Grasp计划调查2025"的研究 - [为什么Teleop数据比Sim]
- 机器人数据注释
- [数据服务]
- 其他类型的设备
T17
强迫你操纵堆
对于接触丰富的操纵任务,RCSV提供了强力感知硬件,集成支持和数据收集.







