Skip to content

A Docker-based environment for testing the DWPP Nav2 plugin

License

Notifications You must be signed in to change notification settings

decwest/dwpp_test_environment

Repository files navigation

dwpp_test_environment

ROS2 Distro: Humble Docker

A Docker-based environment for testing the DWPP Nav2 plugin (ROS2 Humble).

This repository provides:

  • 📘 Simulations for comparing DWPP with conventional methods
  • 🚀 Nav2 tutorials that run with DWPP

Assumptions

  • Docker & Docker Compose for creating the virtual environment
  • Task for command management
  • (Optional) Nvidia GPU with nvidia-container-toolkit if GPU is available

To install Task on Ubuntu:

sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin

Installation

  1. Clone this repository
git clone --recursive https://github.com/Decwest/dwpp_test_environment.git
  1. Build the docker image
task build
  1. Run the container
  • CPU only:
task run.cpu
  • With GPU:
task run.gpu
  1. Build the nav2_dynamic_window_pure_pursuit_controller package

Inside the Docker terminal:

colcon build --symlink-install

For the first build only:

source install/local_setup.bash

Running Method Comparison Simulation

ros2 launch nav2_dynamic_window_pure_pursuit_controller dwpp_test.launch.py

👉 Try out different pure pursuit methods on several example path-tracking scenarios.

Controller parameters are defined here: 🔗 test_params.yaml

dwpp_comparison_simulation.mp4

Running the Nav2 Tutorial with DWPP

  1. Launch the Nav2 tutorial

⚠️ The first time, Gazebo may take a while to start because it needs to download models. Please wait patiently.

ros2 launch nav2_bringup tb3_simulation_launch.py params_file:=$(ros2 pkg prefix nav2_dynamic_window_pure_pursuit_controller)/share/nav2_dynamic_window_pure_pursuit_controller/config/example_dwpp_params.yaml headless:=False

If the download seems stuck, start Gazebo manually:

gazebo

Then, from the Insert tab, load TurtleBot3 (Waffle) and TurtleBot3 World.

  1. Set the initial pose using the 2D Pose Estimate panel in RViz2 (important).
  2. Set a goal pose using the Nav2 Goal panel in RViz2. Nav2 should now start navigating! 🚀

Controller parameters are defined here: 🔗 example_dwpp_params.yaml

dwpp_nav2_simulation.mp4

About

A Docker-based environment for testing the DWPP Nav2 plugin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published