The Phoxal catalog components as one coherent workspace — the sensors, actuators, and structural parts that robot manifests mount. Each component is a subdirectory carrying its hardware-facing driver crate plus the manifest data the framework consumes:
<name>/
component.yaml # capabilities, GTIN, driver requirements
structure.urdf # the component's physical shape
simulation.yaml # sim-side hints
src/ # the driver crate (native, host-side)
Cargo.toml # workspace member
| Component | Part |
|---|---|
bno085 |
BNO085 IMU (accelerometer + gyroscope + fused orientation) |
ddsm115 |
DDSM115 direct-drive wheel motor (CAN) |
oak_d_lite |
Luxonis OAK-D Lite RGB-D camera |
vl53l1x |
VL53L1X single-beam time-of-flight rangefinder |
zed_f9p |
u-blox ZED-F9P GNSS receiver |
A robot manifest references a catalog component through components.sources,
selecting the subdirectory with directory:
components:
sources:
bno085:
git: "https://github.com/phoxal/components"
tag: "main"
directory: "bno085"phoxal-cli resolves the git ref to a commit in phoxal.lock, clones this
repository once, and stages the selected component's definition. During recovery
the ref is the mutable main branch (the lockfile pins the exact commit SHA for
reproducibility); this repository has no release CI cutting version tags, and its
version line is independent of phoxal/framework.
cargo check --workspaceAGPL-3.0-only — see LICENSE for the full license text. A commercial license is available — see COMMERCIAL.md and reach out via https://phoxal.com.
See CONTRIBUTING.md. DCO sign-off required on every commit.