Lower limb model with knee abduction angle

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Pouya Amiri
Posts: 11
Joined: Fri Apr 26, 2013 10:25 pm

Lower limb model with knee abduction angle

Post by Pouya Amiri » Fri Jul 19, 2013 9:56 am

Hi all,

I am trying to model the knee and need to have a model which possesses abduction angle for the knee. Is there any lower extremity model available with this property? if not, how can I modify the existing models to add a degree of freedom to the knee in frontal plane? I am beginner with open sim and do not know if such a model exists.

Thanks in advance.

Pouya

User avatar
ANDREW LAPRE
Posts: 29
Joined: Tue Dec 04, 2012 11:10 am

Re: Lower limb model with knee abduction angle

Post by ANDREW LAPRE » Fri Jul 19, 2013 1:13 pm

Hi Pouya,

First you need an xml editor, I suggest notepad++ (it's free and easy to use). Load the .osim file for the model you want to modify and choose the language as xml. You can collapse the areas you don't want to look at. If you examine the code block for the body tibia, there is a joint there that you can modify to add degrees of freedom. You want to add a new coordinate in the objects block "CoordinateSet". You will also need to modify the spatial transform of the tibia. I suggest looking at how the pelvis code is written and compare it to the tibia, and modify what you need to. Note that everything in this code is in radians. I'd be happy to help you out a little more if you aren't familiar with writing/modifying code.

Hope this helps,
Andy

User avatar
Pouya Amiri
Posts: 11
Joined: Fri Apr 26, 2013 10:25 pm

Re: Lower limb model with knee abduction angle

Post by Pouya Amiri » Fri Jul 19, 2013 6:15 pm

Thanks for the response.

Is it this simple? I mean isn't it needed to change some constraints, or other stuff? I was wondering I may have to change other things, too. I am saying this, because I was looking at the Lower Extremity Model 2010, located at:
http://simtk-confluence.stanford.edu:80 ... Model+2010

As you see, it is said that "The knee joint has one degree of freedom (flexion/extension). In the original Arnold model, it is modeled using the equations reported by Walker et al. (1988) for anterior-posterior and medial-lateral translation, and internal-external and varus-valgus rotation." I haven't yet looked at the paper, however, I am wondering if I need to use some equations here to change the joint or not.

Thanks again.

Pouya

User avatar
ANDREW LAPRE
Posts: 29
Joined: Tue Dec 04, 2012 11:10 am

Re: Lower limb model with knee abduction angle

Post by ANDREW LAPRE » Mon Jul 22, 2013 11:26 am

You can add constraints that couple the motion, you should check out the XML browser under the help tab. There's many ways you can get creative with this. You also will need to add actuators for every DoF added, and modify the files that accompany whatever simulation you are trying to do, e.g. tasks, motion file, etc.

User avatar
Pouya Amiri
Posts: 11
Joined: Fri Apr 26, 2013 10:25 pm

Re: Lower limb model with knee abduction angle

Post by Pouya Amiri » Mon Jul 22, 2013 3:29 pm

Thanks for the help. Right now I am working on Inverse Dynamics (as I said, I am a beginner :)). It will be finished soon and I will jump into the model editing and may need your help again.

Pouya

User avatar
Andrea Morelli
Posts: 89
Joined: Thu Jan 24, 2008 1:10 pm

Re: Lower limb model with knee abduction angle

Post by Andrea Morelli » Tue Apr 17, 2018 6:33 am

HI all.
I did modify the ToyDropLanding model to add valgus/varus knee angle (tibia adduction/abduction) following the indication in the post and looking at the hip_adduction angle.
Seems thug everything works fine.
In this manner I added a DOF to the knee... but why to add an actuator ? There's no muscle that produce adduction/abdution of the tibia on the femur.
I want to study a drop jump, a countermovement jump following the drop jump and the squat jump.
I reach to do scaling, IK, ID and trying to do also CMC. I have had to change CMC setup file (activator, task and controlconstrain).
Did control constrain still necessary or is deprecated ?
For a jumo is necessary to do the RRA ? I try to to do it but I can't do that.

