外观
踩坑GitHub agilexrobotics/piper_sdk11 个月前
PiPER SDK MIT模式力矩控制异常及反馈值缩放修正
本文由 AI 根据公开内容整理,可能有误,请以原文为准:[Question] Proper torque scaling factors for MIT control(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
解决办法
- 发送目标力矩时,将算法计算出的期望力矩值除以4后再通过SDK下发,以抵消固件内部4倍增益(如期望1N·m则发送0.25)。
- 读取J1-J3关节反馈力矩时,获取
GetArmHighSpdInfoMsgs().motor_x.effort数值后必须手动除以4才是真实反馈力矩(真实值=电流*1.18125/4)。 - 读取J4-J6关节反馈力矩时,直接使用
GetArmHighSpdInfoMsgs().motor_x.effort返回值即可,无需额外处理(真实值=电流*0.95844)。 - 注意该修正仅针对固件1.5-8版本,其他版本(如1.7.post3)缩放因子可能不同,需重新验证。
讨论原作者:@kwongeunwoo 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。