当前位置:力控制
Chapter 5 · Force Control

力控制:接触任务中的位置、力和柔顺性

力控制考试常考概念分类,也会考阻抗/导纳中的质量-阻尼-弹簧计算,以及混合力/位置控制的方向分解。

阻抗导纳直接力控混合力/位置
M K:刚度 B:阻尼
阻抗/导纳都离不开虚拟质量-阻尼-弹簧模型。

1. 为什么接触任务不能只做位置控制

在自由空间,位置误差只是位置偏差;在刚性环境接触中,很小的位置误差也可能产生很大力。

$$F=K_e(x-x_e)$$

环境刚度 \(K_e\) 越大,同样位移误差对应的接触力越大。

这个公式可以看成环境的一维弹簧模型。\(x_e\) 是刚好接触但还没有压入的位置,\(x-x_e\) 是机器人继续压进去的位移,\(K_e\) 是环境有多硬。软组织的等效刚度小,同样压入一点产生的力相对小;金属或硬桌面的等效刚度大,压入很小就可能产生很大接触力。医用机器人强调力控制,是因为人体组织不能只靠位置误差来保证安全,必须让接触力本身也受控。

例 5.1 接触力估算

基础计算

场景交代:画机器人末端沿一维方向压向固定环境表面。环境表面可等效为固定在墙上的弹簧,机器人末端比刚接触位置多压入 \(2\,\mathrm{mm}\),接触力沿法向反推机器人。

题目:环境等效刚度 \(K_e=5000\,\mathrm{N/m}\)。机器人多压入 \(2\,\mathrm{mm}\),估算接触力。

robot end Ke=5000 N/m contact force Delta x = 2 mm F = 5000 x 0.002 = 10 N
接触刚度数值估算示意:环境被等效成固定墙上的弹簧,机器人末端压入越多,弹簧反作用力越大。
图中元素:右侧灰色墙是固定环境,绿色锯齿是环境刚度 \(K_e=5000\,\mathrm{N/m}\),蓝色块是机器人末端;橙色尺寸线标出压入量 \(\Delta x=2\,\mathrm{mm}=0.002\,\mathrm m\),所以接触力 \(F=K_e\Delta x=10\,\mathrm N\)。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

先统一单位。环境刚度单位是 \(\mathrm{N/m}\),所以压入量必须用米表示,\(2\,\mathrm{mm}=0.002\,\mathrm m\)。

$$F=K_e\Delta x=5000\times0.002=10\,\mathrm N$$

结果说明,仅仅 2 mm 的位置误差就能产生 10 N 接触力。如果是在手术或康复场景中,这样的力可能已经明显影响组织安全,所以接触任务不能只说“位置到了就行”,还要控制力或控制柔顺性。

易错点:毫米必须换成米。

例 5.1b 接触力与环境刚度比较

基础变式

场景交代:画两个一维接触场景,机器人末端分别压入软组织和硬表面相同的距离。两种环境都可画成固定墙加弹簧,但硬表面的弹簧刚度更大。

题目:同样压入 \(1\,\mathrm{mm}\),软组织等效刚度 \(K_e=800\,\mathrm{N/m}\),硬表面等效刚度 \(K_e=20000\,\mathrm{N/m}\)。分别估算接触力。

soft tissue hard surface Ke=800, dx=1mm F=0.8 N Ke=20000, dx=1mm F=20 N same penetration, much larger stiffness gives much larger force
软硬环境接触力对比示意:同样压入量下,刚度越大,反作用力越大。
图中元素:左右两栏都画相同压入量 \(\Delta x=1\,\mathrm{mm}=0.001\,\mathrm m\)。左侧软组织 \(K_e=800\,\mathrm{N/m}\),接触力 \(0.8\,\mathrm N\);右侧硬表面 \(K_e=20000\,\mathrm{N/m}\),接触力 \(20\,\mathrm N\)。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

