I'm curious how many people run IK using joint coordinate data and how many use just marker data.
When I use joint coordinate data w/marker data, everything tracks great. When I use JUST marker data, my IK output is off by as much as 7 or 8 degrees at times, no matter how I adjust weights/marker locations/etc.
I have taken a control subject from Gillette, run it through scaling and IK. At first glance, the results seem plausible. When they are directly compared to Gillette kinematic results, it becomes apparent my OpenSim result doesn't match closely(looking at i.e. Knee Flex-Ext). Again this is using just marker data. Using coordinate data, it tracks perfectly of course.
Anyone have thoughts? What approach are most people taking?
IK w/coordinate data vs without
- Jeff Reinbolt
- Posts: 3
- Joined: Tue May 30, 2006 4:14 pm
RE: IK w/coordinate data vs without
Hi Kathleen,
You are not the first (or the last) to experience this problem. Inverse kinematics although simple mathematically is much more difficult in practice.
You may notice that the RMS marker errors are high (greater than a few cm) during inverse kinematics. This suggests that the markers are not placed well for the motion trial and/or the marker data is very noisy. Do you know if the marker data was filtered at all?
Does your Gillete motion capture (MoCap) software (Vicon?) give any sort of marker error quantity? It would be nice to verify that your MoCap software and OpenSim are using the identical markers to fit the model to the data. Also, the relative weights between markers can certainly affect the resulting joint motion (we demonstrated this problem in a tutorial at GCMAS recently).
Another issue I would suggest looking into is how your MoCap software is computing its joint angles. I suspect that the your MoCap software and OpenSim models are in fact different. Admittedly, I am more familiar with the Motion Analysis Orthotrak software than I am with the Vicon BodyBuilder software. For Orthotrak, each joint was a 6 degree-of-freedom joint that allows markers to be matched very well. In OpenSim, we have several joint constraints (e.g., hip 3 degrees of freedom) that will diminish our ability to match the markers.
Whether or not they are using joint translations in your MoCap software, they could be performing the rotation sequence of Euler angles differently than your OpenSim model. Usually, everyone performs the sagittal plane (about Z-axis) rotations (the biggest ones) first. After that, it is a crap shoot whether your MoCap software is doing a Z-X-Y or Z-Y-X rotation sequence.
I would also suggest checking that the kinematic models have the exact same structure. In other words, are the joint centers and axes of rotations for those joints the same in your MoCap software and OpenSim. I suspect that the OpenSim model based on the Delp (1990) lower extremity model is different from the your MoCap software model. Maybe not?
So in summary, I would suggest taking a look at comparing your MoCap software and OpenSim on the following inputs and intermediate items in addition to joint angles that are outputs of inverse kinematics:
1. Marker data going in (filtered or not)
2. Markers being used and relative weights
3. Joint conventions (degree of freedom)
4. Rotation sequences
5. Joint centers and axes of rotation
These are just a few thoughts off the top of my head. I believe there may be problems in more than one area. If you want to compare your MoCap software and OpenSim results directly, you will need to make sure "everything" is exactly the same from inputs to calculations.
Hope this helps,
Jeff
You are not the first (or the last) to experience this problem. Inverse kinematics although simple mathematically is much more difficult in practice.
You may notice that the RMS marker errors are high (greater than a few cm) during inverse kinematics. This suggests that the markers are not placed well for the motion trial and/or the marker data is very noisy. Do you know if the marker data was filtered at all?
Does your Gillete motion capture (MoCap) software (Vicon?) give any sort of marker error quantity? It would be nice to verify that your MoCap software and OpenSim are using the identical markers to fit the model to the data. Also, the relative weights between markers can certainly affect the resulting joint motion (we demonstrated this problem in a tutorial at GCMAS recently).
Another issue I would suggest looking into is how your MoCap software is computing its joint angles. I suspect that the your MoCap software and OpenSim models are in fact different. Admittedly, I am more familiar with the Motion Analysis Orthotrak software than I am with the Vicon BodyBuilder software. For Orthotrak, each joint was a 6 degree-of-freedom joint that allows markers to be matched very well. In OpenSim, we have several joint constraints (e.g., hip 3 degrees of freedom) that will diminish our ability to match the markers.
Whether or not they are using joint translations in your MoCap software, they could be performing the rotation sequence of Euler angles differently than your OpenSim model. Usually, everyone performs the sagittal plane (about Z-axis) rotations (the biggest ones) first. After that, it is a crap shoot whether your MoCap software is doing a Z-X-Y or Z-Y-X rotation sequence.
I would also suggest checking that the kinematic models have the exact same structure. In other words, are the joint centers and axes of rotations for those joints the same in your MoCap software and OpenSim. I suspect that the OpenSim model based on the Delp (1990) lower extremity model is different from the your MoCap software model. Maybe not?
So in summary, I would suggest taking a look at comparing your MoCap software and OpenSim on the following inputs and intermediate items in addition to joint angles that are outputs of inverse kinematics:
1. Marker data going in (filtered or not)
2. Markers being used and relative weights
3. Joint conventions (degree of freedom)
4. Rotation sequences
5. Joint centers and axes of rotation
These are just a few thoughts off the top of my head. I believe there may be problems in more than one area. If you want to compare your MoCap software and OpenSim results directly, you will need to make sure "everything" is exactly the same from inputs to calculations.
Hope this helps,
Jeff
- Michael Schwartz
- Posts: 2
- Joined: Tue Sep 04, 2007 7:42 am
RE: IK w/coordinate data vs without
Hi Jeff,
Your comments are appreciated.
The "model consistency" issue is almost certainly the biggest of those you raised, and is one I've thought about, but never figured a good solution for.
On the one hand, since we are interested in muscle forces - it seems critical to use a model with geometry/DOFs consistent with the underlying muscle model (Delp, 90). On the other hand, as you point out, this model is not consistent with, among others, Vicon's Plug-in-gait model.
One solution would seem to be to not input joint angle data into the IK, let the markers move where they may, and simply accept that the kinematics (based on Delp '90) will look different from Plug-in-gait (for example). Nevertheless, both will be tracking the same segment positions and orientations - just the reported joint angles will be different.
On the other hand, it is disconcerting (or worse?) to see significantly different kinematics than those on which clinical decisions and outcomes are being based.
However, by forcing the IK to match a different model's joint angles, it would seem that we are really corrupting the whole idea of the IK approach. The IK engine may need to enforce large deformations onto the markers to get the joint angles to match.
One question you might be able to answer directly is: What do "you" do?
By "you" I mean, the Stanford NMBL, which collectively (Liu, Arnold, Hicks, Steele, Fox, etc...) have simulated dozens (many dozens) of Vicon (plug-in-gait) subjects. What approach has been taken internally by those most in-the-know?
Inquiring minds want to know.
Your comments are appreciated.
The "model consistency" issue is almost certainly the biggest of those you raised, and is one I've thought about, but never figured a good solution for.
On the one hand, since we are interested in muscle forces - it seems critical to use a model with geometry/DOFs consistent with the underlying muscle model (Delp, 90). On the other hand, as you point out, this model is not consistent with, among others, Vicon's Plug-in-gait model.
One solution would seem to be to not input joint angle data into the IK, let the markers move where they may, and simply accept that the kinematics (based on Delp '90) will look different from Plug-in-gait (for example). Nevertheless, both will be tracking the same segment positions and orientations - just the reported joint angles will be different.
On the other hand, it is disconcerting (or worse?) to see significantly different kinematics than those on which clinical decisions and outcomes are being based.
However, by forcing the IK to match a different model's joint angles, it would seem that we are really corrupting the whole idea of the IK approach. The IK engine may need to enforce large deformations onto the markers to get the joint angles to match.
One question you might be able to answer directly is: What do "you" do?
By "you" I mean, the Stanford NMBL, which collectively (Liu, Arnold, Hicks, Steele, Fox, etc...) have simulated dozens (many dozens) of Vicon (plug-in-gait) subjects. What approach has been taken internally by those most in-the-know?
Inquiring minds want to know.
- Glen Lichtwark
- Posts: 30
- Joined: Mon Nov 19, 2007 10:02 pm
RE: IK w/coordinate data vs without
Hi Kathleen and others interested in this post.
I was intrigued to find that you were getting such large differences between the Plug-in-gait model and the IK solution. So I went and had a look at some of our gait data and came up with very similar result to you when I compared the Plug-in-gait output to the IK solution (up to 6-8 degs out at knee and ankle when tracking markers). However, I then used the Fit Subject Motion tool in Nexus, which fits the calibrated model to the motion, and compare this output to the IK solution and found a much better match to the joint kinematics between the two solutions, particularly at the knee and ankle. I guess you would expect this outcome, seeing as though both approaches are fitting a rigid segment model to the data, albeit with different degrees of freedom at some joints.
Perhaps you could try the same with your data. If you find similar results, I would suggest that the Plug-in-gait model does not do a good job at modeling rigid segments and that skin and marker movement (particularly at the knee) is the major culprit.
Which data to should we use then? Hmmmm.... big question needing further debate.
I was intrigued to find that you were getting such large differences between the Plug-in-gait model and the IK solution. So I went and had a look at some of our gait data and came up with very similar result to you when I compared the Plug-in-gait output to the IK solution (up to 6-8 degs out at knee and ankle when tracking markers). However, I then used the Fit Subject Motion tool in Nexus, which fits the calibrated model to the motion, and compare this output to the IK solution and found a much better match to the joint kinematics between the two solutions, particularly at the knee and ankle. I guess you would expect this outcome, seeing as though both approaches are fitting a rigid segment model to the data, albeit with different degrees of freedom at some joints.
Perhaps you could try the same with your data. If you find similar results, I would suggest that the Plug-in-gait model does not do a good job at modeling rigid segments and that skin and marker movement (particularly at the knee) is the major culprit.
Which data to should we use then? Hmmmm.... big question needing further debate.