基于阻抗的物体控制:从设计到应用
立即解锁
发布时间: 2025-09-29 01:49:06 阅读量: 18 订阅数: 29 AIGC 


灵巧操作:机械手的感知与控制
### 基于阻抗的物体控制:从设计到应用
在物体操作控制领域,实现稳定、精确的物体抓取和操作是一个重要挑战。传统的手持控制器存在诸多不足,如假设静态抓取配置,未集成抓取状态估计手段,无法获取物体实时位姿和接触点信息等。为解决这些问题,提出了一种新的控制方法,下面将详细介绍其设计与实现。
#### 1. 控制器设计概述
传统方法的局限性促使我们引入新的手持定位方法,进而发展出更通用的力分配方法。该方法能通过补偿物体的动态负载来平衡物体,相关公式为:
\[w_{dyn} = G f_{int}\]
同时,明确考虑了摩擦约束以及接触力的上下限,如以下公式所示:
- 法向接触力范围约束:\(f_{min} \leq f_{int,\perp}^{[i]} \leq f_{max}\)
- 摩擦力约束:\(f_{int,\parallel}^{[i]} \leq \mu f_{int,\perp}^{[i]}\)
在选择内力时,要使其尽可能接近期望力,同时满足所有其他约束,可表示为:
\[\min_{f_{int}} \left\lVert f_{int} - f_d \right\rVert\]
确定力分配涉及解决一个二次优化问题,后续会进一步探讨。
#### 2. 控制架构
控制框架的输入分为两部分:
- 抓取状态估计值:包括物体位姿、接触位置和法线,以及校正后的关节位置。
- 用户指定的期望值:如期望的物体位姿和抓取力。
这些输入主要由算法的两个主要组件处理:
- **物体阻抗控制器**:生成一组接触力,使物体向期望位姿移动,同时保持初始抓取配置。
- **内力分配组件**:计算内力以平衡物体的动态负载,这些负载由估计的物体位姿和惯性参数得出。
两个组件产生的力之和随后映射到期望的关节扭矩。此外,关节需要补偿手指上的任何动态负载。零空间控制器的输出构成最终的扭矩分量,其目的是利用接触力和关节扭矩之间映射的零空间来避免关节极限和奇异性。最后,所有扭矩分量的总和被命令到关节控制器,关节控制器根据当前关节扭矩测量值生成适当的电机命令。
以下是控制架构的流程图:
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([输入]):::startend --> B(抓取状态估计值):::process
A --> C(用户指定期望值):::process
B --> D(物体阻抗控制器):::process
C --> D
B --> E(内力分配组件):::process
C --> E
D --> F(力求和):::process
E --> F
F --> G(映射到关节扭矩):::process
G --> H(零空间控制器):::process
G --> I(补偿手指动态负载):::process
H --> J(最终扭矩分量求和):::process
I --> J
J --> K(关节控制器):::process
K --> L([电机命令输出]):::startend
```
#### 3. 物体阻抗控制
#### 3.1 物体定位
阻抗控制器的目标是从物体的当前位姿 \(x_t\) 出发,生成一组接触力 \(f_x \in R^{3n}\),使物体向期望位姿 \(x_{des}\) 移动。通过控制接触点的期望位置来实现阻抗行为,具体步骤如下:
1. 根据物体当前位姿和期望位姿的差异,使用抓取矩阵 \(G\) 近似接触位置的相应运动:
\[\Delta c_x = G^T W^{-1} \Delta x_t\]
其中,\(\Delta c_x \in R^{3n}\) 表示接触点的位移,\(\Delta x_t = x_{des} - x_t\) 是期望和当前物体位姿之间的剩余误差。
2. 假设接触点在物体上的位置固定,将其移动 \(\Delta c_x\) 会导致期望的物体位移。通过建立准静态弹簧 - 阻尼系统来实现手指的相应运动,产生阻抗行为:
\[f_x = K_x \Delta c_x + D_x \Delta \dot{c}_x\]
这里,\(K_x \in R\) 和 \(D_x \in R\) 分别表示标量刚度和阻尼系数,用于实现期望的柔顺性。接触位移的时间导数 \(\dot{c}_x\) 可以从关节速度计算或数值近似。
#### 3.2 保持抓取配置
为防止手指无约束滑动,物体控制器需扩展以主动保持初始抓取配置。初始抓取配置定义为在手持操作任务开始时(\(t = 0\)),接触点相对于物体坐标系 \(\{O\}\) 的位置,记为 \(o_{c_{init}} \in R^{3n}\):
\[o_{c_{init}} = o_{c_0}\]
给定物体的当前位姿,初始配置中时间 \(t\) 时接触点相对于坐标系 \(\{I\}\) 的位置可以表示为:
\[\begin{bmatrix} c_{init,t}^{[i]} \\ 1 \end{bmatrix} = T_{o,t} \begin{bmatrix} o_{c_{init}}^{[i]} \\ 1 \end{bmatrix}\]
目标是命令一个校正量,以补偿初始和当前接触配置之间的差异 \(c_{init,t} - c_t\)。然而,不能直接命令期望的接触位置,因为这也会影响物体的定位。通过利用抓取矩阵的零空间投影来解决这个问题,具
0
0
复制全文
相关推荐










