A navigation example using turtle bot to sweeping through an environmnet
We will be using the turtle bot as our working example robot. First you will have to install the ros packages for the turtle bot. These packages depend on gazebo2 which is the default provided when you install indigo-full-desktop. If you want to use a more recent version of gazebo you will have to build the turtlebot packages from source.
sudo apt-get install ros-indigo-turtlebot
sudo apt-get install ros-indigo-turtlebot-*
Then run the following command:
roslaunch turtlebot_gazebo turtlebot_world.launch
If all goes well you should see the following:
If Gazebo loads up and the screen is black (it was the case for me) follow the fix instructions on this page: gazebo2-with-black-screen.
In your catking_workspace/src
git clone https://github.com/gpldecha/turtlebot-navigation.git
This goal is to be able to sweep the square environment first with one robot and then collaboratively with another.
We will be using the ros navigation stack. The following concepts will be important
-
global map: is computed with SLAM and then stored as an occupancy grid map.
-
local costmap(see section 2. The Costmap) is used by a local navigation planner ensures that obstacles are avoided. The global path is projected onto the local costmap and is addapted according to the local surounding. See base_local_planner for an example of a local planner
-
global planners: see carrot_planne for an example.
As our goal is to sweep the entire state space we will write our own custom global planner which will compute a path which convers the entire map.
When I first ran the default behaviour the robot would often perfrom complete 360 degree rotations. The local behaviour of the robot is dictated by the local planner which in our case is base_local_planner.
I want to subscribe to topic: /move_base/global_costmap/costmap. But when I check rostop hz /move_base/global_costmap/costmap WARNING: may be using simulated time
There are two maps which are used during the execution of a plan