Page 1 of 1

Simulating a differential

Posted: 14 Feb 2018, 14:58
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!

Re: Simulating a differential

Posted: 15 Feb 2018, 09:17
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.