> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wuji.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# 力矩与 MIT 参数

设备默认运行在 MIT 控制模式，控制模式不通过 Python API 设置。

## effort\_limit（SET/GET）

**力矩限幅**：读写各关节的力矩上限（A）。

```python theme={null}
hand.effort_limit().set(1.5)            # 全部关节设为 1.5 A
limits = hand.effort_limit().get()      # → list[Optional[float]]
```

写入拒绝 NaN / Inf / 负值与超出设备上限的值，整手与单关节写入同样校验。写入被拒时报错，当前生效值保持不变。上限由固件设定，常见异常与处理见[脚本运行中抛出异常](/docs/wuji-sdk/troubleshooting/)。

## mit\_params（SET/GET）

**MIT 阻抗参数**：读写各关节的 kp / kd。

```python theme={null}
hand.mit_params().set((1.0, 0.05))           # 全部关节统一 kp / kd
hand.mit_params().set([(1.0, 0.05)] * 20)    # 长度 20 的列表逐关节设置
mp = hand.mit_params().get()                 # → list[Optional[MitParam]]，离线关节为 None
```

写入拒绝 NaN / Inf / 负值。

## 用户零点（origin）

把当前物理位置标定为关节侧零位。关节正在运动时延迟到下次 IDLE 才生效。

```python theme={null}
hand.set_origin()                   # 整手：所有关节刷新用户零点
hand.clear_origin()                 # 整手：清除所有关节的用户零点
hand.set_origin(joints=mask)        # 可选：长度 20 的 0/1 掩码，只作用于掩码位为 1 的关节
```

## 数据类型

### MitParam

**MIT 参数**：`mit_params().get()` 返回元素。

```python theme={null}
class MitParam:
    kp: float
    kd: float
```

`set` 接受单个 `(kp, kd)`（应用到全部关节）或长度 20 的列表（逐关节）。`get` 返回 20 个元素，离线关节为 `None`。

<Tabs>
  <Tab title="Python">
    Python：本页前文已展示 Python 接口。
  </Tab>

  <Tab title="C">
    C 侧接口与本页 Python 接口语义一致，函数前缀 `wuji_hand_2_`。初始化约定、内存管理、错误码与工程构建见 [C 接口参考](/docs/wuji-sdk/data-reference/)。

    ### MIT 参数与力矩上限（含在线 bitmap）

    整手配置写入支持统一值与 per-joint 数组：

    ```c theme={null}
    // 整手 effort_limit 统一 1.5 A
    wuji_hand_2_set_all_effort_limit(dev, 1.5f);

    // per-joint 写入（flat-20，finger-major）
    float limits[20] = { /* ... */ };
    wuji_hand_2_set_all_effort_limit_per_joint(dev, limits);

    float kp[20] = { /* ... */ }, kd[20] = { /* ... */ };
    wuji_hand_2_set_all_mit_params(dev, kp, kd);
    ```

    读取返回 flat-20 数组 + 在线 bitmap，离线关节槽位为零（`mit_params` 离线为 NaN）：

    ```c theme={null}
    float read_back[20];
    uint32_t online = 0;
    wuji_hand_2_get_all_effort_limit(dev, read_back, &online);
    for (int i = 0; i < 20; i++) {
        if (WUJI_JOINT_ONLINE(online, i)) {
            printf("joint %d: limit=%.2fA\n", i, read_back[i]);
        }
    }
    ```

    写入对 NaN / Inf / 负值返回 `WUJI_STATUS_ERR_INVALID_ARG`，在写入前应过滤非法值。
  </Tab>
</Tabs>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.