Simulating tracked vehicles

Horstling
Posts: 1
Joined: Fri Jan 02, 2015 1:44 pm

Simulating tracked vehicles

Post by Horstling »

Hi everyone,

I'm evaluating different options for simulating tracked vehicles. I don't care much about sophisticated suspension, the movement just should look somewhat plausible.

Having a plain old wheeled vehicle for physics (and adding the tracks in the visualization only) breaks quite soon:

Image

In this situation, the tracks would go right through the ground. This could be avoided by adding some (low-friction) shape in-between the wheels:

Image

But then again, this construct could easily get in a situation where the wheels lose ground contact:

Image

I could add more wheels to get a better simulation, but I think what I really want is some tangential force coming out of a planar shape (and having no wheels at all):

Image

I have read about simulating conveyor belts with bullet, which goes in the right direction. But as far as I understand, they always go to a target tangential speed. In my scenario, the speed should be limited by the maximum torque that can be supplied by the vehicle's engine, so the available torque would have to be divided amongst all contact points somehow.

Is there a way to accomplish this with bullet?
lunkhound
Posts: 99
Joined: Thu Nov 21, 2013 8:57 pm

Re: Simulating tracked vehicles

Post by lunkhound »

Horstling wrote: I have read about simulating conveyor belts with bullet, which goes in the right direction. But as far as I understand, they always go to a target tangential speed. In my scenario, the speed should be limited by the maximum torque that can be supplied by the vehicle's engine, so the available torque would have to be divided amongst all contact points somehow.

Is there a way to accomplish this with bullet?
This approach sounds promising to me. You'd just need to add an extra bit of physics to simulate the transfer of energy/momentum between engine and treads, and then also treads and ground. The transfer needs to work both ways so that the engine can transmit power to the ground, but also the interactions with the ground can slow down the engine (like going up a hill).

You could model each tread as having its own angular momentum (just a scalar) state variable which determines the conveyor belt speed. Then you just need to figure out how much torque is being applied by the ground on the tread (through all of the points of contact) and update the tread's angular momentum accordingly.

Also the engine will affect the tread's angular momentum, perhaps through a simulated gearbox and differential.

You could use the btActionInterface to handle updating the tread/engine simulation part, similar to how the raycast vehicle works.
Basroil
Posts: 463
Joined: Fri Nov 30, 2012 4:50 am

Re: Simulating tracked vehicles

Post by Basroil »

When you look at real tanks/high performance tracked vehicles, you'll see that the track can bend in the middle (and even front/back) and is not just a straight line from the front to back. :wink:

You can calculate out the workspace fairly easily by mapping the boundary line between the wheels and the ground, though it might get a bit messy if you have concave sections (where you would need to map just the convex area between the wheel contact points). A good way to estimate tracks would be by simply adding more wheels (passive, nearly no inertia) to the bounds of the track's workspace and attach 6dof springs with constraints in the direction of the body and a z direction for rotation, and use that info to draw the tank treads.