Quality Assessment (MoCap)

Hello AnyBody Team,
I would like to assess the quality of the marker tracking (and parameter identification), in order to compare two approaches. (High quality for me is if the model markers are really close to the c3d markers)

There is the output "KinematicError". What exactly does it represent? I found that there is this KinematicError for the marker tracking as well as the inverse dynamic study. However, in my case the results are completely different. Shouldn't the kinematics (and therefore the kinematicerror) be the same for the two studies?

AI told me to look at Main.Studies.InverseDynamicStudy.Output._Main.ModelSetup.MocapDrivers."markername".Driver.Pos

This should represent the differences for the specific markers in every axis. Is this true?

Is there any other way to assess the quality of a marker tracking and parameter identification process?

Thanks a lot in advance
Christoph

1 Like

Hi Christoph,

I believe the KinematicError in the Study is the maximum error, but I am not sure about it. The reference manual doesn't define it properly, unfortunately. I will get an update on this and let you know later.

You are right about assessing marker errors. The AI is quite smart and pointed you to kind of the right place. That Driver.Pos gives the error between the marker on the model and the marker in the c3d data in the three axes. I think there are different ways in which you can assess the quality. It can be a maximum, sum, root mean square error, etc. That is up to you. I prepared a few lines of code for you to get started by collecting all of these errors in one variable:

Main = {
  Main.ModelSetup.MocapDrivers = {
    AnyFolder MarkerError = {
      AnyFloat MarkerErrors = Obj2Num(ObjSearch(".*.Driver.Pos"));
      AnyFloat MarkerErrorsScalar = vnorm(MarkerErrors);
      AnyFloat MarkerErrorsScalar_max = max(MarkerErrorsScalar);
    };
  };
};

You can extend it based on what you think is best.

Best regards,
Dave

2 Likes

Hi Christoph,

I just wanted to confirm that KinematicError is indeed the maximal error of all the equations being solved. In some solvers, it can be different as the kinematic measures can be transformed.

In general, it should be the same as looking through all the kinematic equations and taking the maximum of the pos values.

Best regards,
Dave

1 Like