[ros-users] Pioneer 3dx in ROS

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


Sorry, that message should have been addressed to Dan, not Tucker.

On Tue, May 18, 2010 at 11:30 AM, David Feil-Seifer
<david.feilseifer at gmail.com> wrote:
> 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