I’m using my own c3d data of a healthy person performing gait. The muscle activity that I get however are very high which makes me think there’s something wrong. Does the script manipulate the data somehow? Is there a way to smooth the data in anybody?
The data has 211 steps originally. When I used nStep 211 I get a max muscle activity that immediately jumps to 80%, jumps down to 0 and then back again to 80%. It keeps doing these weird spikes with high values. It even goes beyond 100% at some point. The upper bound function exists in the inverse dynamics file and I have tried using different time steps.
Do you know the reason of why this is happening and how I can fix it?
I greatly appreciate your help.
Still hoping to get a reply from someone soon.
I’ve attempted to change the Fc value in the ModelSetup Filter function but no luck. When setting it to 1 it does work a lot better however I know it’s not realistic because the model seems to ‘flow’ around instead of taking actual steps. I’ve also tried using the other mocap model and I get a muscle recruitment error there. But I am more interested in using the Anygait model so I would really appreciate it if someone can help guide me through the problem I’m having in that model and explain more about filtering the data (if that is indeed the issue that’s producing the high muscle activity).
It sounds like a filtering problem you have. A cut-off between 5 and 10 Hz seems to be best for gait.
You could also take a close look at your recorded data. I have once worked with data from a CondaMotion system that had weird decreet jumps in the marker position. These caused really high activations, which couldn’t really be removed by filtering. Also take a look at your force data. Mokka is good free program to open c3d files.
I would not recommend using AnyGait at all. The underlying problems would be the same, and you would get all kind of other issues. The default Mocap model has more flexibility anyway.
Thanks for the reply! It produces very high activities when using 5 Hz or higher. I looked at the motion of the markers in Mokka and they seem pretty normal (no jumps). I did notice higher forces in the analog data though. I compared it to the mocap example data (GaitNormal_1) and the Fx,Fy,Fz are all much higher. I’m not sure why this is the case though because as I said, the data I have is also of a normal gait pattern. Do you have any idea of why this is the case? and if there is a way to fix it?
When I examined the files in Mokka I saw that the example data was scaled to -50 and tried to apply the same scale for the data I have but nothing changed.
I’d greatly appreciate any info on this topic.
It seems like there may be something wrong with the data in your c3d files. Maybe something is wrong with how your data was recorded. Could be forceplate calibration or the setup in your mocap system.
Some of the old systems I worked with had external amplifiers for the force plates. If they were set incorrectly, the forces could be magnitude higher. Does the maximum force in the vertical direction correspond to roughly the weight of the subject?
That might be the case. The subject’s weight is 556 N (57 Kg) and the max Fz is around 563 N, which I guess is acceptable. (I also uploaded the data in the previous post if you’d like to take a look at it)
I went to look at the mocap example data however and there I found the body mass to be 62 Kg from the TrialSpecificData, but the max Fz force in the c3d was 108 N, which is a lot less than what I calculated it to be so now I’m confused. I checked the units in all the c3d files and they’re all in N.
I think the sample data have the ‘y’ direction as virtical… Maybe that is why you only see 100 N for that case.
Anyway. I just took a quick look at your data. It seems that your analog channels all have offsets that haven’t been removed. Maybe that is whats causing you the problem. Your Mocap system should be able to either remove the offsets before saving the C3D file, or also write the offset value to the c3d file. In the last case the data automatically be converted when read in from the c3d file.
Again, thanks for all your help! I opened the data I have using Mokka and I chose ‘remove offset from all frames’ (Is this what you meant?) The forces went down a tiny bit but apparently not enough to affect the simulation.
I’m actually more interested now in examining the examples data (both the GaitNormal_1 which was used in the MoCap model, and SlowRun which was used in Anygait) because they both have very low forces compared to mine. I uploaded the two c3d files. The X and Y coordinates are in opposite directions than in the data I have but the Z coordinate is still the vertical one, and I’ve looked at all the forces too just to check. According to the weight of the subjects the vertical forces should be much higher. Could you help me figure out why that’s not the case?
I suspect that you are looking at the raw analog data. That doesn’t have to correspond to the force at all. In case of the GaitNormal_1 all the analog channels should be multiplied by a calibration matrix which is also stored in the c3d file. All Type 4 force plates use calibration matrixes, and you can’t interpret the raw analog data directly. Type 2 force plates (as the ones you have) keep their calibration information internally, so their raw output is always correct (except in your case where it has some weird offsets)
If you use mokka to inspect the force then plot the forces from the force plate section. They should be correct. I have attached a picture of the two c3d files. Except for the different axis and the offset in your file the forces are almost the same magnitude.
Thank you for clarifying that! I get it now. I guess I will try to remove the offsets and simulate it again.
The muscle activity still seems high even after removing the offsets. I compared it to the anygait example data (slowrun) and the data I have produces higher activities and more spikes even though the example data actually has higher forces on the force plate. That makes me think that the data I have is not being simulated correctly again.
Do you have any other ideas left that can possibly fix this?
UPDATE. I realized the model I used in the previous post to show the example data did not have the trunk muscles turned on! After turning them on it shows a completely similar pattern as the model I was using for my data, with even more spikes and higher activities. It seems that the problem is not with the data I have then.
Can someone please explain this strange pattern that occurs when the trunk muscles are on?
I have not read the entire thread so my answer may reflect this
I have these considerations:
The property you plot on the graphs is reflection any muscle present in the model, this includes also artificial muscles which may be used in different location on the model depending on which model you have. Instead please plot the muscle envelope for the leg or spine separately. This can be found in the SelectedOutput folder in the output tree.
If these curves also displays high activations, please review the loads being applied to the model. I would switch to the model with no muscles (no real muscles) but having torque generating muscles in the joints and review the magnitude of these torques.