Apps
Operator-facing tooling is separated from the on-robot runtime and from firmware.
/manual/tree
The repository already exposes its intended shape. Even where directories are still sparse, the current tree shows how runtime software, firmware, shared contracts, testing, and operator tooling are expected to separate.
.
|-- .github/
|-- apps/
| `-- ops-panel/
| |-- backend/
| |-- frontend/
| `-- shared/
|-- configs/
|-- deploy/
|-- docs/
|-- firmware/
| |-- arm-drive/
| |-- base-drive/
| |-- core-board/
| `-- expansion-board/
|-- robot/
| `-- linux/
| |-- maps/
| |-- missions/
| |-- ros2_ws/
| | |-- config/
| | |-- launch/
| | `-- src/
| `-- services/
|-- scripts/
|-- shared/
| |-- protocols/
| `-- schemas/
|-- tests/
| |-- hardware/
| |-- integration/
| `-- unit/
`-- tools/
| Path | Role | Reading |
|---|---|---|
apps/ops-panel/ |
Operator-facing application split into backend, frontend, and shared code. | Signals intent for a dedicated operations interface. |
firmware/ |
Board- and drive-level embedded surface for base, arm, and control electronics. | Shows a planned separation between motion subsystems and controller boards. |
robot/linux/ |
Main on-robot runtime layout, including maps, missions, services, and a ros2_ws. |
Defines the likely deployment footprint on the Linux robot host. |
shared/ |
Protocols and schemas meant to bridge subsystem boundaries. | Hints at contract-first coordination between components. |
tests/ |
Unit, integration, and hardware-oriented validation partitions. | Separates simulation or logic checks from physical-system validation. |
A robotics repo usually drifts if responsibilities stay implied. This tree makes the intended ownership visible before the implementation surface becomes large: operator UI is not mixed with robot runtime, firmware does not hide inside Linux packages, and shared data contracts have their own home.
Operator-facing tooling is separated from the on-robot runtime and from firmware.
The Linux runtime tree keeps missions, services, maps, and the ros2_ws layout in one place.
Protocols and schemas have their own home so subsystem contracts do not get buried inside a single package.