Skip to content

Functionhx/catchlab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CatchLab header

English · 简体中文

GitHub stars Last commit C++20 CMake Rocket recovery Foundation stage

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.

🚀 Why CatchLab

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.

🎯 Long-term scope

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

🔬 Validation philosophy

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

🧱 Current status — Foundation stage

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.

🗺️ Planned architecture

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
Loading
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)

Planned simulation backends

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

🛠️ Roadmap

  • 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

📚 Citation

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}
}

⚖️ License and disclaimer

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.


CatchLab footer
Catch the booster. Verify the catch.
CatchLab · reusable-vehicle terminal recovery, built for explainable sim-to-real.

About

An open simulation and verification framework for reusable-launch-vehicle terminal recovery: return flight, GNC, tower and arrestor-cable catch dynamics, and a SIL/HIL/scaled-experiment path for explainable sim-to-real.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors