[![build](https://git.uibk.ac.at/geometrie-vermessung/rational-linkages/badges/main/pipeline.svg)](https://git.uibk.ac.at/geometrie-vermessung/rational-linkages/-/jobs)
[![Documentation Status](https://readthedocs.org/projects/rational-linkages/badge/?version=latest)](https://rational-linkages.readthedocs.io/?badge=latest)
[![PyPI version](https://img.shields.io/pypi/v/rational-linkages.svg)](https://pypi.org/project/rational-linkages/)[![coverage](https://git.uibk.ac.at/geometrie-vermessung/rational-linkages/badges/main/coverage.svg?job=run_tests)](https://git.uibk.ac.at/geometrie-vermessung/rational-linkages/-/jobs)
[![GitHub issues](https://img.shields.io/github/issues/hucik14/rl-issues)](https://github.com/hucik14/rl-issues/issues)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/hucik14/rl-issues/HEAD?labpath=jupyter_ntbs%2Fbennett_synthesis.ipynb)
[![Python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue.svg)]()


# Rational Linkages

Python-based toolbox for synthesis and rapid-prototyping of rational linkages, 
developed by the Unit of Geometry and Surveying, University of Innsbruck, Austria. 
The documentation is hosted on Read the Docs, available here: 
[Rational Linkages Documentation](https://rational-linkages.readthedocs.io/).

## Intallation instuctions

Recommended Python version is **3.11**, when it provides the smoothest plotting 
(but 3.10 or higher are supported). Python 3.11 is also the version used for 
development.

### Install from PyPI

Using pip:

<code>pip install rational-linkages</code>

### Install from source

1. Clone the repository (use preferably your client, or clone with the button on top of this page or using the following line)
    
    <code>git clone https://git.uibk.ac.at/geometrie-vermessung/rational-linkages.git </code>

2. Navigate to the repository folder

    <code>cd rational-linkages</code>

3. Install the *editable* version of the pakcage using pip:

    <code>pip install -e .</code>

## Tutorials, issues, usage, and contributions

See the [documentation examples](https://rational-linkages.readthedocs.io/latest/general/overview.html) 
for tutorials and usage examples.

Since the self-hosted repository does not allow external users to create issues,
please, use the [external issue tracker](https://github.com/hucik14/rl-issues) 
hosted on GitHub for submitting **issues** and **feature requests**. Additionally,
you can *"watch/star"* the issue tracker package **to get notified about the updates**
(new releases will be also announced there).

You can test live-example of Jupyter notebook using Binder, by clicking on the 
following badge:
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/hucik14/rl-issues/HEAD?labpath=jupyter_ntbs%2Fbennett_synthesis.ipynb)

In case of other questions or contributions, please, email the author at:
`daniel.huczala@uibk.ac.at`

## Preprint and citing the package

For additional information, see our preprint paper, and in the case of usage, please, 
cite it:

Huczala, D., Siegele J., Thimm, D., Pfurner, M., Schröcker, H.-P. (2024). 
Rational Linkages: From Poses to 3D-printed Prototypes. 
Advances in Robot Kinematics 2024. ARK 2024.
Preprint **arXiv:2403.00558**, url: [https://arxiv.org/abs/2403.00558](https://arxiv.org/abs/2403.00558).

```bibtex
@inbook{huczala2024linkages,
    title={Rational Linkages: From Poses to 3D-printed Prototypes},
    author={Daniel Huczala and Johannes Siegele and Daren A. Thimm and Martin Pfurner and Hans-Peter Schröcker},
    year={2024},
    booktitle="Advances in Robot Kinematics 2024, ARK 2024",
    url={https://arxiv.org/abs/2403.00558}
}
```

## Acknowledgements

Funded by the European Union. Views and opinions expressed are however those of 
the author(s) only and do not necessarily reflect those of the European Union 
or the European Research Executive Agency (REA). Neither the European Union 
nor the granting authority can be held responsible for them.

<img src="./docs/source/figures/eu.png" width="250" />