Kev1CO/cocofest

View on GitHub
data_process/model/arm26_unmesh.bioMod

Summary

Maintainability
Test Coverage
version 4

// File extracted from Models/arm26.osim

//Publication : Holzbaur, K.R.S., Murray, W.M., Delp, S.L. A Model of the Upper Extremity for Simulating Musculoskeletal Surgery and Analyzing Neuromuscular Control. Annals of Biomedical Engineering, vol 33, pp 829�840, 2005

//Credit : The OpenSim Development Team (Reinbolt, J; Seth, A; Habib, A; Hamner, S) adapted from a model originally created by Kate Holzbaur (11/22/04) License: Creative Commons (CCBY 3.0). You are free to distribute, remix, tweak, and build upon this work, even commercially, as long as you credit us for the original creation. http://creativecommons.org/licenses/by/3.0/

//Force units : N

//Length units : meters

// Biomod not include all Osim features as the optimisation is performed on a third part software.
// The original file contained some of these features, corresponding warnings are shown in the end of the file.


gravity    0 -9.8065999999999995 0

// SEGMENT DEFINITION

// Information about ground segment
    // Segment
    segment ground_geom_2
        parent base 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment ground_geom_3
        parent ground_geom_2 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment ground_geom_4
        parent ground_geom_3 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment ground_geom_5
        parent ground_geom_4 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment ground_geom_6
        parent ground_geom_5 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment


    //True segment where are applied inertial values.
    // Segment
    segment ground
        parent ground_geom_6 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Markers

    marker    r_acromion
        parent    ground
        position    -0.01256 0.040000000000000001 0.17000000000000001
    endmarker
    
    //marker    hand_target
        //parent    ground
        //position    0.2943 -0.28 0.2025
    //endmarker

// Information about r_humerus segment
    // Segment
    segment r_humerus_parent_offset
        parent ground 
        RTinMatrix    0
        RT    0 0 0    xyz    -0.017545000000000002 -0.0070000000000000001 0.17000000000000001
    endsegment

    // Segments to define transformation axis.
    // Segment
    segment r_humerus_translation
        parent r_humerus_parent_offset 
        RTinMatrix    1
        RT
            1.0        0.0        0.0        0
            0.0        1.0        0.0        0
            0.0        0.0        1.0        0
            0        0        0        1
    endsegment

    // Segment
    segment r_humerus_r_shoulder_elev
        parent r_humerus_translation 
        RTinMatrix    1
        RT
            -0.058898019716436364        0.32763833583758856        -0.9429656113364145        0
            0.0022999999889266845        0.9446474728448461        0.3280790484744442        0
            0.9982613551938856        0.017154385369965497        -0.05639143364949596        0
            0        0        0        1
        rotations x
        // ranges
                // -1.5707963300000001 3.1415926500000002
    endsegment

    // Segment
    segment r_humerus_rotation_1
        parent r_humerus_r_shoulder_elev 
        RTinMatrix    1
        RT
            0.9509622318137633        0.0022999999889266884        0.3092984701931736        0
            0.09940872831886911        0.9446474728448461        -0.312664447582182        0
            -0.2928971464487351        0.3280790484744441        0.8980954289797334        0
            0        0        0        1
        // ranges
                // -1.5707963300000001 3.1415926500000002
    endsegment

    // Segment
    segment r_humerus_rotation_2
        parent r_humerus_rotation_1 
        RTinMatrix    1
        RT
            -0.7436107692918087        0.59277059142303        0.30929928829086517        0
            0.6233360313502392        0.7819540856217415        4.686527253236926e-17        0
            -0.24185784215893896        0.19279739086268138        -0.9509647471188216        0
            0        0        0        1
        // ranges
                // -1.5707963300000001 3.1415926500000002
    endsegment


    // Segment to cancel transformation bases effect.
    // Segment
    segment r_humerus_reset_axis
        parent r_humerus_rotation_2 
        RTinMatrix    1
        RT
            0.046055668969701646        0.6233360313502391        -0.780596609892899        0
            -0.03671335497138303        0.7819540856217414        0.6222539172606399        0
            0.9982639956056205        -9.760512593972615e-17        0.05889817550231521        0
            0        0        0        1
    endsegment


    //True segment where are applied inertial values.
    // Segment
    segment r_humerus
        parent r_humerus_reset_axis 
        RTinMatrix    0
        RT    -0.0     0.0     -0.0    xyz    -0.0     -0.0     -0.0
        mass    1.8645719999999999
        inertia
            0.01481    0    0
            0    0.0045510000000000004    0
            0    0    0.013193
        com    0 -0.18049599999999999 0
    endsegment

    // Markers

    marker    r_humerus_epicondyle
        parent    r_humerus
        position    0.0050000000000000001 -0.29039999999999999 0.029999999999999999
    endmarker

