EasyFleet
A simple-by-default framework for multi-robot, multi-capability fleets built on ROS 2
Loading...
Searching...
No Matches
EasyFleet

EasyFleet logo

EasyFleet

rolling codecov

Web: https://easyfleet.github.io

Doxygen documentation: https://EasyNavigation.github.io/EasyFleet/

EasyFleet is an open-source, ROS 2 framework for orchestrating fleets of multi-skill robots, designed to be:

βœ… Capability-oriented, not stack-specific: any robot skill β€” navigation, manipulation, perception, or a custom one β€” is exposed the same way, as a self-describing, lifecycle-managed ROS 2 action.
🧩 Backend-agnostic, through a small set of base classes any integrator subclasses once β€” EasyFleet ships a real EasyNavigation-backed navigation capability out of the box, but nothing in the architecture assumes it.
🐝 Fleet-aware from the ground up: robots announce their own identity and capabilities at runtime, so a mission controller can discover, call, and monitor any number of robots without hardcoding who they are.
πŸ—ΊοΈ Centrally coordinated when it helps: a fleet-wide Navigation Manager publishes one shared map and route graph, and watches every robot's planned path to prevent collisions.
πŸš€ Lightweight and simple to deploy, using plain ROS 2 nodes, actions, and parameter files β€” no external orchestration framework required.

EasyFleet is developed by the Intelligent Robotics Lab at Universidad Rey Juan Carlos, as the fleet-coordination layer that sits on top of a per-robot navigation stack such as EasyNavigation.

πŸ“¦ Packages

Package Description
[easyfleet_core](easyfleet_core) ActionServerBase/ActionClient, Capability/CapabilityClient, Deployment/CapabilityFactory, plus the Navigation/Manipulation/Perception capability base classes.
[easyfleet_interfaces](easyfleet_interfaces) CapabilityDescription, CapabilityStatus, and the Navigation/Manipulation/Perception actions every capability speaks.
[easyfleet_mission_manager](easyfleet_mission_manager) FleetSession, RobotHandle, SimpleController: the client-side API for discovering and driving a fleet's capabilities.
[easyfleet_navigation_manager](easyfleet_navigation_manager) navigation_manager_node: a shared map/route graph for the whole fleet, live-editable from RViz, plus multi-robot path-conflict detection and pause/resume.
[easyfleet_easynav_navigation](easyfleet_easynav_navigation) The Navigate BehaviorTree.CPP plugin node β€” EasyFleet's own EasyNav-backed navigation capability building block.
[easyfleet_example_deployments](easyfleet_example_deployments) Four self-contained example deployments, from mocked single-robot to two robots both running real EasyNav navigation at once.
[easyfleet_tools](easyfleet_tools) A read-only TUI/CLI for monitoring a running fleet.

πŸ‘₯ Project Maintainers

Name Organization GitHub Role
Francisco MartΓ­n Rico Universidad Rey Juan Carlos fmrico Project Lead

License

Apache-2.0 (see easyfleet_core/LICENSE).