Simulating a differential

Typically: "How do I... ", "How can I... " questions
Post Reply
Posts: 9
Joined: 08 Jan 2018, 08:41

Simulating a differential

Post by vrepUser94 »


I would like to simulate a car like (all wheel drive) robot.
I set the target velocity of the drive shaft (i neglect effects of motor and gearing for simplification). In Order to simulate an appropriate dynamical behavior of the vehicle I need to implement a differential at both axles.

I don't want to simulate the differential with joints and stuff like it is done in the "manta" model, so this is actually no help for me.
I would prefer to somehow calculate the behavior of this mechanical object when driving in a curve.

My idea is something like:
  • set the target velocity of the drive shaft
  • use information from the simulation about friction ground/wheel OR use a force sensor between the wheel and the chassis in order to get resulting torque
  • use the simulated torque and the target velocity to calculate the distribution of rpm between the two wheels on the axles
  • set the calculated velocities of the different wheels
Any ideas how I could handle this problem. It is pretty important for my simulation to get realistic dynamic behavior. Therefore I would be happy about every kind of help!

My setup:
I use ROS kinetic to set all the commands for my robot. I would also love to simulate the differential behavior in ROS.
Some not-ROS-relevant things which I need (like storing important data,...) are implemented as some C++ code.

Thank you for your professional support!

Site Admin
Posts: 7966
Joined: 14 Dec 2012, 00:25

Re: Simulating a differential

Post by coppelia »


if you want to implement the differential in a different way as it was done in the Manta model, then you should use the Vortex engine which supports connections between two or more joints. Have a look at the demo scene gearMechanism.ttt. You will have to work with the Joint dependency parameters of the Vortex engine properties for joints.


Post Reply