Chrono::Vehicle is a module of the open-source multi-physics simulation package Chrono, aimed at modeling, simulation, and visualization of wheeled and tracked ground vehicle multi-body systems. It provides an expeditious and user-friendly mechanism for assembling complex vehicle models, while leveraging the underlying Chrono modeling and simulation capabilities, allowing seamless interfacing to other optional Chrono modules (e.g., its granular dynamics and fluid-solid interaction capabilities), and providing a modular and expressive API to facilitate its use in third-party applications. Vehicle models are specified as a hierarchy of subsystems, each of which is an instantiation of a predefined subsystem template.
Chrono::Vehicle provides a comprehensive set of vehicle subsystem templates (for tires, suspensions, steering mechanisms, drivelines, sprockets, track shoes, etc.), templates for external systems (for powertrains, drivers, terrain models), and additional utility classes and functions for vehicle visualization, monitoring, and collection of simulation results. As a middleware library, Chrono::Vehicle requires the user to provide C++ classes for a concrete instantiation of a particular template. An optional Chrono library provides complete sets of such concrete C++ classes for a few ground vehicles, both wheeled and tracked, which can serve as examples for other specific vehicle models. An alternative mechanism for defining concrete instantiation of vehicle system and subsystem templates is based on input specification files in the JSON format. For additional flexibility and to allow integration of third-party software, Chrono::Vehicle is designed to permit either monolithic simulations or co-simulation where the vehicle, powertrain, tires, driver, and terrain/soil can be simulated independently and simultaneously.
Chrono::Vehicle currently supports three different classes of tire models: rigid, semi-empirical, and finite element. Rigid tires can be modeled as cylindrical shapes or else as non-deformable triangular meshes. From the second class of tire models, Chrono::Vehicle provides templated implementations for Pacejka (89 and 2002), Fiala, Lugre, and TMeasy tire models, all suitable for maneuvers on rigid terrain. Finally, the third class of tire models offered are full finite element representations of the tire. While these models have the potential to be the most accurate due to their detailed physical model of the tire, they are also the most computationally expensive of the tire model currently available in Chrono::Vehicle. Using ANCF or Reissner shell elements, these FEA-based tire models can account for simultaneous deformation in tire and soil, for high-fidelity off-road simulations.
Tracked vehicles in Chrono::Vehicle are full multibody system models. Templates for both segmented and continuous-band tracks are available, the latter providing options for modeling using 6-DOF bushing elements or else FEA shell elements. Frictional contact interaction, both internal (between vehicle components) and with the terrain, relies on the underlying Chrono capabilities and supports both non-smooth (i.e., complementarity-based) and smooth (i.e., penalty-based) contact formulations.
Chrono::Vehicle provides several classes of terrain and soil models, of different fidelity and computational complexity, ranging from rigid, to semi-empirical Bekker-Wong type models, to complex physics-based models based on either a granular or finite-element based soil representation. For simple terramechanics simulations, Chrono::Vehicle provides a customized implementation of the Soil Contact Model, based on Bekker theory, with extensions to allow non-structured triangular grids and adaptive mesh refinement. Second, Chrono provides an FEA continuum soil model based on multiplicative plasticity theory with Drucker-Prager failure criterion and a specialized 9-node brick element which alleviates locking issues with standard brick elements. Finally, leveraging the Chrono::Granular module and support for multi-core and distributed parallel computing in Chrono, off-road vehicle simulations can be conducted using fully-resolved, granular dynamics-based complex terramechanics, using a Discrete Element Method approach. Such simulations can use either of the two methods supported in Chrono, namely a penalty-based, compliant-body approach, or a complementarity-based, rigid-body approach.
Contributors: Radu Serban, Michael Taylor, Asher Elmquist, Daniel Melanz, Holger Haut and Dan Negrut