How minhanghuang/cyberrt works
Apollo CyberRT is a real-time runtime and communications framework for composing and running distributed robotics applications. A user starts the runtime or launches configured components; components use nodes to publish and subscribe to typed channels, while CyberRT discovers endpoints and schedules work to deliver messages. The repository also provides services and parameters, recording and playback, monitoring and channel/node/service inspection, Python bindings, and a ROS bridge. The workflow is supported by the README and tree; source excerpts are partial, so links between unsampled subsystems are limited to documented capabilities.
Main entry points: node.h Node API · topology_manager.cc Service discovery · transport.h Channel transport · component_base.h Components
Components 25
Application Runtime
- Mainboard
cyber/mainboard/mainboard.cc - Module controller
cyber/mainboard/module_controller.cc - Components
cyber/component/component_base.h - Node API
cyber/node/node.h - Message types
cyber/message/message_traits.h
Communication
- Channel transport
cyber/transport/transport.h - Message dispatch
cyber/transport/dispatcher/dispatcher.h - Shared memory
cyber/transport/shm/segment.h - RTPS transport
cyber/transport/rtps/participant.h - Service discovery
cyber/service_discovery/topology_manager.cc - Topology graph
cyber/service_discovery/container/graph.h
Execution and State
- Scheduler
cyber/scheduler/scheduler.h - Task manager
cyber/task/task_manager.cc - Parameters
cyber/parameter/parameter_server.cc - Service API
cyber/service/service.h
Recording
- Recorder and player
cyber/tools/cyber_recorder/recorder.cc - Record file I/O
cyber/record/record_writer.cc
Tools and Integrations
- Channel tools
cyber/tools/cyber_channel/cyber_channel.py - Node and service tools
cyber/tools/cyber_node/cyber_node.py - Monitor
cyber/tools/cyber_monitor/main.cc - Python bindings
cyber/python/cyber_py3/cyber.py - ROS bridge
cyber/ros_bridge/ros_bridge.cc
Other components
- Application developer
- ROS network
- Record operator
Connections 24
- Application developer → Mainboard: starts runtime
- Mainboard → Module controller: loads modules
- Module controller → Components: initializes
- Components → Node API: uses node API
- Node API → Message types: types messages
- Node API → Channel transport: publishes and subscribes
- Channel transport → Message dispatch: dispatches messages
- Message dispatch → Shared memory: uses shared memory
- Message dispatch → RTPS transport: uses RTPS
- Service discovery → RTPS transport: creates participant
- Service discovery → Topology graph: updates topology
- Channel transport → Service discovery: registers endpoints
- Components → Scheduler: runs scheduled work
- Task manager → Scheduler: creates tasks
- Node API → Service API: offers service API
- Node API → Parameters: uses parameters
- Record operator → Recorder and player: records or plays
- Recorder and player → Record file I/O: reads and writes
- Channel tools → Service discovery: inspects channels
- Node and service tools → Service discovery: inspects topology
- Monitor → Service discovery: monitors topology
- Python bindings → Node API: exposes runtime
- ROS network → ROS bridge: exchanges messages
- ROS bridge → Channel transport: bridges messages