How open-rmf/rmf-web works
RMF Web is a dashboard and API layer for visualizing and controlling Open-RMF deployments. The principal workflow is an operator using the dashboard to inspect maps, fleets, robots, tasks, and facility devices, then issue task or control actions through the API server to the deployment. The server also exposes live state and alert information, persists operational data, and supports user and role administration. The README documents trajectory visualization as a separate WebSocket integration. Some subsystem connections are documented or evident from the tree rather than sampled implementation, so uncertain internal wiring is omitted.
Main entry points: app.py HTTP and socket API · components Dashboard UI · api.ts Dashboard API access · tasks Task endpoints
Components 22
Dashboard
- Dashboard UI
packages/rmf-dashboard-framework/src/components - Map controls
packages/rmf-dashboard-framework/src/components/map/layers-controller.tsx - Alert manager
packages/rmf-dashboard-framework/src/components/alert-manager.tsx - Admin pages
packages/rmf-dashboard-framework/src/components/admin/routes.tsx - Dashboard API access
packages/rmf-dashboard-framework/src/utils/api.ts - Trajectory visualization
packages/rmf-dashboard-framework/src/services/robot-trajectory-manager.ts
API server
- HTTP and socket API
packages/api-server/api_server/app.py - Task endpoints
packages/api-server/api_server/routes/tasks - Device and fleet endpoints
packages/api-server/api_server/routes - Administration endpoints
packages/api-server/api_server/routes/admin.py - Authentication and permissions
packages/api-server/api_server/authenticator.py - Task repository
packages/api-server/api_server/repositories/tasks.py - RMF repository
packages/api-server/api_server/repositories/rmf.py - Scheduled tasks
packages/api-server/api_server/scheduler.py
RMF runtime and state
- RMF event streams
packages/api-server/api_server/rmf_io/events.py - ROS gateway
packages/api-server/api_server/gateway.py - Operational database
packages/api-server/api_server/models/tortoise_models
API contracts
- Generated API client
packages/api-client/lib/index.ts - RMF API models
packages/api-server/api_server/models
Other components
- Operator
- Open-RMF deployment
- Trajectory service
Connections 24
- Operator → Dashboard UI: uses
- Dashboard UI → Map controls: controls map
- Dashboard UI → Alert manager: displays alerts
- Dashboard UI → Admin pages: opens admin
- Dashboard UI → Dashboard API access: requests data
- Dashboard API access → Generated API client: calls
- Dashboard API access → HTTP and socket API: HTTP and socket
- HTTP and socket API → Authentication and permissions: authenticates
- HTTP and socket API → Task endpoints: dispatches routes
- HTTP and socket API → Device and fleet endpoints: dispatches routes
- HTTP and socket API → Administration endpoints: dispatches routes
- Task endpoints → Task repository: queries and saves
- Task endpoints → Scheduled tasks: schedules tasks
- Device and fleet endpoints → RMF repository: queries state
- Device and fleet endpoints → RMF event streams: subscribes state
- Task repository → Operational database: reads and writes
- HTTP and socket API → Operational database: initializes and loads
- HTTP and socket API → RMF event streams: starts streams
- HTTP and socket API → ROS gateway: starts gateway
- RMF event streams → Open-RMF deployment: exchanges events
- ROS gateway → Open-RMF deployment: connects ROS
- HTTP and socket API → RMF API models: serves schemas
- Dashboard UI → Trajectory visualization: visualizes trajectories
- Trajectory visualization → Trajectory service: requests trajectories