Joint configuration is broken between sawRobotIO, sawControllersPID and mtsIntuitiveResearchKit following the changes to PID (actuator vs joint space). The code should be modified so:
IO configuration file contains maximum actuator torque and sends information to PID to make sure PID can scale all joints if needed
PID currently checks if positions are outside limits. We don't really have actuator position limits at that point so we should add these to the configuration file
Arm class already has joint position limits as well as torque limits. The class should perform checks on position in {servo, move}_{j,c}p commands and checks on efforts in servo_{j,c}f commands. The arm class shouldn't exchange configuration_js with the PID class anymore
Would be good
Find a solution to tell PID how to scale efforts when one joint is saturated. This is specific to the MTM which is mostly controlled as an haptic system with external forces. When one actuator reaches the maximum torque, should some of the other actuators also be scaled so the resulting wrench remains collinear to the desired wrench? For the MTM, the first 3 joints determine the force while the last 4 determine the torque. The solution might be to use two scales, one for the bottom 3 joints and one for the last 4.
Minimum
Joint configuration is broken between sawRobotIO, sawControllersPID and mtsIntuitiveResearchKit following the changes to PID (actuator vs joint space). The code should be modified so:
{servo, move}_{j,c}p
commands and checks on efforts inservo_{j,c}f
commands. The arm class shouldn't exchangeconfiguration_js
with the PID class anymoreWould be good
Find a solution to tell PID how to scale efforts when one joint is saturated. This is specific to the MTM which is mostly controlled as an haptic system with external forces. When one actuator reaches the maximum torque, should some of the other actuators also be scaled so the resulting wrench remains collinear to the desired wrench? For the MTM, the first 3 joints determine the force while the last 4 determine the torque. The solution might be to use two scales, one for the bottom 3 joints and one for the last 4.