-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kistler COP correction #253
Comments
I have not implemented anything specific yet for Kistler force platform. What are the nature of these corrections? |
Thanks for your response. As far as I know: [definition] In Kistler type, the matrix is specifically defined by the company for each force plate model and even serial number. https://nbviewer.org/github/BMClab/BMC/blob/master/notebooks/KistlerForcePlateCalculation.ipynb
|
I see, that should not be too hard to implement. |
Hope this helps: |
Dear @mrrezaie I know it's been a REAAAALLY long while since that issue was opened, my appologies! Still I had a look at what you asked. I implemented it but honestly I have concerns (so I haven't merged yet, see issue #297 ). FirstIn the documentation you provided (and copied): Dax = (Px[0]*ay**4 + Px[1]*ay**2 + Px[2])*ax**3 + (Px[3]*ay**4 + Px[4]*ay**2 + Px[5])*ax
ax = ax - Dax
Day = (Py[0]*ax**4 + Py[1]*ax**2 + Py[2])*ay**3 + (Py[3]*ax**4 + Py[4]*ax**2 + Py[5])*ay
ay = ay - Day surprinsingly SecondIn the 2008 c3d documentation you provided, the parameter
The reason I have three values for the free moment is so I can validate if I have not made any mistake. It is expected the x and y being 0 (or very near), while they are currently very not. However, before applying th FPCOPPOLY values, I was getting:
which was much closer to the expected values for x and y. My question is, since the parameter was removed from the C3D standard and that introducing this value seems to introduce error, could that be that is it no longer needed to apply these values as they would be computed before creating the C3D by the software the exported the file? Thanks, and sorry again for my much waited answer! |
Hi, thank you so much for sparing your time on this. I'm hardly an expert, but as you said, the implementation and perhaps the equations are not correct. I will try to find other references for you.
I'm not sure this parameter has been obsolete, since the C3D files exported by my 2023 QTM still include it. The point is that, if I disable COP correction, QTM doesn't export it. The differences sometime reach to ~10mm (or more). Do you think it is worth it? |
Hi! I suggest that if you have access to an actual force platform, that you use some kind of very dense but small (in size) weigt with a reflective marker on it (exactly over the center of mass) and you compare the position of the weight with the projected one from the marker. Like this we have some kind of benchmark to choose from... |
Hi there! If you are installing via conda, I can push the new version now (before validating) |
Sorry, I don't know how to build it. Since this post, I have switched to OpenSim C3DFileAdapter due to interference in the libraries. I can compare the corrected and uncorrected C3D files by installing the Conda package (win). But maybe you can use a specific version just for testing, something like |
I am pretty confident with the implementation. I accepted the PR and I will push it to conda as 1.5.5 today :) |
Hi @mrrezaie |
Hi @pariterre When I uncheck the FPCOPPOLY parameter in QTM (Qualisys) and re-save the c3d file, this error rises. Perhaps any sign/footprint of this parameter, which was added earlier, still exists somewhere: >>>import ezc3d
>>>print(ezc3d.__version__)
>>>ezc3d.c3d('test3_noFPCOPPOLY.c3d', extract_forceplat_data=True)
1.5.7
ValueError: Group::parameterIdx could not find FPCOPPOLY in the group FORCE_PLATFORM So, I could compare the outputs of QTM and ezc3d v1.5.7 by setting the FPCOPPOLY parameters to zero and now they exactly match. I'm hardly an expert, but I think this is valid. However, when FPCOPPOLY is taken into account, the noises in non contact frames are amplified drastically. Thanks for your time and effort!!! |
Alrighty! Seems good then Just to make sure by "unchecking" you mean that it is an option in the Qualisys software to have or not the FPCOPPOLY in the baked in the C3D file, meaning that if it is unchecked, then it won't be in the file. So I should add one last fix where if tihs "FPCOPPOLY" is not found, then I should set the value to 0? |
Yes, this is a screenshot of this part in QTM:
Perhaps it's better to use an if condition or try-catch expression instead of setting zero to this parameter; simply ignore this parameter if it rises error. As I said earlier, I'm not an eligible person in this regard 😄 Thank you. |
Complete in #311 |
Hi,
Does ezc3d take into account the COP correction for Kistler force platforms? It can be found in FPCOPPOLY in FORCE_PLATFORM metadata.
Thank you
The text was updated successfully, but these errors were encountered: