Directional Friction and Skid Steer

I’m working on a skid steer robot. It moves forward and backward just fine, but attempting to get it to turn is tricky. It won’t turn unless you turn the velocities up very high.

Gazebo has methods for simulating different friction constants for different directions. Could the existing properties in Physic Material for Dynamic/Static friction be used? I found this reference to directional friction maybe being removed from Unity.

Is there another way to get the wheels of my robot to turn properly?

P.S. Probably the same problem as here: 4 wheel differential robot wrong movement · Issue #354 · Unity-Technologies/Unity-Robotics-Hub · GitHub

Unfortunately, the anisotropic friction option was removed in PhysX 3.x many years ago, and there isn’t something that comes as a 100% substitute yet.

One of the approaches that I saw working in the user base would be a custom script that applies forces or torques to steer depending on the current linear velocity and the steer angle. Quite easy to tweak to get the expected behaviour compared to what we used to have as anisotropic friction.

Hope that helps.

Can you point me to the custom script from the user base?

I’m working in a project using a diff/skid robot on unity, I make it working using a script like diff controller from ROS. I encountered the same problem, the robot only go to front and back, no turn, I figured out we need to configure your rigidbody.inertiaTensor.

public Rigidbody rb;

void Start(){
            rb.inertiaTensor = tensor; //Vector3
            rb.centerOfMass=centerOfMass.transform.localPosition;
}

Rebuilding instead of importing is a good options. Setting the inertia to a fix value is a good option as well.