After that in the example, during the CMC I notice some problem:
1) mtp joint during landing "became crazy" and reverse.... (if I block the joint I can't finalise the CMC)
2) muscle activation seems a bit undervalued ("red" muscle are less than blue one)
3) the "platform" fall down
4) can't do the RRA

During CMC I have had a warning for tfl_r and tfl_l with "small force range".

For point 2 should be good to increase muscle max isometric force ?
For point 4 is useful in a jump or only in walking/running activities ?

Thank you for the help
Andrea

Here a report from CMC

----------------------------------
integration step size = 0.01, target time = 3.75

=============================

CMC:computeControls

q's = ~[0 0 0 0 -0.95 0 -0.178183 -0.0359224 0.0942942 0.453204 0.641158 -0.0145282 1.15208 -0.252328 0.0459637 -1.76586 0.15433 0.566863 -0.0515844 1.80027 1.18353 -0.152313 0.275696 -1.61577 -0.300648 0.662575 -0.147603 0.438439 0.0462324 -0.000331679 0.0141656]

u's = ~[0 0 0 0 0 0 -0.965248 -0.646609 0.00652622 -0.427899 -0.714633 0.0752637 2.3987 0.32795 1.66512 -1.32549 1.94306 1.56665 0.606166 -7.9894 3.03064 0.0217571 2.48348 -1.95241 -1.64542 0.262956 0.436743 -1.24243 0.0526726 -0.0196962 -0.177217]

z's = ~[0.0436457 0.0435117 0.0503073 0.0877815 0.0592939 0.0746285 0.0307573 0.0604354 0.0318163 0.0512454 0.0365338 0.034719 0.0234597 0.0591419 0.0217171 0.212049 0.027316 0.112459 0.0292691 0.124195 0.0328653 0.348907 0.0601222 0.0997888 0.034582 0.132469 0.0279854 0.0962271 0.0285791 0.128697 0.0271181 0.160737 0.180457 0.0488525 0.0372204 0.0615568 0.0316019 0.299593 0.0450952 0.105607 0.0566826 0.124139 0.0317886 0.167515 0.113029 0.0609629 0.0686268 0.0580245 0.046476 0.0682829 0.0724328 0.0247142 0.0460723 0.0240828 0.0418608 0.108383 0.0212878 0.109895 0.0209045 0.11002 0.0216504 0.10667 0.0749223 0.04613 0.0443135 0.0588955 0.0215578 0.0627489 0.0231616 0.0374717 0.025704 0.0403449 0.0228633 0.0522485 0.0489453 0.055732 0.0283566 0.0480269 0.0280101 0.0502458 0.0500077 0.0641214 0.05393 0.0615194 0.0440761 0.0655472 0.0813964 0.0319564 0.0497056 0.0816975 0.0354378 0.073891 0.0488487 0.0494627 0.0620844 0.0424075 0.084563 0.0294942 0.0334478 0.0624306 0.028516 0.215678 0.0331809 0.115956 0.0319109 0.127759 0.0348339 0.352101 0.0277707 0.0918227 0.0288453 0.127562 0.0427033 0.0947716 0.0386101 0.125831 0.0300663 0.158619 0.323486 0.0484004 0.0246727 0.057884 0.0242117 0.299573 0.034586 0.105087 0.0374409 0.127399 0.035122 0.170318 0.0932794 0.0569057 0.0662196 0.0537324 0.0976056 0.077066 0.0202363 0.0318279 0.0612816 0.0259744 0.057361 0.104534 0.0210709 0.106029 0.0212544 0.113621 0.0233984 0.104047 0.177485 0.0469777 0.123983 0.0667331 0.0702854 0.0651108 0.0209291 0.0388879 0.0249051 0.0391341 0.0243131 0.0493531 0.046104 0.0533017 0.0282231 0.0458514 0.0621039 0.0471955 0.042837 0.062715 0.0471602 0.065786 0.0468333 0.0724079 0.0275445 0.117023 0.0350244 0.117246 0.022857 0.101128 0.0237482 0.100042 0.0200004 0.134597 0.0217498 0.135197 0.653941 2.19415 2.41756]

qDesired: 0 0 0 0 -0.95 0 -0.138879 -0.0296212 0.119206 0.449292 0.642925 -0.0153466 1.11551 -0.25716 0.190014 -1.75419 0.279682 0.755437 0 0 1.18494 -0.155537 0.246634 -1.72206 -0.274527 0.745278 0 0 0 0 0

uDesired: 0 0 0 0 -1.67427e-024 0 -1.02315 -0.671592 -0.147381 -0.44195 -0.714103 0.0900739 2.6353 0.541251 0.961208 -1.44607 0.997938 0.632476 0 0 3.07932 -0.0673072 2.67465 -1.66039 -1.45624 0.077547 0 0 0 0 0

QCorrections: 0 0 0 0 -2.22045e-016 0 -0.0393032 -0.0063012 -0.0249116 0.00391197 -0.00176743 0.00081846 0.0365712 0.00483164 -0.14405 -0.0116712 -0.125352 -0.188574 -0.0515844 1.80027 -0.00140969 0.00322413 0.0290612 0.106288 -0.0261207 -0.0827032 -0.147603 0.438439 0.0462324 -0.000331679 0.0141656

UCorrections: 0 0 0 0 1.67427e-024 0 0.0579048 0.0249829 0.153907 0.0140502 -0.000530266 -0.0148103 -0.236597 -0.213301 0.703908 0.120585 0.945118 0.934177 0.606166 -7.9894 -0.0486764 0.0890644 -0.191172 -0.292014 -0.189183 0.185409 0.436743 -1.24243 0.0526726 -0.0196962 -0.177217

Errors at time 3.74:
pelvis_tx: pErr=-0.00391197 vErr=-0.0140502
pelvis_ty: pErr=0.00176743 vErr=0.000530266
pelvis_tz: pErr=-0.00081846 vErr=0.0148103
pelvis_tilt: pErr=0.0393032 vErr=-0.0579048
pelvis_list: pErr=0.0063012 vErr=-0.0249829
pelvis_rotation: pErr=0.0249116 vErr=-0.153907
hip_flexion_r: pErr=-0.0365712 vErr=0.236597
hip_adduction_r: pErr=-0.00483164 vErr=0.213301
hip_rotation_r: pErr=0.14405 vErr=-0.703908
knee_angle_r: pErr=0.0116712 vErr=-0.120585
knee_adduction_r: pErr=0.125352 vErr=-0.945118
ankle_angle_r: pErr=0.188574 vErr=-0.934177
subtalar_angle_r: pErr=0.0515844 vErr=-0.606166
mtp_angle_r: pErr=-1.80027 vErr=7.9894
hip_flexion_l: pErr=0.00140969 vErr=0.0486764
hip_adduction_l: pErr=-0.00322413 vErr=-0.0890644
hip_rotation_l: pErr=-0.0290612 vErr=0.191172
knee_angle_l: pErr=-0.106288 vErr=0.292014
knee_adduction_l: pErr=0.0261207 vErr=0.189183
ankle_angle_l: pErr=0.0827032 vErr=-0.185409
subtalar_angle_l: pErr=0.147603 vErr=-0.436743
mtp_angle_l: pErr=-0.438439 vErr=1.24243
lumbar_extension: pErr=-0.0462324 vErr=-0.0526726
lumbar_bending: pErr=0.000331679 vErr=0.0196962
lumbar_rotation: pErr=-0.0141656 vErr=0.177217

xmin:
0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 -10000 -10000 -10000 -10000 -10000 -1 -1000 -1000 -1000 -1000 -10000 -1000 -1000 -1 -1000 -1000 -1000 -1000 -1000 -1000 -1000 -1 -1000 -1000 -1000

