Page 1 of 1

Question regarding inverse kinematics residual error

Posted: Fri Apr 14, 2023 6:48 am
by vigneshrk
Hi,

Thanks a lot for the continuing good work. I have a couple of questions regarding the inverse kinematic operations:
1) In function "findcurrentmarkerlocation", the marker position is transformed to the ground reference frame using the rotation matrix from its associated body to ground reference.
1a) Is the ground reference here the global (openSim referece frame, i.e the reference frame the trajectories are provided in) ?
1b) At what point prior to IK being performed at every frame, are the marker trajectories transformed to the bone reference frame?

2) Are the bone reference frames aligned with the marker reference frames during the static trial (like in 6DoFs) model ? Or is the bone reference frame always fixed at the proximal joint?

3) Additionally, during IK are we initially adjusting the observations(fixed-ground frame locations) and then adjusting the markers to these observations? So moving the bones and then adjusting the markers? Else what are the observations which are used to calculate the error?

Thanks,
Vignesh

Re: Question regarding inverse kinematics residual error

Posted: Tue Apr 18, 2023 7:25 am
by vigneshrk
Hi,

Any luck on the questions above?
Additionally, it is possible to simulate bodies as 6DoF models? That is remove all constraints? For example between pelvis and femur

Thanks,
Vignesh

Re: Question regarding inverse kinematics residual error

Posted: Fri Apr 21, 2023 1:58 pm
by kernalnet
Hi,
it is possible to simulate bodies as 6DoF models?
Yes, you need to define 3 rotational and 3 translational coordinates for each joint. A simple way is to modify the model file in a text editor (e.g., Notepad++). Navigate to JointSet, choose a joint (e.g., hip_r), copy a Coordinate and paste it after others, modify its name and range, e.g.:

Code: Select all

<Coordinate name="hip_tx_r">
	<default_value>0</default_value>
	<default_speed_value>0</default_speed_value>
	<range>-0.1 0.1</range>
	<clamped>false</clamped>
	<locked>false</locked>
	<prescribed_function />
</Coordinate>
In the SpatialTransform section, find the relevant TransformAxis and modify it:

Code: Select all

<TransformAxis name="translation1">
	<coordinates>hip_tx_r</coordinates>
	<axis>1 0 0</axis>
	<LinearFunction name="function">
		<coefficients> 1 0</coefficients>
	</LinearFunction>
</TransformAxis
ground_pelvis is a 6DoF joint, you can use it as a reference. For left joints, set the coefficients to -1. Finally, check all coordinates in GUI.

Re: Question regarding inverse kinematics residual error

Posted: Wed Jun 14, 2023 3:04 am
by vigneshrk
Hi,

Thanks. I tried it but it doesnt seem to work. additionally I get an error " Labelled as translational but was found to be coupled opensim"

Not sure how to proceed

Re: Question regarding inverse kinematics residual error

Posted: Sat Jun 17, 2023 2:41 pm
by kernalnet
Here is my implementation:
RAJ_IK.osim
(166.08 KiB) Downloaded 22 times

Re: Question regarding inverse kinematics residual error

Posted: Wed Jun 21, 2023 2:31 pm
by vigneshrk
Thank you.