Skip to main content

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.

Usage

The WA Simulator is a lightweight tool meant to facilitate algorithm development. As a result, the majority of the actual vehicle dynamics is hidden behind the wa_simulator API. All you need to do is import the module and instantiate the classes.

Default Usage

# Import the wa_simulator
import wa_simulator as wa

def main():
    # Create the system
    sys = wa.WASystem(step_size=1e-3)

    # Create an environment using a premade environment description
    env_filename = wa.WASimpleEnvironment.EGP_ENV_MODEL_FILE
    env = wa.WASimpleEnvironment(sys, env_filename)

    # Create an vehicle using a premade vehicle description
    veh_inputs = wa.WAVehicleInputs()
    veh_filename = wa.WALinearKinematicBicycle.GO_KART_MODEL_FILE
    veh = wa.WALinearKinematicBicycle(sys, veh_inputs, veh_filename)

    # Visualize the simulation using matplotlib
    vis = wa.WAMatplotlibVisualization(sys, veh, veh_inputs, environment=env)

    # Control the vehicle using the arrow keys
    ctr = wa.WAMatplotlibController(sys, veh_inputs, vis)

    # Instantiate the simulation manager
    sim_manager = wa.WASimulationManager(sys, env, veh, vis, ctr)

    # Simulation loop
    step_size = sys.step_size
    while sim_manager.is_ok():
        time = sys.time

        sim_manager.synchronize(time)
        sim_manager.advance(step_size)


if __name__ == "__main__":
    main()

With Chrono

Using Chrono is as simple as changing a few file names and importing the chrono version of the simulator. Even though wa_simulator.chrono is the new import, all default wa_simulator classes are still accessible as seen above. Background about Chrono can be found here.

# Import the wa_simulator
import wa_simulator.chrono as wa

def main():
    # Create the system
    sys = wa.WAChronoSystem(step_size=1e-3)

    # Create an environment using a premade environment description
    env_filename = wa.WAChronoEnvironment.EGP_ENV_MODEL_FILE
    env = wa.WAChronoEnvironment(sys, env_filename)

    # Create an vehicle using a premade vehicle description
    veh_inputs = wa.WAVehicleInputs()
    veh_filename = wa.WAChronoVehicle.GO_KART_MODEL_FILE
    veh = wa.WAChronoVehicle(sys, veh_inputs, env, veh_filename)

    # Visualize the simulation using matplotlib
    vis = wa.WAMatplotlibVisualization(sys, veh, veh_inputs, environment=env)

    # Control the vehicle using the arrow keys
    ctr = wa.WAMatplotlibController(sys, veh_inputs, vis)

    # Instantiate the simulation manager
    sim_manager = wa.WASimulationManager(sys, env, veh, vis, ctr)

    # Simulation loop
    step_size = sys.step_size
    while sim_manager.is_ok():
        time = sys.time

        sim_manager.synchronize(time)
        sim_manager.advance(step_size)


if __name__ == "__main__":
    main()

Command Line Interface

wa_simulator can also be run via a command line interface with the entrypoint wasim. When wa_simulator is installed, this CLI is automatically made available and has subcommands available.

Documentation

License

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

Support

Contact Wisconsin Autonomous 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

Metadata

Release files for wa-simulator 2.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wa-simulator 2.3.7
File Size Uploaded
wa_simulator-2.3.7.tar.gz 52.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for wa-simulator 2.3.7
File Interpreter ABI Platform
wa_simulator-2.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 53.0 MB

Release files / wa_simulator-2.3.7.tar.gz

Download URL wa_simulator-2.3.7.tar.gz
Size 52.9 MB
Tags Source
SHA-256 checksum
How to use checksums
ffb49b1f838d6c6ade272bd2090315dd8988da83e3c70263275dfd407403e487
BLAKE2b-256 checksum
How to use checksums
37a5e749b3cff73a4dc65441d6362c68ddb95b20fadfa83749f0e5d359c3acf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / wa_simulator-2.3.7-py3-none-any.whl

Download URL wa_simulator-2.3.7-py3-none-any.whl
Size 76.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca454f2248689f699f187fdbd53f5e47af25f76cd8141d5ccd87461e9f124985
BLAKE2b-256 checksum
How to use checksums
2d4f81618b16bbf3f1b43051703cb1c2d8e02f3f211f0eab2cbaf993afd9ae4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

2.3.7 This release

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.10

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.5

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

0.0.13

1 release file

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page