-
Notifications
You must be signed in to change notification settings - Fork 44
Description
Hi — hope you’re well.
I’m trying to understand the MIT low-level controller at a high level and would appreciate a few clarifications.
I checked the Q&A note and the piper_interface_v2.py implementation (links below) and have three specific questions:
-
Is it possible to provide T_ref (torque reference) directly and bypass pos_ref / vel_ref, or does the MIT controller always require position/velocity references as inputs? And will piper arm react accurately to T_ref command?
-
Where does the feedforward torque T_ff come from in the implementation (computed internally, estimated from model, sent from upper layers, etc.)?
-
Could you provide a short explanation of the MIT control loop architecture (what runs on the motor controller vs. what is expected from the user) and any constraints we should be aware of since the low-level control is firmware-embedded?
Links I referenced:
Q&A: https://github.com/agilexrobotics/piper_sdk/blob/master/asserts/Q&A.MD#31-torque-control-in-mit
Code:
| self.__JointMitCtrl(motor_num, pos_ref, vel_ref, kp, kd, t_ref) |
Thanks very much for your help — even a brief pointer is appreciated.
Best,
Austin