IK in 4.0
Posted: Fri May 03, 2019 7:55 am
We have been attempting to port some of our analysis from 3.3 to 4.0 and have noted significant differences in our IK results. This was discovered on modified versions of the Rajagopal Full Body model available on the OpenSim website. However, I believe I have recreated the issue starting with the files as released in the "Full Body Model w/Sample Sim" downloaded from "https://simtk.org/projects/full_body#". I have attached 3 IK setup files for reference. The first is the unaltered "ik_setup_run.xml" delivered with the package. The second, "ik_setup_run_RTH1_Off.xml", is the same file with the RTH1 marker apply field set to false as below:
<IKMarkerTask name="RTH1">
<!--Whether or not this task will be used during inverse kinematics solve.-->
<apply>false</apply>
<!--Weight given to a marker or coordinate for solving inverse kinematics problems.-->
<weight>50</weight>
</IKMarkerTask>
In the third file, "ik_setup_run_RTH1_1.0.xml", the apply field is set back to true, but the weight field is set to 1.0 as below:
<IKMarkerTask name="RTH1">
<!--Whether or not this task will be used during inverse kinematics solve.-->
<apply>true</apply>
<!--Weight given to a marker or coordinate for solving inverse kinematics problems.-->
<weight>1</weight>
</IKMarkerTask>
When we run IK using these three files, we see that the trajectories vary between the original setup and the "<apply>false</apply>" scenarios. This is expected, however, when we compare the "<apply>false</apply>" trajectory with the "<apply>true</apply>,<weight>1</weight>" trajectory, they appear to be exactly the same. It is also true that in the "<apply>false</apply>" scenario, IK reports errors associated with the RTH1 marker.
Our suspicion is that IK is somehow interpreting "<apply>false</apply>" as "<apply>true</apply>,<weight>1</weight>"?
Anyway, let us know if we are doing some thing wrong.
Regards,
Ken Huffman
<IKMarkerTask name="RTH1">
<!--Whether or not this task will be used during inverse kinematics solve.-->
<apply>false</apply>
<!--Weight given to a marker or coordinate for solving inverse kinematics problems.-->
<weight>50</weight>
</IKMarkerTask>
In the third file, "ik_setup_run_RTH1_1.0.xml", the apply field is set back to true, but the weight field is set to 1.0 as below:
<IKMarkerTask name="RTH1">
<!--Whether or not this task will be used during inverse kinematics solve.-->
<apply>true</apply>
<!--Weight given to a marker or coordinate for solving inverse kinematics problems.-->
<weight>1</weight>
</IKMarkerTask>
When we run IK using these three files, we see that the trajectories vary between the original setup and the "<apply>false</apply>" scenarios. This is expected, however, when we compare the "<apply>false</apply>" trajectory with the "<apply>true</apply>,<weight>1</weight>" trajectory, they appear to be exactly the same. It is also true that in the "<apply>false</apply>" scenario, IK reports errors associated with the RTH1 marker.
Our suspicion is that IK is somehow interpreting "<apply>false</apply>" as "<apply>true</apply>,<weight>1</weight>"?
Anyway, let us know if we are doing some thing wrong.
Regards,
Ken Huffman