İsaac Gym Wheel Rover Physics Problem

Hi ı am working with dji robomaster rover on isaac gym, ı want train it on gym environment firstly ı make a design and urdf of robomaster and add into the gym env there is no problem here. But when ı drive it ı realize it cant go as well as real world robomaster
Problems is robomaster cant do well crab movement
I add the clearpath husky rover into the issaac gym and give vel command to forward, husky cant go straight, slowly change the heading because little bounce video and code down below
deneme2.py (4.2 KB)
2022-04-12 14-21-37.mkv (9.1 MB)
2022-04-13 17-35-25.mkv (12.3 MB)

There seems to be a known bug with 2/4-wheeled robots that causes drift. There have been previous posts that exhibit this same issue: (Velocity control of robot wheels, Unexpected motion when using elongated cylinders for wheels). Can someone from NVIDIA weigh in on this issue?

I had a very brief test at trying to repro this in PhysX internal tests. I didn’t use your exact model but just tried a simple repro to confirm that it should work. I did see some slight initial rotation if the drive damping was set very high( leading to large initial acceleration) that caused the vehicle’s initial heading to rotate slightly, after which it drove in a pretty much perfect straight line.

I do have some observations from your settings that may help.

(1) contact_offset of 0.00001. That is really tiny for a sim time-step of 1/120. I would recommend not going below 0.005 and ideally keeping contact offsets in the region of 1-2cm if at all possible as this will reduce the chances of wheels continuously losing and gaining contacts, which will lead to the kind of effect you observed. Contact offset is not a thickness that shapes are held separately, it’s the distance at which nearby objects start to generate distant contacts that the solver can use to ensures objects don’t bounce in/out of contact.

(2) I’d also recommend using the TGS solver rather than the PGS solver. It has a more accurate friction model.

You may find that the combination of these doesn’t resolve all the issues you are observing - I used a capsule geometry to represent wheels rather than a convex approximation. This provides a perfect analytical shape rather than a convex approximation. You may find that convexes are slightly less accurate and may lead to some undesirable drift. There are parameters in PhysX to address this, but they are not exposed in the current iteration of IsaacGym.

1 Like