// Information about r_ulna_radius_hand segment
    // Segment
    segment r_ulna_radius_hand_parent_offset
        parent r_humerus 
        RTinMatrix    0
        RT    0 0 0    xyz    0.0061000000000000004 -0.29039999999999999 -0.0123
    endsegment

    // Segments to define transformation axis.
    // Segment
    segment r_ulna_radius_hand_translation
        parent r_ulna_radius_hand_parent_offset 
        RTinMatrix    1
        RT
            1.0        0.0        0.0        0
            0.0        1.0        0.0        0
            0.0        0.0        1.0        0
            0        0        0        1
    endsegment

    // Segment
    segment r_ulna_radius_hand_r_elbow_flex
        parent r_ulna_radius_hand_translation 
        RTinMatrix    1
        RT
            0.04940000998917986        0.989570318932567        -0.13531527223771378        0
            0.036600009991983457        0.13359612875279958        0.9903597900010137        0
            0.9981082497813831        -0.05387632383490043        -0.029618633465798145        0
            0        0        0        1
        rotations x
        // ranges
                // 0 2.2689280300000001
    endsegment

    // Segment
    segment r_ulna_radius_hand_rotation_1
        parent r_ulna_radius_hand_r_elbow_flex 
        RTinMatrix    1
        RT
            0.9873390893841221        0.03660000999198345        0.15434364853377988        0
            0.1482265892582829        0.13359612875279958        -0.9798882347590064        0
            -0.056483633124902385        0.9903597900010139        0.12647958546010235        0
            0        0        0        1
        // ranges
                // 0 2.2689280300000001
    endsegment

    // Segment
    segment r_ulna_radius_hand_rotation_2
        parent r_ulna_radius_hand_rotation_1 
        RTinMatrix    1
        RT
            -0.398881682663271        0.9039023662013254        0.15444712885438305        0
            0.9148799606663783        0.4037259684130884        3.967530708866373e-17        0
            -0.062354316665356825        0.14130058317133304        -0.9880010548519861        0
            0        0        0        1
        // ranges
                // 0 2.2689280300000001
    endsegment


    // Segment to cancel transformation bases effect.
    // Segment
    segment r_ulna_radius_hand_reset_axis
        parent r_ulna_radius_hand_rotation_2 
        RTinMatrix    1
        RT
            -0.019957438452434625        0.9148799606663782        -0.4032323873667682        0
            0.045225380418638245        0.40372596841308844        0.9137614608829285        0
            0.9987774354761962        2.775807167952203e-17        -0.049433130424779544        0
            0        0        0        1
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_2
        parent r_ulna_radius_hand_reset_axis 
        RTinMatrix    0
        RT    -0.0     0.0     -0.0    xyz    -0.0     -0.0     -0.0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_3
        parent r_ulna_radius_hand_geom_2 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_4
        parent r_ulna_radius_hand_geom_3 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_5
        parent r_ulna_radius_hand_geom_4 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_6
        parent r_ulna_radius_hand_geom_5 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_7
        parent r_ulna_radius_hand_geom_6 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_8
        parent r_ulna_radius_hand_geom_7 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_9
        parent r_ulna_radius_hand_geom_8 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_10
        parent r_ulna_radius_hand_geom_9 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_11
        parent r_ulna_radius_hand_geom_10 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_12
        parent r_ulna_radius_hand_geom_11 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_13
        parent r_ulna_radius_hand_geom_12 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_14
        parent r_ulna_radius_hand_geom_13 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_15
        parent r_ulna_radius_hand_geom_14 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_16
        parent r_ulna_radius_hand_geom_15 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_17
        parent r_ulna_radius_hand_geom_16 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_18
        parent r_ulna_radius_hand_geom_17 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_19
        parent r_ulna_radius_hand_geom_18 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_20
        parent r_ulna_radius_hand_geom_19 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_21
        parent r_ulna_radius_hand_geom_20 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_22
        parent r_ulna_radius_hand_geom_21 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_23
        parent r_ulna_radius_hand_geom_22 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_24
        parent r_ulna_radius_hand_geom_23 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_25
        parent r_ulna_radius_hand_geom_24 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_26
        parent r_ulna_radius_hand_geom_25 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_27
        parent r_ulna_radius_hand_geom_26 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_28
        parent r_ulna_radius_hand_geom_27 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment

    // Segment
    segment r_ulna_radius_hand_geom_29
        parent r_ulna_radius_hand_geom_28 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
    endsegment


    //True segment where are applied inertial values.
    // Segment
    segment r_ulna_radius_hand
        parent r_ulna_radius_hand_geom_29 
        RTinMatrix    0
        RT    0     0     0    xyz    0     0     0
        mass    1.5343150000000001
        inertia
            0.019281    0    0
            0    0.0015709999999999999    0
            0    0    0.020062
        com    0 -0.181479 0
    endsegment

    // Markers

    marker    r_radius_styloid
        parent    r_ulna_radius_hand
        position    -0.0011000000000000001 -0.23558999999999999 0.094299999999999995
    endmarker
    
    marker    r_ulna_radius_hand
        parent    r_ulna_radius_hand_geom_29
        position    0 0 0
    endmarker
    
    marker    hand
        parent    r_ulna_radius_hand
        position    0.015 -0.30 0.07
    endmarker


// MUSCLE DEFINIION

// ground > r_ulna_radius_hand
musclegroup ground_to_r_ulna_radius_hand
    OriginParent    ground
    InsertionParent    r_ulna_radius_hand
endmusclegroup

    muscle    TRIlong
        type    hilldegroote
        statetype    degroote
        musclegroup    ground_to_r_ulna_radius_hand
        OriginPosition    -0.053650000000000003 -0.013729999999999999 0.14723
        InsertionPosition    -0.021899999999999999 0.010460000000000001 -0.00077999999999999999
        optimalLength    0.13400000000000001
        maximalForce    798.51999999999998
        tendonSlackLength    0.14299999999999999
        pennationAngle    0.20943951
        maxVelocity    10
    endmuscle

        viapoint    TRIlong-P2
            parent    r_humerus
            muscle    TRIlong
            musclegroup    ground_to_r_ulna_radius_hand
            position    -0.027140000000000001 -0.11441 -0.0066400000000000001
        endviapoint

        viapoint    TRIlong-P3
            parent    r_humerus
            muscle    TRIlong
            musclegroup    ground_to_r_ulna_radius_hand
            position    -0.03184 -0.22636999999999999 -0.01217
        endviapoint

        viapoint    TRIlong-P4
            parent    r_humerus
            muscle    TRIlong
            musclegroup    ground_to_r_ulna_radius_hand
            position    -0.017430000000000001 -0.26756999999999997 -0.01208
        endviapoint

    muscle    BIClong
        type    hilldegroote
        statetype    degroote
        musclegroup    ground_to_r_ulna_radius_hand
        OriginPosition    -0.039234999999999999 0.00347 0.14795
        InsertionPosition    0.0075100000000000002 -0.048390000000000002 0.02179
        optimalLength    0.1157
        maximalForce    624.29999999999995
        tendonSlackLength    0.27229999999999999
        pennationAngle    0
        maxVelocity    10
    endmuscle

        viapoint    BIClong-P2
            parent    ground
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    -0.028944999999999999 0.01391 0.15639
        endviapoint

        viapoint    BIClong-P3
            parent    r_humerus
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.021309999999999999 0.017930000000000001 0.010279999999999999
        endviapoint

        viapoint    BIClong-P4
            parent    r_humerus
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.023779999999999999 -0.00511 0.01201
        endviapoint

        viapoint    BIClong-P5
            parent    r_humerus
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.01345 -0.02827 0.0013600000000000001
        endviapoint

        viapoint    BIClong-P6
            parent    r_humerus
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.01068 -0.077359999999999998 -0.00165
        endviapoint

        viapoint    BIClong-P7
            parent    r_humerus
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.01703 -0.12125 0.00024000000000000001
        endviapoint

        viapoint    BIClong-P8
            parent    r_humerus
            muscle    BIClong
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.022800000000000001 -0.1754 -0.0063
        endviapoint

    muscle    BICshort
        type    hilldegroote
        statetype    degroote
        musclegroup    ground_to_r_ulna_radius_hand
        OriginPosition    0.0046750000000000003 -0.01231 0.13475000000000001
        InsertionPosition    0.0075100000000000002 -0.048390000000000002 0.02179
        optimalLength    0.1321
        maximalForce    435.56
        tendonSlackLength    0.1923
        pennationAngle    0
        maxVelocity    10
    endmuscle

        viapoint    BICshort-P2
            parent    ground
            muscle    BICshort
            musclegroup    ground_to_r_ulna_radius_hand
            position    -0.0070749999999999997 -0.040039999999999999 0.14507
        endviapoint

        viapoint    BICshort-P3
            parent    r_humerus
            muscle    BICshort
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.011169999999999999 -0.075759999999999994 -0.011010000000000001
        endviapoint

        viapoint    BICshort-P4
            parent    r_humerus
            muscle    BICshort
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.01703 -0.12125 -0.010789999999999999
        endviapoint

        viapoint    BICshort-P5
            parent    r_humerus
            muscle    BICshort
            musclegroup    ground_to_r_ulna_radius_hand
            position    0.022800000000000001 -0.1754 -0.0063
        endviapoint

