[ros-users] Pioneer 3dx in ROS

David Feil-Seifer david.feilseifer at gmail.com
Tue May 18 18:30:01 UTC 2010


Tucker-

This looks about right. I don't know what the problem is, but here is
a summary of what I think so far:

The reason that the pulse is used is that the p2os microcontroller has
a watchdog timer. Every 2 seconds (or more or less, I think this
parameter is settable), if the pioneer has not received any messages
from the connected computer (in this case the ROS p2os node) it will
disable the motors. If this would happen, the motors light (on the top
on pioneer 2s, pre h8 controller; on the right side on pioneer2 h8 and
later) would start flashing slowly instead of flashing quickly or
lighting up solid. However, when the robot was re-enabled, it should
not make any noise.

However, there is a chance that you have some user-defined beeps
enabled on the microcontroller. If you could do one of two things, I
could get a better picture of where your particular problem behavior
was originating:

1.) (less invasive, but more time-consuming) Install player
(playerstage.sourceforge.net; latest version 2, version 3 does not
seem to be working properly with the pioneer). Set it up to connect to
a pioneer. Tell me if the same behavior occurs with player. This node
was based heavily on the player driver for the pioneer, so if I made
some error making the ROS conversion, this should pick that up.

2.) (more invasive, try this only if number 1 does not work) Reset
your pioneer's microcontroller to factory settings. Now, I don't know
how to do this, but if you have some user-enabled setting that is
causing this odd behavior, this should eliminate it, as the robots
that I'm working one here are factory-default.

Thanks, and I hope that we can get this sorted out as soon as possible.

-Dave

