Metadata-Version: 2.1
Name: autonav
Version: 1.0.1
Summary: Research software for navigating a UAV in indoor environments
Author-email: "Ricardo S. Santos" <p6221@ulusofona.pt>
License: MIT
Project-URL: Bug Reports, https://github.com/ricardo-s-santos/AutoNAV/issues
Project-URL: Documentation, https://ricardo-s-santos.github.io/AutoNAV/
Project-URL: Source, https://github.com/ricardo-s-santos/AutoNAV
Keywords: UAV,Navigation,Indoor
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy>=1.24
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: scipy>=1.10
Provides-Extra: devel
Requires-Dist: isort; extra == "devel"
Requires-Dist: black; extra == "devel"
Requires-Dist: flake8; extra == "devel"
Requires-Dist: flake8-isort; extra == "devel"
Requires-Dist: flake8-black; extra == "devel"
Requires-Dist: flake8-bugbear; extra == "devel"
Requires-Dist: Flake8-pyproject; extra == "devel"
Requires-Dist: mypy; extra == "devel"
Requires-Dist: pre-commit; extra == "devel"
Requires-Dist: pytest>=7.0; extra == "devel"
Requires-Dist: pytest-cov; extra == "devel"
Requires-Dist: pytest-mypy; extra == "devel"
Requires-Dist: coverage; extra == "devel"
Requires-Dist: mkdocs-material>=7.1.11; extra == "devel"
Requires-Dist: mkdocstrings[python]>=0.19.0; extra == "devel"
Requires-Dist: mkdocs-gallery; extra == "devel"

![example workflow](https://github.com/ricardo-s-santos/AutoNAV/actions/workflows/test.yml/badge.svg)
[![codecov](https://codecov.io/gh/ricardo-s-santos/AutoNAV/graph/badge.svg?token=LCR7KDRK3E)](https://codecov.io/gh/ricardo-s-santos/AutoNAV)
[![docs](https://img.shields.io/badge/docs-click_here-blue.svg)](https://ricardo-s-santos.github.io/AutoNAV/)
[![PyPI](https://img.shields.io/pypi/v/autonav)](https://pypi.org/project/autonav/)

<p align="center">
  <img src="https://github.com/ricardo-s-santos/AutoNAV/blob/main/docs/docs/figures/icon.png?raw=true" alt="image" width="200" height="auto">
</p>

A Python package for simulating UAV Navigation in Satellite-Less Environments. The package contains two algorithms the GTRS <a href="https://ieeexplore.ieee.org/document/9456863">[1]</a> and WLS <a href="https://ietresearch.onlinelibrary.wiley.com/doi/full/10.1049/wss2.12041">[2]</a>  whose goal is to estimate and navigate a UAV.

## Installation

Install from PyPI:

```sh
pip install --upgrade pip
pip install autonav
```

## First Steps

After installing the package one can import the algorithms and necessary dependencies as follows:

```python
import matplotlib.pyplot as plt

from autonav import gtrs, wls
from autonav.file_handlers import readpathfile
from autonav.plots import plot_trajectories
from numpy import array
```

Afterwards, one can create the necessary values to run the algorithms:

```python
b = 200
n = 8
a_i = array(
    [
    [0, 0, 0],
    [0, b, 0],
    [b / 2, 0, 0],
    [b / 2, b, 0],
    [0, 0, b / 8],
    [0, b, b / 8],
    [b / 2, 0, b / 8],
    [b / 2, b, b / 8],]
    ).T
k = 50
sigma = 1
initial_uav_position = [10, 10, 5]
destinations = readpathfile("docs/docs/examples/Path.csv")
```

Finally, run the GTRS or WLS algorithm and plot the trajectories:

```python
[estimated_trajectory, true_trajectory] = gtrs(a_i, n, k, sigma, destinations, initial_uav_position)
plot_trajectories(destinations, [estimated_trajectory], a_i, ['GTRS'])
plt.show()
```

<p align="center">
  <img src="https://github.com/ricardo-s-santos/AutoNAV/blob/main/docs/docs/figures/trajectories_plot.png?raw=true" alt="image" width="auto" height="auto">
</p>

## References

[1] J. P. Matos-Carvalho, R. Santos, S. Tomic and M. Beko, "GTRS-Based Algorithm for UAV Navigation in Indoor Environments Employing Range Measurements and Odometry," in IEEE Access, vol. 9, pp. 89120-89132, 2021, doi: 10.1109/ACCESS.2021.3089900. https://ieeexplore.ieee.org/document/9456863

[2] R. Santos, J. P. Matos-Carvalho, S. Tomic and M. Beko, "WLS algorithm for UAV navigation in satellite‐less environments," in IET Wireless Sensor Systems, 2022, 12, (3-4), p. 93-102, DOI: 10.1049/wss2.12041
IET Digital Library, https://ietresearch.onlinelibrary.wiley.com/doi/full/10.1049/wss2.12041

## License

[MIT License](LICENSE.txt)