// r_humerus > r_ulna_radius_hand
musclegroup r_humerus_to_r_ulna_radius_hand
    OriginParent    r_humerus
    InsertionParent    r_ulna_radius_hand
endmusclegroup

    muscle    TRIlat
        type    hilldegroote
        statetype    degroote
        musclegroup    r_humerus_to_r_ulna_radius_hand
        OriginPosition    -0.0059899999999999997 -0.12645999999999999 0.00428
        InsertionPosition    -0.021899999999999999 0.010460000000000001 -0.00077999999999999999
        optimalLength    0.1138
        maximalForce    624.29999999999995
        tendonSlackLength    0.098000000000000004
        pennationAngle    0.15707963
        maxVelocity    10
    endmuscle

        viapoint    TRIlat-P2
            parent    r_humerus
            muscle    TRIlat
            musclegroup    r_humerus_to_r_ulna_radius_hand
            position    -0.023439999999999999 -0.14527999999999999 0.0092800000000000001
        endviapoint

        viapoint    TRIlat-P3
            parent    r_humerus
            muscle    TRIlat
            musclegroup    r_humerus_to_r_ulna_radius_hand
            position    -0.03184 -0.22636999999999999 -0.01217
        endviapoint

        viapoint    TRIlat-P4
            parent    r_humerus
            muscle    TRIlat
            musclegroup    r_humerus_to_r_ulna_radius_hand
            position    -0.017430000000000001 -0.26756999999999997 -0.01208
        endviapoint

    muscle    TRImed
        type    hilldegroote
        statetype    degroote
        musclegroup    r_humerus_to_r_ulna_radius_hand
        OriginPosition    -0.0083800000000000003 -0.13694999999999999 -0.0090600000000000003
        InsertionPosition    -0.021899999999999999 0.010460000000000001 -0.00077999999999999999
        optimalLength    0.1138
        maximalForce    624.29999999999995
        tendonSlackLength    0.090800000000000006
        pennationAngle    0.15707963
        maxVelocity    10
    endmuscle

        viapoint    TRImed-P2
            parent    r_humerus
            muscle    TRImed
            musclegroup    r_humerus_to_r_ulna_radius_hand
            position    -0.026009999999999998 -0.15139 -0.010800000000000001
        endviapoint

        viapoint    TRImed-P3
            parent    r_humerus
            muscle    TRImed
            musclegroup    r_humerus_to_r_ulna_radius_hand
            position    -0.03184 -0.22636999999999999 -0.01217
        endviapoint

        viapoint    TRImed-P4
            parent    r_humerus
            muscle    TRImed
            musclegroup    r_humerus_to_r_ulna_radius_hand
            position    -0.017430000000000001 -0.26756999999999997 -0.01208
        endviapoint

    muscle    BRA
        type    hilldegroote
        statetype    degroote
        musclegroup    r_humerus_to_r_ulna_radius_hand
        OriginPosition    0.0067999999999999996 -0.1739 -0.0035999999999999999
        InsertionPosition    -0.0032000000000000002 -0.023900000000000001 0.00089999999999999998
        optimalLength    0.085800000000000001
        maximalForce    987.25999999999999
        tendonSlackLength    0.053499999999999999
        pennationAngle    0
        maxVelocity    10
    endmuscle

/*-------------- WARNINGS---------------

Some wrapping objects were present on the muscles :['TRIlong', 'TRIlat', 'TRImed', 'BIClong', 'BRA'] in the original file force set.
Only via point are supported in biomod so they will be ignored.*/