arrow_left_alt

ARCO, FRET, and BOSSA are three independent projects that each solve a different layer of the robotic stack.

LUTHIER is what connects them: the data formats, the timing constraints, the fallback behavior when a layer fails to respond, and the end-to-end tests that verify the system behaves correctly as a whole.

┌─────────────────────────────────────────┐
│  ARCO  │  Planning · Guidance · Mapping │  Python
├─────────────────────────────────────────┤
│  FRET  │  ROS 2 · URDF · IK · Control   │  Python / ROS 2 Jazzy
├─────────────────────────────────────────┤
│  BOSSA │  Daemon · HAL · Real-time IO   │  C++20 / ARM64
└─────────────────────────────────────────┘
                                             ↕ LUTHIER integration layer

Resources

Validation Strategy

LUTHIER follows a four-level SDLC that mirrors the architecture:

Level Scope When
Level 1 — Functional Full system, end-to-end behavior Release gates
Level 2 — Integration Cross-layer interfaces (ARCO↔FRET, FRET↔BOSSA) PR to main
Level 3 — Module / PR Changes within a single subproject PR to subproject
Level 4 — Unit / Commit Individual functions and classes Every commit

Levels 3 and 4 are enforced inside each subproject’s own CI. LUTHIER owns Levels 1 and 2.

Running the Stack

Three deployment targets, with increasing hardware involvement:

Simulation (SITL). All layers run in software. BOSSA in mock mode, FRET in Gazebo, ARCO generating trajectories. No hardware required.

Hardware-in-the-Loop (HITL). Real Raspberry Pi target, simulated environment. Validates the communication pipeline and real-time constraints before assembly.

Physical prototype. Full stack on physical hardware, from ARCO’s planner to BOSSA’s actuator outputs.