I am attempting to model a Pioneer3-AT mobile robot in Gazebo and control it from ROS. I have been reasonably successful except for one final touch, rotation control.
If I set the MaxForce() for each wheel joint to something very high such as 50, the robot will turn in place very close to the commanded rate. But with this setting any linear motion request causes the robot to do a flip.
If I reduce the MaxForce() for each wheel to 3, the linear response is very close to what I see on the real robot but the rotational control is very slow, perhaps only 1% of the correct speed.
This makes me think that I need to configure mu, mu2, slip1, slip2 for each wheel properly to get the desired performance but I'm not sure how to choose reasonable values. After many frustrating rounds of guess-and-check, the best I was able to get is a robot that kinda responds to the desired velocity commands but slides all over the place (+/- 1m) when attempting to rotate in place.
Additionally, when I watch the joints rotating in Gazebo, I see that each of the wheels will 'slip' for a very short time and this is probably the source of the sliding. I wonder if I could use a single force to rotate both wheels on the same side of the robot. (like using a belt between two wheels on the same side of the robot driven from a single motor.) I think this might help too.
Relevant Files: model.sdf
screenshot of robot http://i45.tinypic.com/20a29ns.png
Originally posted by dereck on Gazebo Answers with karma: 86 on 2013-02-23
Post score: 2
Original comments
Comment by ZdenekM on 2013-05-22:
Hi. I'm very interested in model of P3-AT. If you have updated version - can you share it somehow? Many thanks.