Blog Post | The Kinematics Tool

Last update: 5/14/2021

The kinematics tool can be a quick and easy way to control complex pre-crash motion involving inherently unstable systems such as motorcycle or bicycle + rider systems. It also allows the user to set up a simulation at the moment-of-impact, and kinematically propagate vehicles to the point-of-impact without the needed of fine-tuning steering and acceleration inputs. The kinematics tool can even be used on 3D terrains using the path follow feature (see below). Note, the path animation tool in Virtual CRASH 5 and 4 provides an alternative way to accomplish this task (see the User’s Guide (VC5 | VC4)). The kinematics tool works in “backward-time” evaluation, meaning, starting from t=0 seconds, the sequence entries of the kinematics tool are evaluated in reverse order. In this blog post we will review an example of using the kinematics tool for a motorcycle t-bone scenario. The same procedure can be used for any rigid body object. Here we will start with the same diagram and accident scenario as in Knowledge Base Article 29. Here we replace our left turning vehicle with a motorcycle+rider. We pose the red sedan and motorcycle at the moment just prior to impact (time = 0). Based on our analysis, the sedan has a pre-impact speed of 25 mph, and the motorcycle has a pre-impact speed of 20 mph. These values are input to our simulation. 

We would like to use the kinematics tool to propagate the motorcycle+rider to the area of impact using kinematics (rather than simulation dynamics). Note, kinematics is in negative time (time<0), whereas the simulation time is positive. This means, the motorcycle+rider system will move toward the area of impact, where the initial time is something less than time = 0. If you want other objects to be in motion during the kinematic time interval (during time < 0), you will also need to use the kinematics tool for them as well.  To enable a kinematics path, simply left-click to select your object, then left-click on Create > Physics > Add Kinematics To Selection.

Note, when the kinematics tool is selected, a new kinematics object is placed in the project menu. Each kinematics object has its own sequences menu. By default, a template kinematics sequence is created which can be customized for the specific subject case. The default kinematics sequences is a “reaction” sequence type for 0.8 seconds followed by a “accel/decel” sequence type, with acceleration set to -25.919 ft/s^2, and distance 32.807 ft. Recall, sequence types are defined in Chapter 8 of the User’s Guide. The “reaction” and “uniform” sequence types are essentially bookkeeping labels denoting that the vehicle is moving at a constant speed over the specified time or distance interval, whereas “accel/decel” specify acceleration/deceleration of the vehicle’s speed over the specified interval.  Since the kinematics tool is evaluated in backward time, starting from the initial velocity of the simulation at time = 0 seconds, the sequence entries are specified in reverse order. Bounding boxes are placed along the kinematics path indicating the positions at which the various sequences begin. Note, the sequences can be specified over a distance interval (“use:distance”) or time interval (“use:time”). With the “use:distance” option selected, one can left-click on the kinematics bounding boxes and drag the vehicle to a given starting point. Doing so automatically updates the distance input to the sequence. Laterally moving the vehicle will change the kinematic path segment’s radius of curvature. Note, the “accel/decel” sequence type uses a 0.2 second brake lag constant by default. The acceleration rate is linearly interpolated from 0 to the specified value over the brake lag duration. This lag time, and acceleration ramp up, are accounted for and added to the start of the given sequence segment. In the figure below, the distance setting for the “accel/decel” segment has a deceleration distance of 49.735 feet, but with the 0.2 seconds brake lag time added to the start of the segment, the total travel distance for this segment is 62.52 feet. This is indicated in the lower left corner by hovering the mouse over the segment’s bounding box which shows the vehicle’s position along the kinematics path. A speed of 44.47 mph is also displayed, indicating the calculated vehicle speed implied by a 25.919 ft/s^2 deceleration rate linearly increasing from 0 ft/s^2 over a 0.2 second interval followed by 49.735 feet of constant deceleration at a rate of 25.919 ft/s^2. 

Note, the sequences can be specified over a distance interval (“use:distance”) or time interval (“use:time”). With the “use:distance” option selected, one can left-click on the kinematics bounding boxes and drag the vehicle to a given starting point. Doing so automatically updates the distance input to the sequence. Laterally moving the vehicle will change the kinematic path segment’s radius of curvature. Note, the “accel/decel” sequence type uses a 0.2 second brake lag constant by default. The acceleration rate is linearly interpolated from 0 to the specified value over the brake lag duration. This lag time, and acceleration ramp up, are accounted for and added to the start of the given sequence segment. In the figure below, the distance setting for the “accel/decel” segment has a deceleration distance of 49.735 feet, but with the 0.2 seconds brake lag time added to the start of the segment, the total travel distance for this segment is 62.52 feet. This is indicated in the lower left corner by hovering the mouse over the segment’s bounding box which shows the vehicle’s position along the kinematics path. A speed of 44.47 mph is also displayed, indicating the calculated vehicle speed implied by a 25.919 ft/s^2 deceleration rate linearly increasing from 0 ft/s^2 over a 0.2 second interval followed by 49.735 feet of constant deceleration at a rate of 25.919 ft/s^2.

