Skip to content

Question about MIT control #91

@austinysa9

Description

@austinysa9

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:

  1. 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?

  2. Where does the feedforward torque T_ff come from in the implementation (computed internally, estimated from model, sent from upper layers, etc.)?

  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions