15
CHRONO::VEHICLE OVERVIEW - Radu Serban 1

CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

  • Upload
    ngokhue

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

CHRONO::VEHICLE OVERVIEW

- Radu Serban

1

Page 2: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

What is Chrono::Vehicle?

• Chrono vertical app (unit) for the modeling, simulation, and visualization of wheeled ground vehicles and (soon) tracked vehicles

• Middleware: can be embedded in third parties software

• Open source with BSD license

• Library developed in C++

• Cross-platform: compiles on GNU GCC, MSVC, etc

• Dependencies: Chrono::Engine and (optionally) the Chrono UNIT_Irrlicht

2

Page 3: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

What is Chrono::Vehicle?

• Vehicle system

• Auxiliary systems for testing vehicle systems in a co-simulation framework:

• Tire system (rigid, LuGre, Pacejka)

• Terrain (heigh-map)

• Powertrain (engine + TC + transmission)

• Driver model (interactive, data-based)

VEHICLE

DRIVER POWERTRAIN

TIRES

TERRAIN

HeightNormal

Forces and moments on wheel bodies

Wheel states

Driveshaftspeed

Driveshafttorque

Throttle input

Steering inputBraking input

3

Page 4: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

What is Chrono::Vehicle?

• Modular: vehicle are modeled from instances of subsystems (suspension, steering, driveline, etc.)

• Flexible: use parameterized templates

• Expandable, via C++ inheritance• New subsystems

• New templates for existing subsystems

• New vehicle types (e.g. tracked)

ChassisStee

ring

sub

system

Body state

Driveshafttorque

Front suspensionsubsystem

Rear suspensionsubsystem

Tire forcesWheel state

Steering

Body forces

Tire forcesWheel state

Tire forcesWheel state Tire forcesWheel state

Drivelinesubsystem

Driveshaftspeed

Brake torqueBrake torque

Brake torque Brake torque

4

Page 5: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Code design – templates

• Template-based modeling(not in the C++ sense)

• In Chrono::Vehicle, templates are parameterized models that define a particular implementation of a subsystem type:

• Define the basic Chrono modeling elements (bodies, joints, force elements, etc.)

• Impose the subsystem topology (connectivity)

• Define the template parameters

• Implement common functionality for the type of subsystem (e.g. ‘suspension’), particularized to the specific template (e.g. ‘double-wishbone’)

5

Page 6: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Template example – Double wishbone suspension

Upper control arm

Lower control arm

LCA balljoint

Tierod

Upright

Spindle

UCA balljoint

Shock

LCA revolute

UCA revolute

Spindle revolute

6

Page 7: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Y

XZ

UPRIGHTSPINDLE

TIEROD_U

TIEROD_C

LCA_B

LCA_F

LCA_U

UCA_U

UCA_F

UCA_B

UCA_CM

LCA_CM

SHOCK_C

SHOCK_U

SUSPENSION SUBSYSTEMREFERENCE FRAME

CONTROL ARMCENTROIDAL FRAME

Z X

Y

7

Page 8: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

DOUBLE A-ARM SUSPENSIONTEMPLATE

1D shaft element

3D rigid body

shaft – body connector

jointUpper control arm

Lower control arm

Chassis Upright Spindle Axle

Tire forcesWheel state

Angular velocity

Motor torque

Revolutejoint

Revolutejoint

Revolutejoint

Sphericaljoint

Sphericaljoint

Distance constraint

Shock

8

Page 9: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

DOUBLE A-ARM SUSPENSIONTEMPLATE PARAMETERS

rotational inertia

mass and inertia tensor

spring coef., damping, free length

point locationUpper control arm

Lower control arm

Chassis Upright Spindle Axle

Revolutejoint

Revolutejoint

Revolutejoint

Sphericaljoint

Sphericaljoint

Distance constraint

Shock

9

Page 10: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Code design – class hierarchy

• Chrono::Vehicle encapsulates templates for systems and subsystems in polymorphic C++ classes:• A base abstract class for the system/subsystem type (e.g. ChSuspension)

• A derived, still abstract class for the system/subsystem template (e.g. ChDoubleWishbone)

• Concrete class that particularize a given system/subsystem template (e.g. HMMWV_DoubleWishboneFront)

• Concrete classes:• User-defined – a derived class that satisfies all virtual functions imposed by the inherited template class

• not part of the Chrono::Vehicle library

• several example concrete classes and demo programs are provided

• Generic – a derived class that satisfies all required virtual functions using parameter data from a specification file

• part of the Chrono::Vehicle library

• specification files use the JSON format

10

Page 11: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Chrono::Vehicle subsystem templates

• Suspension subsystem• Double wishbone

• Multi-link

• Solid-axle

• Steering subsystem• Pitman arm

• Rack and pinion

• Driveline• 4WD

• 2WD

• Brake

• Wheel

11

Page 12: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Run-time visualization with Irrlicht

12

Page 13: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Post-processing visualization with PovRay

13

Page 14: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Run-time and Presentation Animations

14

Page 15: CHRONO::VEHICLE OVERVIEW - University of …sbel.wisc.edu/documents/ChronoVehicleOverview.pdf · CHRONO::VEHICLE OVERVIEW-Radu Serban 1. What is Chrono::Vehicle? ... •Cross-platform:

Code availability

• Source code:https://github.com/projectchrono/chrono-vehicle

• Bug reports, feature requests, pull requests GitHub

• API documentation (doxygen)http://api.chrono-t.uwsbel.org/

15