How to add slip attribute to a vehicle model?

asked 2017-06-22 20:15:55 -0500

quanke0801 gravatar image

I'm using a vehicle.xacro and a vehicle.gazebo to describe a vehicle model. It has a base link and 4 continuous joints connected to 4 wheel links. The ODE wiki suggests to use "slip" attribute on vehicles because:

Consider a contact point where the coefficient of friction mu is infinite. Normally, if a force f is applied to the two contacting surfaces, to try and get them to slide past each other, they will not move. However, if the FDS coefficient is set to a positive value k then the surfaces will slide past each other, building up to a steady velocity of kf relative to each other. Note that this is quite different from normal frictional effects: the force does not cause a constant acceleration of the surfaces relative to each other - it causes a brief acceleration to achieve the steady velocity. This is useful for modeling some situations, in particular tires. For example consider a car at rest on a road. Pushing the car in its direction of travel will cause it to start moving (i.e. the tires will start rolling). Pushing the car in the perpendicular direction will have no effect, as the tires do not roll in that direction. However - if the car is moving at a velocity v, applying a force f in the perpendicular direction will cause the tires to slip on the road with a velocity proportional to fv (Yes, this really happens).

So how can I set this attribute in my model files? I've tried using the model editor inside Gazebo to set the slip attribute of a cylinder, but when I tested (apply a perpendicular force), the cylinder didn't move along the force.

I need this badly because my vehicle behaves differently than a real vehicle moving fast and turning. The real vehicle cannot follow the lane perfectly with the steering angle due to the slip, but my model can.

edit retag flag offensive close merge delete