先把压入量换成米:\(1\,\mathrm{mm}=0.001\,\mathrm m\)。接触力用环境弹簧模型 \(F=K_e\Delta x\)。

$$F_{\text{soft}}=800\times0.001=0.8\,\mathrm N$$
$$F_{\text{hard}}=20000\times0.001=20\,\mathrm N$$

同样只有 1 mm 的位置误差,在硬表面上产生的力远大于软组织。这就是为什么接触任务中“位置控制得很准”仍不一定安全:环境越硬,微小位置误差越容易被放大成大接触力。

易错点:同样位移误差下,环境刚度越大,接触力越大。

2. 力控制分类:被动/主动、间接/直接

力控制分类容易背混,可以用控制作用发生的位置来理解。被动力控制把安全性和柔顺性放在机械结构里,例如弹簧、柔性关节或远心柔顺机构;即使控制器反应慢,结构本身也会让接触不那么硬。主动力控制则依赖传感器测量力,再由控制器实时调节执行器输出。间接力控制并不直接命令“力等于多少”,而是通过规定力和运动之间的关系来让接触力变合理;直接力控制则把期望力和实际力相减,把力误差本身放进反馈回路。

分类核心思想考试判断关键词
Passive force control靠机械结构本身柔顺,例如弹簧、柔性关节、RCC 等,不一定需要力传感闭环。结构柔顺、低控制带宽、天然安全。
Active force control靠传感器和控制器主动调节接触力。力/力矩传感器、反馈、控制律。
Indirect force control不直接指定力闭环,而是通过运动-力关系塑造接触力。阻抗控制、导纳控制、柔顺控制。
Direct force control直接比较期望力和实际力,并闭合力反馈回路。\(f_d-f_e\)、力误差、PI/PD 力控制器。
课件 Chapter 7 的分类图可以按一句话记:被动靠机构,主动靠控制;间接塑造力-运动关系,直接闭合力误差。

3. 阻抗控制与导纳控制

阻抗和导纳是一对互逆的思想。阻抗控制规定“如果末端偏离期望位置,应该表现出多大的反作用力”,所以它从运动误差算力;导纳控制规定“如果外界施加一个力,机器人应该让出多少运动”,所以它从外力算位移或速度。二者都借用了质量-阻尼-弹簧模型,因为这个模型能同时描述惯性、耗能和回弹,是接触任务里最直观的柔顺性描述。

阻抗控制

运动误差输入,力输出。

$$F_d=M_d\ddot e+B_d\dot e+K_de$$

导纳控制

外力输入,运动输出。

$$M_d\ddot x_d+B_d\dot x_d+K_dx_d=F_{ext}$$

阻抗公式里的 \(e\) 通常是位置误差,例如 \(e=x_d-x\) 或 \(e=x-x_d\),具体符号取决于课程采用的定义。\(\dot e=de/dt\) 是误差对时间求导,表示误差变化速度;\(\ddot e=d^2e/dt^2\) 是误差再求一次导,表示误差变化的加速度。于是 \(K_de\) 像弹簧,误差越大力越大;\(B_d\dot e\) 像阻尼器,误差变化越快阻尼力越大;\(M_d\ddot e\) 像虚拟质量,误差加速度越大需要的惯性力越大。导纳公式则反过来:给定外力 \(F_{ext}\),通过这个二阶微分方程求出系统应该产生的位移、速度或加速度响应。

Open-loop impedance control 只按期望阻抗模型给出运动/力关系;closed-loop impedance control 会用实际力或位姿反馈修正误差,更能抵抗环境刚度和模型误差。

Chapter 7 还把阻抗/导纳的特殊情况单独列出来。只保留刚度项时就是 stiffness control 或 compliance control;只强调速度项时就是 damping control;完整保留 \(M,B,K\) 三项时才是二阶质量-阻尼-弹簧柔顺模型。compliance 是 stiffness 的倒数直觉:刚度越小,同样外力造成的位移越大,机器人越柔顺。