On Tue, May 18, 2010 at 10:59 AM, Dan Lazewatsky
<lazewatskyd at cse.wustl.edu> wrote:
> Tucker,
> I'm at rev 54. Changing pulse from 1.0 to 0.5 didn't have any effect other
> than playing the startup sound more often. My launch file is attached.
>
> -Dan
> On May 18, 2010, at 12:19 PM, Tucker Hermans wrote:
>
> Dan,
> Are you using the latest version (rev 52 or newer)?  David updated some
> things to make the timing switch to using ros time instead of the standard
> system time.  After this change I had to change to explicitly sending
> pulses, whereas I did not before.  Now setting pulse to 0.5 works and I have
> no issue with the use_sonar  parameter responding correctly.
> If this doesn't work, then can you attach your launch file?
> -Tucker
>
> On Tue, May 18, 2010 at 1:11 PM, Dan Lazewatsky <lazewatskyd at cse.wustl.edu>
> wrote:
>>
>> I finally had a chance to play around with this some more. Setting pulse
>> to 1.0 does indeed make the motors respond sensibly, but also seems to cause
>> the robot to constantly make the startup beeps and turn on the sonar
>> regardless of what use_sonar is set to.
>> -Dan
>> On Apr 27, 2010, at 6:01 PM, Tucker Hermans wrote:
>>
>> Dan,
>> There is a pulse parameter on the ros parameter server for the p2os node
>> (see p2osnode.cc line 49 for where it is defined).
>> If you set this value to something other than -1.0 it should send the
>> pulse (see p2osnode.cc line 725).
>> Adding the following line to the p2os node in your launch file should do
>> the trick:
>> <param name="pulse" value="1.0"/>
>> -Tucker
>> On Tue, Apr 27, 2010 at 6:35 PM, Dan Lazewatsky
>> <lazewatskyd at cse.wustl.edu> wrote:
>>>
>>> No luck setting pulse to 1 (I'm assuming you're referring to the PULSE
>>> parameter in robot_params.h)
>>>
>>> -Dan
>>>
>>> On 4/23/10 2:39 PM, David Feil-Seifer wrote:
>>> > I wrote the node, but a while ago, so I can't be sure, but Ithink that
>>> > I sent a "pulse" message every 1s to keep that watchdog from kicking
>>> > in. However, by default it is turned off. Try setting the "pulse"
>>> > parameter to 1.
>>> >
>>> > -Dave
>>> >
>>> > On Fri, Apr 23, 2010 at 8:24 AM, Brian Gerkey<gerkey at willowgarage.com>
>>> >  wrote:
>>> >
>>> >> It's been a long time since I used a Pioneer, and I haven't looked at
>>> >> the node that you're using, so this is shooting in the dark:
>>> >>
>>> >> If I recall correctly, the microcontroller implements a watchdog that
>>> >> will stop the motors if it hasn't heard a velocity command over the
>>> >> serial line after a certain amount of time.  If you send commands too
>>> >> slowly, the watchdog would kick in between commands, causing the robot
>>> >> to move a bit, halt, move a bit, halt, etc. I believe that the
>>> >> watchdog is configurable, or at least can be turned on or off, which
>>> >> might account for the different in behavior between your robots.
>>> >>
>>> >> Something to try is to make the node resend the last received velocity
>>> >> to the robot at a relatively high rate (10Hz should be enough).  Of
>>> >> course, the node should then implement its own watchdog, which would
>>> >> send zero velocities if it hasn't received a command via ROS after
>>> >> some time.
>>> >>
>>> >>         brian.
>>> >>
>>> >> On Fri, Apr 23, 2010 at 6:56 AM, Tucker
>>> >> Hermans<thermans at cc.gatech.edu>  wrote:
>>> >>
>>> >>> Dan,
>>> >>> Without being able to investigate your setup further, the only thing
>>> >>> I can
>>> >>> think is that the commands being sent over the serial connection are
>>> >>> either
>>> >>> experiencing high latency or are being sent to infrequently, so that
>>> >>> the
>>> >>> velocity commands sent to the microcontroller are far enough apart
>>> >>> that you
>>> >>> get the stuttering effect.
>>> >>> I tried reproducing this by setting a very high time (30s as opposed
>>> >>> to 2s)
>>> >>> to resend velocity commands but this had no effect.  Are you seeing
>>> >>> statements from the p2os node of the form "new speed [0.25, 0.0]
>>> >>> (timestamp)" and "setting vel: [0.25,0.0]".  If not what kind of
>>> >>> debug
>>> >>> output are you seeing on the node?
>>> >>> -Tucker
>>> >>>
>>> >>> On Thu, Apr 22, 2010 at 12:31 PM, Dan
>>> >>> Lazewatsky<lazewatskyd at cse.wustl.edu>
>>> >>> wrote:
>>> >>>
>>> >>>> I just tried out a few things from your pioneer_control package and
>>> >>>> I get
>>> >>>> the same behavior I was seeing before.
>>> >>>>
>>> >>>> -Dan
>>> >>>>
>>> >>>> On 4/21/10 7:13 PM, Dan Lazewatsky wrote:
>>> >>>>
>>> >>>> Hi Tucker,
>>> >>>> I think that should be enough to get me going.
>>> >>>>
>>> >>>> Thanks!
>>> >>>> -Dan
>>> >>>>
>>> >>>> On 4/21/10 6:57 PM, Tucker Hermans wrote:
>>> >>>>
>>> >>>> Hi Dan,
>>> >>>> I send the MotorState command of 4 and have no problems.
>>> >>>> I have a teleop keyboard port which I use for communicating with the
>>> >>>> p3dx
>>> >>>> that you can find
>>> >>>> here: github.com/trhermans/AffLearning/tree/master/pioneer_control/
>>> >>>> Note: the launch file is setup for a p3dx with a PTZ connected to an
>>> >>>> onboard computer and uses the probe camera driver to get the video
>>> >>>> stream.
>>> >>>> I have only been testing the changes to the p2os package on a p3dx
>>> >>>> with an
>>> >>>> onboard computer, I don't think this should have any issues, but it
>>> >>>> could.
>>> >>>> Let me know if the keyboard operation gives the same problems you
>>> >>>> have now
>>> >>>> and I'll try and help debug it.
>>> >>>> -Tucker
>>> >>>>
>>> >>>> On Wed, Apr 21, 2010 at 7:49 PM, Dan Lazewatsky
>>> >>>> <lazewatskyd at cse.wustl.edu>  wrote:
>>> >>>>
>>> >>>>> Hi all -
>>> >>>>> I know this has been discussed here a bit, but not in much detail.
>>> >>>>> We have a Pioneer3dx that we'd like to get up and running again. I
>>> >>>>> downloaded and compiled the p2os package which seems to be able to
>>> >>>>> successfully connect and communicate with the robot using a serial
>>> >>>>> to
>>> >>>>> USB adapter. However, I'm having trouble getting the motors to do
>>> >>>>> anything sensible. The robot's motor self-test looks like it works
>>> >>>>> fine,
>>> >>>>> but sending cmd_vel, all I can get is extremely slow, jerky
>>> >>>>> movement
>>> >>>>> forward or backwards (no turning). I enabled the motors with:
>>> >>>>>
>>> >>>>> rostopic pub cmd_motor_state -1 p2os/MotorState 1 (I also tried 4
>>> >>>>> instead of 1 which was mentioned in a previous discussion)
>>> >>>>>
>>> >>>>> This feels like a communication problem between the motor commands
>>> >>>>> p2os
>>> >>>>> is sending and the robot, but I don't know what's going on. Any
>>> >>>>> ideas?
>>> >>>>>
>>> >>>>> Thanks,
>>> >>>>> -Dan
>>> >>>>> _______________________________________________
>>> >>>>> ros-users mailing list
>>> >>>>> ros-users at code.ros.org
>>> >>>>> https://code.ros.org/mailman/listinfo/ros-users
>>> >>>>>
>>> >>>>
>>> >>>> _______________________________________________
>>> >>>> ros-users mailing list
>>> >>>> ros-users at code.ros.org
>>> >>>> https://code.ros.org/mailman/listinfo/ros-users
>>> >>>>
>>> >>>>
>>> >>>> _______________________________________________
>>> >>>> ros-users mailing list
>>> >>>> ros-users at code.ros.org
>>> >>>> https://code.ros.org/mailman/listinfo/ros-users
>>> >>>>
>>> >>>>
>>> >>>> _______________________________________________
>>> >>>> ros-users mailing list
>>> >>>> ros-users at code.ros.org
>>> >>>> https://code.ros.org/mailman/listinfo/ros-users
>>> >>>>
>>> >>>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> ros-users mailing list
>>> >>> ros-users at code.ros.org
>>> >>> https://code.ros.org/mailman/listinfo/ros-users
>>> >>>
>>> >>>
>>> >>>
>>> >> _______________________________________________
>>> >> ros-users mailing list
>>> >> ros-users at code.ros.org
>>> >> https://code.ros.org/mailman/listinfo/ros-users
>>> >>
>>> >>
>>> > _______________________________________________
>>> > ros-users mailing list
>>> > ros-users at code.ros.org
>>> > https://code.ros.org/mailman/listinfo/ros-users
>>> >
>>> _______________________________________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/listinfo/ros-users
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>>
>> _______________________________________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>



More information about the ros-users mailing list