# PiPER SDK MIT模式力矩控制异常及反馈值缩放修正

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-11-19-piper-sdk-73
> 频道：pitfalls | 更新日期：2025-11-19 | 标签：auto, github-issue, piper_sdk
> 核心摘要：固件1.5-8下MIT模式发送力矩被放大4倍且J1-3反馈未除4，需对指令除以4并对J1-3反馈手动除以4修正。

# PiPER SDK MIT模式力矩控制异常及反馈值缩放修正

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[[Question] Proper torque scaling factors for MIT control](https://github.com/agilexrobotics/piper_sdk/issues/73)（GitHub agilexrobotics/piper_sdk #73）

**状态**：已解决

## 问题

使用piper_sdk在MIT模式下进行重力补偿时，直接应用URDF计算力矩导致关节输出过大、运动异常。原因是固件1.5-8存在力矩缩放问题：发送目标力矩时电机实际执行值为输入的4倍；同时SDK接口`GetArmHighSpdInfoMsgs().motor_x.effort`返回的J1-3关节反馈力矩未包含除以4的步骤，导致读取值并非真实物理力矩，而J4-6反馈值则正常。

## 环境

机型：agilex-piper；固件版本：1.5-8；SDK：piper_sdk；控制模式：MIT Mode；描述文件：piper_no_gripper_description.urdf

## 解决办法

1. 发送目标力矩时，将算法计算出的期望力矩值除以4后再通过SDK下发，以抵消固件内部4倍增益（如期望1N·m则发送0.25）。
2. 读取J1-J3关节反馈力矩时，获取`GetArmHighSpdInfoMsgs().motor_x.effort`数值后必须手动除以4才是真实反馈力矩（真实值=电流*1.18125/4）。
3. 读取J4-J6关节反馈力矩时，直接使用`GetArmHighSpdInfoMsgs().motor_x.effort`返回值即可，无需额外处理（真实值=电流*0.95844）。
4. 注意该修正仅针对固件1.5-8版本，其他版本（如1.7.post3）缩放因子可能不同，需重新验证。

讨论原作者：@kwongeunwoo 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub agilexrobotics/piper_sdk #73：[Question] Proper torque scaling factors for MIT control](https://github.com/agilexrobotics/piper_sdk/issues/73)