# magiclabrobotics/magicbot-gen1_sdk architecture

> Architecture diagram of the GitHub repository magiclabrobotics/magicbot-gen1_sdk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/magiclabrobotics/magicbot-gen1_sdk
- Repository: https://github.com/magiclabrobotics/magicbot-gen1_sdk

## Overview

magicbot-gen1_sdk is a C++20 SDK for controlling and monitoring a MagicLab Gen1 humanoid robot, with a Python SDK documented as providing the same functionality. The user workflow is to initialize and connect through MagicRobot, obtain a subsystem controller, then issue commands or subscribe to robot data. Its documented capabilities include high-, low- and upper-body motion, audio, sensors, SLAM, navigation and state monitoring. The headers define the public interfaces and shared data types; the implementation behind them is not shown, so subsystem-to-robot communication links are omitted.

Main entry points: [`include/magic_robot.h`](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_robot.h) (Robot Facade), [`include/magic_type.h`](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_type.h) (Robot Data Types), [`include/magic_motion.h`](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h) (High-Level Motion), [`include/magic_audio.h`](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_audio.h) (Audio)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["SDK Entry"]
  node_magic_robot["Robot Facade<br/>[magic_robot.h]"]
end

subgraph group_control["Robot Control"]
  node_high_motion["High-Level Motion<br/>[magic_motion.h]"]
  node_low_motion["Low-Level Motion<br/>[magic_motion.h]"]
  node_upper_motion["Upper-Body Motion<br/>[magic_motion.h]"]
  node_audio["Audio<br/>[magic_audio.h]"]
end

subgraph group_perception["Sensing And Mapping"]
  node_sensors["Sensors<br/>[magic_sensor.h]"]
  node_slam["SLAM And Mapping"]
  node_navigation["Navigation"]
  node_state_monitor["State Monitor"]
end

subgraph group_foundation["Shared Interfaces"]
  node_shared_types["Robot Data Types<br/>[magic_type.h]"]
  node_error_codes["Error Codes<br/>[magic_err.h]"]
end

node_developer(("SDK User"))
node_robot_service["Robot Service"]

node_developer -->|"initializes and connects"| node_magic_robot
node_magic_robot -->|"connects via gRPC"| node_robot_service
node_magic_robot -->|"provides controller"| node_high_motion
node_magic_robot -->|"provides controller"| node_low_motion
node_magic_robot -->|"provides controller"| node_upper_motion
node_magic_robot -->|"provides controller"| node_audio
node_magic_robot -->|"provides controller"| node_sensors
node_magic_robot -->|"provides controller"| node_slam
node_magic_robot -->|"provides controller"| node_navigation
node_magic_robot -->|"provides monitor"| node_state_monitor
node_high_motion -->|"uses command types"| node_shared_types
node_low_motion -->|"uses joint types"| node_shared_types
node_upper_motion -->|"uses joint types"| node_shared_types
node_audio -->|"uses audio types"| node_shared_types
node_sensors -->|"uses sensor types"| node_shared_types
node_slam -->|"uses mapping types"| node_shared_types
node_navigation -->|"uses navigation types"| node_shared_types
node_state_monitor -->|"uses state types"| node_shared_types

click node_magic_robot "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_robot.h"
click node_high_motion "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h"
click node_low_motion "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h"
click node_upper_motion "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h"
click node_audio "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_audio.h"
click node_sensors "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_sensor.h"
click node_slam "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_slam_navigation.h"
click node_navigation "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_slam_navigation.h"
click node_state_monitor "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_state_monitor.h"
click node_shared_types "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_type.h"
click node_error_codes "https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_err.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_magic_robot,node_developer toneBlue
class node_high_motion,node_low_motion,node_upper_motion,node_audio toneAmber
class node_sensors,node_slam,node_navigation,node_state_monitor toneMint
class node_shared_types,node_error_codes toneRose
class node_robot_service toneIndigo
```

## Components

### SDK Entry

- [Robot Facade](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_robot.h): `include/magic_robot.h`

### Robot Control

- [High-Level Motion](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h): `include/magic_motion.h`
- [Low-Level Motion](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h): `include/magic_motion.h`
- [Upper-Body Motion](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_motion.h): `include/magic_motion.h`
- [Audio](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_audio.h): `include/magic_audio.h`

### Sensing And Mapping

- [Sensors](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_sensor.h): `include/magic_sensor.h`
- [SLAM And Mapping](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_slam_navigation.h): `include/magic_slam_navigation.h`
- [Navigation](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_slam_navigation.h): `include/magic_slam_navigation.h`
- [State Monitor](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_state_monitor.h): `include/magic_state_monitor.h`

### Shared Interfaces

- [Robot Data Types](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_type.h): `include/magic_type.h`
- [Error Codes](https://github.com/magiclabrobotics/magicbot-gen1_sdk/blob/main/include/magic_err.h): `include/magic_err.h`

### Other components

- **SDK User**
- **Robot Service**

## Connections

- SDK User → Robot Facade: initializes and connects (evidence: `include/magic_robot.h`)
- Robot Facade → Robot Service: connects via gRPC (evidence: `include/magic_robot.h`)
- Robot Facade → High-Level Motion: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → Low-Level Motion: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → Upper-Body Motion: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → Audio: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → Sensors: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → SLAM And Mapping: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → Navigation: provides controller (evidence: `include/magic_robot.h`)
- Robot Facade → State Monitor: provides monitor (evidence: `include/magic_robot.h`)
- High-Level Motion → Robot Data Types: uses command types (evidence: `include/magic_motion.h`)
- Low-Level Motion → Robot Data Types: uses joint types (evidence: `include/magic_motion.h`)
- Upper-Body Motion → Robot Data Types: uses joint types (evidence: `include/magic_motion.h`)
- Audio → Robot Data Types: uses audio types (evidence: `include/magic_audio.h`)
- Sensors → Robot Data Types: uses sensor types (evidence: `include/magic_sensor.h`)
- SLAM And Mapping → Robot Data Types: uses mapping types (evidence: `include/magic_slam_navigation.h`)
- Navigation → Robot Data Types: uses navigation types (evidence: `include/magic_slam_navigation.h`)
- State Monitor → Robot Data Types: uses state types (evidence: `include/magic_state_monitor.h`)
