Blog | Summer 2024 Software Update

The temperatures are rising and the days are longer, so it must be time for the Summer 2024 Software Update. This update brings Virtual CRASH 6 users some scorching hot new features! As usual, these updates are brought to you for FREE! Be on the lookout for this update in early July. Scroll down to learn more.

New Units Options

In the properties > units menu, you will find the following new options:

  • “acceleration”: You can now explicitly select g's, meters/s², or feet/s² for acceleration units. "default" selects the acceleration units based on the distance unit setting under the "metric" dropdown menu (as was done prior to this update).

  • “angle”: You can now display angles in degrees or radians.

These new unit settings apply to sequence inputs, graphs, dynamics info, on-screen dynamics info, and report dynamics.

 

Advanced Google Maps Functionality

advanced google maps | Automatic Image Overlay

The Google Maps feature will now automatically overlay neighboring image tiles and group objects of image tiles. This allows users to place higher resolution tiles within important regions of interest while using a larger overview of the scene at a lower resolution. Additionally, it enables users to more easily build a custom mosaic of Google Maps scene imagery. This is illustrated in the video below.

 

advanced google maps | Automatic Terrain mesh Overlay

Just like image tiles, when building terrain meshes, as you pan the Google Maps viewport to generate a new mesh, it will automatically overlay previous meshes. This is illustrated in the video below.

 

Advanced Data Animation Control

Before learning about the new features of the Data Animation Control tool, we recommend you read the following post here about its core functionality. Read post >

You can now use the Data Animation Control tool with GPS data and accelerometer data. The Data Animation Control can drive motion based on the following time-series data:

Position control:

  • (x, y, z)

  • (longitude, latitude, altitude)

  • Speed

  • Acceleration in local frame (ax, ay, az)

  • Local acceleration (Δvx, Δvy, Δvz)

Orientation control:

  • (yaw, pitch, roll)

  • (yaw rate, pitch rate, roll rate)

When acceleration time-series data is used for position control, it is twice time integrated (using both position-local (x,y,z) and initial speed for its initial conditions) to position the object in space. The DAC will then estimate (vx, vy, vz) between each position using linear interpolation.  

Advanced Data Animation Control | Example Use case # 1 | Local (Ax, Ay) + Yaw Rate from Techstream

 In the example below, Toyota TechStream data for a lane change maneuver was imported into a spreadsheet. Below we show an image of the TechStream lateral acceleration versus time graph.

Four columns were kept in the spreadsheet (time, ax, ay, yaw rate). Our Data Animation Control (DAC) tool was linked to the red vehicle. A custom data format was defined with the “data format: user” option of the DAC.

Good agreement is observed between the GPS-based trajectory estimate and the resulting DAC-based trajectory.


Advanced Data Animation Control | Example Use case #2 | GPS data from BERLA report

The DAC can now take (longitude, latitude, altitude) time-series data. In the example shown below, GPS data was obtained from a Berla report. This data was imported into Excel and put into (time, latitude, longitude) format. “data format: user” was used to define these three columns of data. Once the data was copied from the spreadsheet, “paste text data” was used to import the data to the DAC. The DAC was linked to a parent rigid body cylinder object meant to represent the vehicle CG location. Because we’ve already imported Google Maps imagery, and because we’ve enabled “use GPS coords,” the DAC will automatically align with the Google Maps imagery. Note, if the Google Maps imagery had been imported after the DAC was used, the imagery would have been aligned with the DAC data.

To complete our visual of our vehicle’s path implied by GPS, we simple enable show interposition steps for our CG marker. We can view our marker moving along the trajectory in real time by pressing the play button.

With the CG marker in motion, we can sample its x and y positions versus time from the dynamics report. By creating a dynamics report with data every 0.1 seconds, we can also use vni (with 'use global space' enabled) as the best estimate for object yaw. By creating a new time-series dataset from the dynamics report with (time, x, y, yaw), we can easily use the DAC once again on an extruded arrow object to indicate both motion and orientation implied by GPS. This is illustrated in the video below.

 

Create Point Arrays with GPS Data

The Point Array tool can now display GPS data within your scene. If you import GPS data after importing Google Maps imagery, the points will automatically align with the Google Maps imagery. Using the example scene above with Berla GPS data, we can drag and drop our text file containing the GPS data in the format (time, latitude, longitude). The data is shown to the right.

Ensure that “use gps coords” is enabled.

Because our input data only has two columns, we select “x y” from the “file format” dropdown menu.

Because the data order is (latitude, longitude), we leave “swap x-y” enabled so that the points are stored as in standard rectangular coordinate form (x, y).

Once the Point Array data is imported and automatically aligned with the Google Imagery or DAC-based object trajectories, all Point Array features are available, such as “to polylines” and surface building. Below we show our vehicle’s GPS-based trajectory visualized with a red polyline.

