Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
A
application
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 35
    • Issues 35
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
  • piper
  • application
  • Wiki
  • example 7: pre crash positioning with thums v4.02 (lane change)

Last edited by Jeremie Peres Jun 27, 2017
Page history

example 7: pre crash positioning with thums v4.02 (lane change)

Introduction

This document describes an example of using the Piper Framework to position the human body model THUMS AM50 v4.02 to that of an occupant after a Lane change performed at 50 km/h. Human body models can be used to study the effect of pre-crash maneuvers on crash safety. In the proposed workflow, the position of the occupant at maximum excursion during the precrash manoeuvre will be reproduced using the Piper simplified physics positioning. The positioned model could be used as an input for a crash simulation. Data from the OM4IS (Occupant Model For Integrated Safety project) were used to generate the targets used for the positioning. During the OM4IS project, the motion of some volunteer during precrash manoeuvres were recorded (kirschbichler 2014). The volunteers were seated on the front passenger seat of a test car equipped with high speed cameras. The Vicon recording system was used to record the motion of some markers positioned at key anatomical locations on the volunteers. The position of those markers at maximum excursion were used as targets position for corresponding landmarks defined on the THUMS AM50 v4.02. We believe that the process described in this tutorial could be generalized and facilitate the use of human body models for studying the impact of precrash motions on the safety of vehicle occupants.

What files are needed for this tutorial?

The tutorial assumes that the User has access to the following:

  1. A version of the THUMS AM50 v4.02 model
  2. Piper metadata associated to THUMS AM50 v4.02 (“.pmr) that will describe the component of the model for Piper (see Help on this topic)
  3. Piper framework (available here) Note: as Piper was designed to be model and code agnostic, this tutorial could be applied to any human body model assuming that the user have access to the necessary Piper metadata files.
  4. Before starting the Tutorial, please download the target files and the footrest which will be loaded later during the tutorial.

Footrest.key

Targets_OOP_1.ptt

Targets_OOP_2.ptt

Approach

This document will described how to 1)add landmarks to the THUMS v4.02 Metadata 2) position the model using the prepositioning module 3) smooth the model using the smoothing module.

Step 1. add landmarks to the THUMS v4.02 Metadata

Landmarks corresponding to the OM4IS markers have to be added to the THUMS metadata. Please download the following file: THUMS_V4_additional_landmarks_OM4IS.key

Add this file as an include to your master THUMS keyword file (THUMS.dyn).

Add this block in your .pmr file in the model description field:

<landmarks name="Auto" type="point">
    <keyword kw="*SET_NODE_LIST_TITLE">
        <id>251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
        </id>
    </keyword>
</landmarks>

A description of the added landmarks is presented in table 1.

Table 1. Anatomical description of the OM4IS markers.

Marker name Anatomical description
CHIN Chin
FR01 Mid sternal
LBAK Left scapula
LCHK Left cheek
LCLA Left clavicle
LEAR Left ear
LFHD Left front head
LPEC Left pectoral
LSHO Left shoulder
RBAK Right scapula
RCHK Right cheek
RCLA Right clavicle
REAR Right ear
RFHD Right front head
RPEC Right pectoral
RSHO Right shoulder
T1 First thoracic vertebrae
C1 First cervical vertebrae

Step 2. position the model using the prepositioning module

  • Run Piper
  • Import the THUMS model .pmr file.

Model_import_1

Model_import_2

Model_import_3

  • Open the Piper modules parameter window.

Parameters_opening

  • In the Pre-Position parameters set the affine density to 300/m3 and the target stiffness to 1e+9. This will improve the quality of the skin deformation and increase the stiffness of the applied positioning targets during the prepositioning. The affine density will however increase the computing time.

Parameters_positioning_1

  • Click on the Kriging tab and set the maximum control point per box to 40000 and the maximum nodes per box to 300000. Changing those parameters will improve the quality of the smoothing at the expanse of the computing time.

Parameters_smoothing

  • Select the prepositioning module

Loading_prepositioning_module

We will now proceed to the positioning of the model using the prepositioning module. The positioning will be performed in 2 steps. In the first step, the arms and the legs will be positioned. Joints of the shoulder, elbow, hip and knee will be rotated so that the feet rest on the footrest of the crash environment and the hands be close to the thigh.

  • Load the footrest using the environment manager.

Loading_environment

Loading_environment2

Loading_environment3

  • Fix the whole bones of the body proper and head as well as the right and left clavicles and scapulas.

Fixed_bones

  • Use the joint controller option and enter the following joint angle rotations:

Table 2. Rotations of the different joints for the hands and arms positioning.

Joint name Joint rotation x,y,z
Right_glenohumeral 0.0, 11.0, 0.0
Left_glenohumeral 0.0, 10.0, 0.0
Right_humeroulnar 0.0, 1.0, 0.0
Left_humeroulnar 0.0, 5.0, 0.0
Right_radiocarpal 0.0, 0.0, 0.0
Left_radiocarpal 0.0, 0.0, 0.0
Right_hip 0.0, -10.0, 0.0
Left_hip 0.0, -10.0, 0.0
Right_knee 0.0, 0.0, 0.0
Left_knee 0.0, 0.0, 0.0
Right_ankle_joint 0.0, 0.0, 0.0
Left_ankle_joint 0.0, 0.0, 0.0

Joint_angles_lane_change

  • Click on positioning on the top right of the window and wait until the model reaches a stabilized position. Then click again on positioning, this will stop the positioning. You can now check that the feet lie on the footrest and the hands over the thigh.

AEB_model_legs_arm_positioned

We will now perform the second step of the positioning which will consist in blocking the Feet and hands and positioning the trunk.

  • Remove all the joints and fixed bones targets and clear the imported targets.

Clear_targets

  • Import and load the target file Targets_OOP_1.

Import_targets

Import_targets2

This file contains a first series of constraints consisting mainly of frame to frame controllers and landmarks controllers particularly used to maintain the hands in place.

  • Clear the imported targets.
  • Open the Piper modules parameter window and modify the target stiffness value from 1e+9 to 1e+4.
  • Import and load the target file Targets_OOP_2.
  • Click on the landmark icon. Change the x value of the target position for the LBAK landmark from 191.1 to 201.1

Landmarks_icon

LBAK_Landmark_update

  • Click on positioning on the top right of the window and wait until the model reaches a stabilized position. Then click again on positioning. The trunk is now positioned according to the target positions defined for the landmarks.
  • Activate the all node option in the Update model box on the bottom right of the module window. Then click on update in the same box.

Update_nodes

The positioned model needs to be smoothed.

Step 3. smooth the model using the smoothing module.

We will smooth the model using the smooth transformation option. This will use the Kriging algorithm in order to correct the deformation of the mesh using the input model as a reference. We will start by smoothing the legs, pelvis and abdomen.

  • Click on the picking button, select Box / Node in the Pickers options and draw a box similar as in the following figure.

Lane_change_smoothing_legs_pelvis

  • Click on the Smooth Transform button. Then click on Choose the baseline model from current Model History and select the import model.

AEB_smoothing_2

  • Select Body_proper, Right_lower_limb and _Left_lower_limb as targets and click on smooth. Wait until the smoothing operation is finished, this operation could take up to 30 minutes.

AEB_smoothing_3

  • Repeat the same operation with the box shown on the figure below and with the Body_proper, the Left_upper_limb and the Right_upper_limb as targets.

Lane_change_smoothing_trunk

  • Repeat the same operation with the box shown on the figure below and with the the Body_proper and the Left_upper_limb as targets.

Lane_change_smoothing_shoulder

  • Repeat the same operation with a similar box for the right shoulder.

  • Repeat the same operation with the box shown below and the Head, Left_upper_limb, Right_upper_limb and Body_proper as targets.

Lane_change_smoothing_head

  • You can now check if the model has some negative volume elements by using the Mesquite. deselect the option Use relative quality and click on Compute quality.

AEB_smoothing_9

AEB_smoothing_6

  • By clicking on Information grid you can visualize the elements with negative volume on the last column.

AEB_smoothing_10

  • If you are satisfied with the model resulting from the smoothing, you can now export your model by clicking on Project / Export / Export HBM to FE files.
Clone repository
  • FAQ
  • compilation
  • environment_model
  • example 6: pre crash positioning with thums v4.02 (aeb50)
  • example 7: pre crash positioning with thums v4.02 (lane change)
  • external dependencies
  • Home
  • installation
  • parametric environment model
  • tutorials
  • tutorials
    • Creating custom affines for positioning
    • child_AccRec
    • example2
    • position_by_FE_simul