Skip to content

Repository files navigation

XMotion

XMotion

Everything that moves a mobile robot — board, firmware, drivers, messaging, and the algorithms that steer them.

xmBoardxmFirmwarexmBasexmTelemetryxmDriverxmNavigationxmMessagingxmViewerxmSimulator


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.

Components

ComponentRoleRepo
κxmBoardPCB / electronics (KiCAD)rxdu/xmBoard
ζxmFirmwareMCU firmware (Zephyr)rxdu/xmFirmware
ΣxmBasefoundation — logging · ipc · math · common typesrxdu/xmBase
τxmTelemetryobservability — logs · metrics · traces · black boxprivate1
μxmDriverhost hardware drivers — motor · CAN · serial · modbus · sbus · imurxdu/xmDriver
xmNavigationmotion algorithms — planning · control · estimation · mapping · centerpiecerxdu/xmNavigation
πxmMessagingapplication communication — typed pub/sub · request/response · zero-copy transportrxdu/xmMessaging
γxmViewervisualizationrxdu/quickviz
ΨxmSimulatorphysics simulation — MuJoCo world · sensors · dynamicsrxdu/xmSimulator

1xmTelemetry — the production observability SDK and tooling — is privately maintained; available for production integrations.

Component names follow ADR 0003; the Greek letters (κ ζ Σ τ μ ∇ γ π Ψ) are retained as logos only — every repo, submodule path, and icon file now carries its functional name. Everything builds on xmBase; dependencies point downward only. Two pairs span the boundary: xmBase/xmDriver on the host, xmFirmware/xmBoard on the embedded target — with xmNavigation the motion-algorithms core.

Applications

Per-robot controllers — thin consumers of the stack, each in its own repo: xmBot-Swerve · xmBot-Tracked · xmBot-Legged.

Build

git clone --recurse-submodules https://github.com/rxdu/xmotion.git
cd xmotion
cmake --preset default && cmake --build build

Each 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.

Documentation

Decision records · Telemetry design · Brand & icons · Tasks

License

Apache-2.0 — see LICENSE and NOTICE. Bundled third-party submodules retain their own licenses.

About

Everything that moves a mobile robot - board, firmware, drivers, and the algorithms that steer them.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages