Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,7 @@
path = components/messaging
url = https://github.com/rxdu/xmMessaging.git
branch = main
[submodule "components/simulator"]
path = components/simulator
url = https://github.com/rxdu/xmSimulator.git
branch = main
9 changes: 8 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ option(XMOTION_WITH_DRIVER "Build xmDriver (host hardware drivers)" ON)
option(XMOTION_WITH_NAVIGATION "Build xmNavigation (motion algorithms)" ON)
option(XMOTION_WITH_VIEWER "Build xmViewer (visualization)" OFF)
option(XMOTION_WITH_MESSAGING "Build xmMessaging (communication layer)" OFF)
option(XMOTION_WITH_SIMULATOR "Build xmSimulator (physics simulation)" OFF)
option(BUILD_TESTING "Build component tests" OFF)

# -- Helper: add a component submodule if it is present ---------------------
Expand Down Expand Up @@ -78,7 +79,13 @@ if(XMOTION_WITH_MESSAGING)
xmotion_add_component(xmMessaging components/messaging)
endif()

# xmSimulator: MuJoCo-backed physics simulation (world · sensors · dynamics).
# Default OFF — it pulls the MuJoCo dependency; opt-in for apps that simulate.
if(XMOTION_WITH_SIMULATOR)
xmotion_add_component(xmSimulator components/simulator)
endif()

message(STATUS "xMotion ${PROJECT_VERSION}: configured "
"(TELEMETRY=${XMOTION_WITH_TELEMETRY} DRIVER=${XMOTION_WITH_DRIVER} "
"NAVIGATION=${XMOTION_WITH_NAVIGATION} VIEWER=${XMOTION_WITH_VIEWER} "
"MESSAGING=${XMOTION_WITH_MESSAGING})")
"MESSAGING=${XMOTION_WITH_MESSAGING} SIMULATOR=${XMOTION_WITH_SIMULATOR})")
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
<img src="branding/icons/xmdriver.svg" width="48" alt="xmDriver">&nbsp;
<img src="branding/icons/xmnavigation.svg" width="48" alt="xmNavigation">&nbsp;
<img src="branding/icons/xmmessaging.svg" width="48" alt="xmMessaging">&nbsp;
<img src="branding/icons/xmviewer.svg" width="48" alt="xmViewer">
<img src="branding/icons/xmviewer.svg" width="48" alt="xmViewer">&nbsp;
<img src="branding/icons/xmsimulator.svg" width="48" alt="xmSimulator">

</div>

Expand All @@ -33,10 +34,11 @@ This repository is the **umbrella**: a thin CMake superbuild that assembles the
| **∇** | xmNavigation | motion algorithms — planning · control · estimation · mapping&nbsp;·&nbsp;*centerpiece* | [rxdu/xmNavigation](https://github.com/rxdu/xmNavigation) |
| **π** | xmMessaging | application communication — typed pub/sub · request/response · zero-copy transport | [rxdu/xmMessaging](https://github.com/rxdu/xmMessaging) |
| **γ** | xmViewer | visualization | [rxdu/quickviz](https://github.com/rxdu/quickviz) |
| **Ψ** | xmSimulator | physics simulation — MuJoCo world · sensors · dynamics | [rxdu/xmSimulator](https://github.com/rxdu/xmSimulator) |

<sup>1</sup> *xmTelemetry — the production observability SDK and tooling — is privately maintained; available for production integrations.*

Component names follow [ADR 0003](docs/adr/0003-naming-and-branding.md); 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.
Component names follow [ADR 0003](docs/adr/0003-naming-and-branding.md); 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

Expand Down
3 changes: 3 additions & 0 deletions branding/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ A cohesive icon set for the XMotion family. Each icon shares one visual language
<td align="center"><img src="icons/xmfirmware.svg" width="84" alt="xmFirmware"></td>
<td align="center"><img src="icons/xmboard.svg" width="84" alt="xmBoard"></td>
<td align="center"><img src="icons/xmmessaging.svg" width="84" alt="xmMessaging"></td>
<td align="center"><img src="icons/xmsimulator.svg" width="84" alt="xmSimulator"></td>
</tr>
<tr>
<td align="center"><b>xmBase</b><br>Σ</td>
Expand All @@ -30,6 +31,7 @@ A cohesive icon set for the XMotion family. Each icon shares one visual language
<td align="center"><b>xmFirmware</b><br>ζ</td>
<td align="center"><b>xmBoard</b><br>κ</td>
<td align="center"><b>xmMessaging</b><br>π</td>
<td align="center"><b>xmSimulator</b><br>Ψ</td>
</tr>
</table>

Expand All @@ -43,6 +45,7 @@ A cohesive icon set for the XMotion family. Each icon shares one visual language
| **xmFirmware** | `#46B358` green | ζ | a UART decode — logic-analyzer waveform + the decoded byte `0x5A` — firmware (Zephyr) |
| **xmBoard** | `#E5604D` coral | κ | a PCB fan-out — a quad IC footprint, a structured 45° trace fan onto a via column, and short top/bottom escapes — electronics (KiCAD) |
| **xmMessaging** | `#2E90FA` signal blue | π | a brokerless peer-to-peer mesh — nodes exchanging messages directly (the application communication layer) |
| **xmSimulator** | `#B0C918` chartreuse | Ψ | an isometric quadruped robot standing on the ground — legged locomotion / physics simulation (MuJoCo) |

## The family mark — xmMotion

Expand Down
Binary file added branding/icons/avatar/png/xmsimulator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions branding/icons/avatar/xmsimulator.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions branding/icons/xmsimulator.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions branding/preview/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ <h2>family strip</h2>
{ id:"xmfirmware", name:"xmFirmware · ζ", color:"#46B358" },
{ id:"xmboard", name:"xmBoard · κ", color:"#E5604D" },
{ id:"xmmessaging", name:"xmMessaging · π", color:"#2E90FA" },
{ id:"xmsimulator", name:"xmSimulator · Ψ", color:"#B0C918" },
{ id:"xmmotion", name:"xmMotion · robot", color:"#EAEFF7" },
{ id:"xmmotion-mark",name:"xmMotion · Ξ", color:"#EAEFF7" },
];
Expand Down
1 change: 1 addition & 0 deletions components/simulator
Submodule simulator added at 65b6d8