XM430-W210 present position off by 360deg

Issue:

I observed that rarely after power up the reported Present Position is offset by 360 deg.
I have a mechanical limit such that the dynamixel can’t rotate more than ~+/-150deg and also ~+/-20deg. With both setups you can power up at both limits and normally the reported position is correct. But I observed that sometimes they are offset by exactly 360deg, so I assume it might be an issue with the encoder on bootup. Note, this really happens rarely so it is hard to reproduce unfortunately.
This situation is a problem because it will then rotate into the mechanical stop and get a hardware error. A power-cycle fixes the wrong initial position.

Are you aware of any issues like that?


DYNAMIXEL Servo:

XM430-W210


Software Interface:
Own driver implementation following these manuals:

dario,

Would you happen to have noticed if this issue appears when you boot up the actuator somewhere near the 0 position? I’ve noticed that when the actuator is near home, it will report on boot as either being at 0 or at max position, depending on tiny differences in position.

If this happens to be the root of the problem in this instance, the simplest solution would be to just power on the actuator a little bit further away from the home positon.

Hi Jonathon,

Yes it happens right after bootup but my dynamixel should not be close to 0 or max, the rest position is at 180deg (between 0 and max of one rotation). The mechanical stop prevent to rotate them to the 0/max position exactly for that reason, i.e. if you rotate over 0/max it will add +/- 360deg(deterministic), what I am observing is random and happens very sporadic.

That’s quite interesting then… I’ve never heard of something like this happening previously, and if it’s as random as it sounds from your description of the problem, it might be hard to debug without a lot of testing time…

As a solution for the immediate problem, you can add a position validity check that triggers on startup. Before your homing routine starts, compare the present position value to the known-good range you’re expecting and just trigger an early reboot if the position is outside of range.

hi Jonathan,

I just observed this issue even during runtime (torque enabled). Basically on 3 of 4 dynamixels the reported Position jumped by 360deg… During that happening I am only sending goal angles and reading some status information thus no inputs that could explain that sort of behavior. I have the feeling this is a bug in the dynamixel firmware that causes the encoder reading to be incremented by 1 full rotation. But to further investigate and have a clue we would need to know more details about the encoder logic in the firmware…

This sounds like it could also have something to do with the encoder itself. I won’t be able to release too much details to you regarding the firmware’s internal logic, but if you would like your hardware repaired by ROBOTIS, you can submit an RMA request to your region’s ROBOTIS retailer for us to inspect the units and see if it may be a hardware or software issue.

When submitting your items for RMA service please be advised: in the event that the units are not covered under warranty you will be responsible for the cost of shipping + repairs (labor/components) before ROBOTIS may return the RMA units.

To proceed with RMA service fill out the the appropriate form from the list above to open a request with your region’s RMA team. In addition, you may find the troubleshooting self-checklist useful to assist in filling out the RMA request form.