特例简化公式物理含义
Stiffness control\(F=Ke\)只根据位移误差产生弹簧力,误差越大力越大。
Compliance control\(e=CF,\ C=K^{-1}\)给定外力后允许产生位移,\(C\) 越大越软。
Damping control\(F=B\dot e\)主要抑制速度和振动,让接触更平稳。
Inertial response\(F=M\ddot e\)用虚拟质量描述加速度变化需要的力。

开环阻抗

$$F_{cmd}=M_d\ddot e+B_d\dot e+K_de$$

适合环境较确定、精度要求不极端的场景。

闭环阻抗

$$F_{cmd}=F_d+K_f(F_d-F_e)$$

加入力反馈,实际接触力偏离时能修正。

例 5.2 阻抗力计算

必会

场景交代:把图画成一维水平模型:左侧灰色墙是期望位置或固定参考端,右侧蓝色方块是机器人末端等效出来的虚拟质量 \(M_d\)。上方锯齿线是虚拟弹簧 \(K_d\),下方黄色圆角筒和伸出的杆是虚拟阻尼器 \(B_d\)。弹簧和阻尼器都一端连在左侧固定端,另一端连在右侧质量块上,所以它们是并联关系。末端相对期望位置的偏差、偏差速度、偏差加速度都沿这条水平接触方向定义。

题目:机器人末端沿水平方向与环境接触。把期望末端位置画成左侧固定参考端,把实际末端等效成右侧质量块;虚拟弹簧 \(K_d\) 和虚拟阻尼器 \(B_d\) 并联连接在固定参考端与末端质量块之间。规定向右为正方向,某时刻末端误差 \(e=0.01\,\mathrm m\),表示末端相对期望位置向右偏了 1 cm;误差速度 \(\dot e=-0.05\,\mathrm{m/s}\),表示这个偏差正在减小;误差加速度 \(\ddot e=0.2\,\mathrm{m/s^2}\)。若 \(M_d=1\), \(B_d=20\), \(K_d=200\),求阻抗模型输出的期望力 \(F_d\)。

固定参考端 虚拟弹簧 Kd 虚拟阻尼器 Bd 虚拟质量 Md Fd 机器人末端等效块,沿接触方向运动 期望位置 xd / 固定端
阻抗模型示意:左侧灰色墙是期望位置/固定参考端;上方锯齿线是虚拟弹簧 Kd;下方黄色圆角筒和伸出的杆是虚拟阻尼器 Bd;右侧蓝色方块是机器人末端等效出来的虚拟质量 Md。弹簧和阻尼器并联连接在固定参考端与末端质量之间,箭头 Fd 表示模型计算出的期望接触力方向。
图中元素:读图时从左到右看:固定参考端提供期望位置,弹簧 \(K_d\) 看位移误差,阻尼器 \(B_d\) 看误差速度,质量 \(M_d\) 看误差加速度,三项共同形成 \(F_d\)。
建模顺序:
  1. 先把图读成一维并联模型:弹簧、阻尼器和质量都沿同一水平接触方向作用。
  2. 规定正方向,并确认 \(e,\dot e,\ddot e\) 的正负号都按这个方向给出。
  3. 分别计算惯性项 \(M_d\ddot e\)、阻尼项 \(B_d\dot e\)、刚度项 \(K_de\)。
  4. 把三项相加得到 \(F_d\),最后解释为什么阻尼项可能为负。

解析过程

先把图和公式对应起来。右侧蓝色块是虚拟质量 \(M_d\),它对应惯性项 \(M_d\ddot e\);上方锯齿线是虚拟弹簧 \(K_d\),它对应刚度项 \(K_de\);下方黄色筒状元件是虚拟阻尼器 \(B_d\),它对应阻尼项 \(B_d\dot e\)。三者都连接在同一对端点之间,所以总力就是三项相加。

第一步写阻抗模型。这个模型不是环境真实长成弹簧和阻尼器,而是控制器希望机器人末端表现得像一个“质量-阻尼-弹簧”系统:

$$F_d=M_d\ddot e+B_d\dot e+K_de$$

第二步算虚拟质量项。误差加速度为正,说明偏差加速度沿正方向,因此惯性项也沿正方向:

$$M_d\ddot e=1\times0.2=0.2\,\mathrm N$$

第三步算虚拟阻尼项。阻尼器看的是误差速度 \(\dot e\)。这里 \(\dot e=-0.05\,\mathrm{m/s}\),负号表示误差正在往减小方向变化,所以阻尼项是负的:

$$B_d\dot e=20\times(-0.05)=-1\,\mathrm N$$

这个 \(-1\,\mathrm N\) 的含义是:系统已经在往“误差变小”的方向运动,阻尼器会像刹车一样减少继续推的力,防止冲过头或振荡。

第四步算虚拟弹簧项。误差 \(e=0.01\,\mathrm m\) 是当前偏离期望位置的位移,弹簧项按位移成比例产生恢复作用:

$$K_de=200\times0.01=2\,\mathrm N$$

最后把三项按同一正方向相加:

$$F_d=0.2-1+2=1.2\,\mathrm N$$

所以模型输出的期望力为 \(1.2\,\mathrm N\),方向为我们规定的正方向。它比单纯弹簧项 \(2\,\mathrm N\) 小,是因为阻尼项为负,正在抵消一部分弹簧力;这正是阻尼器让接触响应更平稳的作用。

易错点:阻尼项可能为负,表示误差正在回缩时产生反向阻尼作用。

例 5.3 导纳位移计算

计算

场景交代:画一个患者或环境对机器人手柄施加一维外力,导纳控制器把这个力输入到虚拟弹簧-阻尼-质量模型中,并输出新的期望位移给底层位置控制器。

题目:低速准静态下忽略 \(M_d\ddot x_d\) 和 \(B_d\dot x_d\)。若 \(K_d=100\,\mathrm{N/m}\),外力 \(F_{ext}=5\,\mathrm N\),导纳输出的位移是多少?

handle Fext=5 N quasi-static Kd xd = Fext Kd=100 N/m xd 0.05 m
准静态导纳位移计算示意:忽略虚拟质量和阻尼后,外力只通过虚拟刚度换成期望位移。
图中元素:左侧红色箭头表示外力 \(F_{ext}=5\,\mathrm N\),中间黄色框保留准静态关系 \(K_dx_d=F_{ext}\),其中 \(K_d=100\,\mathrm{N/m}\);右侧输出期望位移 \(x_d=F/K=0.05\,\mathrm m\)。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

导纳控制把外力转换为期望运动。题目说明低速准静态,意味着加速度和速度都很小,所以虚拟质量项和虚拟阻尼项可以忽略,只剩弹簧关系。

$$K_dx_d=F_{ext}\Rightarrow x_d=\frac{5}{100}=0.05\,\mathrm m$$

这表示机器人在 5 N 外力作用下会让出 \(5\,\mathrm{cm}\)。虚拟刚度越小,同样外力对应位移越大,机器人越柔顺;虚拟刚度越大,机器人越“硬”。

易错点:这是准静态近似;若题目给速度/加速度不能忽略对应项。

例 5.3b Damping control 阻尼力计算

基础变式

场景交代:画末端沿一维接触方向运动,阻尼器一端等效固定在期望位置,另一端连接末端。阻尼力只由误差变化速度决定,用来反抗快速相对运动。

题目:某接触任务只采用阻尼控制 \(F=B\dot e\)。若 \(B=30\,\mathrm{N\,s/m}\),误差变化速度 \(\dot e=0.04\,\mathrm{m/s}\),求阻尼力。

