Welcome to ANVEL
Autonomous Navigation Virtual Environment Laboratory – ANVEL (pronounced /ˈanvil/) – is an engineering software tool created to assist in the design, building, testing, and refinement of intelligent ground vehicle systems. Why is ANVEL a fitting acronym for this software? Because, like the heavy chunk of metal used in a metalworking facility, ANVEL is an instrument to hammer and shape ideas, algorithms, and code that relates to the control and operation of intelligent ground vehicles. ANVEL assists in bridging the gap between non real-time, high-fidelity engineering tools focused on a lower level, such as finite element analysis, computational fluid dynamics, SPICE, etc., and real-time, game-like simulators that can be used for training but have low/no engineering fidelity. Inherently, intelligent ground vehicles subsystems cannot be created, integrated, and tested in a vacuum. The subsystems are interdependent, and must be designed, built, and tested systemically. With ANVEL, engineers are able to perform systemic development, testing, and debugging in real-time, in a convenient desktop environment.
ANVEL provides a means to create a virtual environment in which virtual components can be connected to sensing/perception/control code; define and run scripted scenarios using virtual actors; and perform repeated testing while capturing a host of performance data.
- ANVEL simulations can be run in real-time, facilitating interactive experiments with technologies such as teleoperation, shared control, and autonomous behaviors. In addition, ANVEL can be run faster than real-time to facilitate larger-scale experimentation; or slower than real time to facilitate higher fidelity, more computationally intensive simulation components.
- ANVEL is multi-fidelic - higher fidelity simulation components can be used in areas of deeper interest and lower fidelity components can be used in areas of less importance - which offers the flexibility needed to address many challenges and yield a complete systemic simulation.
- ANVEL provides the ability to quickly and easily create virtual vehicle types of varying design and architecture, using easy-to-edit XML definition files and graphical models from common digital modeling tools. Several pre-configured vehicle models can be used as is or tweaked to define a new vehicle.
- Environments are quickly and easily imported, edited, and configured, including the ability to modify terrain heights and composition (grass, gravel, asphalt, etc.); manually and procedurally insert and place objects; and more. ANVEL supports almost any environment (rural, urban, etc.), and includes a set of environment models to facilitate a quick start.
- Virtual sensors and related subsystems can be modeled, attached to a virtual vehicle with point-and-click tools; and used as part of a simulation. ANVEL includes a set of sensor models, (e.g., LIDARS, GPS, IMU, cameras,etc.) and facilitates creation and incorporation of new sensors using plugins. Sensor models can support by-wire accurate representations of protocols.
- ANVEL has the ability to incorporate sensing, perception, and control algorithms/code and autonomy codebases; integrate them with virtual vehicle/sensors/systems; and perform testing and experiments.
- Performance data on variables and systems within the simulation, can be captured, plotted in real time, and exported as desired.
- Virtual “actors" that work with the system under test are supported in ANVEL. This includes other vehicles, humans, animals, etc., that can be spawned in real time, follow paths or scripts, respond to triggering events, and change behaviors.
- ANVEL interfaces and interacts with other external systems via the External API. The API provides the means to programmatically query, configure, or control any part of the ANVEL simulation, which enables a world of possibilities for testing and validation. ANVEL’s API supports applications written in Python, Matlab, C++, C#, and Java.
Why a Wiki?
This wiki provides guidance and documentation for using ANVEL. It is not intended to cover every use-case and detail, nor is it a training course which will make one an ANVEL expert after reading the contents. Instead, the ANVEL wiki is an evolving reference guide for all levels of users. The hope is that the wiki provides quick and easy access to essential information, without the need to read a traditional, linear software manual.
The wiki will grow over time. If content is missing or could be improved; if the documentation does not align with the software; if there are bugs or inconsistencies - please provide feedback. Comments and corrections are most welcome.
- System Requirements
- Licensing and Registration
- Installation: Windows
- Installation: Linux
- Release Notes
For the Developer
- Using the External API to integrate with other applications
- Creating a New VTI Model
- Importing Custom Environments
- Creating a New Sensor
- Using the Object Editor
- Using the built-in Python Interpreter
- Using the built-in Web Server
- Initialization Files
- Registering New Data Types
- Object Definition Overview
- Creating New Vehicle Types
- Artificial Intelligence (AI) Actors