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