Most mobile robot applications require the ability to navigate. While many robots can navigate using maps, and some can map what they can see, few can explore autonomously beyond their immediate surroundings. Our goal is to develop exploration strategies for the complex indoor environments typically found in real office buildings. Our approach is based on the detection of frontiers, regions on the border between open space and unexplored space.
This project is aimed at rescue operation in indoor environments during disasters. This project has several applications in this domain ranging from inspection of nuclear plants or initial inspection of a damaged building during an earthquake where there is little to zero information about the environment. It will be implemented on a Turtlebot simulated in Gazebo.
Author(s): Banuprathap Anandan
Maintainer: Banuprathap Anandan, bprathap@umd.edu
Affiliation: University of Maryland
- Ubuntu Linux 14.04 as the development platform
- git version control system with GitHub as the host
- ROS Indigo as the middleware
- Gazebo multi-robot simulator version 2.2.3
- C++ language using g++ compiler with C++03 and Catkin build system
- nav_core ROS package (BSD)
- costmap_2D ROS package (BSD)
- gmapping ROS package (CC)
- Travis Continual Integration
- Coveralls coverage monitoring
If you do not have ROS, download the bash script here and run it as sudo. Note: This script assumes you're running Ubuntu 14.04.
The project follows SIP(Solo Iterative Process) to track software changes(SC). Further details can be found here.
Please click here for details about SPRINT.
##Presentation
The final project presentation can be found here
- Open a terminal
mkdir -p catkin_ws/src
cd catkin_ws/src && catkin_init_workspace
git clone https://github.com/banuprathap/turtlebot_explorer.git
cd ..
catkin_make
source ./devel/setup.bashSee the LICENSE file for license rights and limitations (MIT).
The code is currently fully functional in Stage simulator. It has issues with move_base and gmapping while running in Gazebo
To run the demo, simply launch demo.launch using
roslaunch turtlebot_explorer demo.launchTo run the tests, in your catkin_ws directory run the following command
catkin_make run_testsThe code is completely commented with doxygen style comments. To generate code documentation, run the following command in the repository root directory.
doxygen DoxygenIf you do not have Doxygen installed, use
sudo apt-get install doxygenExplorer The Explorer node handles the pointcloud call backs and uses the ***nav_msgs/Occupancygrid *** data to generate a list of frontier points using wavefront frontier detection function wfd() in wavefront_detection.cpp
Navigator The navigator node receives the frontiers generated by the explorer node to generate navigation commands using move_base action client. The goal is published to the topic /move_base/goal
- The code does not run in Gazebo. It stops abruptly after sending the first goal to the move_base client.
- There are jitters in mapping caused by gmapping resulting in discontinuities in the robot odometry/
