Metadata-Version: 2.1
Name: fabrics
Version: 0.6.1
Summary: Optimization fabrics in python.
Home-page: https://tud-amr/fabrics
License: GPL-3.0-or-later
Keywords: robotics,motion-planning,geometry
Author: Max Spahn
Author-email: m.spahn@tudelft.nl
Requires-Python: >=3.8,<3.10
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: casadi (>=3.5.4,<4.0.0,!=3.5.5.post1,!=3.5.5.post1)
Requires-Dist: forwardkinematics (>=1.0,<2.0)
Requires-Dist: geomdl (>=5.3.1,<6.0.0)
Requires-Dist: mpscenes (>=0.3,<0.4)
Requires-Dist: numpy (>=1.15.3,<2.0.0)
Requires-Dist: pickle-mixin (>=1.0.2,<2.0.0)
Requires-Dist: pyquaternion (>=0.9.9,<0.10.0)
Requires-Dist: quaternionic (>=1.0.0,<2.0.0)
Project-URL: Repository, https://tud-amr/fabrics
Description-Content-Type: text/markdown

# (Geometric) Fabrics

[![Build and Agents](https://github.com/maxspahn/fabrics/actions/workflows/diffGeo_agents.yml/badge.svg)](https://github.com/maxspahn/fabrics/actions/workflows/diffGeo_agents.yml)
[![Build and Unittest](https://github.com/maxspahn/fabrics/actions/workflows/unitTest.yml/badge.svg)](https://github.com/maxspahn/fabrics/actions/workflows/unitTest.yml)

**Note on development**
> This project is still under heavy development and there is a lack of
> documentation. I, @maxspahn, am commited to improve and maintain that package.
> However, I rely on people like you to point me to issues and unclear sections of
> the code. So feel free to leave issues whenever something bugs you.

**fabrics ros-wrapper**
> The fabrics-ros wrapper will released very shortly when compability is
> verified.


Geometric Fabrics represent a geometric approach to motion generation for
various robot structures. The idea is next development step after Riemannian
motion policies and offer a more stable 

<table>
  <tr>
    <td><b>Holonomic robots</b></th>
    <td><b>Non-Holonomic robots</b></th>
  </tr> 
  <tr>
    <td> <img src="./assets/panda_ring.gif"  alt="1" width = 360px ></td>
    <td> <img src="./assets/panda_dynamic_avoidance.gif"  alt="1" width = 360px ></td>
  </tr> 
  <tr>
    <td> <img src="./assets/boxer.gif"  alt="1" width = 360px ></td>
    <td> <img src="./assets/albert.gif"  alt="1" width = 360px ></td>
  </tr>
</table>


## Installation

Install the package through pip, using 
```bash
pip3 install ".<options>"
```
or from pypi using
```bash
pip3 install fabrics
```
Options are [agents] and [tutorial]. Those con be installed using

Install the package through poetry, using
```bash
poetry install --with <option>
```

## Publications

This repository was used in several publications. The major one being
[Dynamic Optimization Fabrics for Motion Generation](https://arxiv.org/abs/2205.08454) 
If you are using this software, please cite:
```bash
@misc{https://doi.org/10.48550/arxiv.2205.08454,
  doi = {10.48550/ARXIV.2205.08454},
  url = {https://arxiv.org/abs/2205.08454},
  author = {Spahn, Max and Wisse, Martijn and Alonso-Mora, Javier},
  keywords = {Robotics (cs.RO), FOS: Computer and information sciences, FOS: Computer and information sciences},
  title = {Dynamic Optimization Fabrics for Motion Generation},
  publisher = {arXiv},
  year = {2022},
  copyright = {Creative Commons Attribution Share Alike 4.0 International}
}
```
Other publications where this repository was used:

https://github.com/maxspahn/optuna_fabrics
```bash
@article{https://doi.org/10.48550/arxiv.2302.06922,
  doi = {10.48550/ARXIV.2302.06922},
  url = {https://arxiv.org/abs/2302.06922},
  author = {Spahn, Max and Alonso-Mora, Javier},
  keywords = {Robotics (cs.RO), FOS: Computer and information sciences, FOS: Computer and information sciences},
  title = {Autotuning Symbolic Optimization Fabrics for Trajectory Generation},
  publisher = {arXiv},
  year = {2023},
  copyright = {Creative Commons Attribution Share Alike 4.0 International}
}
```

https://github.com/tud-amr/localPlannerBench
```bash
@misc{https://doi.org/10.48550/arxiv.2210.06033,
  doi = {10.48550/ARXIV.2210.06033},
  url = {https://arxiv.org/abs/2210.06033},
  author = {Spahn, Max and Salmi, Chadi and Alonso-Mora, Javier},
  keywords = {Robotics (cs.RO), FOS: Computer and information sciences, FOS: Computer and information sciences},
  title = {Local Planner Bench: Benchmarking for Local Motion Planning},
  publisher = {arXiv},
  year = {2022},
  copyright = {Creative Commons Attribution Share Alike 4.0 International}
}
```


## Tutorials

This repository contains brief examples corresponding to the theory presented
in "Optimization Fabrics" by Ratliff et al. https://arxiv.org/abs/2008.02399 .
These examples are named according to the naming in that publication. Each
script is self-contained and required software is installed using 
```bash
pip install ".[tutorial]"
```
## Related works and websites

The work is based on some works by the NVIDIA Research Labs. Below you find a
list of all relevant links:

# websites
https://sites.google.com/nvidia.com/geometric-fabrics

# paper
- https://arxiv.org/abs/2010.14750
- https://arxiv.org/abs/2008.02399
- https://arxiv.org/abs/2010.14745
- https://arxiv.org/abs/2010.15676
- https://arxiv.org/abs/1801.02854

# videos and talks
- https://www.youtube.com/watch?v=aM9Ha2IawEo
- https://www.youtube.com/watch?v=awiF6JjDEbo
- https://www.youtube.com/watch?v=VsM-kdk74d8