B=30 end edot=0.04 F = B edot = 30 x 0.04 = 1.2 N
阻尼力数值计算示意:阻尼器只读取误差变化速度,速度越大,阻尼力越大。
图中元素:黄色阻尼器连接固定参考端和蓝色末端块;末端误差速度 \(\dot e=0.04\,\mathrm{m/s}\) 沿水平正方向,阻尼系数 \(B=30\,\mathrm{N\,s/m}\),所以 \(F=B\dot e=1.2\,\mathrm N\)。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

只采用 damping control 时,力只和误差变化速度有关,不直接和当前位置误差有关。代入 \(F=B\dot e\):

$$F=30\times0.04=1.2\,\mathrm N$$

如果 \(\dot e\) 变号,阻尼力也会变号。物理上,阻尼项总是在抵抗快速变化,让接触过程更平稳,减少振荡和冲击。

易错点:阻尼项看速度,不看位移本身;单位是 \(\mathrm{N\,s/m}\)。

4. 直接力控制、外力控制与混合力/位置控制

直接力控制显式闭合力反馈:比较 \(f_d\) 和 \(f_e\)。External force control 常见在“只给期望接触力”的任务中,例如末端压在桌面上保持指定法向力。

$$e_f=f_d-f_e$$
$$u_f=K_{pf}(f_d-f_e)+K_{if}\int(f_d-f_e)dt$$

直接力控制也可以拆成 feedforward 和 feedback。前馈项 \(u_{ff}\) 由期望力、重力补偿或环境模型给出,用来提前提供大致正确的接触输入;反馈项 \(u_{fb}\) 根据 \(f_d-f_e\) 修正实际误差。简写就是 \(u=u_{ff}+u_{fb}\)。如果模型准,前馈能让误差一开始就小;如果环境刚度或摩擦估计不准,反馈负责把实际力拉回目标。

混合力/位置控制要把任务空间分成受约束方向和自由方向:受约束方向控力,自由方向控位置。

$$u=S_xu_x+S_fu_f,\quad S_x+S_f=I$$

力误差 \(e_f=f_d-f_e\) 的结构和位置误差一样,只是被控量换成了力。\(f_d\) 是希望接触力,\(f_e\) 是传感器测到的实际接触力;二者相减得到“还差多少力”。积分项 \(\int(f_d-f_e)dt\) 是力误差随时间累积的面积,如果实际力长期偏小,这个面积会越来越大,控制器就会持续增加输出,直到平均力误差被消掉。选择矩阵里 \(S_x\) 可以理解为“哪些方向交给位置控制”,\(S_f\) 是“哪些方向交给力控制”,两者相加为 \(I\) 表示任务空间方向被完整分配。

直接力控制和普通位置闭环很像,只是误差从位置误差换成力误差。实际力比期望力小时,\(e_f>0\),控制器会增加压入力或等效控制输入;实际力过大时,\(e_f<0\),控制器会减小接触。混合力/位置控制出现的原因是很多接触任务不是所有方向都应该控力。比如工具在桌面上滑动,垂直桌面方向被环境约束,适合控制法向力;沿桌面方向仍然自由,适合控制位置轨迹。选择矩阵 \(S_x,S_f\) 的作用就是把不同方向分开,避免在同一个方向既要求严格位置又要求严格力而互相矛盾。

方向控制目标例子:末端在桌面上滑动
受约束方向力控制垂直桌面方向保持 \(5\,\mathrm N\) 压力。
自由方向位置控制沿桌面平面从 A 点移动到 B 点。

例 5.4 力反馈 PI 控制

计算

场景交代:画机器人末端压在固定环境表面上,力传感器测得实际接触力 \(f_e\)。控制器把期望力 \(f_d\) 与实际力相减,比例项看当前力误差,积分项看过去累计力误差。

题目:期望力 \(f_d=8\,\mathrm N\),实际力 \(f_e=6.5\,\mathrm N\),力误差积分为 \(0.4\,\mathrm{N\,s}\)。若 \(K_{pf}=2\), \(K_{if}=0.5\),求力控制输出 \(u_f\)。