Following Arbitrary Paths and 3D Terrains

One can also use the “pick path” option to snap the kinematic path to a user defined polyline or curved path. Draw the custom path starting from the vehicle’s CG at simulation time = 0 and work backward. Left-click on “pick path” then left-click on your polyline. Set the x and y position-local values of your polyline to equal to your simulated vehicle’s x and y position-local values to ensure the kinematics path exactly follows your polyline. When drawing a polyline, the first left-click will set both the first control vertex (CV) of the polyline and the position-local (x,y) position of the polyline object.

Modifying the first CVs position after drawing the polyline will not change the the polyline’s position-local (x,y). Therefore, the best practice is to (1) draw the polyline, (2) set the position-local (x,y) position of the polyline to the same value as the vehicle’s position-local (x,y), then (3) fine-tune the polyline CVs as needed leaving the first CV unchanged to ensure it remains under the vehicle’s CG at time = 0.

Once you’ve enabled the pick path option, your vehicle will follow your 3D terrain mesh. Be sure to insert CVs along your polyline to sample the terrain height with sufficient resolution (similar to the path animation tool). Here we see additional CVs inserted to better sample the heights along our terrain.

Note, if you wish to use the “contact wheels” option for the vehicle on kinematics, first set the polyline path as needed, use “pick path”, then as a final step enabled “contact wheels.” Note, “contact wheels” is to be enabled only for objects which are in contact with a vehicle’s wheels (for example, a multibody which is run over by a vehicle or a flatbed truck which is transporting a vehicle).

Kinematic Sequences

At the starting position of any kinematic sequence entry the vehicle orientation and z position (if path follow is not used) can be specified either in the sequences menu or by right-clicking on the segment bounding box. The kinematics tool will linearly interpolate the vehicle orientation from the start of selected segment to the start of the subsequent segment. 

Let’s suppose we have EDR pre-crash data from our sedan that we would like to use to set-up our kinematic sequences. 

Table1.png

In the table above we see our pre-crash speed versus time leading to impact. Here we are of course assuming our vehicle ground speed is equal to the reported pre-crash speed (no wheel slip effects). Suppose the estimated impact speed is 25 mph for our sedan. We can use this pre-crash speed to estimate the implied acceleration or deceleration rate which can be plugged into our kinematic sequences. Below we see 5 sequences defined in our kinematics path. Each one has a time duration of 1 second, with acceleration set to the implied rate shown in the table above. In particular, we highlight sequence entry 3. In the bottom left, we see the speed at sequence entry 3 agrees with our EDR data at 44 mph. Note in each of these sequence entries the brake lag factor was explicitly set to 0 seconds since we want the constant acceleration/deceleration rate to be applied during a 1 second interval for each entry. 

The pre-impact trajectory is determined completely by the kinematics path details that are pre-determined and set by the user. Should pre-crash steering data need to be incorporated while using the kinematics tool, it is best to first predict the possible pre-crash trajectory by simulating the series of steering inputs by defining a series of simulation sequences entries in an analogous way as was done above for the kinematics path; however, as specified in Chapter 8 of the User’s Guide, the steering angle simulation input specifies the steering angle at the wheels (specifically, the steering angle input corresponds to the equivalent Ackermann steering angle at the midpoint between front wheels). This implies, one must first convert the EDR reported pre-impact steering wheel angles to the equivalent angles at the front wheels by using the steering ratio for the subject vehicle or, for more complex steering systems, by conducting experiments on an exemplar or subject vehicle. Making a table of the driver side wheel angle (at the front axle) and passenger side wheel angle (at the front axle) as a function of steering wheel angle, one can then map the EDR report pre-crash steering wheel angles to equivalent average wheel angle (at the front axle), which can then be used for the simulation inputs (note, to a good approximation, the equivalent Ackermann steering angle at the midpoint between front wheels is given by the average of the driver side and passenger side steering angles). Once a simulated path is created, one can then use a polyline tool to trace out the simulated path, and use this as the kinematics path shape. 


Finally, we can move on to setting the kinematics path for our motorcycle+rider system. Simply select both objects, and select Add Kinematics To Selection once again. 
 

Doing so creates a single kinematics path for the rider and motorcycle. Here we only use two kinematics sequences of type “uniform”. We position the first sequence entry close to the time=0 position in order to fine-tune the yaw and roll angles for a smoother animation. 

With this, we can now create our animation.