How storypku/cyberrt works
Apollo Cyber RT is a robotics-oriented runtime for loading application components, scheduling their work, and exchanging typed data across nodes. Its central workflow is application configuration → component loading and execution → node/channel communication → downstream consumers. The repository also provides discovery, services and parameters, data fusion, recording/playback, monitoring, and Python bindings. The tree and excerpts establish these product areas, but do not expose every call path; uncertain wiring is omitted.
Main entry points: module_controller.cc Module controller · transport.h Message transport · node.h Nodes and APIs · dag_conf.proto DAG configuration
Components 19
Application execution
- DAG configuration
cyber/proto/dag_conf.proto - Module controller
cyber/mainboard/module_controller.cc - Class loader
cyber/class_loader/class_loader_manager.h - Components
cyber/component/component.h - Task manager
cyber/task/task_manager.cc - Scheduler
cyber/scheduler/scheduler.cc
Communication runtime
- Nodes and APIs
cyber/node/node.h - Message transport
cyber/transport/transport.h - Data dispatch
cyber/data/data_dispatcher.h - Data fusion
cyber/data/fusion/data_fusion.h - Topology discovery
cyber/service_discovery/topology_manager.cc - Services
cyber/service/service.h
Runtime operations
- Parameters
cyber/parameter/parameter_server.cc - Record APIs
cyber/record/record_reader.cc - Record files
cyber/record/file/record_file_base.cc
Developer tools
- Recorder and player
cyber/tools/cyber_recorder/main.cc - Topology monitor
cyber/tools/cyber_monitor/main.cc - Python bindings
cyber_py3/internal/py_cyber.cc
Other components
- Application developer
Connections 16
- Application developer → DAG configuration: defines modules
- DAG configuration → Module controller: configures
- Module controller → Class loader: loads classes
- Module controller → Components: initializes
- Components → Task manager: submits work
- Task manager → Scheduler: creates tasks
- Nodes and APIs → Message transport: publishes messages
- Message transport → Data dispatch: dispatches data
- Data dispatch → Data fusion: supplies messages
- Message transport → Topology discovery: announces topology
- Nodes and APIs → Services: offers requests
- Application developer → Parameters: sets parameters
- Recorder and player → Record APIs: records or reads
- Record APIs → Record files: reads and writes
- Topology monitor → Topology discovery: queries topology
- Python bindings → Nodes and APIs: exposes APIs