xmax:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10000 10000 10000 10000 10000 1 1000 1000 1000 1000 10000 1000 1000 1 1000 1000 1000 1000 1000 1000 1000 1 1000 1000 1000



tiReal = 3.74 tfReal = 3.75
Min forces:
11.7288 37.8029 76.8609 3.609 4.64901 8.90882 41.0803 18.5398 45.5181 13.4393 2.22733 21.2448 16.3466 25.2433 19.5712 56.6272 6.11782 4.63534 6.37173 31.3422 63.1418 50.0967 25.6391 15.5375 67.0512 19.4063 31.1509 22.6947 139.209 174.164 250.995 82.1491 44.9015 459.338 145.953 24.2969 28.3988 18.4273 15.7998 42.1705 6.06192 14.1553 3.76097 0.297064 6.53477 30.5952 0.734282 0.568095 0.741849 59.9633 24.2872 59.1322 13.9492 2.09819 15.1112 17.5333 33.0413 23.8381 55.0558 2.88092 5.02026 5.4592 14.6881 42.1598 58.4489 15.0082 11.3335 194.991 35.1473 13.6021 29.3324 110.775 229.981 217.148 172.285 125.592 745.609 193.694 17.8863 18.1807 25.0292 12.3112 77.6038 6.53388 20.8031 6.19024 67.3864 84.2144 21.4576 21.1775 40.1105 42.5541 -3e+007 -3e+007 -3e+007 -3e+007 -3e+007 -3000 -3e+006 -100000 -100000 -3e+006 -1e+006 -3e+006 -100000 -100 -3e+006 -100000 -100000 -3e+006 -100000 -100000 -100000 -100 -3e+006 -3e+006 -3e+006
Max forces:
170.724 303.673 424.472 111.825 119.169 103.859 200.346 190.543 241.865 297.403 59.5099 221.088 262.071 263.312 198.111 239.649 15.6084 96.7902 94.7688 266.394 450.335 338.62 210.89 159.798 355.56 106.935 108.569 165.905 622.453 657.463 863.563 177.002 115.712 1032.77 252.471 40.0326 52.2818 130.387 77.1242 103.49 56.6479 61.2379 21.7233 51.3627 163.854 243.503 47.3989 42.8993 30.0452 248.95 204.784 280.622 298.001 56.9343 235.961 328.297 347.062 241.393 255.877 7.76681 109.341 104.837 210.054 419.285 386.265 174.054 137.083 330.959 133.159 47.4793 171.928 628.333 731.766 872.512 270.835 216.087 1264.5 317.759 31.1845 36.8417 146.641 68.1829 146.741 59.998 76.1815 27.5813 1425.96 1429.44 360.864 360.622 362.82 364.452 3e+007 3e+007 3e+007 3e+007 3e+007 3000 3e+006 100000 100000 3e+006 1e+006 3e+006 100000 100 3e+006 100000 100000 3e+006 100000 100000 100000 100 3e+006 3e+006 3e+006
performance = 0.952718

Desired actuator forces:
12.8508 37.9642 76.9739 3.7251 4.76111 9.00367 41.5278 18.6518 45.691 13.6107 2.27173 21.2838 16.3956 25.3012 19.6185 56.6812 6.12974 4.67846 6.39987 31.6242 63.3281 50.1724 25.6971 15.6287 67.0859 19.4331 31.409 23.1308 139.313 174.252 251.115 82.2786 45.188 459.537 146.034 24.3268 28.4301 18.5357 15.998 42.671 6.08998 14.2135 3.78528 1.36995 7.36072 30.7375 0.827681 0.682597 0.953996 60.1677 24.3536 59.3177 14.0925 2.09951 15.1559 17.5848 33.0837 23.8832 55.1119 2.88825 5.0604 5.50519 15.3594 46.8249 58.521 15.0915 11.4195 194.996 35.1677 13.7054 29.6103 110.928 230.047 217.278 172.997 125.644 745.867 193.736 17.9097 18.2109 25.0764 12.5065 77.83 6.56245 20.8491 6.20984 68.1191 84.2172 21.7459 21.5065 40.2907 42.6825 -34.148 -468.144 19.6215 -30.7885 2.5435 -191.897 -60.7108 -14.7239 10.3662 83.2545 -6.10337 -31.1152 -6.26911 -0.000475353 -93.8072 -15.1416 2.11395 69.9276 -11.6647 -23.9982 -0.781789 0.0215708 -3.98359 6.97984 3.79084