Simulated Motion Based on GPS

Once your GPS data is imported into a Point Array, you can create polylines using tools > convert > to polyline. This polyline can then be used as an auto-driver path for simulated vehicle motion. In the example below, the red polyline was automatically created from our GPS data (black points). We then used “pick path” for the first simulation sequence and selected the polyline. The ADS (time, speed) time-series data was obtained from our CG marker (discussed above), which was driven via DAC. The CG marker’s speed is provided in the dynamics report (shown below).

The time and speed columns of this spreadsheet are easily pasted into our simulated vehicle’s ADS inputs.

The benefit of this approach is that our vehicle’s motion will be based on simulation rather than being forced by position time-series. Therefore, only motion that is physically possible will be illustrated. A video of our vehicle’s simulated motion is shown below. The vehicle is seen moving within the CG marker (red cylinder). The CG marker’s motion is directly controlled via GPS position time-series.

 

Advanced ADS

The Advanced Adaptive Driver System offers the same capabilities as the ADS, such as controlling speed, acceleration, and steering, and also enables you to automatically generate steering inputs based on yaw rate data over time.

Before proceeding into the new features of the ADS tool, we recommend that you review the basic ADS functionality at this post: https://www.vcrashusa.com/blog/spring-2023-update

Below we review the new Advanced Adaptive Driver System functionality for typical use cases with yaw rate data.

 

Advanced ADS | Example use case 1 | Constant Yaw Rate and Constant Speed

We’ll start with a simple simulation to illustrate how to work with yaw rate data. Here we have a vehicle traveling at a constant speed of 4 mph. This is done using the ADS tool, with the speed input value set to 4 mph. An ADS steering input of 2 degrees is used. After the simulation finishes, we can estimate the radius of the vehicle's CG trajectory by using the circle tool. Here we have R=267.2 ft.

From the ideal radius radius model presented in this article, we estimate, using our ideal model, the outer tire trajectory radius to be about 266.9 ft, which is in good agreement with the simulation. The yaw rate implied by the ideal turning radius model is given by speed/Radius = 5.87 fps/266.9 ft = 0.02197 rad/s. From our dynamics report, we see this is in good agreement with our simulation.

We will therefore see if we can match the turning radius from our base simulation by only requiring our vehicle to go at a constant speed of 4 mph and a constant yaw rate of 0.021983 rad/s (1.2595 deg/s).

To test this simple use case, we first clone our vehicle. In its sequences menu, we select sequence #1, enable “use ADS yaw rate,” and disable “use ADS steering.” Recall, this option (toggle) like “lock wheels,” “modify frictions,” “use ADS steering,” and “use ADS acceleration” can be enabled or disabled for each individual sequence entry in the sequences list. We set “ads: yaw rate” to 1.2595 deg/s. For each time-step, Virtual CRASH will search for the steering angle required to best match the yaw rate constraint input into the ADS system. The change in steering angle for the next time-step will be directly proportional to the difference between the current and target yaw rates, scaled by "ads: steering aggressiveness," and will be limited by the "ads: max steering velocity" control parameter. Each time-step, the ADS determines if the acceleration or deceleration pedal position should be applied to the vehicle and at what magnitude. This is based both on the input speed time-series data and on the simulated vehicle yaw rate at the given time-step. If the vehicle’s speed, based on user input data, should be increased relative to the simulated speed at the current time-step, an acceleration pedal position will be applied. If the user input speed at the next time-step is lower than the current simulated speed, a deceleration pedal position will be applied, unless the current simulated yaw rate exceeds a value equal to the product of (90 degrees/second) and the global ADS property “ads: acceleration threshold.


Upcoming in-person training classes

Interested in scheduling a customized training class for your organization?

Reach out to sales@vcrashusa.com!


Opening the diagram tool, we see new ADS performance graphs available. First, looking at "time-ADS-steering," we can compare the first vehicle, which had steering explicitly set to 2 degrees, versus the ADS steering solution for our second vehicle. The ADS steering angle solution was based on quickly finding the steering angle each time-step that yields the best fit to the input yaw rate. In this simple example, the input yaw rate is 1.2595 deg/s. Within a fraction of a second, the ADS was able to arrive at the correct steering solution, and therefore our second vehicle moves along the same circular path as the initial vehicle.

Below, we see the graph "time-ADS-omega-z," which shows the target yaw rate versus time used by the ADS (in yellow) and the achieved simulated yaw rate "time-omega-z" (in red). As observed in the graph, the ADS achieves the target yaw rate of 0.021983 rad/s (1.2595 deg/s) in a very short time.

