Reborn is a research and engineering program studying the decision-making process of an assistive robotic system under uncertainty, using a safety-first, human-in-the-loop active elbow orthosis as the concrete vehicle.
The central research question:
How should an assistive robotic system determine the appropriate level of assistance under uncertain sensing conditions?
EMG, IMU, sensor fusion, ML, and the orthosis itself are tools here, not the research object —
see docs/research/research-context.md. The guiding design hypothesis:
The primary objective of an assistive robotic system is not to maximize assistance. It is to maximize appropriate assistance.
In assistive systems, the worst failure is not "no help" — it is unexpected help.
This repository holds two things side by side:
- Research (
notebooks/,papers/) — open-data ML experiments and the papers built on top of them. - The Reborn system (
reborn/,sim/) — a Python package implementing the sensing → decision → actuation → safety control loop, runnable today in simulation and, later, on real hardware.
The system is built around a hardware abstraction layer (HAL): control, decision, and safety
code only ever talk to SensorSource/ActuatorSink interfaces, never to a specific backend. See
docs/architecture.md for details — this is the central design decision
of the project.
reborn/
├── docs/ # architecture, safety, data protocol, experiment plan, roadmap
├── reborn/ # the Python package — hal/, sensing/, plant/, control/, decision/,
│ # safety/, ml/, data/, logging/
├── sim/ # runnable simulation experiments (entry points into the package)
├── notebooks/ # open-data ML exploration (phase B)
├── data/ # dataset pointers only — no data files committed
├── experiments/ # run configs and results
├── papers/ # one folder per publication, each citing a code/data git tag
├── firmware/ # hardware stage (not started)
├── assets/ # diagrams, photos, demo material
└── tests/ # unit tests — safety layer is not optional coverage
Engineering proceeds in two stages: simulation first, then hardware. Today, the HAL and the
sim backend are real and usable; decision/, safety/, and logging/ have working minimal
implementations; data/ (dataset backends, QC-gated preprocessing, evaluation protocols) is real
and tested; plant/, control/, and ml/ are skeletons awaiting phase C/B work. See
docs/roadmap.md for the full research plan and
sim/run_baseline_loop.py for the current minimal working loop.
pip install -e ".[dev]"
pytest
python sim/run_baseline_loop.pyNo dataset files are committed. The notebooks and the reborn/data/ loaders expect public EMG
datasets downloaded locally under data/ — see data/README.md for the layout
convention and docs/research/phase-b-plan.md for which dataset
isolates which factor. Each dataset is used under its own license; cite its canonical reference in
any work built on it.
- Ninapro DB6 — https://ninapro.hevs.ch/ — primary cross-session set (notebooks 01–03)
- EMG-EPN-612 — https://laboratorio-ia.epn.edu.ec/en/resources/dataset/emg-epn-612-dataset — few-shot personalization
- putEMG — https://biolab.put.poznan.pl/putemg-dataset/ — cross-hardware replication (CC BY-NC 4.0)
- PhysioNet — https://physionet.org/ — external-validity checks
docs/research/research-context.md— what Reborn actually studies, the research hypothesis, and the open questions to settle before claiming noveltydocs/architecture.md— layers, module boundaries, HALdocs/safety.md— safety philosophy, states, triggers, ML boundariesdocs/data-protocol.md— how data is collected and whydocs/experiments.md— hypothesis-driven validation plandocs/roadmap.md— research roadmap across phases A–D
Medical certification or clinical claims, product-level mechanical design, and ML-driven autonomous control are all intentionally excluded. This is a research and engineering case, not a product or a clinical claim.
See CITATION.cff.