六轴力传感器赋予机械臂触觉感知能力,是力控制的基础。
| 类型 | 原理 | 精度 | 带宽 |
|---|---|---|---|
| 应变片式 | 弹性体+应变片 | 0.1%FS | ~1kHz |
| 压电式 | 压电效应 | 中 | ~10kHz |
| 电容式 | 电容变化 | 高 | ~100Hz |
import numpy as np
from scipy import signal
np.random.seed(42); fs=1000; n=1000; noise_std=0.5
C=np.array([[1,.02,.01,0,.05,.03],[.01,1,.02,.04,0,.02],[.02,.01,1,.03,.02,0],[0,.05,.03,.1,.01,0],[.04,0,.02,.01,.1,.01],[.03,.02,0,0,.01,.1]])
F_true=np.array([10,5,-20,0.5,-0.3,0.8])
raw_all=np.zeros((n,6))
for i in range(n):
f=F_true.copy()
if i>300: f[0]+=5.0 # 突变
raw_all[i]=C@f+np.random.randn(6)*noise_std
Cinv=np.linalg.inv(C); decoded=Cinv@raw_all.T
b,a=signal.butter(4,50/(fs/2),btype='low'); filtered=signal.filtfilt(b,a,decoded,axis=1)
print("力传感器信号处理"); print("="*60)
for i,nm in enumerate(['fx','fy','fz','mx','my','mz']):
m=np.mean(decoded[i,200:290]); s=np.std(decoded[i,200:290])
mf=np.mean(filtered[i,200:290]); sf=np.std(filtered[i,200:290])
print(f"{nm}: 真值={F_true[i]:+7.2f}, 原始σ={s:.2f}, 滤波σ={sf:.2f}, 降噪率={1-sf/s:.1%}")
grad=np.abs(np.gradient(filtered[0]))
det_idx=np.argmax(grad[250:350])+250
print(f"\n突变检测: 延迟={(det_idx-300)/fs*1000:.1f}ms")import numpy as np
print("力控增益调优分析")
for Kf in [0.1, 0.3, 0.5, 1.0, 2.0]:
F_des=10.0; tau=0.05/Kf; settling=4*tau
print(f" Kf={Kf:.1f}: 调节时间={settling*1000:.1f}ms, 稳态力≈{Kf*F_des:.1f}N")
print("\n设计原则: 高增益→快响应但可能不稳定; 低增益→稳定但慢")力控系统设计需要在响应速度和稳定性间取得平衡——力信号噪声和延迟比位置信号更显著。
本课程按"运动学→动力学→力控制→感知规划→实战项目"组织,每课都建立在前面知识基础上。理解本课后,你将:
完成本课后,你应该能够:
完成练习后,继续下一课的学习。本课内容将在后续课程中被反复使用和扩展。
阻抗和导纳是力学系统的两种等价描述:
在频域中,阻抗Z(s)=F(s)/X(s),导纳Y(s)=X(s)/F(s)=1/Z(s)。控制设计中选择哪种取决于执行器的类型:力矩控制的关节用阻抗,位置伺服的关节用导纳。
力控制系统的稳定性与接触环境密切相关:
设计力控系统时必须考虑最恶劣的环境刚度。
ISO/TS 15066定义了协作机器人的安全要求:
力限制:最大接触力取决于身体部位(手指65N,手臂140N,躯干210N等)。速度和功率也需限制。
本课涉及的技术在以下场景中有重要应用:
理解理论与实践的差距,是成为优秀机器人工程师的关键。
仿真验证的算法通常需要以下适配才能部署到实际机器人:参数标定、实时性优化、异常处理、安全保护。仿真与现实的差距(sim-to-real gap)是机器人领域的重要挑战。
Python适合算法验证和原型开发,但生产级控制器通常用C++实现。Python的NumPy/SciPy计算效率约为C++的1/10到1/100,对于1kHz控制频率可能不够。可以使用Cython、Numba或直接C++重写来加速。
推荐步骤:(1) Python仿真验证算法正确性;(2) 添加传感器噪声和延迟模型测试鲁棒性;(3) 用C++重写核心计算模块;(4) 在低速度下实际测试;(5) 逐步提高速度和负载。安全永远是第一位的。
| 术语 | 英文 | 定义 |
|---|---|---|
| 正运动学 | Forward Kinematics | 已知关节角求末端位姿 |
| 逆运动学 | Inverse Kinematics | 已知末端位姿求关节角 |
| 雅可比矩阵 | Jacobian Matrix | 关节速度到末端速度的映射 |
| 奇异位形 | Singularity | 末端失去某些方向运动能力的位形 |
| 工作空间 | Workspace | 末端可达的空间区域 |
| 自由度 | Degrees of Freedom | 独立运动变量的数量 |
| 齐次变换 | Homogeneous Transform | 4x4矩阵表示位姿 |
| 阻抗控制 | Impedance Control | 控制力与位移的动态关系 |
| 导纳控制 | Admittance Control | 输入力输出位移修正 |
| 轨迹规划 | Trajectory Planning | 生成平滑的运动时间函数 |
| 力封闭 | Force Closure | 接触力可抵抗任意外力 |
| 碰撞检测 | Collision Detection | 判断几何体是否相交 |
| 路径规划 | Path Planning | 在障碍物间找到安全路径 |
| 视觉伺服 | Visual Servoing | 基于视觉反馈的运动控制 |
| 手眼标定 | Hand-Eye Calibration | 确定相机与机器人坐标系的变换 |
掌握信号处理和突变检测!
在实际机器人上实验时,请始终遵循以下安全规则: