├── .clang-format ├── .clang-tidy ├── .gitattributes ├── .github └── workflows │ └── linux.yml ├── .gitignore ├── .gitmodules ├── .isort.cfg ├── .pre-commit-config.yaml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── __init__.py ├── dependencies ├── CMakeLists.txt └── wrenfold-runtime │ ├── .clang-format-ignore │ └── wrenfold │ ├── span.h │ └── span_detail.h ├── media └── cart-pole.gif ├── model ├── .gitignore ├── __init__.py └── scratch.py ├── optimization ├── CMakeLists.txt ├── integration.hpp ├── integration_test.cc ├── key.hpp ├── optimization.cc ├── optimization.hpp ├── optimization_test.cc ├── simulator.cc ├── simulator.hpp ├── single_pendulum_dynamics.hpp ├── structs.hpp └── wasm.cc ├── symbolic ├── __init__.py ├── dynamics_double.py ├── dynamics_single.py ├── generate.py └── sympy_utils.py ├── viz ├── .eslintrc ├── .gitignore ├── .prettierignore ├── .prettierrc ├── README.md ├── eslint.config.mjs ├── package-lock.json ├── package.json ├── postcss.config.js ├── src │ ├── .gitignore │ ├── application.ts │ ├── index.ejs │ ├── input.ts │ ├── interfaces.ts │ ├── main.html │ ├── plotter.ts │ ├── renderer.ts │ ├── styles.css │ ├── ui.js │ └── utils.ts ├── tailwind.config.js ├── tsconfig.json └── webpack.config.js └── wrapper ├── CMakeLists.txt ├── README.md └── wrapper.cc /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.clang-format -------------------------------------------------------------------------------- /.clang-tidy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.clang-tidy -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/linux.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.github/workflows/linux.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.gitmodules -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | known_first_party=pypendulum 3 | src_paths=symbolic,model 4 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/README.md -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dependencies/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/dependencies/CMakeLists.txt -------------------------------------------------------------------------------- /dependencies/wrenfold-runtime/.clang-format-ignore: -------------------------------------------------------------------------------- 1 | wrenfold/* 2 | -------------------------------------------------------------------------------- /dependencies/wrenfold-runtime/wrenfold/span.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/dependencies/wrenfold-runtime/wrenfold/span.h -------------------------------------------------------------------------------- /dependencies/wrenfold-runtime/wrenfold/span_detail.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/dependencies/wrenfold-runtime/wrenfold/span_detail.h -------------------------------------------------------------------------------- /media/cart-pole.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/media/cart-pole.gif -------------------------------------------------------------------------------- /model/.gitignore: -------------------------------------------------------------------------------- 1 | logs 2 | -------------------------------------------------------------------------------- /model/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /model/scratch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/model/scratch.py -------------------------------------------------------------------------------- /optimization/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/CMakeLists.txt -------------------------------------------------------------------------------- /optimization/integration.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/integration.hpp -------------------------------------------------------------------------------- /optimization/integration_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/integration_test.cc -------------------------------------------------------------------------------- /optimization/key.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/key.hpp -------------------------------------------------------------------------------- /optimization/optimization.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/optimization.cc -------------------------------------------------------------------------------- /optimization/optimization.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/optimization.hpp -------------------------------------------------------------------------------- /optimization/optimization_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/optimization_test.cc -------------------------------------------------------------------------------- /optimization/simulator.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/simulator.cc -------------------------------------------------------------------------------- /optimization/simulator.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/simulator.hpp -------------------------------------------------------------------------------- /optimization/single_pendulum_dynamics.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/single_pendulum_dynamics.hpp -------------------------------------------------------------------------------- /optimization/structs.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/structs.hpp -------------------------------------------------------------------------------- /optimization/wasm.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/optimization/wasm.cc -------------------------------------------------------------------------------- /symbolic/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /symbolic/dynamics_double.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/symbolic/dynamics_double.py -------------------------------------------------------------------------------- /symbolic/dynamics_single.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/symbolic/dynamics_single.py -------------------------------------------------------------------------------- /symbolic/generate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/symbolic/generate.py -------------------------------------------------------------------------------- /symbolic/sympy_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/symbolic/sympy_utils.py -------------------------------------------------------------------------------- /viz/.eslintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/.eslintrc -------------------------------------------------------------------------------- /viz/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /viz/.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/.prettierignore -------------------------------------------------------------------------------- /viz/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/.prettierrc -------------------------------------------------------------------------------- /viz/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /viz/eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/eslint.config.mjs -------------------------------------------------------------------------------- /viz/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/package-lock.json -------------------------------------------------------------------------------- /viz/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/package.json -------------------------------------------------------------------------------- /viz/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/postcss.config.js -------------------------------------------------------------------------------- /viz/src/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/.gitignore -------------------------------------------------------------------------------- /viz/src/application.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/application.ts -------------------------------------------------------------------------------- /viz/src/index.ejs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/index.ejs -------------------------------------------------------------------------------- /viz/src/input.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/input.ts -------------------------------------------------------------------------------- /viz/src/interfaces.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/interfaces.ts -------------------------------------------------------------------------------- /viz/src/main.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/main.html -------------------------------------------------------------------------------- /viz/src/plotter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/plotter.ts -------------------------------------------------------------------------------- /viz/src/renderer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/renderer.ts -------------------------------------------------------------------------------- /viz/src/styles.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/styles.css -------------------------------------------------------------------------------- /viz/src/ui.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/ui.js -------------------------------------------------------------------------------- /viz/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/src/utils.ts -------------------------------------------------------------------------------- /viz/tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/tailwind.config.js -------------------------------------------------------------------------------- /viz/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/tsconfig.json -------------------------------------------------------------------------------- /viz/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/viz/webpack.config.js -------------------------------------------------------------------------------- /wrapper/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/wrapper/CMakeLists.txt -------------------------------------------------------------------------------- /wrapper/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/wrapper/README.md -------------------------------------------------------------------------------- /wrapper/wrapper.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gareth-cross/cart-pole-mpc/HEAD/wrapper/wrapper.cc --------------------------------------------------------------------------------