ANN-route-predition/pyrate
Philipp Horstenkamp e03f1c8be8
Removed the subdir.
2022-07-20 15:01:07 +02:00
..
doc Removed the subdir. 2022-07-20 15:01:07 +02:00
pyrate Removed the subdir. 2022-07-20 15:01:07 +02:00
resources Removed the subdir. 2022-07-20 15:01:07 +02:00
scripts Removed the subdir. 2022-07-20 15:01:07 +02:00
tests Removed the subdir. 2022-07-20 15:01:07 +02:00
.dockerignore Removed the subdir. 2022-07-20 15:01:07 +02:00
.gitignore Removed the subdir. 2022-07-20 15:01:07 +02:00
.gitlab-ci.yml Removed the subdir. 2022-07-20 15:01:07 +02:00
CHANGELOG.md Removed the subdir. 2022-07-20 15:01:07 +02:00
README.md Removed the subdir. 2022-07-20 15:01:07 +02:00
experiments.py Removed the subdir. 2022-07-20 15:01:07 +02:00
pyproject.toml Removed the subdir. 2022-07-20 15:01:07 +02:00
pyrate.data_generator.dockerfile Removed the subdir. 2022-07-20 15:01:07 +02:00
pyrate.dockerfile Removed the subdir. 2022-07-20 15:01:07 +02:00
route_generator.py Removed the subdir. 2022-07-20 15:01:07 +02:00
setup.cfg Removed the subdir. 2022-07-20 15:01:07 +02:00
setup.py Removed the subdir. 2022-07-20 15:01:07 +02:00

README.md

Pyrate 🛥️🗺

pipeline status statement coverage report branch coverage report

link to docs for master python version

This project offers algorithms targeted towards autonomous surface vehicles implemented in the Python 3.6+ programming language. The functionality included in the Pyrate Python package enables the perception and processing of environmental features, planning of strategies and trajectories as well as action taking. Pyrate is therefore divided into multiple distinct subpackages sense, plan and act, as well as the common package for additional features such as file I/O and mathematical abstractions.

The sense subpackage includes algorithms for computer vision, single and multi target state estimation, data smoothing and more. In the plan subpackage, the perceived state of the agent and its environment is processed to compute trajectories for long- and short-term navigation as well as strategic decisions. This also includes methods for gradient based and gradient free optimization methods. Finally, the act subpackage contains state controllers to carry out planned behavior.

This project aims at providing the algorithmic backend for the ROS driven on-board systems and simulations. Models of the robot's mechanics, electronics and its environment shall be developed within their own respective repository. Furthermore, technical specifications, maps and so on go into a separate project repository as well. This ensures a clean separation of distinct requirements for quality assurance and responsibilities that distinguish these projects.

Features

These are the currently supported features:

  • Sense:
    • Filters:
      • Kalman filters for linear and non-linear state estimation
      • A gaussian mixture PHD filter for multi target tracking
    • Smoothers:
      • Rauch-Tung-Striebel based smoothing of time series data.
      • Extended and Unscented Kalman filter extension to the RTS smoothing approach for non-linear models.
    • Vision:
      • Base classes for simple image regions, e.g. lines and boxes.
      • Horizon line detection as basis for later obstacle localization.
  • Plan:
    • Geometric primitives for both cartesian and polar coordinate systems
      • Locations, polygons and routes
      • Transformations, unary and binary geometric operations based on shapely
    • Graphs for use in navigation
      • Base classes and common abstractions like (de)serialization and pruning
      • Generation of graphs covering the entire globe
  • Act
    • Controllers
      • PID & LQR implementations
      • Optional anti-windup
  • Common
    • Chart IO
      • Discovery and loading of obstacles, e.g. landmasses, from S-57 chart files
      • Writing and querying of a spatialite database containing obstacles/polygons
    • Raster dataset IO
    • Math helpers
  • Other:
    • Hypothesis driven testing environment (including generators for simple testing of geometric calculations)
    • Documentation generated by Sphinx
    • Continuous integration (CI) pipeline with linting, type checking, auto formatting, testing and documentation generation

Documentation: For a complete overview over the project, how to set things up and contribute, please visit our documentation. It can also be reached by the "External Wiki" link on the left sidebar the project overview. The CI pipeline ensures that its content is always up to date with the current master branch.

New Features: Upcoming or required features and existing problems can be found, added and discussed in the Gitlab issues and merge requests.