Mobile base wheel velocities do not match command in one direction

Isaac Sim Version

4.5.0

Operating System

Ubuntu 22.04 with ROS 2 Humble

GPU Information

  • Model: 4080 Super
  • Driver Version: 550.144.03

Topic Description

When commanding my mobile base I have found that it struggles to follow a commanded path. Digging into the issue I found that the drive wheels do not follow the commanded velocity in the positive direction but do in the negative.
Here are two plots showing the command and feedback for both wheel joints in rad/sec. You can see when rotating right or left the wheel that is sent a positive command has an offset from the actual speed causing the vehicle to not rotate in place and have poor performance when navigating.


In this gif you can see that the offset is pretty constant and is only present when the command is positive.
isaac_velocity_offset

As I have been setting up my vehicle I have been comparing it to Nvidia’s Carter robot configuration. As far as I can tell they are setup very similar except I am using my own diff driver controller to calculate the desired wheel velocities. Both drive wheels are configured the same and only use a Damping gain of 1000000.0 (same as the Carter robot). I don’t really understand why you would only specify Damping and have tried increasing/decreasing the value but get the same behavior. I have also tried to set the DriveStiffness but the wheels do not move if this value is anything but 0.0.

Here is the Omnigraph I am using to subscribe to a ROS topic and command the joints:

Any ideas on things I can change to get better performance from my base?