Hello everyone,
I am a student at the University of Kassel and I am going to write my bachelor Thesis at the institute Mensch-Maschine-Systemtechnik. In the thesis I try to identify and to investigate different variables to simulate walking postures of older people by using a motion capturing system (ART-System - Advanced Realtime Tracking). Since two weeks I am working with the A anybody software (version 5.2) . Now my problem is that I cannot import the created c3d-file from ART-Human Tool in the Anybody software, in to the Example GaitFullBody. I read the tutorials and the complete documentation but there are still the same problems. The following error message is shown when I try to load the model:
ERROR(SCR.PRS9) : C:/U…s/s…g/A…a/R…g/A…y/A…x/A…o/A…n/E…s/G…y/ModelSetup.any : Defined At : C:/U…s/s…g/A…a/R…g/A…y/A…x/A…o/Body/A…n/T…x/M…p/CreateMarkerClassTD.any : ‘PosInterpol’ : Unresolved object - Model loading skipped
Maybe you can help me to solve this problem. The data was recorded with a whole bodykit including 17 markers (standard bodykit). I would appreciate a short feedback from you, maybe with a suggestion for solving this problem. Thanks for your support
It looks like you have a mismatch between defined in AnyBody and actual C3D markers. You need to go to the ModelSetup.any by clicking on the error message and check whether you have the same marker in your data or not. Effectively you need corresponding markers to be in your ModelSetup and in the C3D file.
Try also reading the following article, which might help to start working:
Thanks for your help,
but now I have the next Problem. The ART Human creates for each bone 3 markers (one marker for one point in space) in the C3D-File. The example C3D-File form Anybody has created only one marker for each bone. Is AnyScript able to read these markers or do I need to aggregate them to one marker? Or are there any other solutions)
For example in the ART-Human C3D-File the markers are stored like this (3 markers per bone are stored with the names):
"XXmYY_0
XXmYY_1
XXmYY_2
XX: ID of the model
YY: ID of the bone
In bonecoordinates (and model units):
_0:0,0,0;_1:0,20,0;_2:0,0,20"
AnyBody is supposed to read the C3D file as is and get all markers out. Can you see all markers as different objects in the C3D viewer that you are using? Could you check it in Mokka?
If all objects are present, but AnyBody still does not load them all - please upload the file to the debug section and I will have a look.
in this particular case no difference, but it can be used if the MoCap system adds a certain prefix to the marker names. Right now in your code you can find the following line:
#define PrefixDef(Arg) Arg
Meaning it is used as is.
For example, you could use your model name as a prefix and later on just chance it in the following line.
#define PrefixDef(Arg) hh0##Arg
This will generate hh0x0,hh0x1,hh0x2, etc. for PrefixDef(x0),PrefixDef(x1),PrefixDef(x2)…
Or hh1x0,hh1x1,hh1x2, etc if you change hh0 to hh1 in the code above. So this way you just redefine the name of the subject, but not each marker.
Hi,
now my model is loading. I have excluded the forceplates in the EnvironmentAutoDetection.any-file. But now I get this, what you can see on the photos.
This is great, isn’t it? Basically what you see are the trajectories of your markers and judging from the first image - orientation of the model is not right. It may or may not be a problem, but you can help the solver by setting right initial positions. In case of our standard MoCap model - the orientation and position are automatically computed based on the pelvis markers.
The second image is basically a projection of trajectories of many markers - so it might make sense when you track an individual one.
Hi Pavel, thank you.
I have changed the PelvisRot (X,Y,Z) to bring the Model in to line of the coordinate system of the MotionCapture Laboratory. After this I have excluded most of Markers in the ModelSetup.any File. Only three markers are still included for test. The markers, which are include are
Right.Leg.Seg.Thigh
Left.Leg.Seg.Thigh
Trunk.SegmentsLumbar.PelvisSeg
Why are the assignment, of the bone coordinate system to the bones are not correct by Right- and Left.Leg.Seg.Thight? I have checked that the assignment of the markers is correct.
Hi Pavel,
Thanks. I have corrected the position of the markers. I have additionally modified PelvisRot (x,y,z). But now my model is to be upside down and it doesn’t runs. If I change PelvisRot again, my model will be destroyed after the running. In either case I get the following error Messages:
I am probably missing something - why would you rotate pelvis again?
Basically everything is quite straightforward - you need to give a good initial guess to your model, give some reasonable marker positions, and let the system optimize everything.
If your initial guess is too far from a solution, or your constraints (joints) do not allow the model to fit into the trajectory (in your case initial position) - it fails and gives this message. It can also be “too far” if you rotate the model by 180 degrees - in the rotation sense it is furthest you can get from the actual solution.
Try to make another iteration of refining your input. If that does not work out - we will need to upload it into the Debug section.
Hi,
Last week I had uploaded my model in the Debugsection, but I had no answer so far.
I have several problems. First: My motion capture System has no facility to record ground reaction forces. So I have no analog datas for using by forceplates. Can it be possible generally to run the model without forceplates?
Second: If not, what can I do to create forceplates anyway?
Hello,
I have tried to create Forceplates anyway. For this, I was orientated by the AirlinePassenger Example, but I have problems to connect the Forceplates with the feet. In witch folder I should connect it? Can it be possible generally to create Forceplates witch doesn’t based on analog datas in the model GaitFullBody? Or can it be easier to create a new Model?
Second, I have another question. What does it means, if a dot or an doubledot is in front of an function? For example:
AnyFolder &Dim = .ChairDimensions;
AnyRefNode &Seatnode = …Seg.Seat.SeatBackRestJntNode;
There´s no statement in the tutorial.
Regards Chris
Ground reaction force prediction with the AnyBody Modeling System ( Assoc. Prof. Michael Skipper Andersen and Sebastian Skals, M.Sc., Aalborg University, 06. October, 2015)