No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description Autonomous exploration for ROS 2, featuring two algorithms: Wanderer (heuristic-based) and Discoverer (frontier-based, efficient for large maps). Mapping is handled by Google Cartographer (SLAM) and navigation by Nav2. Simulation runs in Gazebo with TurtleBot3 and with a custom CSV-based map generation.
Checkout URI https://github.com/danigarcialopez/ros2_explorer.git
VCS Type git
VCS Version main
Last Updated 2024-06-01
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

ROS 2 Turtlebot 3 Map Explorer

Description

In this repo we use Turtlebot 3 along with ROS 2 and Gazebo to explore an unknown csv environment, navigate through it and create a map.

The map is created using SLAM with the package Google Cartographer and navigation is achieved with Nav2 package. We have developed two exploring algorithyms:

Wanderer Exploration explores the map doing random turns when it detects an obstacle. It’s a convenient way to explore small maps but time consuming for bigger ones.

Discoverer Exploration prioritizes specific unknown hotspots of the map convoluting the occupancy grid. It’s a better way to explore bigger maps in exchange of a higher computational cost.

Youtube Video

IMAGE ALT TEXT HERE

Installation (tested on Ubuntu 22.04 - ROS 2 Humble)

Install ROS2 Humble

Don’t forget to install colcon:

sudo apt install python3-colcon-common-extensions

Install Gazebo:

sudo apt install gazebo

Install Python libraries:

sudo apt install python3-pip
pip3 install pandas

Create a ROS2 workspace:

mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src

Clone the repository:

git clone https://github.com/DaniGarciaLopez/ros2_explorer.git

Compile packages and get dependencies:

cd ~/turtlebot3_ws/src
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

cd ~/turtlebot3_ws/
colcon build

Include the following lines in ~/.bashrc:

source /opt/ros/humble/local_setup.bash
source ~/turtlebot3_ws/install/local_setup.bash

export TURTLEBOT3_MODEL=burger
export GAZEBO_MODEL_PATH=~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/models

How to run

Execute the launch file and pass the map name (Opens Gazebo simulation, Rviz, Cartographer, Nav2 and exploration servers):

ros2 launch explorer_bringup explorer.launch.py map_name:=map10

Execute manager node and select the desired exploring algorithm:

ros2 run explorer_bringup manager

Add your own CSV Map

Add your own csv maps in this folder:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/maps/

Run Python script:

cd ~/turtlebot3_ws/src/ros2_explorer/explorer_gazebo/
python3 gazebo-map-from-csv.py

Maps will be converted to Gazebo format in /explorer_gazebo/models folder. Create a new .world.xml file in /explorer_gazebo/worlds and modify the name of the map you want to use:

<include>
  <uri>model://map1</uri>
</include>

Package structure

image image