Repository Summary
Description | A free fleet management system. |
Checkout URI | https://github.com/open-rmf/free_fleet.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-07-15 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
free_fleet | 2.0.0 |
free_fleet_adapter | 2.0.0 |
free_fleet_examples | 2.0.0 |
README
Free Fleet
- Introduction
- Dependency installation, source build and setup
- Simulation examples
- Troubleshooting
- Contributing
- TODOs
Introduction
Free fleet is a python implementation of the Open-RMF Fleet Adapter, based on the fleet_adapter_template
. It uses zenoh
as a communication layer between each robot and the fleet adapter, allowing access and control over the navigation stacks of the robots.
Using zenoh
bridges to pipe the necessary ROS 2 / 1 messages between each robot and the free_fleet_adapter
, users have the flexibility to configure and customize their network setups accordingly following the official guide. Examples provided in this repository are using these configurations, do take note of the selective topics that are required for the free_fleet_adapter
to work. The zenoh
configuration conveniently allows users to filter and limit the rate of messages based on topics as well, which will be helpful in deployments with limited network bandwidth.
Each robot’s navigation stack is expected to be non-namespaced, while its zenoh
bridge is expected to be set up with it’s robot name as the namespace. This allows the free_fleet_adapter
to integrate with each robot in the fleet individually using zenoh
namespaces.
Supports
- Ubuntu 24.04
- ROS 2 Jazzy
- rmw-cyclonedds-cpp
- Open-RMF binaries on ROS 2 Jazzy
- zenoh-bridge-ros2dds v1.3.3
- zenoh-bridge-ros1 main
- zenoh router
We recommend setting up zenoh-bridge-ros2dds
with the released standalone binaries. After downloading the appropriate released version and platform, extract and use the standalone binaries as is. For source builds of zenoh-bridge-ros2dds
, please follow the official guides.
As for zenoh-bridge-ros1
, it requires the new support for bridge namespaces, and therefore needs to be built from source. Once the feature has been released, this will be updated.
Most of the tests have been performed using rmw-cyclonedds-cpp
, while other RMW implementations have shown varying results. Support and testing with other RMW implementations will be set up down the road.
Dependency installation, source build and setup
System dependencies,
sudo apt update && sudo apt install python3-pip ros-jazzy-rmw-cyclonedds-cpp
The dependencies nudged
, eclipse-zenoh
, pycdr2
, rosbags
are available through pip
. Users can choose to set up a virtual environment, or --break-system-packages
by performing the installation directly.
pip3 install nudged eclipse-zenoh==1.3.3 pycdr2 rosbags --break-system-packages
Install zenohd
from the official guide.
Set up workspace, install dependencies and build,
mkdir -p ~/ff_ws/src
cd ~/ff_ws/src
git clone https://github.com/open-rmf/free_fleet
# Install dependencies
cd ~/ff_ws
rosdep install --from-paths src --ignore-src --rosdistro $ROS_DISTRO -yr
# Build
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
Download and extract standalone binaries for zenoh-bridge-ros2dds
(optionally zenohd
if a non-latest version is desired) with the correct architecture, system setup and version. The following example instructions are for x86_64-unknown-linux-gnu
,
# Change preferred zenoh version here
export ZENOH_VERSION=1.3.3
# Download and extract zenoh-bridge-ros2dds release
wget -O zenoh-plugin-ros2dds.zip https://github.com/eclipse-zenoh/zenoh-plugin-ros2dds/releases/download/$ZENOH_VERSION/zenoh-plugin-ros2dds-$ZENOH_VERSION-x86_64-unknown-linux-gnu-standalone.zip
unzip zenoh-plugin-ros2dds.zip
# If using released standalone binaries of zenoh router, download and extract the release
# wget -O zenoh.zip https://github.com/eclipse-zenoh/zenoh/releases/download/$ZENOH_VERSION/zenoh-$ZENOH_VERSION-x86_64-unknown-linux-gnu-standalone.zip
# unzip zenoh.zip
Simulation examples
Examples for running a single robot or multiple robots in simulation has been up in free_fleet_examples
, along with example configuration files for zenoh
as well as fleet configuration files for free_fleet_adapter
.
For ROS 2, simulations will be launched using the nav2_bringup
package. Since the turtlebot3_gazebo
package is not being released past jazzy, users will need to clone the package to access the gazebo models,
sudo apt update && sudo apt install ros-jazzy-nav2-bringup
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations ~/turtlebot3_simulations
Nav2 Single turtlebot3 world
File truncated at 100 lines see the full file