Goto() Inconsistencies

Hey folks!

I’m having an issue using the goto() command to achieve consistent positioning and we’re trying to ascertain whether this is a hardware or a software issue. Currently I’m trying to use Reachy’s left arm to move lightweight rings from one post to another (for the Tower of Hanoi puzzle) and having some positioning issues.

For right now, the movement pattern is simplistic:

  1. go to a spot above the post holding the ring
  2. drop directly down to the ring height
  3. grab the ring
  4. return to the same position as item 1
  5. move to new post and drop the ring

The problem occurs when I attempt to do action 4: the arm doesn’t ever achieve the same height even though I am using the exact same goto() argument as in item 1, and the gripper should only be moving directly upwards ~10cm. This causes the gripper to hit the post when attempting to move to the next goal position.

This happens whether or not Reachy is actually holding the ring, so weight is not an issue. In addition, we’ve noticed that the movement of the left arm in general is very jerky, regardless of duration/interpolation method used in goto(). Our Reachy was upgraded to 2021 software, but only some of the hardware was updated. Both elbow motors were replaced, but the left elbow received an older motor model. When moving both arms in compliant mode, the left elbow is noticeably stiffer and “jerky”. In fact if you put the left arm bent at a right angle, sometimes it will hold the position even in compliant mode.

So, my question is do you think this issue is a result of the left elbow motor being somehow defective, or is this a problem directly related to how the goto() function operates?

Thanks in advance,

Hello Lauren,

From your description, it’s very probable that the left elbow motor has burned. There is nothing you can do except replace it by a new one.

Temporarily, as the elbow motor seems to not be totally broken yet, you can interchange it with the left_arm_yaw motor which is not so much used.

BTW you really have to take care of Dynamixel motors, monitor the temperature and turn them compliant as much as possible. A motor being stiff and static overheat pretty fast.

Thank you for the response.

It looks like we’ll be trying to replace the elbow motor entirely. We’re using the Dynamixel MX-64 AT, would you mind sharing the documentation for mounting, etc?

Hi Lauren,

We are creating a FAQ to solve issues like yours. So, we will make a tutorial to solve it so that it can help other people if they have the same problem.

I will send you a link to this as soon as it is ready.