I am using the model on https://simtk.org/projects/runningsim and I am checking what were the differences between IPOPT and CFSQP optimizers when performing RRA because I am getting a really big value for MZ after performing the RRA on a sprint start. My results in the first passage using IPOPT were the following:
Code: Select all
* Summary of Mass Adjustments to Reduce Residuals *
************************************************************
* Body adjusted: torso
* Mass Center (COM) adjustment: dx =-0.1, dz =0.1
* New COM location: ~[0.07,0.32,-0.1]
************************************************************
* Recommended mass adjustments:
* Total mass change: 4.53431
* ground: orig mass = 0, new mass = 0
* pelvis: orig mass = 9.82401, new mass = 10.5345
* femur_r: orig mass = 7.75894, new mass = 8.32005
* tibia_r: orig mass = 3.09268, new mass = 3.31634
* talus_r: orig mass = 0.0834169, new mass = 0.0894494
* calcn_r: orig mass = 1.04271, new mass = 1.11812
* toes_r: orig mass = 0.180681, new mass = 0.193747
* femur_l: orig mass = 7.75894, new mass = 8.32005
* tibia_l: orig mass = 3.09268, new mass = 3.31634
* talus_l: orig mass = 0.0834169, new mass = 0.0894494
* calcn_l: orig mass = 1.04271, new mass = 1.11812
* toes_l: orig mass = 0.180681, new mass = 0.193747
* torso: orig mass = 22.3779, new mass = 23.9962
* humerus_r: orig mass = 1.69545, new mass = 1.81806
* ulna_r: orig mass = 0.506758, new mass = 0.543405
* radius_r: orig mass = 0.506758, new mass = 0.543405
* hand_r: orig mass = 0.381632, new mass = 0.409231
* humerus_l: orig mass = 1.69545, new mass = 1.81806
* ulna_l: orig mass = 0.506758, new mass = 0.543405
* radius_l: orig mass = 0.506758, new mass = 0.543405
* hand_l: orig mass = 0.381632, new mass = 0.409231
* Final Average Residuals *
************************************************************
* After torso COM and Kinematics adjustments:
* FX=0.10638 FY=-6.95764 FZ=5.33278
* MX=-16.1113 MY=-19.1823 MZ=-126.022
I was really impressed by the huge value of MZ, especially compared to MX and MY. Therefore, before getting the right adjusted model, I decided to see what the difference between IPOPT and CFSQP optimizers was since in the README_RunningSimulationInfo.pdf it says that they had to utilize the CFSQP optimizer instead of IPOPT to get a solution with CMC.
In the project https://simtk.org/projects/nmbl_running, they use the same model and the CFSQP optimizer. Their result of Run_20002_cycle1 after running RRA is:
Code: Select all
CMCTool.adjustCOMToReduceResiduals:
torso weight = 254.943
dx=-0.040762, dz=-0.0104535
dmass = 0.208157
Recommended mass adjustments:
ground: orig mass = 0, new mass = 0
pelvis: orig mass = 11.4128, new mass = 11.4454
femur_r: orig mass = 9.01374, new mass = 9.0395
tibia_r: orig mass = 3.59284, new mass = 3.60311
talus_r: orig mass = 0.0969073, new mass = 0.0971843
calcn_r: orig mass = 1.21134, new mass = 1.2148
toes_r: orig mass = 0.209901, new mass = 0.210501
femur_l: orig mass = 9.01374, new mass = 9.0395
tibia_l: orig mass = 3.59284, new mass = 3.60311
talus_l: orig mass = 0.0969073, new mass = 0.0971843
calcn_l: orig mass = 1.21134, new mass = 1.2148
toes_l: orig mass = 0.209901, new mass = 0.210501
torso: orig mass = 25.9969, new mass = 26.0712
humerus_r: orig mass = 1.96964, new mass = 1.97527
ulna_r: orig mass = 0.588712, new mass = 0.590394
radius_r: orig mass = 0.588712, new mass = 0.590394
hand_r: orig mass = 0.443351, new mass = 0.444618
humerus_l: orig mass = 1.96964, new mass = 1.97527
ulna_l: orig mass = 0.588712, new mass = 0.590394
radius_l: orig mass = 0.588712, new mass = 0.590394
hand_l: orig mass = 0.443351, new mass = 0.444618
Average residuals:
FX=0.0403019 FY=0.510056 FZ=-0.327813
MX=-3.96862 MY=-1.15364 MZ=4.24877
Code: Select all
* Summary of Mass Adjustments to Reduce Residuals *
************************************************************
* Body adjusted: torso
* Mass Center (COM) adjustment: dx =0.040623, dz =0.0103843
* New COM location: ~[-0.0711287,0.325394,-0.0103843]
************************************************************
* Recommended mass adjustments:
* Total mass change: -0.229713
* ground: orig mass = 0, new mass = 0
* pelvis: orig mass = 11.4128, new mass = 11.3768
* femur_r: orig mass = 9.01374, new mass = 8.98531
* tibia_r: orig mass = 3.59284, new mass = 3.58151
* talus_r: orig mass = 0.0969073, new mass = 0.0966017
* calcn_r: orig mass = 1.21134, new mass = 1.20752
* toes_r: orig mass = 0.209901, new mass = 0.209239
* femur_l: orig mass = 9.01374, new mass = 8.98531
* tibia_l: orig mass = 3.59284, new mass = 3.58151
* talus_l: orig mass = 0.0969073, new mass = 0.0966017
* calcn_l: orig mass = 1.21134, new mass = 1.20752
* toes_l: orig mass = 0.209901, new mass = 0.209239
* torso: orig mass = 25.9969, new mass = 25.915
* humerus_r: orig mass = 1.96964, new mass = 1.96343
* ulna_r: orig mass = 0.588712, new mass = 0.586855
* radius_r: orig mass = 0.588712, new mass = 0.586855
* hand_r: orig mass = 0.443351, new mass = 0.441953
* humerus_l: orig mass = 1.96964, new mass = 1.96343
* ulna_l: orig mass = 0.588712, new mass = 0.586855
* radius_l: orig mass = 0.588712, new mass = 0.586855
* hand_l: orig mass = 0.443351, new mass = 0.441953
* Final Average Residuals *
************************************************************
* After torso COM and Kinematics adjustments:
* FX=0.183416 FY=-0.469217 FZ=0.501359
* MX=-4.75134 MY=0.664486 MZ=37.4188
Therefore, my question is if anybody knows why there is an order of magnitude in average MZ when using IPOPT instead of CFSQP, or why they said they had to change from IPOPT to CFSQP.
Thank you in advance,
Laura