force error ef=1.5 P=2 x 1.5 = 3 I=0.5 x 0.4 = 0.2 + uf 3.2
力反馈 PI 数值分项示意:先用期望力减实际力得到力误差,再计算比例项和积分项。
图中元素:左侧先算 \(e_f=f_d-f_e=8-6.5=1.5\,\mathrm N\);中间两项分别是比例输出 \(K_{pf}e_f=2\times1.5=3\) 和积分输出 \(K_{if}\int e_fdt=0.5\times0.4=0.2\);求和点得到 \(u_f=3.2\)。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

先算力误差。期望力是 8 N,实际测到 6.5 N,说明当前压得不够,误差为正。

$$e_f=8-6.5=1.5\,\mathrm N$$

比例项立刻根据当前误差给出修正,积分项根据过去累计的力误差继续补偿。如果实际力长期偏小,积分项会逐渐增大,直到偏差被消掉。

$$u_f=2(1.5)+0.5(0.4)=3.2$$

实际力偏小,所以控制器输出为正,趋势是增加接触力。这里的 \(u_f\) 可以是期望位移修正、期望力矩修正或其他执行器输入,具体取决于系统实现。

易错点:先算力误差,再代入力控制器;不要把位置误差混进直接力控题。

例 5.5 混合力/位置控制方向选择

场景判断

场景交代:画手术器械尖端贴在组织表面上。沿表面切向可以自由滑动并跟踪轨迹,垂直表面的法向被组织约束,应控制接触力而不是强行控制压入位置。

题目:手术器械末端沿组织表面切向移动,同时要求法向接触力保持 \(2\,\mathrm N\)。应在哪些方向控位置,哪些方向控力?

force position surface constraint
混合力/位置控制示意:法向控力,切向控位置。
图中元素:灰色长条是接触表面,蓝色圆是末端工具;红色箭头垂直表面表示法向力控制,绿色箭头沿表面表示切向位置控制。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

先分清自由方向和受约束方向。沿组织表面切向移动时,末端可以在表面上滑动,所以切向方向适合按轨迹做位置控制。垂直组织表面的法向方向受到接触约束,如果继续强行按位置压入,微小误差可能产生过大力,因此法向更适合控制接触力。

$$\text{切向:位置控制}\qquad \text{法向:力控制 }(f_d=2\,\mathrm N)$$

这就是混合力/位置控制的典型答案:不同任务方向分配不同控制目标。不要在同一个法向方向同时要求“严格位置到某个压入深度”和“严格保持某个接触力”,因为环境刚度不确定时两者可能互相矛盾。

易错点:受约束方向通常控力,自由方向通常控位置。

5. Chapter 7 场景题速判

场景题不要先背控制器名字,而要先问题目真正想控制什么。如果目标只说末端沿某条轨迹走,且没有接触力要求,就用运动/位置控制。如果目标只说接触力,比如“压住桌面保持 5 N”,核心变量就是力,直接力控制最自然。如果题目同时要求沿表面走轨迹并保持法向力,就必须把自由方向和约束方向分开,这就是混合力/位置控制。若环境未知或人与机器人直接交互,题目通常更关心安全柔顺,此时阻抗或导纳控制更合适。

题干给什么最自然的控制理由
只给末端位置轨迹 \(x_d(t)\)Motion/position control自由空间或未要求接触力,目标是跟踪位姿。
末端接触桌面,只给期望力 \(f_d\)Direct force control / external force control主要目标是法向接触力,位置只是满足接触约束。
沿桌面轨迹运动,同时要求法向压力 \(f_d\)Hybrid force/position control切向自由方向控位置,法向约束方向控力。
未知环境中要求人机安全交互Impedance/admittance control通过虚拟质量-阻尼-弹簧塑造柔顺性。

6. 康复机器人力场案例:Chapter 8 应用

