Autonomous exploration package aims to explore unknown areas faster and more efficiently by selecting the most meaningful point as the next goal point. To select the most meaningful point, we created a cost function based on 3 values: 2d map segmentation, the clustering size of the detected frontier, and the A* distance to the point. Also,To safely avoid obstacles being explored, we have created a cost map based on the obstacles explored by yolo and 2d lidar.
- ROS-melodic
sudo apt update
sudo apt upgrdae
wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_melodic.sh
chmod +x ./install_ros_melodic.sh
./install_ros_melodic.sh
sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy \
ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc \
ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan \
ros-melodic-rosserial-arduino ros-melodic-rosserial-python \
ros-melodic-rosserial-server ros-melodic-rosserial-client \
ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server \
ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro \
ros-melodic-compressed-image-transport ros-melodic-rqt* \
ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
- Tutrtlebot3 simulation pkg Turtlbot3 E-Manual
sudo apt-get install ros-melodic-dynamixel-sdk
sudo apt-get install ros-melodic-turtlebot3-msgs
sudo apt-get install ros-melodic-turtlebot3
cd ~/catkin_ws/src/
git clone -b melodic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/catkin_ws && catkin_make
- 2d map segmentation pkg incremental_DuDe_ROS
sudo apt-get install libcgal-dev
sudo apt-get install libmpfr-dev
cd ~/catkin_ws/src/
git clone https://github.com/lfermin77/Incremental_DuDe_ROS.git
cd ~/catkin_ws && catkin_make
- autonomous_exploration
cd ~/catkin_ws/src/
git clone https://github.com/KimHyung/autonomous_exploration.git
wstool update -t src
rosdep install -y -r --from-paths ./turtlebot3_slam_3d/src --ignore-src
cd ~/catkin_ws && catkin_make
//1. Launch Gazebo Simulation
roslaunch autonomous_exploration maze.launch
//2. Launch SLAM & Rviz
roslaunch autonomous_exploration gmapping.launch
//3-1. Luanch autonomus exploration without yolo
roslaunch autonomous_exploration autonomous_exploration.launch
//3-2. Luanch autonomus exploration with yolo
roslaunch autonomous_exploration yolo.launch
*To launch autonomous_exploration with yolo, you have to set up your environment(nvidia driver, CUDA, cudnn) for YOLO(ref. https://github.com/leggedrobotics/darknet_ros)