Re: [ros-users] Pioneer2DX does not move with p2os

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: User discussions
Subject: Re: [ros-users] Pioneer2DX does not move with p2os
On Wed, Sep 29, 2010 at 1:23 PM, von Wichert, Georg
<> 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.