EasyNav Plugins

EasyNav Plugins provides the official collection of plugins for the Easy Navigation (EasyNav) framework. These plugins extend the navigation core with planners, controllers, map managers, and localizers compatible with ROS 2.

Each plugin resides in its own ROS 2 package and is registered through pluginlib, enabling dynamic loading at runtime.

Supported ROS 2 versions

  • ROS 2 kilted (Ubuntu 24.04, recommended)

  • ROS 2 rolling

ROS 2 kilted ROS 2 rolling rolling CI status

Repository overview

This repository groups all the official plugins for EasyNav into four main categories:

  1. Planners – generate paths from the robot’s current pose to the goal.

  2. Controllers – convert paths into motion commands.

  3. Maps Managers – manage and update spatial representations of the environment.

  4. Localizers – estimate the robot’s pose using map and sensor data.

Each plugin type implements a well-defined C++ interface and can be configured dynamically in the EasyNav parameter files.

β€”

🧭 Planners

Path-planning plugins implementing A*, costmap-based, and NavMap-based methods.

Package

Description

Documentation

easynav_costmap_planner

A* planner over Costmap2D.

easynav_costmap_planner README

easynav_simple_planner

Simple A* planner for SimpleMap.

easynav_simple_planner README

easynav_navmap_planner

A* planner operating on a NavMap mesh.

easynav_navmap_planner README

β€”

βš™οΈ Controllers

Motion controllers for trajectory tracking and reactive behaviors.

Package

Description | Documentation

easynav_vff_controller

Vector Field Force (VFF) reactive controller.

easynav_vff_controller README

easynav_mppi_controller

Model Predictive Path Integral (MPPI) controller.

easynav_mppi_controller README

easynav_simple_controller

Simple proportional controller for testing.

easynav_simple_controller README

easynav_serest_controller

SeReST (Safe Reactive Steering) controller.

easynav_serest_controller README

β€”

πŸ—ΊοΈ Maps Managers

Map-management plugins that provide, update, and store different environment representations.

Package

Description

Documentation

easynav_navmap_maps_manager

Manages NavMap mesh layers.

easynav_navmap_maps_manager README

easynav_bonxai_maps_manager

Manages Bonxai probabilistic voxel maps.

easynav_bonxai_maps_manager README

easynav_octomap_maps_manager

Manages OctoMap 3D occupancy trees.

easynav_octomap_maps_manager README

easynav_costmap_maps_manager

Manages Costmap2D layers with filters.

easynav_costmap_maps_manager README

easynav_simple_maps_manager

Minimal example map manager for SimpleMap.

easynav_simple_maps_manager README

β€”

πŸ“ Localizers

Localization plugins based on different map types and sensors.

Package

Description

Documentation

easynav_gps_localizer

GPS-based localizer for outdoor navigation.

easynav_gps_localizer README

easynav_simple_localizer

Basic localizer for SimpleMap-based setups.

easynav_simple_localizer README

easynav_navmap_localizer

AMCL-like localizer operating on NavMap meshes.

easynav_navmap_localizer README

easynav_costmap_localizer

AMCL-like localizer using Costmap2D.

easynav_costmap_localizer README

β€”

License

All packages in this repository are released under GPL-3.0-only, unless stated otherwise in their respective package directories.