Does ServoJ command work & frequency


#1

Hi all,

If I understand correctly the documentation here (https://github.com/Dobot-Arm/TCP-IP-Protocol/blob/master/README-EN.md), then the ServoJ command allows to directly set the desired joint positions without running any additional trajectory planning, (and if I also understand correctly, the reference joint positions should not be updated faster than 33Hz - can you maybe explain a bit why,…) therefore this command should return immediately, right?
In case this command is not supported yet, are there any plans on adding it? For our application in mind, it would be super crucial to have this flexibility,…

While this document (see link above) indicates that the servoj command is only supported on CR series, in the python demos for MG400 (see here: https://github.com/Dobot-Arm/TCP-IP-4Axis-Python-CMD/blob/main/dobot_api.py), this command actually seems to be implemented, thus can anybody confirm / deny, whether it is possible to use this command with MG400.

Also, it was unclear to me whether the real time port 30004 can be used with the MG400, i.e., can we read out the dobot mg400 every 8ms?

Thanks a lot already!

Best


#2

Hi, ServoJ command not support in MG400.
The ServoJ command is to interrupt the current movement and restart to the target point. If the transmission is too dense, the robot will constantly replan and move, and the motion will stall.
Our algorithm department did not add algorithm interface to MG400 and M1 Pro, so there is no way to adapt these functions under the current version
We are working on a major version change, which will probably be released next year, that will accommodate all of these command


#3

Hi,
Thanks a lot.
Then, just one more question:
Regarding all the movement commands for MG 400 (i.e., MovL, JointMovJ,…), what happens if I send 2 different movement commands right after each other. Will the second command overwrite the first one, or is there internally a queue that only executes the second one after the first one was completed?

Moreover, just as general feedback, I am in contact with some other research labs also, and while you now already have implemented to query the robot, i.e., receive its state every 125ms, it would be greatly appreciated if there would be also the possibility to get direct low-level access, i.e., to have the possbility to set every joint’s desired setpoint, without having some trajectory planning in between, such that the low-level controller just directly tries to track these desired joint setpoints.

Best