Documentation Site Map Main Page Reference List Motion Capture Visual3D Overview Visual3D Installation License Activation Getting Started Visual3D Documentation Overview Pipeline Commands Reference Expressions Overview CalTester Mode Overview List of Tutorials Visual3D Examples Overview Troubleshooting Sift Sift Overview Installation Getting Started Sift Documentation Overview Knowledge Discovery for Biomechanical Data Tutorial Overview Troubleshooting Inspect3D Inspect3D Overview Inspect3D Installation Overview Inspect3D Getting Started Overview Inspect3D Documentation Overview Knowledge Discovery in Inspect3D Inspect3D Tutorials Overview Troubleshooting DSX Suite DSX Overview DSX Definitions DSX Suite Installation DSX Tutorials DSX Release Notes xManager Overview PlanDSX Overview Surface3D Overview Orient3D Overview CalibrateDSX Overview Locate3D Overview X4D Overview
This is an old revision of the document!
[1]]]] and a follow up article, petuskey k, bagley a, abdala e, james m, rab g (2007) upper extremity kinematics during functional activities: three-dimensional studies in a normal pediatric population. gait & posture 25, 573-579.[[[http://www.iprmd.org/downloads/publications/james/27_upper.pdf|download is available here]]] the rab model has ten segments: head, neck, shoulder girdle, left upper arm, right upper arm, left lower arm, right lower arm, left hand, right hand, and [[visual3d:documentation:modeling:segments:coda_pelvis|coda pelvis]]. in this tutorial, the neck and should girdle segments are not created. **note** that this represents a minimal marker set and minimal model of the upper extremities. this model is useful for gait analysis, but is insufficient for analyses of most upper extremity biomechanics. ===== model specifics ===== the following is a quick overview of the axes definitions. the rab model axes are consistent with the visual3d default axes (from anatomic neutral position & following the right-hand rule: x directed laterally to the right, y directed forward (anteriorly), and z axis directed upward (superiorly)). joint angles are defined using the default visual3d cardan sequence xyz, which corresponds to forward flexion of the proximal segment, abduction, and axial rotation of the distal segment. ====== example c3d files ====== [[[https://www.has-motion.com/download/examples/rab_ue.zip|rab_ue.zip]]] ====== marker placement ====== the model has 18 marker locations. * **head:** a helmet or hat is used for the head markers. the marker locations are: left ear, right ear, and top of the head. * **trunk:** the trunk markers are placed on the sternum (manubrium), c7, left acromion, and right acromion. * **left arm:** the left arm markers are placed on the left olecranon, left distal radius, left distal ulna, and left dorsal 3rd mcp joint. * **right arm:** the right arm markers are placed on the right olecranon, right distal radius, right distal ulna, and right dorsal 3rd mcp joint. * **pelvis:** the pelvis markers reflect the locations for the coda pelvis: left asis, right asis, and sacral marker. rabmarkerlocation.jpg ====== visual 3d model construction ====== create a model using the example file **static_rabue.c3d** rab1.jpg ===== pelvis ===== the rab model uses a [[visual3d:documentation:modeling:segments:helen_hayes_(davis)_pelvis|helen hayes pelvis]] model but in this tutorial we will use a [[visual3d:documentation:modeling:segments:coda_pelvis|coda pelvis]] model, which has the same coordinate system. to construct the pelvis segment: - from the **segment name** box, select //pelvis.// - from the **segment type** box, select //coda.// - a dialogue box labeled **enter body mass and height** will open because visual3d needs the subject to be assigned a mass and a height. for this example, enter //56// kg and //1.77// m, and click **ok.** rab2.jpg - a dialogue box labeled **coda segment markers** will open. select the markers so that they correspond to the figure below. click **close**. rab3.jpg - click **build model** to build the segment. you should now see a pelvis segment on your standing model. if you do not see the pelvis segment after clicking **build model**, double check the values you entered in the last step. rab4.jpg the hip joint center landmarks [[visual3d:documentation:modeling:segments:coda_pelvis#hip_joint_landmarks|**right_hip** and **left_hip**]] were created when the pelvis segment was constructed. rab5.jpg ===== thorax/ab ===== the thorax/ab segment is constructed from virtual landmarks on the lateral superior borders of the iliac crest and virtual landmarks at the shoulder joint centers. ==== iliac crest landmarks ==== the iliac crest landmarks were estimated using the [[visual3d:documentation:modeling:muscles:overview#terry_database|terry database]] published as: **kepple tm, sommer hj, siegel kl, standhope sj** (1998) a three-dimensional musculoskeletal database for the lower extremities. journal of biomechanics 31, pp 77-80 this landmark was not part of the original terry database, but we estimated the position from the database that can be downloaded [[https://www.has-motion.com/download/terry_data.zip|here]]. the medial/lateral and superior/inferior location of the **right_iliac** and **left_iliac** landmarks were defined as the most lateral point on the superior tubercle of the iliac crest (landmarks 39 & 40 of the terry pelvis dataset) the anterior/posterior location of the **right_iliac** and **left_iliac** landmarks were defined as the lateral surface of the right ilium at midpoint between most lateral point on superior tubercle of the iliac crest and origin of the gluteus medius posterior fibers {landmarks 43 & 44 of the terry pelvis dataset) the location of terry landmark 39 is (22.332 , -54.477 , 29.705) the location of terry landmark 40 is (-251.082 , -49.732 , 36.540) these values were averaged for creating the landmark. from the terry dataset the distance between the asis landmarks (terry landmarks 1&2) is approximately 228 which is defined as the x-axis of the pelvis. the x-component of the **right_iliac** landmark in pelvis coordinates is (114+22.7)*asis_distance/228 the z-component of the **right_iliac** landmark in pelvis coordinates is (33.1)*asis_distance/228 from the terry dataset the perpendicular distance from the x-axis to the mid-point of the psis landmarks (terry landmarks 3&4) is approximately 143.5 in visual3d create a subject/model metric to compute this distance as the distance from the sacr marker to the mid-point of the rasi and lasi markers. rab6.jpg the y-component of the **right_iliac** landmark in pelvis coordinates is (-54.477)*asis_sacr/143.5 create the **right_iliac** landmark using these values as. rab7.jpg in summary: the right_iliac landmark is defined as: existing segment= pelvis ml= (114+22.332)*asis_distance/228 ap= (-54.477)*asis_sacr/143.5 axial= (33.1)*asis_distance/228 \\ the left_iliac landmark is assumed to be located symmetrically and defined as: existing segment= pelvis ml= -(114+22.332)*asis_distance/228 ap= (-54.477)*asis_sacr/143.5 axial= (33.1)*asis_distance/228 rab8.jpg ==== construct the segment ==== we have now created all the needed landmarks for the thorax/ab segment. to create the thorax/ab segment in visual 3d: - click on **segments** tab - from the **segment name** box, select //thorax/ab.// - from the **segment type** box, select //visual 3d.// - click **create.** a dialog will open that will allow us to define the segment. - in the **define proximal joint and radius** section, select //right_iliac// for the **lateral.** and select //left_iliac// for the **medial.** - in the **define distal joint and radius** section, select //rsho// for the **lateral.** and select //lsho// for the **medial.** - in the **select tracking targets**, click on //c7//, //strn//, //lsho//, //rsho// - in the **depth (meters):** box, enter //0.12// - click on **build model** rab11.jpg you should now see a thorax segment on your standing model. if you do not see the thorax segment after clicking build model, double check the values you entered in the last step. rab12.jpg note that the z-axis of the segment (blue line) is pointing down, so we must fix that. rab13.jpg switch to the segment properties tab, select the thorax/ab segment in the combo box, and select modify segment coordinate system. rab14.jpg select the ap direction to be -y and the axial direction to be -z this may seem a little strange at first because it is certainly an option to create the segment with the acromion at the proximal end and the iliac crest at the distal end. placing the proximal end of the thorax/ab segment at the pelvis essentially places two proximal ends together (e.g. the thorax/ab and pelvis), but now the distal end of the thorax/ab segment is at the shoulders, which allows the creation of shoulder and neck joints (e.g. the arms and head are considered distal segments of the body). rab15.jpg ===== head ===== the head segment is created from the 2 markers on the head: **rear**, **lear**, and a virtual location at the **mid-point between c7 and strn**. to create the midpoint of the c7 and strn labelled **c7_strn**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //c7_strn// - in the **starting point** box, enter //c7// - in the **ending point** box, enter //strn// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //0.5// - check the **offset by percent (1.0=100%) (meters when not checked)** - click **apply.** rab16.jpg \\ we have now created all the needed landmark for the head segment. to create the head segment in visual 3d: - click on **segments** tab - from the **segment name** box, select //head.// - from the **segment type** box, select //visual 3d.// - click **create.** a dialog will open that will allow us to define the segment. the z axis, pointing upwards, is the predominant axis. this is defined as the direction from the midpoint of **c7** and **strn** to the midpoint of **rear** and **lear**. - in the **define proximal joint and radius** section, select //c7_strn// for the **joint.** - in the **proximal radius** box, enter //0.01//. - in the **define distal joint and radius** section, select //rear// for the **lateral.**, select //lear// for the **medial.** - in the **select tracking targets**, click on //lear//, //rear//, and //tphd// - click on **build model** rab17.jpg you should now see a head segment on your standing model. if you do not see the head segment after clicking build model, double check the values you entered in the last step. the resulting model will look very strange. rab18.jpg \\ the coordinate system needs to be rotated to reflect our convention (x - med/lat, y - ant/post, z axial). switch to the segment properties tab, select the head segment in the combo box, and select the button **modify segment coordinate system**. rab14.jpg \\ select the button to **browse** for a new model file and select **head_acromium_to_ear.v3g** from the visual3d models folder. rab19.jpg \\ select apply. rab20.jpg the animated model is still a little big for this dataset, but remember that this is only a graphic item, not the actual data. ===== upper arm ===== the upper arm segment is defined by the shoulder joint centers (rshjc and lshjc), the elbow joint centers (rejc and lejc) and the elbow markers (relb and lelb). once the elbow joint centers are calculated then the upper arm segment is created. ==== shoulder joint centers ==== the shoulder joint center landmarks are created as offsets from the shoulder markers (**rsho**, **lsho**). === marker_radius metric === before you try to build the model to this point, it is important to note that the expression for the axial offset contains the [[model_metrics_|model metric]] **marker_radius** this is not a default metric in visual3d, so the user must create this metric. switch to the model metrics tab in model builder mode. rab9.jpg subject data may be defined as a floating point value, string, or an [[visual3d:documentation:pipeline:expressions:overview|expression]]. to create a new subject data item, click the **add new item** button. this will bring up a dialog to enter the new subject data name and it's value or expression. the subject data name may consist of alphanumeric characters, and any other characters which are not mathematical operators. additionally, the name may not contain spaces. any automatically generated name which uses a segment name containing spaces will have the spaces removed from the name. rab10.jpg after you have added the marker_radius value, you will be able to build the model to this point. \\ to create the right shoulder joint center landmark **rshjc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //rshjc_static// - in the **starting point** box, enter //rsho// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //-(marker_radius+0.17*distance(lsho,rsho))// - click **apply.** rabrshjc.jpg to create the left shoulder joint center landmark **lshjc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //lshjc_static// - in the **starting point** box, enter //lsho// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //-(marker_radius+0.17*distance(lsho,rsho))// - click **apply.** ==== wirst and elbow joint centers ==== the wrist joint centres are created as the mid-point between the medial (rwrr, lwrr) and lateral wrist markers (rwru, lwru).the elbow joint centers are created using the elbow markers (**relb**, **lelb**), one of the wrist markers (**rwru**, **lwru**), and shoulder joint centers (**rshjc**, **lshjc**). === wrist joint center landmark === as mentioned above, the wrist joint center is the mid-point between the two wrist markers. to create the right elbow joint center landmark **rwjc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //rwjc_static// - in the **starting point** box, enter //rwrr// - in the **ending point** box, enter //rwru// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //0.5// - check the **offset by percent (1.0 = 100%)(meters when not checked)** box. - click **apply.** rabrwjc.png to create the left elbow joint center landmark **lwjc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //lwjc_static// - in the **starting point** box, enter //lwrr// - in the **ending point** box, enter //lwru// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //0.5// - check the **offset by percent (1.0 = 100%)(meters when not checked)** box. - click **apply.** === elbow joint center landmark === as stated previously, the elbow joint center is defined using the should joint center (rshjc_static, lshjc_static) the wrist joint center (rwjc_static, lwjc_static) and the elbow marker (relb, lelb). to create the right elbow joint center landmark **rejc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //rejc_static// - in the **starting point** box, enter //relb// - in the **ending point** box, enter //rwjc_static// - in the **lateral object** box, enter //rshjc_satic// - from the **offset using the following ap/ml/axial offsets** box, in the **ml** enter //-0.13*distance(relb,rwru)// and in the **axial** enter //-0.06*distance(relb,rwru)// - click **apply.** rabrejc.png to create the left elbow joint center landmark **lejc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //lejc_static// - in the **starting point** box, enter //lelb// - in the **ending point** box, enter (i)lwjc_static - in the **lateral object** box, enter //lshjc_satic// - from the **offset using the following ap/ml/axial offsets** box, in the **ml** enter //-0.13*distance(lelb,lwru)// and in the **axial** enter //-0.06*distance(lelb,lwru)// - click **apply.** ==== create the upper arm segment ==== to create the right upper arm segment in visual 3d: - click on **segments** tab - from the **segment name** box, enter //right upper arm.// - from the **segment type** box, select //visual 3d.// - click **create.** - in the **define proximal joint and radius** section, select //rshjc_static// for the **joint.** - in the **proximal radius** box, enter //0.17*distance(lsho,rsho)//. - in the **define distal joint and radius** section, select //rejc_static// for the **joint.** - in the **distal radius** box, enter //0.13*distance(relb,rwru)// - in the **extra target to define orientation** section, select //posterior// for the **location.** and //relb// for the marker. - in the **select tracking targets**, click on //rshjc_static//, //rsho// and //relb//. - click on **build model** rabuparmseg.png to define the left upper arm, go to the //segment// tab and select //left upper arm// from the **segment name** list. - in the **define proximal joint and radius** section, select //lshjc_static// for the **joint.** - in the **proximal radius** box, enter //0.17*distance(lsho,rsho)//. - in the **define distal joint and radius** section, select //lejc_static// for the **joint.** - in the **distal radius** box, enter //0.13*distance(lelb,lwru)// - in the **extra target to define orientation** section, select //posterior// for the **location.** and //lelb// for the marker. - in the **select tracking targets**, click on //lshjc_static//, //lsho// and //lelb//. - click on **build model** ===== forearm ===== the forearm segment is defined by the elbow joint centers (rejc and lejc), the wrist joint centers (rwjc and lwjc) and the medial wrist markers (rwrr and lwrr). === create elbow landmarks === to help better track the forearm segment, we can create rt_elbow and lt_elbow landmarks. to create the rt_elbow landmark: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //rt_elbow// - in the **existing segment** box, select //right upper arm// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //-1.0// - check the **offset by percent (1.0=100%) (meters when not checked)** - click **apply.** to create the lt_elbow landmark: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //lt_elbow// - in the **existing segment** box, select //left upper arm// - from the **offset using the following ap/ml/axial offsets** box, in the **axial** enter //-1.0// - check the **offset by percent (1.0=100%) (meters when not checked)** - click **apply.** ==== create forearm segment ==== to create the right forearm segment in visual 3d: - click on **segments** tab - from the **segment name** box, enter //right forearm.// - from the **segment type** box, select //visual 3d.// - click **create.** a dialog will open that will allow us to define the segment. the z axis, pointing upwards, is the predominant axis. - in the **define proximal joint and radius** section, select //rejc_static// for the **joint.** - in the **proximal radius** box, enter //rar_distal_radius//. - in the **define distal joint and radius** section, select //rwrr// for the **lateral.** and //rwru// for the **medial.** - in the **select tracking targets**, click on //rt_elbow//, //rwrr//, and //rwru// - click on **build model** rabfoarmseg.png you should now see a forearm segment on your standing model. if you do not see the forearm segment after clicking build model, double check the values you entered in the last step. to create the left forearm segment in visual 3d: - click on **segments** tab - from the **segment name** box, enter //left forearm.// - from the **segment type** box, select //visual 3d.// - click **create.** a dialog will open that will allow us to define the segment. - in the **define proximal joint and radius** section, select //lejc_static// for the **joint.** - in the **proximal radius** box, enter //lar_distal_radius//. - in the **define distal joint and radius** section, select //lwrr// for the **lateral.** and //lwru// for the **medial.** - in the **select tracking targets**, click on //lt_elbow//, //lwrr//, and //lwru// - click on **build model** ===== hand ===== the hand segment is defined by the wrist joint centers (**rwjc_static**, **lwjc_static**), the hand joint centers (**rhdjc_static**, **lhdjc_static**) and the lateral wrists markers (rwrr, lwrr). === hand joint center landmark === to create the right hand joint center landmark **rhdjc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //rhdjc_static// - in the **starting point** box, enter //rfin// - in the **ending point** box, enter //rwjc_static// - in the **lateral object** box, enter //rwrr// - from the **offset using the following ap/ml/axial offsets** box, in the **ml** enter //marker_radius+0.3*distance(rfin,rwjc_static)//. - click **apply.** rabrhdjc_static.png to create the left hand joint center landmark **lhdjc_static**: - click on the **landmarks** tab - click on **add new landmark** tab - in the **landmark name** box, enter //lhdjc_static// - in the **starting point** box, enter //lfin// - in the **ending point** box, enter //lwjc_static// - in the **lateral object** box, enter //lwrr// - from the **offset using the following ap/ml/axial offsets** box, in the **ml** enter //marker_radius+0.3*distance(lfin,lwjc_static)//. - click **apply.** === creating the hand segment === to create the right hand segment in visual 3d: - click on **segments** tab - from the **segment name** box, enter //right hand.// - from the **segment type** box, select //visual 3d.// - click **create.** \\ - in the **define proximal joint and radius** section, select //rwjc_static// for the **joint.** - in the **proximal radius** box, enter //0.5*distance(rwrr,rwru)//. - in the **define distal joint and radius** section, select //rhdjc_static// for the **joint.** - in the **distal radius** box, enter //0.5*distance(rwrr,rwru)// - in the **extra target to define orientation** section, select //lateral// for the **location.** and //rwrr// for the marker. - in the **select tracking targets**, click on //rwjc_static//, //rfin//, //rwrr//, and //rwru// - click on **build model** rabhandseg.png \\ to create the left hand segment in visual 3d: - click on **segments** tab - from the **segment name** box, enter //left hand.// - from the **segment type** box, select //visual 3d.// - click **create.** a dialog will open that will allow us to define the segment. - in the **define proximal joint and radius** section, select //lwjc_static// for the **joint.** - in the **proximal radius** box, enter //0.5*distance(lwrr,lwru)//. - in the **define distal joint and radius** section, select //lhdjc_static// for the **joint.** - in the **distal radius** box, enter //0.5*distance(lwrr,lwru)// - in the **extra target to define orientation** section, select //lateral// for the **location.** and //lwrr// for the marker. - in the **select tracking targets**, click on //lwjc_static//, //lfin//, //lwrr//, and //lwru// - click on **build model** === scaling the hand graphics === the hand segments are now created. their corresponding graphics (.v3g files) are however incorrectly scaled. rabsmallhand.png to correct this for the right hand, we need to change the hand .v3g files: - go to the **segment properties** tab - in the **segment name**, select //right hand// - the **model file** field is currently set to //rhand.v3g// - click browse, and select //righthandwristtobaseoffinger.v3g// from the **models** folder. - click **apply** to correct this for the left hand, we need to change the hand .v3g files: - go to the **segment properties** tab - in the **segment name**, select //left hand// - the **model file** field is currently set to //lhand.v3g// - click browse, and select //lefthandwristtobaseoffinger.v3g// from the **models** folder. - click **apply** ====== summary ====== you should now have a complete upper extremity model, with the following segments created: pelvis, thorax/ab, head, right and left upper arms, right and left forearm, right and left hands. ====== references ====== rab, g, et al., "a method for determination of upper extremity kinematics" gait & posture 15 (2002) 113-119 }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}