Chapter 8 的项目内容本质上是在把前面几章串起来:先用运动学/动力学理解两个手柄的运动,再用力控制把双手交互设计成可训练的力场。它不只是项目展示,里面的 high/middle/low level 控制结构、force field modeling 和 admittance control 都可以作为综合概念题的背景。

左手柄 右手柄 虚拟力场:协同 / 镜像 / 阻尼 导纳层把交互力转换成期望速度或位移
双侧康复训练中,力场把两只手柄的运动关系转成可感知的交互力。
图中元素:左右两个白色圆环分别表示患者双手握持的两个手柄;上方绿色弧线表示设计出来的协同或镜像虚拟力场,下方蓝色虚线表示导纳层根据交互力生成的期望速度或位移。
层级课件含义复习时要会说什么
High level任务与力场建模决定双侧任务是协同、镜像、耦合还是半耦合,并给出目标轨迹/力场。
Middle level导纳控制把人施加的交互力转成期望运动,调节 \(M_d,B_d,K_d\) 改变训练难度和柔顺性。
Low level机器人执行控制跟踪上层给出的期望位置、速度或力,保证实际手柄运动稳定安全。
评价指标轨迹误差、速度误差、交互力等可用 RMSE 评价跟踪性能,用交互力大小和方向评价辅助/阻碍效果。

这类综合题的答题模板是:先说明任务目标,例如双手同步、镜像或某种 force field;再说明中层导纳如何把外力 \(F_{ext}\) 转成期望运动;最后说明底层位置/速度/力控制如何跟踪命令。若题目问调参,增大虚拟刚度 \(K_d\) 会让系统更硬、偏差更小但交互力更明显;增大虚拟阻尼 \(B_d\) 会让速度变化更平滑;增大虚拟质量 \(M_d\) 会让系统对快速力变化反应更慢。

例 5.6 康复力场导纳参数调节

综合应用

场景交代:画康复机器人手柄沿一维方向被患者推拉。患者施加的外力进入中层导纳控制器,导纳用虚拟刚度把外力换成期望位移,底层机器人再跟踪该位移。

题目:康复训练中用准静态导纳 \(K_dx_d=F_{ext}\)。若 \(K_d=80\,\mathrm{N/m}\),患者施加外力 \(F_{ext}=4\,\mathrm N\),求期望位移。若希望同样外力下位移更小,应怎样调 \(K_d\)?

patient handle Kd xd = Fext Kd=80, F=4 xd=0.05 m position tracking Fext=4N want smaller displacement under same force -> increase Kd
康复导纳参数数值示意:患者施加的交互力先通过导纳刚度换成期望位移,再交给底层位置控制器。
图中元素:患者对手柄施加 \(F_{ext}=4\,\mathrm N\),中间导纳关系为 \(K_dx_d=F_{ext}\),当前 \(K_d=80\,\mathrm{N/m}\),所以 \(x_d=4/80=0.05\,\mathrm m\)。右下角提示:若希望同样外力下位移更小,应增大 \(K_d\)。
建模顺序:
  1. 先确定接触方向:法向控力、切向常控位置,所有标量都沿选定方向取正负号。
  2. 把图中的机械元件和公式项对应起来,例如弹簧对应位移误差、阻尼器对应速度误差、质量对应加速度。
  3. 统一单位,尤其是 mm 要换成 m,再代入公式。
  4. 最后解释结果的方向和物理意义,不只写数值。

解析过程

准静态导纳里,外力通过虚拟刚度换成期望位移:

$$x_d=\frac{F_{ext}}{K_d}=\frac{4}{80}=0.05\,\mathrm m$$

所以系统会让出 \(5\,\mathrm{cm}\)。如果希望同样外力下位移更小,就要增大 \(K_d\),让虚拟弹簧更硬;如果希望患者更容易推动手柄,就要减小 \(K_d\),让系统更柔顺。

放到康复机器人里,\(K_d\) 不是单纯数学参数,而是在调训练难度:刚度太大,患者觉得推不动;刚度太小,辅助太多,训练强度可能不足。

