A component family for mobile-robot motion — a reusable software stack with its firmware and hardware companions.
This repository is the umbrella: a thin CMake superbuild that assembles the components (pinned as git submodules under components/) and hosts family-level docs. Every component also stands alone — build, test, and find_package just the ones you need; the umbrella only fixes a known-good combination.
| Component | Role | Repo | |
|---|---|---|---|
| Σ | xmSigma | foundation — logging · ipc · math · common types | rxdu/xmSigma |
| μ | xmMu | host hardware drivers — motor · CAN · serial · modbus · sbus · imu | rxdu/xmMu |
| ∇ | xmNabla | motion algorithms — planning · control · estimation · mapping · centerpiece | rxdu/xmNabla |
| γ | xmGamma | visualization | rxdu/quickviz |
| ζ | xmZeta | MCU firmware (Zephyr) | rxdu/xmZeta |
| κ | xmKappa | PCB / electronics (KiCAD) | rxdu/xmKappa |
Everything builds on xmSigma; dependencies point downward only. Two pairs span the boundary: Σ/μ on the host, ζ/κ on the embedded target — with ∇ the motion-algorithms core.
Per-robot controllers — thin consumers of the stack, each in its own repo: xmBot-Swerve · xmBot-Tracked · xmBot-Legged.
git clone --recurse-submodules https://github.com/rxdu/xmotion.git
cd xmotion
cmake --preset default && cmake --build buildEach submodule is pinned to an exact commit, so clone → configure → build always reproduces a known-good set. Toggle components with -DXMOTION_WITH_<NAME>=ON/OFF.
Architecture & naming · Transition plan · Brand & icons
Apache-2.0 — see LICENSE and NOTICE. Bundled third-party submodules retain their own licenses.