XXX t=3.75 Controls: 0.0469079 0.022 0.02 0.028 0.026 0.026 0.0227535 0.02 0.022 0.024 0.026 0.022 0.02 0.02 0.02 0.02 0.024 0.022 0.022 0.024 0.022 0.02 0.022 0.024 0.02 0.02 0.0232677 0.0354659 0.02 0.02 0.02 0.026 0.0239658 0.02 0.022 0.026 0.022 0.026 0.0271671 0.0279994 0.024 0.026 0.028 0.114294 0.0529425 0.024 0.0464208 0.0600921 0.0866113 0.02 0.02 0.022 0.022 0.02 0.022 0.02 0.02 0.02 0.02 0.024 0.022 0.022 0.034508 0.0409524 0.02 0.024 0.024 0.1554 0.02 0.0348151 0.03 0.02 0.02 0.02 0.0495015 0.02 0.022 0.02 0.024 0.024 0.022 0.0306689 0.0232062 0.024 0.024 0.026 0.024 0.02 0.022 0.024 0.02 0.022 -0.0113827 -0.156048 0.0065405 -0.0102628 0.000847832 -0.0639657 -0.0202369 -0.147239 0.103662 0.0277515 -0.0610337 -0.0103717 -0.0626911 -4.75353e-006 -0.0312691 -0.151416 0.0211395 0.0233092 -0.116647 -0.239982 -0.00781789 0.000215708 -0.00132786 0.00232661 0.00126361
----------------------------------------------------------------
Finished tracking the specified kinematics
states= ~[0 0 0 0 -0.95 0 -0.186226 -0.0395043 0.0942734 0.450627 0.636708 -0.0140812 1.16919 -0.250567 0.056957 -1.77395 0.166473 0.578806 -0.0485839 1.75535 1.20404 -0.151842 0.290836 -1.6273 -0.31125 0.66516 -0.146292 0.429442 0.0491827 -0.00102011 0.0131318 0 0 0 0 0 0 -1.57859 -0.566585 -0.014487 -0.430722 -0.757063 0.0744246 3.13991 0.283278 1.90642 -1.3547 2.04704 2.23342 0.341412 -7.18465 3.66564 0.105342 2.54528 -1.90269 -1.84393 0.484902 0.0598711 -1.56379 0.766507 -0.172519 -0.162698 0.0457748 0.0430349 0.0479732 0.0876627 0.0559851 0.0748035 0.0305404 0.0599837 0.0313578 0.0508752 0.0356936 0.0345377 0.0234053 0.059748 0.0215853 0.212877 0.0269019 0.113081 0.0288565 0.12406 0.0323227 0.347418 0.0569053 0.0996867 0.0334253 0.132621 0.0273624 0.0968134 0.0279088 0.129418 0.0265641 0.161516 0.163647 0.0480586 0.0360048 0.0614658 0.0308457 0.300196 0.0433771 0.105814 0.0537793 0.124628 0.03086 0.168369 0.104413 0.0603894 0.0647857 0.0575215 0.0443134 0.0690801 0.0678827 0.0250466 0.0442108 0.02424 0.0413434 0.108085 0.021189 0.110094 0.0208352 0.110221 0.0215238 0.106906 0.0706505 0.0461059 0.0426595 0.0596378 0.0214383 0.0630292 0.0230721 0.0374675 0.0259028 0.0403463 0.0227968 0.0522277 0.0470588 0.0553934 0.0282636 0.0481484 0.0280093 0.0503866 0.0478643 0.0639826 0.0516061 0.0613593 0.0427695 0.0654207 0.101421 0.0310946 0.0517995 0.0812088 0.0345282 0.0737846 0.0486487 0.0486813 0.061915 0.0416693 0.0858235 0.0289766 0.0323841 0.0631211 0.0278508 0.216598 0.0322969 0.116701 0.0311298 0.127522 0.0336565 0.35032 0.0273207 0.091826 0.0281537 0.127849 0.0408658 0.0956071 0.037119 0.126826 0.0292768 0.15962 0.28355 0.0461661 0.0244659 0.0578638 0.0240408 0.300335 0.0345798 0.105083 0.0397537 0.127803 0.0339208 0.171374 0.086984 0.0561296 0.0626056 0.0530546 0.131619 0.0780097 0.0202182 0.0320976 0.0590392 0.0259138 0.055065 0.104211 0.0209888 0.106383 0.0211582 0.113944 0.0231364 0.10442 0.163769 0.0469212 0.113924 0.0671784 0.0661147 0.0651831 0.020858 0.0388902 0.024835 0.0391021 0.0242889 0.0493236 0.0441365 0.0532505 0.0298575 0.0458539 0.058806 0.0473361 0.0413112 0.0627009 0.0452646 0.0658386 0.0451291 0.0724314 0.0272682 0.116976 0.0338313 0.11714 0.022791 0.101126 0.0239178 0.100046 0.0200004 0.134697 0.0219189 0.135193 0.654222 2.19644 2.41769]
=================================================================
Start time = Mon Apr 16 18:55:21 2018
Finish time = Mon Apr 16 19:07:51 2018
Elapsed time = 750 seconds.
================================================================