易错点:导纳题看到“同样外力位移变小”,通常意味着增大虚拟刚度。

概念题与计算题自测

概念 1

场景交代:画成上下两个流程。阻抗控制这一行从位置误差、速度误差、加速度误差出发,经过虚拟质量-阻尼-刚度模型输出期望力;导纳控制这一行从外部力出发,经过虚拟导纳模型输出期望位移或速度。

阻抗控制和导纳控制最简洁的区别是什么?

阻抗控制 Impedance e, edot, eddot virtual M-B-K Fd 运动误差 -> 期望力 导纳控制 Admittance Fext virtual admittance xd, xdotd 外部力 -> 期望运动
阻抗/导纳区别示意:阻抗是运动误差输入、力输出;导纳是外部力输入、期望运动输出。
图中元素:上半部分表示阻抗控制,左侧给出位移误差 \(e=x-x_d\),中间虚拟阻抗模型 \(M,B,K\) 把误差换成期望力 \(F_d\);下半部分表示导纳控制,外力 \(F_{ext}\) 进入虚拟导纳模型,输出期望位移或速度 \(x_d,\dot x_d\)。
查看答案与解析

阻抗控制从运动误差出发计算应该产生的力,像是在规定机器人表现出怎样的虚拟质量、阻尼和刚度;导纳控制从外部力出发计算应该产生的运动,像是在规定机器人受到人或环境推拉后应该让出多少位移或速度。一个是运动到力,一个是力到运动,区别的关键就在输入和输出互换。

计算 1

场景交代:画成最简单的一维虚拟弹簧:左端是期望位置或固定参考端,右端是机器人实际末端,中间只有一根弹簧 \(K\)。题目忽略阻尼和惯性,所以不需要画阻尼器和质量块,只需要标出误差 \(e=4\,\mathrm{mm}\) 和公式 \(F=Ke\)。

虚拟刚度 \(K=300\,\mathrm{N/m}\),误差 \(4\,\mathrm{mm}\),忽略阻尼惯性,求力。

固定参考端 虚拟弹簧 K = 300 N/m 末端 实际位置 e = 4 mm F = K e = 300 x 0.004 = 1.2 N
虚拟刚度计算示意:忽略阻尼和惯性时,模型退化为一根虚拟弹簧,力由 \(F=Ke\) 给出。
图中元素:左侧灰色墙是期望位置/固定参考端,绿色锯齿是虚拟弹簧 \(K=300\,\mathrm{N/m}\),右侧蓝色块是实际末端;橙色尺寸箭头表示位移误差 \(e=4\,\mathrm{mm}\),末端受到的恢复力按 \(F=Ke\) 计算。
查看答案与解析

忽略阻尼和惯性后,阻抗模型退化成弹簧关系。先把 \(4\,\mathrm{mm}\) 转成 \(0.004\,\mathrm m\),再代入 \(F=Ke\)。

$$F=Ke=300\times0.004=1.2\,\mathrm N$$

这表示虚拟弹簧被压缩或拉伸 4 mm 时,会产生 1.2 N 的恢复力。

概念 2

场景交代:画末端工具贴着桌面或组织表面运动,沿表面切向是自由方向,垂直表面的法向是受约束方向,需要分别分配位置控制和力控制。

混合力/位置控制为什么需要任务模型?

force position surface constraint
混合力/位置控制示意:法向控力,切向控位置。
图中元素:灰色长条是接触表面,蓝色圆是末端工具;红色箭头垂直表面表示法向力控制,绿色箭头沿表面表示切向位置控制。
查看答案与解析

因为同一个末端在不同方向上的物理约束不同。沿桌面切向可以自由移动,适合位置控制;垂直桌面方向被环境挡住,继续要求精确位置会导致力失控,所以应该控制接触力。任务模型告诉控制器哪些方向自由、哪些方向受约束,从而决定每个方向用位置控制还是力控制。

本章掌握度