Back to Portfolio Robin De Lissnyder
BRUFACE • ÉCOLE POLYTECHNIQUE DE BRUXELLES (ULB) & VUB • MASTER'S THESIS

Control Interfaces & Assistive Layer for a Powered Back Exoskeleton

Multi-Modal Sensor Fusion (Xsens IMUs + Cometa sEMG), automated headless OpenSim biomechanical ground-truth generation ($L5/S1$ lumbar moments), causal signal conditioning, and a full-stack deep learning neural training studio.

Supervisor: Ir. Ilias El Makrini Co-Supervisors: Prof. Joost Geeroms, Ir. Tom Turcksin, Prof. Jan Cabri
OpenSim Python API TensorFlow 2.18 (CUDA) Xsens Awinda (17 IMUs @ 60Hz) Cometa Wave Plus sEMG (1980Hz) FastAPI & WebSockets React 18 & TypeScript Docker & NVIDIA GPU
Experimental Mocap Protocol & Biomechanical Acquisition Demo Live Recording
The Biomechanical Problem

Work-Related Musculoskeletal Disorders (WRMSDs) represent over 60% of occupational ailments, primarily caused by excessive lumbar spinal compression at the $L5/S1$ joint during repetitive material lifting.

Active exoskeletons can relieve spinal loads, but predicting human joint torque in real time requires navigating a fragmented bottleneck: manual coordinate alignment, complex OpenSim Inverse Dynamics solvers, and non-standardized multi-channel sensor files.

The Engineered Solution

Architected an automated, full-stack biomechanical engineering workbench in Python and C++ that ingests multi-trial workbooks, applies strictly causal second-order section filters, and executes headless OpenSim Inverse Kinematics and Inverse Dynamics without GUI intervention.

Built an interactive browser studio to visually design neural architectures (CNN, LSTM, GRU), stream live GPU training loss over WebSockets, and benchmark continuous lumbar torque predictions against biomechanical ground truth.

Full-Stack Biomechanics & Neural Studio

Automated simulation pipeline and modular neural network training platform

4 Key Subsystems
OpenSim Musculoskeletal Simulation
Rajagopal2015 (37 DOF)

Automated Headless OpenSim Pipeline

IK & Inverse Dynamics

Automates subject model scaling from static upright posture, auto-detects heading yaw ($\theta_{\text{yaw}}$) by maximizing sagittal lumbar variance, and solves Inverse Dynamics to generate 3D continuous lumbar torques ($\tau_{\text{ext}}$, $\tau_{\text{bend}}$, $\tau_{\text{rot}}$).

L5/S1 Moment Yaw Auto-Detect Zero GUI Intervention
Causal sEMG Signal Filtering and FFT
Causal DSP [20, 450] Hz

Causal Signal Conditioning & FFT

Zero-Lookahead

4th-order Butterworth SOS bandpass [20–450 Hz] eliminating DC baseline drift, rolling Median Absolute Deviation (MAD) spike rejection, RMS envelope downsampling to 60 Hz kinematics, and live FFT spectrum comparison.

SOS Bandpass Rolling MAD Filter Live FFT Preview
Live GPU Training Telemetry
TensorFlow GPU Telemetry

Neural Network Builder & GPU Telemetry

CNN-LSTM • WebSockets

Visual architecture synthesizer for 1D CNNs, Stacked LSTMs, and GRUs with sliding time-window controls. WebSocket streams live loss curves directly from NVIDIA GPU instances with early stopping and automatic checkpoint packaging.

Hybrid CNN-LSTM Live Loss Streams Exportable .keras ZIP
Torque Prediction vs Ground Truth
R² = 0.85–0.92 (Seen Subjects)

Torque Prediction & Generalization

Quantitative Benchmarks

Rigorous evaluation across 7 participants: robust continuous torque tracking on seen subject trials ($R^2 \approx 0.85\text{--}0.92$) and comprehensive analysis of the zero-shot cross-subject generalization gap on unseen participants.

Zero Data Leakage Trial-Level Splits Cross-Subject Evaluation

Technical Specifications & Subsystems

Detailed breakdown of acquisition, physics pipelines, and software infrastructure

5 Subsystems
01

Multi-Modal Acquisition & 19-Sheet Datasheet Architecture

Sensor Ingestion

Synchronized electrophysiology and 3D full-body motion capture

Cometa 1980Hz Xsens 60Hz 7-Subject Cohort

Recorded an experimental cohort of 7 participants across symmetrical box lifts (8–22 kg), asymmetrical diagonal lifts, and sustained static flexion until physical fatigue. Integrated 17 wireless Xsens IMUs (60 Hz) streaming 23 anatomical segment coordinates alongside 8–10 Cometa wireless sEMG electrodes (1980 Hz) positioned on bilateral lumbar stabilizers (Longissimus, Iliocostalis, Multifidus, and Rectus Abdominis).

02

Headless OpenSim C++/Python Physics Solver

Ground Truth Kinetics

Automated musculoskeletal model scaling and inverse dynamics

Rajagopal2015 3D Lumbar Moments Automated Scaling

Programmatic OpenSim pipeline executing in the background without manual GUI interaction. Scales generic 37-DOF musculoskeletal models based on static subject segment lengths, evaluates candidate global heading orientations ($0^\circ, \pm 90^\circ, 180^\circ$) to maximize sagittal variance, and computes ground-truth 3D joint torques ($\tau_{\text{extension}}$, $\tau_{\text{bending}}$, $\tau_{\text{rotation}}$).

03

Strictly Causal DSP & Artifact Rejection

Real-Time Readiness

Zero-lookahead filtering preserving causal timeline for physical exoskeletons

Butterworth SOS Rolling MAD RMS Envelope

Standard non-causal two-pass filtering (`filtfilt`) causes temporal data leakage and cannot run on real-time wearable hardware. Our platform enforces strictly single-pass causal Second-Order Sections (SOS) bandpass filtering, rolling MAD outlier rejection with causal forward-fill, and RMS envelope downsampling to 60 Hz kinematics.

04

Full-Stack Neural Studio & WebSocket Telemetry

Web Interface

FastAPI async backend streaming live GPU metrics to React 18 frontend

FastAPI React 18 / TypeScript WebSockets

Provides an intuitive multi-step wizard: multi-file dataset stacking, interactive channel selection across 100+ telemetry variables, visual DSP graph ordering, dynamic Keras model compilation, and live per-epoch loss telemetry streaming over WebSockets.

05

Data Pipeline Optimizations & Docker Orchestration

DevOps & Performance

Sub-millisecond columnar caching and reproducible containerization

Parquet Cache Zero-Copy Views Docker Compose

Converts heavy multi-sheet Excel files to compressed Apache Parquet for sub-millisecond column slicing, implements NumPy zero-copy sliding window views to prevent RAM exhaustion during window extraction, and packages the entire platform in Docker with NVIDIA Container Toolkit GPU passthrough.

Interested in my machine learning & robotics thesis?

I would be glad to discuss biomechanical modeling, neural network architectures, and full-stack software design.