Printing results of investigation subject01_DropJump1_Landing to C:/MyOpenSimModel/DropJump/Landing/4 - CMC/../ResultsCMCLanding.

User avatar
Josh Baxter
Posts: 29
Joined: Fri Mar 11, 2016 12:29 pm

Re: Lower limb model with knee abduction angle

Post by Josh Baxter » Tue Apr 17, 2018 9:20 am

It looks like you are trying to run CMC with a knee that has unconstrained abduction but no contact or ligaments to provide stability in the frontal plane. Knees are stable because they have two condyles that can balance externally applied loads in the frontal plane. Any joint in opensim that does not include contact - or at least ligaments - will not be able to stabilize the knees in physiologically reasonable ways.

User avatar
Andrea Morelli
Posts: 89
Joined: Thu Jan 24, 2008 1:10 pm

Re: Lower limb model with knee abduction angle

Post by Andrea Morelli » Wed Apr 18, 2018 1:48 am

Hi Josh, thank you for your reply.
Yes, I was thinking about the stability of the joint. How to insert ligament or contact point ?
There's any example somewhere ?

Thank you
Andrea

User avatar
Josh Baxter
Posts: 29
Joined: Fri Mar 11, 2016 12:29 pm

Re: Lower limb model with knee abduction angle

Post by Josh Baxter » Wed Apr 18, 2018 5:37 am

some good references below. it might help the readers to understand more about your question and what you are testing with the model. lots of assumptions are required when modeling knee contact.


Lerner ZF, DeMers MS, Delp SL, Browning RC. 2015. How tibiofemoral alignment and contact locations affect predictions of medial and lateral tibiofemoral contact forces. Journal of Biomechanics

Schmitz A, Piovesan D. 2016. Development of an Open-Source, Discrete Element Knee Model. IEEE Transactions on Biomedical Engineering

User avatar
Andrea Morelli
Posts: 89
Joined: Thu Jan 24, 2008 1:10 pm

Re: Lower limb model with knee abduction angle

Post by Andrea Morelli » Wed May 02, 2018 8:18 am

Hi Josh.
Thank you for your answer.
I will check the paper you posted.
I see the paper point to a knee model with ligaments and different DOF.
I'm not a biomedical engineer and is not easy to work on it myself.
I will check If I can extract some info and if is possible to perform CMC and/or FORWARD simulation.

Thank you
Andrea

POST REPLY