Gonçalo, First, off I've been able to reproduce the problem you described in the simulation you sent, but I haven't had a chance to dig too deeply yet. I'll get to that over the next couple of days. As far as the parameters you've set for your robot with the dwa_local_planner, you might be interested in using dynamic reconfigure to tune them. To do this, just "rosrun dynamic_reconfigure reconfigure_gui" and select move_base/DWAPlannerROS. (see http://www.ros.org/wiki/dynamic_reconfigure) This should display the parameters that you can tweak on the fly for the local planner which, I believe, is everything but the acceleration limits.... acc_lim_x, acc_lim_y, and acc_lim_th which you should make sure to set in your launch file. Hope this helps, Eitan 2010/11/19 Gonçalo Cabrita > Hi Steve! > > Thanks for the tip Steve, its working now! > > I'm currently using dwa_local_planner on the roombas in our cluttered > arena. Globally it seems to work better than base_local_planner. However I'm > having the same problem. The robot eventually gets too close to a wall, > crossing the inflated obstacles. But instead of backing up and going for the > wall in an endless loop, the robot just stops. I've been playing around with > the params but I'm not even sure if I'm using the right ones! I looked into > the code and also ran dwa_local_planner/DWAPlannerROS with no params to take > a look at what was being set automatically. I hope I'm not playing around > with non-existent params :P hehehe > > Could you please confirm my list of params Eitan? > > base_local_planner: dwa_local_planner/DWAPlannerROS > controller_frequency: 5.0 > DWAPlannerROS: > holonomic_robot: false > > max_rotational_vel: 1.5 > max_rot_vel: 1.5 > max_trans_vel: 0.16 > min_rot_vel: 0.785 > min_trans_vel: 0.08 > > rot_stopped_vel: 0.01 > trans_stopped_vel: 0.01 > > max_vel_x: 0.16 > max_vel_y: 0.0 > min_vel_x: 0.08 > min_vel_y: 0.0 > > xy_goal_tolerance: 0.10 > yaw_goal_tolerance: 0.05 > > path_distance_bias: 4.0 > goal_distance_bias: 0.7 > occdist_scale: 0.10 > > oscillation_reset_dist: 0.05 > > prune_plan: true > > #forward_point_distance: > #max_scaling_factor: > #penalize_negative_x: > #scaling_speed: > > #sim_granularity: 0.025 > #sim_period: > #sim_time: 1.0 > #vth_samples: 20 > #vx_samples: 3 > #vy_samples: 3 > > Thanks for the help! > > Gonçalo Cabrita > ISR - University of Coimbra > Portugal > > On Fri, Nov 19, 2010 at 3:32 PM, Steven Martin < > s34.martin@connect.qut.edu.au> wrote: > >> My guess is you need to increase your min turn in place parameter. I >> checked out creates a bit more today and I think they have same encoder >> setup as the roombas. Anyway basically if you set a low speed the odom >> reports that the create is rotating but the force is too low to overcome >> friction, so it just sits in place. >> >> Sent from my iPhone >> >> On 20/11/2010, at 12:32 AM, Gonçalo Cabrita wrote: >> >> Hi everyone! >> >> I've been doing some more experiments on the Roombas in the lab arena, >> testing the nav stack on tight places. I'm currently using the following >> params for the planner: >> >> controller_frequency: 5.0 >> TrajectoryPlannerROS: >> >> max_vel_x: 0.20 >> min_vel_x: 0.10 >> max_rotational_vel: 1.5 >> min_in_place_rotational_vel: 0.8 >> acc_lim_th: 0.75 >> acc_lim_x: 0.50 >> acc_lim_y: 0.50 >> >> holonomic_robot: false >> >> yaw_goal_tolerance: 0.05 >> xy_goal_tolerance: 0.05 >> >> path_distance_bias: 1.0 #0.6 >> goal_distance_bias: 0.8 >> occdist_scale: 0.01 >> heading_lookahead: 0.50 #0.325 >> heading_scoring: false >> heading_scoring_timestep: 1.0 #0.8 >> dwa: true >> >> I'm noticing a big difference between the sim on Stage and the real thing, >> when the robot stops on Stage it turns in place to face the direction I set >> in the goal, however on the real robots when the robot reaches the goal it >> just stops and doesn't correct the heading, even if it stays 180 degrees >> from the goal heading. Any ideas on why this could be happening with the >> same params for sim and real robot? >> >> Thanks, >> >> Gonçalo Cabrita >> ISR - University of Coimbra >> Portugal >> >> 2010/11/19 Gonçalo Cabrita < goncabrita@gmail.com> >> >>> Eitan, >>> >>> I've been playing around with move_base params on the simulation and I >>> got better results by increasing path_distance_bias to 6.0 >>> >>> Since my planner runs really slow I also increased the >>> heading_scoring_timestep to 1 >>> >>> Although I guess the path_distance_bias value is a bit exaggerated the >>> robot doesn't get stuck so often since it sticks to the path. However if I >>> set a goal too close to a wall with the robot facing it the roomba just >>> stays there forever. >>> >>> I also tried setting dwa to false to use Trajectory Rollout but it made >>> things worst. Still I will also try that with different params. >>> >>> When I get back to the lab in the morning I'll test these params on the >>> real robots. Also I'll try to run them with the dwa_local_planner to see >>> what happens. >>> >>> Thanks for all the help, >>> >>> Gonçalo Cabrita >>> ISR - University of Coimbra >>> Portugal >>> >>> On Nov 18, 2010, at 9:01 PM, Eitan Marder-Eppstein wrote: >>> >>> Gonçalo, >>> >>> Thanks for the package, I'll take a look at things. >>> >>> To run a different local planner, you'll want to change the plugin that >>> move_base loads. The relevant parameters are documented here: >>> http://www.ros.org/wiki/move_base#Parameters >>> >>> You'll set >>> base_local_planner to be something like dwa_local_planner/DWAPlannerROS. >>> >>> You'll also need to make sure the dwa_local_planner library is made >>> before running move_base as it'll be loaded at runtime. >>> >>> Hope this helps, >>> >>> Eitan >>> >>> 2010/11/18 Gonçalo Cabrita < goncabrita@gmail.com> >>> >>>> Sorry Eitan! >>>> >>>> I should have sent everything compressed the first time! I compressed >>>> the pkg. To run it just put it on your ROS_PACKAGE_PATH, roscore, roscd >>>> roomba_stage and then open stage, launch move_base and open rviz (also >>>> sending a roomba_stage.vcg file): >>>> >>>> rosrun stage stageros roomba_lse_arena.world >>>> roslaunch roomba_stage move_base_lse_arena.launch >>>> >>>> Just send the robot to the top right corner and it will likely stall on >>>> the wall. >>>> >>>> Anyways I just downloaded navigation_experimental! So dwa_local_planner >>>> seems to be a lib, how should I use it to get the robot up and running with >>>> it? Just give me some quick pointers. >>>> >>>> Cheers, >>>> >>>> Gonçalo Cabrita >>>> ISR - University of Coimbra >>>> Portugal >>>> >>>> On Thu, Nov 18, 2010 at 7:02 PM, Eitan Marder-Eppstein < >>>> eitan@willowgarage.com> wrote: >>>> >>>>> Gonçalo, >>>>> >>>>> It looks like you missed a file called "arena_obstalces.pgm" in what >>>>> you sent which is needed by the roomba_ise_arena.world file. Is there any >>>>> way you can just tar up the package you use to bring things up? Ideally this >>>>> would include all the configuration files and launch files you're using to >>>>> bring up stage and the navigation stack and would save a bit of grief in me >>>>> recreating the same package on my end. >>>>> >>>>> Thanks a bunch, >>>>> >>>>> Eitan >>>>> >>>>> 2010/11/18 Gonçalo Cabrita < >>>>> goncabrita@gmail.com> >>>>> >>>>>> Hi Eitan! >>>>>> >>>>>> Thanks for your reply. >>>>>> >>>>>> I'm attaching the files needed to run the sim on Stage. It is the same >>>>>> setup we have on the real arena right now, and the results on the real robot >>>>>> are pretty similar to the simulation. >>>>>> >>>>>> I'll most definitely take a look at the experimental nav stack. I'd >>>>>> like to try the dwa_local_planner on the roomba to see what happens! >>>>>> I'll be posting some feedback and most likely a bunch of questions! >>>>>> >>>>>> Gonçalo Cabrita >>>>>> ISR - University of Coimbra >>>>>> Portugal >>>>>> >>>>>> >>>>>> On Thu, Nov 18, 2010 at 5:54 PM, Eitan Marder-Eppstein < >>>>>> eitan@willowgarage.com> wrote: >>>>>> >>>>>>> Hey guys, >>>>>>> >>>>>>> So, to join in the discussion. From the video, it looks like the >>>>>>> base_local_planner gets stuck in a local minimum with the parameters >>>>>>> configured as they are. Is there any way that you can post the package used >>>>>>> to create that video so that I can play around a little bit? I've wanted to >>>>>>> have a case in simulation where a diff drive robot behaves badly and it >>>>>>> seems like this is a simple one that could help me track down some issues >>>>>>> the navigation stack has with diff drive robots. With that said, its true >>>>>>> that no one local planner is going to fit all robots. >>>>>>> >>>>>>> We've started development of some other local planners in the >>>>>>> navigation_experimental stack that might also be worth checking out. One is >>>>>>> called dwa_local_planner and is a much cleaner version of the >>>>>>> base_local_planner that includes things like scaling the robot's footprint >>>>>>> based on speed, allowing for holonomic robots to explore more of the y >>>>>>> velocity space, and exposing parameters via dynamic reconfigure to make >>>>>>> tuning them a lot easier... we're testing it on the PR2 right now, not sure >>>>>>> how it'll work on a diff-drive robot. There's also the pose_follower which >>>>>>> attempts to follow a plan exactly, stopping in the presence of obstacles. >>>>>>> This also hasn't been tested on diff-drive robots and I'd expect it could >>>>>>> use a few tweaks to really work well, but it might be something to look at. >>>>>>> One thing to keep in mind with all this, however, is that the packages in >>>>>>> navigation_experimental are, well, experimental, so you're likely to run >>>>>>> into some issues from time to time, there are no guarantees about API >>>>>>> stability yet, and documentation isn't great. >>>>>>> >>>>>>> Hope all is well and please do post the simulation package as I'd >>>>>>> love to take a look at things, >>>>>>> >>>>>>> Eitan >>>>>>> >>>>>>> 2010/11/18 Gonçalo Cabrita < >>>>>>> goncabrita@gmail.com> >>>>>>> >>>>>>> We've been a bit busy porting everything that moves around here to >>>>>>>> ROS! We'll update our repository in the next week with everything we've got! >>>>>>>> >>>>>>>> I'm attaching the param files we use for the roombas. >>>>>>>> >>>>>>>> I'm surprised the creates don't have decent odometry since they were >>>>>>>> design for research. We have considered using cheap webcams with visual >>>>>>>> odometry to replace the roomba's odometry, but I haven't had time to look >>>>>>>> into it. If my memory serves me when we opened a roomba we found a hall >>>>>>>> sensor with 4 magnets tied to the motor shaft. So I'm guessing direction is >>>>>>>> determined by the motor speed. And that why when you push the roomba the >>>>>>>> odometry doesn't count back! >>>>>>>> >>>>>>>> I'm really interested in solving this matter. If the problem really >>>>>>>> is from the nav stack we're in big trouble since everything here is diff >>>>>>>> drive! We have roombas, erratics and scouts! >>>>>>>> >>>>>>>> Gonçalo Cabrita >>>>>>>> ISR - University of Coimbra >>>>>>>> Portugal >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Nov 18, 2010 at 3:45 PM, Steven Martin < >>>>>>>> s34.martin@connect.qut.edu.au> wrote: >>>>>>>> >>>>>>>>> Yeh I think my problem is related to odometry, the iCreates don't >>>>>>>>> have any encoders. I thought they did but after looking closer at the driver >>>>>>>>> I am pretty sure its just openloop. Do you have the parameters for amcl in >>>>>>>>> your repository? I had a look but couldn't see them anywhere. >>>>>>>>> >>>>>>>>> I have the code for the pursuit path follower checked in @ >>>>>>>>> launchpad.net/cmr but its very >>>>>>>>> incomplete. It will compile, you can launch it and it will try and follow a >>>>>>>>> path but it doesn't have any obstacle avoidance and I think I have one of my >>>>>>>>> signs wrong in the code as it didn't appear to do much following from the >>>>>>>>> very limited testing I have done. >>>>>>>>> >>>>>>>>> Have a look, its basically as stripped down as I could make a local >>>>>>>>> path planner while still fitting in the ROS framework. Also due to the >>>>>>>>> pretty well useless iCreate odometry I chose to implement this in the global >>>>>>>>> frame and this may have some adverse affects if you are only running >>>>>>>>> localiser @ 3Hz. >>>>>>>>> >>>>>>>>> I will probably have time to look at this next week but I think >>>>>>>>> this is a problem for anybody using nonholonomic robots with the Nav Stack >>>>>>>>> so I would be surprised if someone else hasn't already got a better >>>>>>>>> solution. >>>>>>>>> >>>>>>>>> Steve >>>>>>>>> >>>>>>>>> ------------------------------ >>>>>>>>> *From:* >>>>>>>>> ros-users-bounces@code.ros.org [ >>>>>>>>> ros-users-bounces@code.ros.org] on behalf of Gonçalo Cabrita [ >>>>>>>>> goncabrita@gmail.com] >>>>>>>>> *Sent:* Friday, 19 November 2010 12:52 AM >>>>>>>>> *To:* User discussions >>>>>>>>> *Subject:* Re: [ros-users] Navigation Stack on tight places >>>>>>>>> >>>>>>>>> Hi Steven! >>>>>>>>> >>>>>>>>> "ts not a failure case but do you also see the one where it turns >>>>>>>>> a little bit away from the path then does loop around to rejoin it.?" >>>>>>>>> >>>>>>>>> You we also get that a lot! The robot never sticks to the path >>>>>>>>> the planner outputs, it wonders around a lot. >>>>>>>>> >>>>>>>>> We are using Roombas 560 with Eee PCs and Hokuyo lasers. We >>>>>>>>> launch the Roomba the laser and the tf broadcaster on one file and map >>>>>>>>> server, amcl and move base on another one. We have the map updaters running >>>>>>>>> at 3Hz and the path planner at 5Hz. Still sometimes the EeePC skips a loop! >>>>>>>>> Furthermore, I dunno how the Create is but our Roombas have nasty odometry! >>>>>>>>> The encoders have only 1 channel with 4 pulses per motor turn! >>>>>>>>> >>>>>>>>> Anyways, I'm not familiar with the nav stack code, but I would >>>>>>>>> like to help if possible! >>>>>>>>> >>>>>>>>> Gonçalo Cabrita >>>>>>>>> ISR - University of Coimbra >>>>>>>>> Portugal >>>>>>>>> >>>>>>>>> On Thu, Nov 18, 2010 at 2:35 PM, Steven Martin < >>>>>>>>> s34.martin@connect.qut.edu.au> wrote: >>>>>>>>> >>>>>>>>>> Yep see that one all the time. I think the implementation of DWA >>>>>>>>>> is flawed for tank steer robots. >>>>>>>>>> >>>>>>>>>> Its not a failure case but do you also see the one where it turns >>>>>>>>>> a little bit away from the path then does loop around to rejoin it.? >>>>>>>>>> >>>>>>>>>> I started implementing just pure pursuit path follower to replace >>>>>>>>>> DWA but haven't quite got it working and been too busy with other stuff. I >>>>>>>>>> think we need to implement some other local planners or just path followers. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Also what are you using for the localization? I haven't been able >>>>>>>>>> to get AMCL to work reliably on the iCreates. >>>>>>>>>> ------------------------------ >>>>>>>>>> *From:* >>>>>>>>>> ros-users-bounces@code.ros.org [ >>>>>>>>>> ros-users-bounces@code.ros.org] on behalf of Gonçalo Cabrita [ >>>>>>>>>> goncabrita@gmail.com] >>>>>>>>>> *Sent:* Thursday, 18 November 2010 11:51 PM >>>>>>>>>> *To:* ros-users@code.ros.org >>>>>>>>>> *Subject:* [ros-users] Navigation Stack on tight places >>>>>>>>>> >>>>>>>>>> Hi everyone! >>>>>>>>>> >>>>>>>>>> We've been using the nav stack on our Roombas for quite a while >>>>>>>>>> now, mostly on the corridors of ISR without any problems. >>>>>>>>>> >>>>>>>>>> However we have a small 4mx3m arena we built specifically for >>>>>>>>>> testing odor search algorithms in which we recently started to run some >>>>>>>>>> experiments. We quickly found out that the nav stack has some problems >>>>>>>>>> moving the robot around in tight places. Quite often we get >>>>>>>>>> the behavior that can be seen in the following video... >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> http://www.youtube.com/watch?v=vy9xoNvmktg >>>>>>>>>> >>>>>>>>>> In the video we are running a Roomba inside our arena in Stage >>>>>>>>>> with perfect odometry. The robot stalls against a wall and stays there for >>>>>>>>>> 30mins until we stop it. On occasion the robot eventually gets out after a >>>>>>>>>> while. >>>>>>>>>> >>>>>>>>>> At first I thought this could be happening because of the poor >>>>>>>>>> performance of the EeePCs the Roombas carry around or because of the >>>>>>>>>> Roomba's crappy odometry, but in Stage on a Core2Duo laptop we were able to >>>>>>>>>> see the same behavior. >>>>>>>>>> >>>>>>>>>> Has anyone experienced this behavior before? >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> ros-users mailing list >>>>>>>>>> ros-users@code.ros.org >>>>>>>>>> >>>>>>>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> ros-users mailing list >>>>>>>>> ros-users@code.ros.org >>>>>>>>> >>>>>>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> ros-users mailing list >>>>>>>> ros-users@code.ros.org >>>>>>>> >>>>>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> ros-users mailing list >>>>>>> ros-users@code.ros.org >>>>>>> >>>>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> ros-users mailing list >>>>>> ros-users@code.ros.org >>>>>> >>>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> ros-users mailing list >>>>> ros-users@code.ros.org >>>>> >>>>> https://code.ros.org/mailman/listinfo/ros-users >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> ros-users mailing list >>>> ros-users@code.ros.org >>>> >>>> https://code.ros.org/mailman/listinfo/ros-users >>>> >>>> >>> _______________________________________________ >>> ros-users mailing list >>> ros-users@code.ros.org >>> >>> https://code.ros.org/mailman/listinfo/ros-users >>> >>> >>> >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users >> >> >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users >> >> > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > >