Blog | Extracting Terrain Cross Sections

Occasionally, it’s useful to create graphs illustrating the cross section of a terrain, such as when trying to visualize the crown of a road surface. The easiest way to see the cross section is to use one of the side orthographic views. Note, point cloud cross sections can be obtained using the section tool. Also, angles and displacements can be measured using the 3D Angle Measurement tool. However, if a numerical description is required, a more sophisticated method is illustrated below. This method can be used to create cross sectional views along any arbitrary xy-trajectory. We demonstrate a method to do this below.

To demonstrate the method, and to demonstrate the accuracy of the Easy Surface Builder, we start with an idealized case. In Excel, we start by creating a 10,000-entry point cloud with uniformly generated random x and y values, with z given by the function

$$ z(y) = 0.005\cdot y^{2} + 1.125 ft $$

Here, we see the point cloud imported into Virtual CRASH 4:

Using the Easy Surface Builder, we create a solid terrain mesh from the point cloud data. Note, we only use one segment along the y-direction

Method 1: Use a level animation path

Next, we place two boxes in the scene. The tops of the boxes are set to the same height. The boxes are set to terrain objects.

Next, we want to use the point of contact of a vehicle wheel as a probe to examine the terrain mesh elevation as a function of displacement along the animation path trajectory. We place a vehicle into the scene and attach the vehicle to an animation path. Each end of the animation path is snapped to the top of one of the boxes. The boxes ensure that the vehicle remains at the same z value throughout its motion, therefore ensuring the vehicle’s orientation doesn’t change as it moves along the trajectory. We used the snap to grid line option to ensure the animation path runs exactly along x=10. We adjusted set the front track width to 0 so that the wheels run along the animation path trajectory, and we set the limits-lower left to a value large enough to ensure the wheel drop down to contact the terrain mesh. The objective is to ensure the contact patch of the wheel always stays in contact with the terrain being probed. 

Here we see the profile view of the wheel in contact with the terrain, as the vehicle travels along the straight animation path trajectory.

Next, using report dynamics, we enable the wheel data output option, and copy our wheel data from the report into Excel for analysis.

Here we see the wheel z-displacement data plotted versus wheel y position. Note, the (x,y,z) position in the dynamics report is relative to the geometrical center of the wheel itself (not the contact patch). Therefore, using the initial center wheel height of 1.07 ft, the z-displacement of the wheel is easily calculated. Since the wheel is constrained only to move along the z-direction as the suspension loads and unloads as the vehicle travels along the animation path (because the animation path is at a fixed z-value), the z-displacement versus y  position is guaranteed to match the z profile of the terrain mesh, so long as the mesh itself is well fit to the underlying point cloud data.


mavic2pro.jpg

Here we again see the wheel displacement data (black), the underlying point cloud data (gray), and a 2nd-order polynomial fit to the wheel displacement data (red).  The fit function is defined by :

$$ \Delta z = a \cdot y^{2} + b $$

The least squares derived values are:

$$ a = -0.0050 \pm 8.03 \cdot 10^{-7} $$

and

$$ b = 1.125 \pm 8.07 \cdot 10^{-5} $$

thereby demonstrating the accuracy of both the method shown above and the Easy Surface Builder.  

Method 2: Using a simulated single-axle object

Below we demonstrate an alternative method, using a simulated single-axle object.

Method 3: Using an animation path snapped to terrain (not level)

In some cases, your terrain may have dips or bumps that exceed the maximum suspension travel, and so using method 1 may not be possible. In this case, you can simple snap your probe object’s animation path to the terrain, but you will need to take care to adjust the initial pitch angle of the animation object to ensure the object’s local z-axis always remains aligned with the global z-axis. This is demonstrated below. Note, we used the single-axle probe object built in the Method 2 video above for this demonstration.

Here we show the final cross section graph:

This same approach can be used to export cross sections along any direction.