Skip to main content

Simulation tool for prototyping autonomous vehicle related algorithms. Wrapper of the PyChrono simulator.

Project description

WA Vehicle Simulator

The WA Simulator is a powerful, multi-platform, lightweight and user-friendly simulation platform for testing algorithms intended for autonomous robot or vehicle applications. This project is under active development by Wisconsin Autonomous, a student organization at the University of Wisconsin - Madison.

Last Update: Saturday, January 9th, 2021

Introduction

This simulator is essentially a wrapper of the high fidelity, physics based simulation engine ProjectChrono and it's python wrapped bindings PyChrono. ProjectChrono has separate modules which can be optionally built and can enhance certain the use of Chrono for our applications. At the time of writing, modules that are intended to be used with this wrapper are the following: Chrono::Engine (required), Chrono::Vehicle (required), Chrono::Irrlicht (optional), PyChrono (optional), Chrono::Sensor (optional) and SynChrono (optional).

Brief explanation of the aforementioned modules:

  • Chrono::Engine: This is the baseline module for Chrono. It provides multi-purpose classes and functions used by all subsequent modules. The underlying physics engine is included in this module.

  • Chrono::Vehicle: The vehicle module is built on top of Chrono::Engine and provides a framework for modeling high fidelity wheeled and tracked vehicles. This module is required specifically because it provides the functionality to create custom vehicle models.

  • Chrono::Irrlicht: Irrlicht is a realtime 3D rendering engine written in C++. It is a very old framework and is likely to be updated by the Chrono developers in the near future. It provides the realtime visualization most common to day-to-day development.

  • PyChrono: PyChrono is the python wrapped bindings of the C++ Chrono project. This allows users to access most Chrono functionality through a python API. This aids in rapid development and deployment of autonomous algorithms and is easy to use.

  • Chrono::Sensor: The sensor module enables the ability to model and simulate sensors in a Chrono environment. Two types of sensors are available: dynamic and static. Dynamic sensors use the NVIDIA based ray tracing library OptiX and allow for simulation of sensors such as cameras or LiDARs. Static sensors do not require ray tracing, e.g. GPS, IMU, etc.

  • SynChrono: SynChrono is a new module aimed to provide multi-agent, distributed simulation for Chrono. Primarily as an addition to the vehicle module, SynChrono is built with either MPI or DDS as the message passing protocol.

As the previous modules describe, there is abundant possibilities to create and test autonomous algorithms. This repository will provide scripts, documentation and wrapped classes aiding in quickly working with Chrono.

Setup Guide

Detailed installation guides for this repository have been written for Windows and Unix based operating systems (separate MacOS and Linux guides are available). Please follow the guide that is relevant to the operating system you're using.

Running

TODO

License

wa_simulator is made available under the BSD-3 License. For more details, see LICENSE.

Support

Contact Aaron Young for any questions or concerns regarding the contents of this repository.

See Also

Stay up to date with our technical info by following our blog.

Follow us on Facebook, Instagram, and LinkedIn!


Wisconsin Autonomous Logo University of Wisconsin - Madison Crest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wa_simulator-0.0.1.tar.gz (5.2 MB view hashes)

Uploaded Source

Built Distribution

wa_simulator-0.0.1-py3-none-any.whl (5.2 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page