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
- Docker & Docker Compose for creating the virtual environment
- Task for command management
- (Optional) Nvidia GPU with
nvidia-container-toolkitif GPU is available
To install Task on Ubuntu:
sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin- Clone this repository
git clone --recursive https://github.com/Decwest/dwpp_test_environment.git- Build the docker image
task build- Run the container
- CPU only:
task run.cpu- With GPU:
task run.gpu- Build the
nav2_dynamic_window_pure_pursuit_controllerpackage
Inside the Docker terminal:
colcon build --symlink-installFor the first build only:
source install/local_setup.bashros2 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
- 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:=FalseIf the download seems stuck, start Gazebo manually:
gazeboThen, from the Insert tab, load TurtleBot3 (Waffle) and TurtleBot3 World.
- Set the initial pose using the 2D Pose Estimate panel in RViz2 (important).
- 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