# Piper SDK EndPoseCtrl模式软限位失效及遥操作逆解突变

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-11-19-piper-sdk-96
> 频道：pitfalls | 更新日期：2025-11-19 | 标签：auto, github-issue, piper_sdk
> 核心摘要：EndPoseCtrl不受SDK软限位约束需写入底层Flash；遥操作逆解突变建议改用Piper ROS Pinocchio求解器。

# Piper SDK EndPoseCtrl模式软限位失效及遥操作逆解突变

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Joint limits set via SetSDKJointLimitParam are not enforced during teleoperation in EndPoseCtrl mode](https://github.com/agilexrobotics/piper_sdk/issues/96)（GitHub agilexrobotics/piper_sdk #96）

**状态**：已解决

## 问题

1. 在EndPoseCtrl模式下，SetSDKJointLimitParam设置的软限位不生效，机械臂可超出限制运动。2. 遥操作时轻微移动设备导致机械臂快速旋转，因底层解析解存在多解且moveP模式无缓存，邻近目标点关节角度解析不一致引发突变。

## 环境

AgileX PiPER机械臂，piper_sdk（V2），EndPoseCtrl控制模式，moveP运动指令，底层主控固件。

## 解决办法

1. 针对限位失效：明确EndPoseCtrl为底层协议末端控制，不受SDK内部软限位影响；需运行 `piper_sdk/piper_sdk/demo/V2/piper_set_motor_angle_limit.py` 将限位参数直接写入底层主控Flash方可生效。
2. 针对逆解突变：底层解析解代码写死且moveP模式即时出解不缓存历史状态，导致多解切换时角度跳变；建议弃用底层解析解，改用piper_ros noetic分支中的Pinocchio末端解析器以获得更平滑的逆解结果。

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

## 原始参考来源 (Sources)

- [GitHub agilexrobotics/piper_sdk #96：Joint limits set via SetSDKJointLimitParam are not enforced during teleoperation in EndPoseCtrl mode](https://github.com/agilexrobotics/piper_sdk/issues/96)