[ros-users] Pioneer2DX does not move with p2os

Brian Gerkey gerkey at willowgarage.com
Wed Sep 29 21:43:45 UTC 2010


On Wed, Sep 29, 2010 at 1:23 PM, von Wichert, Georg
<Georg.Wichert at siemens.com> wrote:
> First thanks for your quick reply! We actually - after some testing with player and some hacking inside the ROS node - are certain now, that our robot simply does not corretly work with the coordinated linar/angular commands. The question is why...?
>
> I actually inherited the robots from a previous project. They are some years old. The driver reports them as a "p2de" type. From your experience with the Pioneers, do you recall whether or not early versions maybe did not support the coordinated motion commands? If not, could some configuration parameters stored inside the robots controller be incorrect and cause this behaviour?

hi Georg,

I'm surprised that your Pioneer doesn't respond to the forward/turn
velocities.  I've used Player on old Pioneer 1's, and they support it
just fine.

The two differences between the modes are (as far as I remember):
 (1) the direct wheel control is sent in a single command, while the
forward/turn control requires a pair of commands
 (2) the direct wheel control bypasses the acceleration profile that's
built in to the microcontroller

Difference (1) is the historical reason that Player defaults to the
direct mode.  By exploiting the combined command, we could get twice
the effective control rate (20Hz instead of 10Hz).  I think that this
is less important on newer robots, as the microcontrollers are running
faster.  Difference (2) is either good or bad, depending on your
needs; the robot is more responsive to changes, but can exhibit
jerkier motion.

> Player actually supports both, the coordinated and the direct drive mode. If we cant get the robots to cooperate, do you think it would make sense for us (and be not too complicated) to port the direct drive mode from player into the ROS node?

That should be straightforward to do.  You could even borrow the logic
from the Player p2os driver.  It's just a geometric transformation to
go from the forward/turn velocities to the individual wheel
velocities.  The one piece of information you need is the axle length.
 In Player, the p2os driver has an auto-generated lookup table with
all that information (p2os/robot_params.[ch]).

	brian.



More information about the ros-users mailing list