Finally, looking at "time-ADS-omega z difference," we see the difference between the achieved simulated yaw rate and the target ADS yaw rate. Again, within a short time, we see the difference converge to 0 rad/s.

Advanced ADS | Example use case 2 | Variable Yaw Rate, Variable Speed

In the example below, we import data from Toyota Techstream for a vehicle that underwent an aggressive lane change maneuver. Our dataset includes time, speed, and yaw rate. Using the workflow shown in the post https://www.vcrashusa.com/blog/spring-2023-update, we import our speed time-series data, as well as our time data (remember to set the vehicle's initial speed in the dynamics menu to the first value in the speed time-series data). Next, to input the yaw rate time-series, we enable "use ADS yaw rate" for our one and only sequence. Recall, "use ADS yaw rate" is enabled or disabled for each sequence entry in the sequences list. Once enabled, we then left-click on the box to the left of the "ads: yaw rate" input field and select "data." All settings underneath the "adaptive driver system" header are global and apply for the full simulation event.

Resize the graph windows as needed to see the options on the left side. Lasso your yaw rate data from your spreadsheet application and press Ctrl+C to copy the data to the clipboard. Next, left-click on "paste text data" in the tools menu.

You should see the yaw rate data plotted in the graph window. The "value" number or row number of the input data is displayed on the x-axis (this is NOT time). Along the y-axis, you'll see the yaw rate data. You can also view the data displayed in the data menu to the left. Any "value" entry can be directly modified by left-clicking into the input field, using the down arrow horizontal slider, or hold+left-click and drag on the white dot interactive control grips shown within the graph itself.

Note, the data is expected to be pasted in degrees per second. If your data is in radians per second, you can convert your data to degrees per second by left-clicking on "convert > to degree" under properties to the left.

Just as with speed time-series data, if the first yaw rate value is non-zero, ensure that “omega-z (t=0s)” in the vehicle’s dynamics menu is the exact same value as your yaw rate data’s first value.

Input Data Filtering and Smoothing

Linear Filter (Unweighted Moving Average)

Further down the properties menu, you'll find the "filter" menu. Here you'll find options for "linear" and "Butterworth" filtering, which can be useful for data with high frequency fluctuations. When "linear" is selected, you'll need to specify the "radius" input value. The linear filter is an N-point moving average calculation, where the current time-step’s data is linearly averaged with the k points before and k points after, where k equals the radius input value. Note, as you change the radius input, the graph will interactively update as will the simulation.

Butterworth Filter

When Butterworth is used, you'll need to define the "strength" input value. The “strength” input scales from 0 (no filter applied) to 100% (cutoff frequency = 25% x input data frequency). Below, we see the strength set to 55%. Note, as you change the strength input, the graph will interactively update as will the simulation.

Below we see the final Advanced ADS performance based on (time, speed, yaw rate) time-series data. The resulting simulation motion is in good agreement with the trajectory implied by GPS data (shown by the blue line) for the same lane change event.

Advanced ADS | Simulation Sensitivity to Other Model Parameters

Keep in mind that the Advanced ADS utilizes only velocity (or acceleration) and yaw rate (or steering) time-series data to determine the pedal position and steering angle at each time-step. The resulting motion is derived from simulation calculations, which means it is influenced by various factors including the vehicle's inertial and geometrical properties, settings within the braking menu, the adhesion value, and other vehicle-specific properties. Additionally, the accuracy of the simulated vehicle trajectories is influenced by the terrain geometry. The match between achieved simulated trajectories and either witness marks on the terrain or positions known from GPS or video analysis can vary depending on local variations in terrain geometry and adhesion (friction) levels. Additionally, the ability to reproduce a matching simulated trajectory by solely adjusting steering and pedal position inputs may be limited, particularly if there is significant control loss and the initial conditions are not well understood.

 

New Vehicle Models

The following vehicles have been added to the VC6 assets browser.

  • 2012 Chevrolet Express School Bus

  • 2002 Beverage Trailer

  • 2015 Cargo Trailer

  • 2018 Freightliner Cascadia Day Cab

  • 2007 Chevrolet Avalanche

  • 2013 Dodge Dart

  • 2005 Flatbed Trailer

  • 2011 Freightliner Crane Truck

  • 2021 Gooseneck Car Hauler

  • 2021 Gooseneck Car Hauler Open

  • 2021 Gooseneck Flatbed Trailer

  • 2002 International DuraStar Box Truck

  • 2002 International DuraStar Tow Truck

  • 2012 Lamborghini Aventador

  • 2017 Ford F550 Tow Truck

  • 2000 Utility Trailer

  • 2000 Log Trailer

  • 2000 Log Trailer with Logs

  • 2000 Lowboy Trailer

  • 2000 Motorhome Bus

  • 2019 Dodge Ram dually

  • 2000 Tanker Trailer