SLAM USING TELEOPERATION IN STAGEROS
In my previous article, I discussed realising SLAM using stage's wander controller. Now, I discuss about an alternative method where the robot can be driven around by human participation and thus realising SLAM.
Such can be done in ROS using stage/stageros and teleoperation.
#.1 - Start an instance of the master in a terminal window
#.2 - Start the stage/stageros simulation in a new terminal window
rosrun stage stageros /path/to/.world file
This world file must not employ the wander controller. The idea is to drive the robot around not let it wander.
#.3 - Start keyboard based teleoperation
#.4 - Start gmapping in a new terminal window
rosrun gmapping slam_gmapping scan:=base_scan
#.5 - Start map server in a new terminal window
rosrun map_server map_saver
The map will get saved in the directory from where the command for map_server is issued as a pgm file.
Drive the robot around using u,i,k,l etc and check the map as it starts to develop. Drive it around a few times across the whole environment that should give a sufficiently good map.
The rxgraph for this simulation is as shown;
The pros and cons with the previous method can be seen in contrast;
NOTE : Simulations done in ROS 1.4.10 diamondback