Philosophy
BellRMF exists to make it painless for any robot — ROS-based or not — to share lifts, doors, and narrow corridors. That means stripping away everything that introduces friction, tight coupling, or unnecessary infrastructure.
We designed BellRMF from the ground up to be cloud-native, stack-agnostic, and autonomy-preserving.
ROS 2 vs Web-First Architecture
What OpenRMF Assumes
OpenRMF is built tightly on ROS 2, which uses DDS (Data Distribution Service) for communication. DDS relies on multicast discovery and a shared LAN environment. As a result, integrating with OpenRMF requires robot developers to:
- Build and maintain a fleet adapter that runs as a ROS 2 node
- Host it on a server within the same network as the RMF core
- Understand and conform to RMF messages, actions, and services
This setup introduces considerable friction — especially for vendors who:
- Don’t use ROS
- Rely on cloud-based control
- Operate over cellular or don’t have LAN access
DDS doesn't play well across subnets, firewalls, or cloud deployments. Maintaining a full ROS 2 runtime and build chain just to call a lift or open a door is often unjustifiable.
How BellRMF Does It Differently
BellRMF is designed to be web-first. Robots connect via a single WebSocket over TLS, and send JSON messages using a simple API.
- No ROS 2
- No colcon
- No DDS
- No multicast
- No IT tickets
Any robot — ROS, custom firmware, or cloud-based — can integrate cleanly and securely.
This reflects BellRMF’s core philosophy: easy integration, minimal infrastructure, and maximum compatibility.
Top-Down Control vs Robot Autonomy
What OpenRMF Expects
OpenRMF’s model is one of central authority. Robots are assigned tasks through a fleet adapter and are expected to follow them. The central system can pause or reroute robots based on traffic conditions.
While OpenRMF offers a "Traffic Light" interface for read-only mode, it still expects robots to obey pause/resume commands.
This model works in environments where robots are fully subordinate to a centralized planner, but it doesn’t scale well with smarter robots or independent fleets.
How BellRMF Does It Differently
BellRMF assumes the opposite: that robots are autonomous and self-directed. It does not assign tasks, plan paths, or issue commands.
Instead, it acts as a resource gatekeeper:
- If a lift or corridor is in use, the robot waits
- When it’s free, the robot proceeds
Robots retain full control over how and when they move. BellRMF simply ensures they don’t collide over shared infrastructure.
Global Map Unification vs Shared Resource Naming
What OpenRMF Requires
OpenRMF depends on a global navigation graph and unified map. All robots must:
- Translate their SLAM-based maps into a shared coordinate frame
- Use the same graph edges and waypoints
- Accept traffic assignments based on centrally defined geometry
In practice, this is difficult:
- SLAM systems differ in scale, anchors, and fidelity
- Map reconciliation across vendors is time-consuming
- Even minor layout changes trigger system-wide rework
How BellRMF Does It Differently
BellRMF avoids shared maps altogether.
- There is no coordinate system
- No graph
- No YAML map
Instead, BellRMF defines a vocabulary of named resources, like "lift_2"
or "door_X"
or "hallway_A"
. Robots agree only on the names, not on any spatial details.
Each robot operates in its own internal map. It simply requests the named resource it needs. No SLAM alignment, no coordinate math, no global transforms.
This makes BellRMF trivial to integrate, even in mixed-vendor environments, and lets robots remain fully decoupled.
TL;DR
BellRMF keeps the good idea — shared-resource scheduling — and discards the complexity.
No ROS 2, no central planner, no shared map.
Just simple etiquette for shared infrastructure — on the web, at cloud scale.