The Hardware Architecture of Aura's Physical Layer

The Governance Stack: From Logic to Voltage ​In our last post, we successfully migrated the Sentinel API to the Raspberry Pi 5. Today, we define the physical components that will translate those API decisions into actual robotic movement. To avoid the "Low Value Content" flag, we are documenting the exact wiring logic for our safety-first architecture. ​1. Core Component List ​To build the physical manifestation of Aura, the following components have been integrated into our Phase 1 prototype: ​Logic Controller: Raspberry Pi 5 (8GB) - Handling the ROS 2 Jazzy nodes and Sentinel API interceptor. Power Distribution: 12V to 5V Step-Down Buck Converter - Ensures the Pi receives stable current even when the high-torque motors draw a surge. ​Safety Interceptor: 5V Single-Channel Relay Module - This is the "Physical Kill Switch" controlled by the Sentinel API. ​Actuation: High-Torque NEMA 17 Stepper Motors with A4988 Drivers. ​2. The "Hard-Stop" Wiring Logic ​The most critical part of Project Aura is ensuring that if the AI (GR00T) commands an unsafe move, the hardware physically disconnects power. The Fail-Safe Circuit: We have wired the Relay Module in a "Normally Open" (NO) configuration. ​GPIO Pin 18 on the Pi 5 sends a high signal to the Relay. ​The Relay closes the circuit, allowing power to reach the motor drivers. ​If the Sentinel API detects a "Safety Violation" (latency spike or collision path), it drops GPIO 18 to Low. ​The Relay snaps open, cutting motor power instantly, regardless of what the AI is commanding. Why This Hardware Selection Matters ​Using the Raspberry Pi 5 over a standard micro-controller allows us to run Hardware-in-the-loop (HIL) simulations. This means we can run the digital twin in NVIDIA Isaac Sim and the physical governance code on the Pi simultaneously to compare performance. Technical Deep Dive: The Python Sentinel Controller ​To bridge the gap between our Sentinel API logic and the physical hardware, we use the RPi.GPIO library. This script runs as a background daemon, constantly listening for a "Go" signal from the governance layer. ---

Technical Deep Dive: The Python Sentinel Controller

To bridge the gap between our Sentinel API logic and the physical hardware, we use the RPi.GPIO library. This script runs as a background daemon, constantly listening for a "Go" signal from the governance layer.

import RPi.GPIO as GPIO
import time

# Pin Configuration
RELAY_PIN = 18 # The physical GPIO pin connected to the relay

def setup_hardware():
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(RELAY_PIN, GPIO.OUT)
    # Start with the relay OFF (Circuit Open) for safety
    GPIO.output(RELAY_PIN, GPIO.LOW)
    print("Sentinel Physical Layer: Initialized & Secure")

def trigger_power(state):
    """ True -> Closes relay, allows motor power. False -> Opens relay, cuts motor power (Hard Stop). """
    if state:
        GPIO.output(RELAY_PIN, GPIO.HIGH)
        print("STATUS: SYSTEM ACTIVE")
    else:
        GPIO.output(RELAY_PIN, GPIO.LOW)
        print("STATUS: EMERGENCY STOP - POWER CUT")

Comments

Popular posts from this blog

NVIDIA Isaac Sim 2026 for GR00T: The "Sim-to-Real"

Integrating the Aura Sentinel API: Real-Time Safety & Precision for Isaac Sim's GR00T