Skip to main content

Simulation tool for prototyping autonomous vehicle related algorithms.

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.

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

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-2.3.5.tar.gz (59.5 MB view details)

Uploaded Source

Built Distribution

wa_simulator-2.3.5-py3-none-any.whl (75.8 kB view details)

Uploaded Python 3

File details

Details for the file wa_simulator-2.3.5.tar.gz.

File metadata

  • Download URL: wa_simulator-2.3.5.tar.gz
  • Upload date:
  • Size: 59.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for wa_simulator-2.3.5.tar.gz
Algorithm Hash digest
SHA256 6a29ecabb24c7072fa80033d2ee03a111b5f0e9e91d66b5105ead1f82f5f9d72
MD5 7937c383214d8089e475dd9015ec7af2
BLAKE2b-256 2ff61eaedde59ce763a7d6c062740e71214f5b9e000c0b79bf428cb36230b5d1

See more details on using hashes here.

File details

Details for the file wa_simulator-2.3.5-py3-none-any.whl.

File metadata

  • Download URL: wa_simulator-2.3.5-py3-none-any.whl
  • Upload date:
  • Size: 75.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for wa_simulator-2.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e4b8e5185ea3f28a43e0aa1f8b3baae304fbc71a55f61f1e55a96ed572e8a5d2
MD5 717cc86ea5b3e5e741b733beba40009a
BLAKE2b-256 8544640795f2c18e01fbd4338cb21b8343d8777fb38c8aef7cb6fe23e2072f11

See more details on using hashes here.

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