cdpr

A hybrid physics-driven and data-driven research framework for Cable-Driven Parallel Robots.

Software contribution of an Innopolis PhD dissertation (M. J. Tachia / Joseph Mfeuter, Programme 1.2.2). The scientific core is self-contained NumPy / SciPy; PyTorch, Stable-Baselines3, MuJoCo, PyBullet, ROS 2 and Gazebo are optional adapters.

Repository: github.com/Tachia/cdpr_simulator

What it does

The framework spans seven phases of capability, all developed and tested together:

  1. Phase 1. Scientific core — kinematics, structure matrix, tension distribution, three per-cable physics, dynamics, workspace, trajectories.
  2. Phase 2. Visualisation + ingestion + reports + FastAPI + Streamlit.
  3. Phase 3. Experimental-data ingestion pipeline with MAD outlier detection, SLERP-correct resampling, validation against the dynamic model.
  4. Phase 4. Gymnasium env + SB3 PPO / SAC / TD3 wrappers + supervised inverse-dynamics MLP + Newton-Euler-residual PINN.
  5. Phase 5. External-physics adapters (MuJoCo, PyBullet, ROS 2 transport, Gazebo / Isaac Sim stubs) with cross-engine verification.
  6. Phase 6. Closed-loop control layer, model identification, reproducible experiment bundles, dissertation-ready report bundles, scenario hashing.
  7. Phase 7. Three mutually exclusive cable constitutive laws — Kelvin–Voigt, Irvine catenary, SQCK hybrid — selectable at runtime through the simulator, benchmarks, and reports.

Install

git clone https://github.com/Tachia/cdpr_simulator
cd cdpr_simulator
pip install -e ".[dev,viz,data,api,gui]"

Run the test suite

pytest tests/        # 195 tests, ~52 s

Launch the services

# FastAPI backend
uvicorn cdpr.interface.api:app --host 0.0.0.0 --port 8000

# Streamlit console (separate terminal)
streamlit run streamlit_app.py

Architecture (deployment)

LayerHostingSource
FastAPI backendRenderDockerfile + render.yaml
Streamlit consoleStreamlit Community Cloudstreamlit_app.py
Static docsCloudflare Pagesdocs/
Persistent storageSupabase (optional)supabase/schema.sql
Local physicsMuJoCo on the dev machinecdpr.adapters.mujoco
CIGitHub Actions.github/workflows/ci.yml

See deployment.html for the connection map and the step-by-step setup guide.

Citing

If you use this framework in published work, please cite the dissertation (forthcoming).