English · 简体中文
Catch the booster. Verify the catch.
An open simulation & verification framework for reusable-launch-vehicle terminal recovery — return flight, guidance-navigation-control, tower and arrestor-cable catch dynamics, and a SIL → HIL → scaled-experiment path built for explainable, reproducible sim-to-real.
Why · Scope · Validation · Status · Architecture · Roadmap
A visually plausible recovery animation is not the conclusion. CatchLab treats the terminal catch as a first-class research subject — an envelope of conditions to characterize, verify, and eventually transfer from simulation toward hardware, not a single trajectory to replay.
A reusable booster is recovered during its most demanding seconds: a returning stage, decelerating, navigating, and finally caught — by flexible arrestor cables, a tower with mechanical arms, or a moving sea platform. Public footage makes it look solved; the engineering reality is a tightly coupled problem of variable-mass flight dynamics, guidance-navigation-control under uncertainty, contact and buffer dynamics, and fault-tolerant abort logic.
CatchLab exists to study that terminal phase as an engineering research platform: reproducible, cross-checked, and honest about where simulation still disagrees with reality.
The project is designed to progressively support:
- Variable-mass 6-DOF rocket flight dynamics
- Guidance, navigation, attitude control, and state estimation
- Flexible arrestor-cable, hook-contact, and buffer dynamics
- Tower / manipulator-arm catch
- Mobile sea-based recovery platforms
- Catch-condition judgment and abort logic
- Monte Carlo simulation and catch-envelope analysis
- Backend adapters: Project Chrono, JSBSim, ROS 2
- Software-in-the-loop (SIL), hardware-in-the-loop (HIL), and scaled physical experiments
- Simulation parameter identification and sim-to-real validation
Important models and results should be cross-checked, whenever possible, by more than one method:
| Method | What it guards against |
|---|---|
| Analytical solution cross-check | Numerical implementation drift |
| Unit and coordinate-frame checks | Silent convention errors |
| Energy and momentum bookkeeping | Non-physical dissipation or injection |
| Time-step and grid convergence | Discretization artifacts |
| Cross-solver validation | Single-solver blind spots |
| Public paper / flight-data reproduction | Uncalibrated assumptions |
| Scaled physical experiments | Simulation-only optimism |
| Parameter sensitivity & uncertainty analysis | Overfit to nominal conditions |
CatchLab is in an early Foundation stage. Current work focuses on establishing:
- A reproducible C++20 build system
- Clear module boundaries and public interfaces
- Automated testing and continuous integration
- Coordinate-frame, unit, and time conventions
- Foundational architecture for the dynamics models to come
Not yet implemented: model-level rocket dynamics, flexible-cable catch, or a complete GNC stack. The repository currently seeds the skeleton — build system, CI, house style, and architecture decision records — rather than flight-ready models.
flowchart LR
D["Variable-mass 6-DOF<br/>rocket dynamics"]
G["Guidance · Navigation · Control<br/>state estimation"]
C["Catch dynamics<br/>cable · hook · tower arm · sea platform"]
A["Envelopes & abort<br/>Monte Carlo · catch conditions · abort logic"]
V["Cross-validation<br/>analytical · energy/momentum · multi-solver"]
S["Sim-to-Real<br/>SIL → HIL → scaled hardware"]
D --> G --> C --> A --> V --> S
catchlab/
├── app/ # entry points and mission scenarios (planned)
├── modules/ # dynamics, GNC, catch, sensors, fault handling (planned)
├── backends/ # Project Chrono / JSBSim / ROS 2 adapters (planned)
├── tools/ # Monte Carlo, envelope, and analysis utilities (planned)
├── tests/ # unit, regression, and convergence checks (seeded)
├── 3rdparty/ # pinned external dependencies and adapters (seeded)
├── docs/
│ └── adr/ # architecture decision records (seeded)
├── .github/workflows/ # continuous integration (seeded)
└── CMakeLists.txt # C++20 build system (foundation)
| Backend | Planned role | Why it is considered |
|---|---|---|
| Project Chrono | Flexible cables, contacts, multi-body catch dynamics | Purpose-built multibody / FEM physics with cable and contact support |
| JSBSim | 6-DOF flight dynamics, atmosphere, propulsion | Mature flight-dynamics engine widely used for aircraft and launch vehicles |
| ROS 2 | Sensor, communication, and HIL integration | Standard robotics middleware for bridging SIL / HIL and real hardware |
| Custom analytics | Reference solutions and convergence checks | Independent of any single simulator |
- C++20 build system, module skeleton, and house style
- Coordinate-frame, unit, and time conventions (ADR)
- Variable-mass 6-DOF reference dynamics with analytical cross-check
- GNC: return guidance, navigation, attitude control, state estimation
- Flexible arrestor-cable / hook / buffer contact dynamics
- Tower manipulator-arm and moving sea-platform catch
- Catch-condition logic and abort envelopes
- Monte Carlo and catch-envelope analysis tools
- Project Chrono / JSBSim / ROS 2 backend adapters
- SIL → HIL → scaled-experiment validation pipeline
- Parameter identification and sim-to-real evidence
If CatchLab supports your research or coursework, cite it as:
@software{catchlab2026,
title = {CatchLab: A Simulation and Verification Framework for
Reusable-Launch-Vehicle Terminal Recovery},
author = {CatchLab Contributors},
year = {2026},
url = {https://github.com/Functionhx/catchlab}
}CatchLab is a research and education project built from public information. A permissive license file will be added before any reusable release; until then, no rights beyond applicable law are granted, and the code must not be used to control real flight hardware.
This framework does not represent the official design, parameters, or software of any real launch vehicle. Booster-catch concepts (tower arms, arrestor cables, sea platforms) are studied from public literature for educational and research purposes.