Metadata-Version: 2.1
Name: navground
Version: 0.3.0
Summary: A playground to experiment with navigation algorithms.
Author-email: Jerome Guzzi <jerome@idsia.ch>
Maintainer-email: Jerome Guzzi <jerome@idsia.ch>
License: MIT License
        
        Copyright (c) 2018 Jérôme Guzzi, IDSIA (USI-SUPSI)
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/idsia-robotics/navground
Project-URL: Documentation, https://idsia-robotics.github.io/navground
Project-URL: Repository, https://github.com/idsia-robotics/navground.git
Project-URL: Bug Tracker, https://github.com/idsia-robotics/navground/issues
Project-URL: Changelog, https://github.com/idsia-robotics/navground/blob/main/CHANGELOG.md
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: PyYaml
Provides-Extra: all
Requires-Dist: tqdm; extra == "all"
Requires-Dist: h5py; extra == "all"
Requires-Dist: websockets; extra == "all"
Requires-Dist: cairosvg; extra == "all"
Requires-Dist: moviepy; extra == "all"
Requires-Dist: Jinja2; extra == "all"
Requires-Dist: jsonschema; extra == "all"

# navground

Navground, short for **Nav**igation Play**ground**, is a playground to experiment with navigation algorithms. It is a modular library, primary implemented in C++.

This package provides Python bindings to the ``core`` and ``simulation`` sub-libraries. With this package, you can use navground but also extend it. 

## Core library

A library of two-dimensional navigation algorithms which
provides a common API to interact with dynamic obstacle avoidance behaviors for multi-agent systems. Some behaviors are already implemented, more will be. Behaviors take the current state of environment and agent together with a target, and output a control command. 

### Features

- navigation behaviors and modulations
- environment states
- targets
- kinematics
- 2D and 2.5D controllers with an event-based interface
- collisions computation
- YAML serialization

Users can add their components (behaviors and kinematics) which are then auto-discovered by the rest of the system.

The core library is designed to be integrated in real-time run-times of real or simulated robots or of other kind of agents.

## Simulation

The simulation complements the navigation behaviors of the core library with:
- tasks that generate targets for behaviors, and
- state estimation components that feed a potentially noisy and partial representation of the environment state to the behaviors.

It also provides all the infrastructure to run offline experiments.

### Features

- very fast kinematic simulation
- extensible tasks and state estimations
- generating world with agents and static obstacles from scenarios
- running experiments/benchmarks and recording data in HFD5 files
- using YAML to specify experiments

## Documentation

For more information, we refer to the [project documentation](https://idsia-robotics.github.io/navground) that contains also detailed installation instructions.

## Try the tutorials on binder

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/idsia-robotics/navground.git/HEAD?labpath=tutorials)

## License and copyright

This software is free for reuse according to the attached MIT license.

## Acknowledgement and disclaimer

The work was supported in part by [REXASI-PRO](https://rexasi-pro.spindoxlabs.com) H-EU project, call HORIZON-CL4-2021-HUMAN-01-01, Grant agreement no. 101070028.

<img src="https://rexasi-pro.spindoxlabs.com/wp-content/uploads/2023/01/Bianco-Viola-Moderno-Minimalista-Logo-e1675187551324.png"  width="300">

The work has been partially 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 Commission. Neither the European Union nor the European Commission can be held responsible for them.
