Rosanswers logo

Hello everyone! I'm simulating a robot in ros+stage,and I want to make it go random through the world,so I put in .world file ctrl "wander" to the robot. The problem is that it always (I've tried to stop and start again sim many times) goes toward small spaces like corners and then it's stuck in there cause can't turn. How can I solve this?It's possible to modify wander code in some way? thanks all

Originally posted by ldima on ROS Answers with karma: 122 on 2012-05-07

Post score: 0


1 Answer 1


Rosanswers logo

I am afraid, ROS doesn't yet support writing of stage controllers. The stage controllers as wander and lasernoise were compiled into Stage 3.X.X and if you are working with stage/ROS you may not be able to modify the wander code very easily.

However, you may consider working on stage (as a standalone) without ROS, that will allow you to write your own stage controllers. I will always suggest on using stage 3.X.X, as I not acquainted with stage 4.X.X.

PS : sourceforge.net seems down today ! so please be patient


For an alternative to wander, have a look at this document; http://www.cim.mcgill.ca/~yiannis/417/2011/COMP-417Fall2011Assignment1.pdf. However the issue of a wander like algorithm getting stuck in the corners is more or less perpetual, you can slow it down so that the robot scans all possible options before moving forward however that also is bound to get into the narrow corners at some time and it will be a clear trade off with speed.

Originally posted by Arkapravo with karma: 1108 on 2012-05-07

This answer was ACCEPTED on the original site

Post score: 0

Original comments

Comment by ldima on 2012-05-07:
ok thanks arkapravo,but i need ros..do you know other ways to send the robot in the environment without having to control it?

Comment by Arkapravo on 2012-05-07:
@ldima Have a look at the UPDATE

Comment by ldima on 2012-05-09:
thank you!!so i cannot avoid corners..what a pity.I have to control it with keyboard or through rviz...

Comment by Arkapravo on 2012-05-09:
@ldima Well ! if I were you, I would keep 2 layers of control #.1 Wander and #.2 Teleoperation (using teleop_base, http://ros.org/wiki/teleop_base). I would let wander do most of the good stuff and when it is stuck, I would pull it out using teleoperation.

Comment by ldima on 2012-05-12:
ok,this can be one solution,though i have to stay watching my robot going around to get him out of trouble in case..this may be less tedious than driving it around all the time with keyboard but not so good..Thanks for the tip anyway!!

Comment by Arkapravo on 2012-05-13:
@ldima Or otherwise use a 'very simple' environment where obstacles are rounded, no sharp bends, no deep corners, sparsely placed obstacles - and then use 'wander' - this way you will not have to stay watching your robot.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.