|
EasyFleet
A simple-by-default framework for multi-robot, multi-capability fleets built on ROS 2
|
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.
| 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. |
| Name | Organization | GitHub | Role |
|---|---|---|---|
| Francisco MartΓn Rico | Universidad Rey Juan Carlos | fmrico | Project Lead |
Apache-2.0 (see easyfleet_core/LICENSE).