Multirobot Turtlebot3 Explore Unknown Environment Simulation based on RRT Exploration for Ubuntu 18.04 ROS Melodic
This package is a compilation of the RRT package in a much complete package rather than figuring map merging and other functions from other resipotary. This would serve as a self-contained package for the exploration module using simulation for the turtlebot. This is tested on Ubuntu 18.04LTS with ROS Melodic.
credit to Hasauino for creating the RRT exploration packages.
RRT Exploration Tutorial package.
An example of the video running RRT Exploration is shown below:
RRT Exploration for Ubuntu 18.04 ROS Melodic.
The following code is executed in ROS Melodic in Ubuntu 18.04 LTS
The following libraries are required to be installed before proceeding to run the code
$ sudo apt-get install ros-melodic-gmapping
$ sudo apt-get install ros-melodic-navigation
$ sudo apt-get install python-opencv
$ sudo apt-get install python-numpy
$ sudo apt-get install python-scikits-learn
$ sudo apt-get install ros-melodic-teb-local-planner
Create a new folder called "catkin_explore/src" by executing the following comment:
$ sudo mkdir -p ~/catkin_explore/src
$ cd ~/catkin_explore/src/
$ git clone https://github.com/hikashi/multi-robot-rrt-exploration-melodic.git
$ cd ~/catkin_explore
$ catkin_make
Download the Amazon world map by executing the following comments:
$ cd ~/catkin_explore/src
$ git clone https://github.com/aws-robotics/aws-robomaker-small-house-world.git
$ git clone https://github.com/aws-robotics/aws-robomaker-bookstore-world.git
$ cd ~/catkin_explore/
$ catkin_make
The program can be executed using the following comments in three different terminals:
Terminal 1
# roscore
Terminal 2
# source ~/catkin_explore/devel/setup.bash
# export TURTLEBOT3_MODEL=waffle_pi
# roslaunch ros_multitb3 single_tb3_house.launch
Terminal 3
# source ~/catkin_explore/devel/setup.bash
# export TURTLEBOT3_MODEL=waffle_pi
# roslaunch rrt_exploration single_tb3_exploration.launch
The program can be executed using the following comments in three different terminals:
Terminal 1
# roscore
Terminal 2
# source ~/catkin_explore/devel/setup.bash
# export TURTLEBOT3_MODEL=waffle_pi
# roslaunch ros_multitb3 multi_tb3_house.launch
Terminal 3
# source ~/catkin_explore/devel/setup.bash
# export TURTLEBOT3_MODEL=waffle_pi
# roslaunch rrt_exploration multi_tb3_exploration.launch
The exploration starts by relying on the correct sequence of punching in points for the exploration boundary. This can be achieved by inputting the clicked point in the following sequence:
- Top Left
- Bottom Left
- Bottom Right
- Top Right
- Initial Point Things to note: 5th initial point should be within the known map or preferably close to the robot starting point.
Save the map using the following command:
# rosrun map_server map_saver -f mymap
- Try to download the online models and put inside "~/.gazebo/models/" folder
- Try not to run a lot processes in the background (simulation is CPU intensive)
- RVIZ might take up some of the computing power, can try to drop some topics if needed.
- The map merging will shift a lot if the slam drifting is too severe.
- Shifting causes the frontier point to remain even after being explored.
- Sometimes robots will take some time to move to a new plan.
- The revenue function is awkwardly computing large negative value and hence the navigation cost seems insignificant. (inherited from the original RRT exploration)
- The assignment of the goal is not close to suboptimal. May need to perform optimization on the goal allocation.