Hi all,
we have dual arm motoman robot with DX100 controller (CloPeMa project) and we have successfully moved with the robot using motoman_driver package.
ChangeLists including source codes (in development) are available at
CloPeMa DX100However I found a problem with feedback from the robot, namely with status 'in_motion' which is not synchronized with robot movement (difference about 100ms).
If we use feedback position from the controller it looks like robot is
still moving even when queue is empty - how is it possible? (in my understanding of motion this should not happen, see below)
Using the commanded position, the 'in_motion' status is correct so I think it is not problem of communication latency.
You can find graphs from experiment in attachment.
I will try to explain my understanding (and my modification) of the driver movement which can help with problem solving:
In time
i when interpolationClk is announced (every 8ms):
- The increment from time
i-1 is applied to the robot position
- The increment for time
i+1 is computed
- If there is no point in queue the controller announce 'not in motion' to the PC
- My modification: If there is no point in queue the controller will announce 'not in motion' in time
i+1 (another flag added not just queue size checking)
I thought that modification will solve synchronization problem but it did not help.
In last two years we used hard coded sleeps in all our codes because there were no correct feedback about motion status - we would like to avoid such a solution with a new driver so any help is welcome and appreciate.
Best wishes
Vladimir