Using IsaacGym to simulate differential drive of a four-wheel robot

I have been developing a training pipeline for differential drive of a four-wheel robot (ClearPath Jackal). Although, the linear velocity can reach the value I set, the angular velocity is alway an order smaller than the expected value.

For example, if I set linear velocity vx=2 m/s, and angular velocity w=0 rad/s, the robot can move with a velocity of 2m/s. However, when I set vx=0 m/s, and w=\pi rad/s, the robot is supposed to rotate with an angular velocity of \pi rad/s, but the angular velocity I observed is around 0.24 rad/s.

Below is the equation I used to compute the angular velocity of each wheel (b is the width of the robot, r is the radius of the wheel):
wL = (2 * vx + w * b) / (2 * r)
wR = (2 * vx - w * b) / (2 * r)

I am assuming the wheels are slippy on the ground. I change the friction of both ground and the wheels, but none of them seems to matter. The mass of the robot does influence the rotation, but it only decreases the angular velocity. I am also curious what is the proper value for the stiffness and damping of the DOF of the wheels.

Really appreciate it if someone has experience to set up the differential drive in Isaacgym!
Here is a simple repo to reproduce my results: GitHub - Daffan/isaacgym-differential-drive

I experienced the same problem – the angular velocity is way smaller than the desired one using the joint’s velocity control mode. My workaround is to add a multiplier to amplify the angular velocity, e.g.,

wL = (2 * vx + w * amplifier * b) / (2 * r).

I need to tune the amplifier to match the desired angular velocity. For Jackal, I am setting the amplifier as 2.0. Although this does not solve the problem, it provides some reasonable results.

Thanks for the reply! But with this hand-tuned amplifier, can the trained policy be transferred to the real world or other simulation? Also, actually, my angular velocity is over 10 times smaller than the expected value. Could you possible share your settings with Jackal (e.g. friction, mass, stiffness and damping)? Thanks!

Hi I’m experiencing the same issue now. Adding a scaling factor doesn’t help that much for me. I wonder if there is any solution to this issue?

As far as I know, we can model differential drive easily with two-wheel and two-caster, like the turtlebot, since it will rotate in place almost perfectly. With this design, I can simulate Clearpath Jackal, although it does not look elegant.