We’re still working on this dynamics model, which would give us the torque we need to (hopefully) overcome the effect of gravity.
In the meantime, we want to test out changing the motors’ torque through:
reachy.right_arm.shoulder_pitch.torque_limit()
etc…
We are trying to find the default torque limit set to the motors, but cannot find it.
Does this mean that the motors are always given maximum torque if we do not manually change the torque_limit()?
@pierre just to clarify, does that mean that when calling the “reachy.goto(goal_positions, duration, wait)” method to move the robot, the motors uses its MAXIMUM torque?
if your answer is yes, does that mean we cannot compensate for the gravity by increasing the torque?
It actually means that when using the goto method the motor is allowed to use its maximum torque. You have to see the torque_limit as only the upper bound.
Yet, the real used torque will mainly depend on its PID controller and therefore and the trajectory you make it follow. If you ask the motor to go far and real quick, then it will most likely use its maximum torque.
The Dynamixel motors used in Reachy only allow for position control. You can access the present current used by the motor but it’s extremely noisy and make force control impossible on such motor.
I’ve heard of people changing the firmware inside the motor to try to do force control, but without achieving significant results (and it obviously goes against Dynamixel warranty).
To sum up:
you need to control them in position
you can play with their PID gains to adjust their behavior