This package is a compilation of the RRT package in a much complete package rather than figuring map merging and other function 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.
The following code is exectuted in ROS Melodic in Ubuntu 18.04 LTS
The following libraries are required to install 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
add in 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 terminal:
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 terminal:
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 relies on the correct sequence else rendering with no goal for each of the robot.
- Top Left
- Bottom Left
- Bottom Right
- Top Right
- Initial Point
Things to note: 5th initial point should be within the known map or preferable 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 run a lot process in the background (simulation is cpu intensive)
- RVIZ might take up some of the computing power, can try to drop some topic if needed.
- the map merging will shift a lot if the slam drifting too severe.
- shifting causing the frontier point remains even after explored.
- sometimes robots will take some time to move to new plan.
- The revenue function is awkwardly computing large negative value and hence the navigation cost seem insignificant. (inherited from the original RRT exploration)
- assignment of the goal is not close to suboptimal. May need to perform optimization on the goal allocation.