ServoJ implementation

Hi,

I am trying to get better sim2real results using servoJ.

Could I get anymore in depth information on how servoJ actually works with the gain and lookahead parameter?

Or is it just generally better to use the directTorque instead?

Thanks!

Hi @abjarnsteins ,

Check out these threads to help answer your question. In my experience servoJ can take some fiddling with the parameters to fit your use case.

ServoJ abrupt final motion

Understanding servoj and lookahead time

UR also has some documentation on servoJ

Could I get some more in-detail information on how the parameters work. As far as my understanding goes a simplified version would be:

gain * (q_target - (q_pos + q_vel * lookahead))

which is just a basic PD-controller

Is my understanding correct?
Also is gravity or some other compensations added after?

For more context on what I’m trying to do is that I have 2 ur5e arms that are trying to do dexterous non-prehensile manipulation (lifting a heavy box with simple end effectors).

Finally, do you believe directTorque() should rather be the go-to approach for contact-rich tasks such as mine?

Gravity (i.e. different payloads) should be handled by the servoj command in my experience.

For your context I would recommend servoj just because you have more control over the end position of your payload. I haven’t used directTorque(), so I don’t know the prerequisites you’d need for such an implementation.

For servoj it’s easy enough to know some points and chase them for a certain amount of time.