Metadata-Version: 2.4
Name: monocular-path-prediction
Version: 0.2.1
Summary: Monocular Path Predition for Exosuits
Project-URL: homepage, https://github.com/TUM-Aries-Lab/monocular-path-prediction
Author-email: Tsmorz <tony.smoragiewicz@tum.de>
License-File: LICENSE
Requires-Python: <3.14,>=3.11
Requires-Dist: adafruit-circuitpython-lis3mdl>=1.2.6
Requires-Dist: adafruit-circuitpython-lsm6ds>=4.6.1
Requires-Dist: jkp-depth-anything-v2>=0.1.1
Requires-Dist: loguru>=0.7.3
Requires-Dist: matplotlib>=3.10.3
Requires-Dist: opencv-python>=4.12.0.88
Requires-Dist: py-imu>=0.0.1
Requires-Dist: pyserial>=3.5
Requires-Dist: scikit-learn>=1.7.1
Requires-Dist: scipy-stubs>=1.16.1.0
Requires-Dist: scipy>=1.16.1
Provides-Extra: dev
Requires-Dist: coveralls>=4.0.1; extra == 'dev'
Requires-Dist: pre-commit>=4.1.0; extra == 'dev'
Requires-Dist: pyright>=1.1.408; extra == 'dev'
Requires-Dist: pytest-cov>=6.0; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.6.9; extra == 'dev'
Provides-Extra: hw
Provides-Extra: no-hw
Description-Content-Type: text/markdown

# Monocular Camera Path Prediction for Exosuits
The Python modules use a monocular camera to predict the user's movements to better inform the control algorithm.

<img src="docs/exosuit_anticipation.png" alt="Description" width="600"/>

## Install
To install the library run: `pip install monocular-path-prediction`

Download the pre-trained models from [Depth-Anything-V2](https://github.com/DepthAnything/Depth-Anything-V2?tab=readme-ov-file#pre-trained-models).

## Development
0. Install [Poetry](https://python-poetry.org/docs/#installing-with-the-official-installer)
1. `make init` to create the virtual environment and install dependencies
2. `make format` to format the code and check for errors
3. `make test` to run the test suite
4. `make clean` to delete the temporary files and directories
5. `make deploy` to build and publish to https://pypi.org/project/monocular-path-prediction
6. `make imu` to test the IMU device
7. `make camera` to test the camera
8. `make app` to run the application in a loop
9. `make serial` to test a serial device
10. `make calibration` to run the camera calibration

## Usage
```
# example usage of the module
 python src/main.py --help
```

## Microcontrollers
The microcontroller code can be found inside /src/microcontroller.

# Repo Structure
<!-- TREE-START -->
```
├── docs
│   ├── camera-calibration-checker-board_9x7.pdf
│   └── exosuit_anticipation.png
├── src
│   ├── microcontroller
│   │   └── adafruit_main.py
│   └── monocular_path_prediction
│       ├── config
│       │   ├── __init__.py
│       │   ├── definitions.py
│       │   └── setup_logger.py
│       ├── sensors
│       │   ├── camera
│       │   │   ├── calibration
│       │   │   │   ├── __init__.py
│       │   │   │   ├── __main__.py
│       │   │   │   ├── calibration.py
│       │   │   │   ├── detector.py
│       │   │   │   └── results.py
│       │   │   ├── images
│       │   │   │   ├── __init__.py
│       │   │   │   └── images.py
│       │   │   ├── __init__.py
│       │   │   ├── __main__.py
│       │   │   ├── camera.py
│       │   │   ├── camera_intrinsics.py
│       │   │   ├── display.py
│       │   │   └── utils.py
│       │   ├── device
│       │   │   ├── __init__.py
│       │   │   ├── __main__.py
│       │   │   ├── arduino.py
│       │   │   ├── device_info.py
│       │   │   ├── device_selector.py
│       │   │   └── serial_device.py
│       │   ├── imu
│       │   │   ├── __init__.py
│       │   │   ├── __main__.py
│       │   │   ├── calibration.py
│       │   │   ├── data_classes.py
│       │   │   ├── filter.py
│       │   │   ├── imu_device.py
│       │   │   ├── plotter.py
│       │   │   ├── reader.py
│       │   │   └── writer.py
│       │   ├── __init__.py
│       │   └── setup.py
│       ├── __init__.py
│       ├── __main__.py
│       ├── depth_estimator.py
│       ├── path_planner.py
│       ├── pipeline.py
│       └── utils.py
├── tests
│   ├── core_test
│   │   └── timer_test.py
│   ├── sensors
│   │   ├── camera
│   │   │   └── calibration
│   │   │       └── calibration_test.py
│   │   ├── device
│   │   │   └── serial_device_test.py
│   │   └── imu
│   │       ├── gyro_calibration_test.py
│   │       ├── imu_test.py
│   │       └── reader_test.py
│   ├── __init__.py
│   ├── conftest.py
│   ├── estimators_test.py
│   ├── main_test.py
│   └── pipeline_test.py
├── .coverage
├── .gitignore
├── .pre-commit-config.yaml
├── .python-version
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── poetry.lock
├── pyproject.toml
├── repo_tree.py
└── uv.lock
```
<!-- TREE-END -->
