Friction cannot be updated in real-time, resulting in incorre,Friction only applies to the current startup time

Hello everyone, while using Isaac sim, I have some doubts about simulating friction that cannot be resolved.
I want to simulate the phenomenon of a car encountering smooth ground and slipping wheels while traveling on the ground.
I set the red ground and friction (both dynamic and static friction are 1). The friction force on the green ground is 0. The ‘Friction Combine Mode’ is’ multiple ‘(I have also tried using’ min ‘and’ average '), but the results are the same.
When the car started on the red ground and reached the green ground (with zero friction), it did not slip but smoothly passed through, as if friction had no effect.


20241025-135254

When I put the car on the green ground and started it from friction 0, it experienced skidding.
When I click “play” to simulate, it seems to only simulate the current ground, while ignoring the friction and physical simulation of other ground in the later stage.

I adjusted the dynamic and static friction of the wheels, and the result was the same.

20241025-135300

The simulation of friction does not seem to update in real time, which is very unfriendly to physical simulation and cannot fully simulate the real physical world. I would like to know how to simulate the situation of wheel slip during the implementation of the car.

Collected_test.zip (106.5 KB)

Thanks for such a nice reproduction environment!

I ran your setup and if you start the “car” in the red material it will continue without problem to roll onto the second surface, I guess from inertia. Try to nudge the plane of the car that is on top of the spheres, when it crosses into the blue plane (with zero friction) and you will see that it will start to slip.

Here I pushed the plane (of the car) towards the red plane and it’s spinning in place, as expected.

I think this is expected behaviour.

@pdeherasciec

Thank you for your reply, and I understand now. However, I still have some questions.

When moving from a red surface (with a friction coefficient of 1.0) to a green surface (with a friction coefficient of 0), due to inertia, the object will continue to move indefinitely. If there are no disturbances, it will keep going forward, even if the path is very long, and it won’t stop. It seems like inertia will never disappear, which doesn’t seem reasonable until I apply an additional force, causing it to “slip.”

My understanding is that in reality, when two wheels are moving and encounter a surface with zero friction, they will automatically start to slip, just like a car driving in the snow. This happens without the need for an additional external force to change their state to slipping.

What I want to know is, how can we simulate a wheel moving normally on a road, suddenly moving onto ice, and then slipping without any additional force applied?

Now we’re getting into fundamental concepts of physics, but let’s go then. You are right that for example in a scenario when going from snow to ice a car would start to slip, when the drivers starts to get control over the car. If the car is allowed to just continue it will not start to swerve on the ice. So even in your case with a car on ice you still need someone to try to control it for that control to lead to slipping.

@pdeherasciec

I’m very sorry for the late response. I have been pondering over this issue.

So, I want to know how I can simulate a wheel spin without any external force. For example, when a car drives onto ice and its wheels start to spin (either spinning in place or able to move while the wheels are spinning, causing some inaccuracies in my “odometers” to mimic real-world problems).

Since I intend to execute this in a “stand_alone” scenario, the wheels cannot start to spin after being “pushed” within the scene.

I don’t think that is possible. Maybe if you try to drive one of the wheels in the opposite direction, but you do need to add an external force, otherwise the system stays the same.