c3d file problems in MoCapModel

Hi AnyBody support,

I want to use the C3D file that I measured at Vicon.

I use the C3D file in MoCap_LowerBody of MoCapModel, both enclosed in zip file. When I load it I get this error message:

ERROR(SCR.PRS9) : C:/U…s/k…i/D…p/A…6/A…n/E…s/M…)/I…t/Markers.any(422) : Defined at : C:/U…s/k…i/D…p/A…6/Body/A…n/T…x/M…p/CreateMarkerDriverClass.any(176) : ‘PosInterpol’ : Unresolved object

May I know the reason why?

I am using the AMMR version 1.6 and AMS version 6.0.0

Best regards,
Katsunari

Dear Katsanuri,

please have a look here and go through the example step by step:

If you use AMMR 1.5:
http://wiki.anyscript.org/index.php/How_to_setup_your_own_MoCap_driven_Model

If you use AMMR 1.6:
http://wiki.anyscript.org/index.php/NEW:_How_to_setup_your_own_MoCap_driven_Model

Hi AnyBody support,

I want to use the C3D file that I measured at Vicon.
I tried to setup C3D file following:
http://wiki.anyscript.org/index.php/...p_driven_Model

I use the C3D file in MoCap_LowerBody of MoCapModel, both enclosed in zip file. When I load it I get this error message:

ERROR(SCR.PRS9) : C:/U…s/k…i/D…p/A…6/A…n/E…s/M…)/I…t/ForcePlates.any(17) : Defined at : C:/U…s/k…i/D…p/A…6/A…n/E…s/M…)/I…t/ForcePlates.any(10) : ‘Fx1’ : Unresolved object

May I know the reason why?

I am using the AMMR version 1.6 and AMS version 6.0.1

Best regards,
Katsunari

Hi Katsunari,

your analog data’s names are different from the standard ones. You can find the definitions in AnyBody under Main.ModelSetup.C3DFileData.Analog.Data or in the metadata of you C3D file with Mokka or sth like that. The correct definition of your forceplates is:


 ForcePlateType2AutoDetection Plate1 (
      PlateName = Plate1,
      Folder =Main.ModelSetup.C3DFileData,
      Limb1=  .BodyModelRef.Right.Leg.Seg.Foot,
      Limb2=  .BodyModelRef.Left.Leg.Seg.Foot,
  No=0,
      VerticalDirection ="Z",
      HeightTolerance=0.07,
      VelThreshold=2.2,
      Fx=Main.ModelSetup.C3DFileData.Analog.DataFiltered._1Fx,
      Fy=Main.ModelSetup.C3DFileData.Analog.DataFiltered._1Fy,
      Fz=Main.ModelSetup.C3DFileData.Analog.DataFiltered._1Fz,
      Mx=Main.ModelSetup.C3DFileData.Analog.DataFiltered._1Mx,
      My=Main.ModelSetup.C3DFileData.Analog.DataFiltered._1My,
      Mz=Main.ModelSetup.C3DFileData.Analog.DataFiltered._1Mz,
      FootPresent=HumanModelPresent)
      ={
  //      Cal=Main.ModelSetup.C3DFileData.Groups.FORCE_PLATFORM.CAL_MATRIX.Data[0];
  //      Cal = .Ident;
      };
  
      ForcePlateType2AutoDetection Plate2 (
      PlateName = Plate2,
      Folder =Main.ModelSetup.C3DFileData,
      Limb1=  .BodyModelRef.Right.Leg.Seg.Foot,
      Limb2=  .BodyModelRef.Left.Leg.Seg.Foot,
      No=1,
      VerticalDirection ="Z",
      HeightTolerance=0.07,
      VelThreshold=2.2,
      Fx=Main.ModelSetup.C3DFileData.Analog.DataFiltered._2Fx,
      Fy=Main.ModelSetup.C3DFileData.Analog.DataFiltered._2Fy,
      Fz=Main.ModelSetup.C3DFileData.Analog.DataFiltered._2Fz,
      Mx=Main.ModelSetup.C3DFileData.Analog.DataFiltered._2Mx,
      My=Main.ModelSetup.C3DFileData.Analog.DataFiltered._2My,
      Mz=Main.ModelSetup.C3DFileData.Analog.DataFiltered._2Mz,
      FootPresent=HumanModelPresent)
      ={
  //      Cal=Main.ModelSetup.C3DFileData.Groups.FORCE_PLATFORM.CAL_MATRIX.Data[0];
  //      Cal = .Ident;
      };
  

If you change you ForcePlate definition like that the error you mentioned will not occur any more, but only two of you six force plates will be implemented at this point. You’ll have to copy and adapt the code above for the other plates.

If you load your model now another error will appear because you have used floats for the FrameOffsets in TrialSpecificData.any.
Change


   // ********** Time ***********
    // FrontFrameOffset is the offset value from the first frame of C3D file
    AnyIntVar FrontFrameOffset = 1.0;
    // LastFrameOffset is the offset value from the last frame of C3D file
  AnyIntVar LastFrameOffset  = -1.0;
  

to


   // ********** Time ***********
    // FrontFrameOffset is the offset value from the first frame of C3D file
    AnyIntVar FrontFrameOffset = 1;
    // LastFrameOffset is the offset value from the last frame of C3D file
  AnyIntVar LastFrameOffset  = -1;
  

and your model will load.

The problem which occurs next is that you have used the full body model for a very reduced marker set, where somehow every marker of the plugin gait model exists in the origin. You need to manually delete (comment out) every marker not used in the gait measurement because at the moment no kinematic optimisation is possible. If only the markers which have trajectories different from (0,0,0) are present optimisation might be possible. Also I would crop the c3d file to frames 342 - 574 because before this range markers are missing and also there is no information to obtain from the time frame where not force plate data is available.

Hi AnyBody support,

Thank you your answer.
I tried to change the ForcePlate definition, the marker set and the FrameOffsets following your your answer.

But the problem is that the direction of body is a different from marker trajectory.

As you can see the attached snapshot file, the body is a different from marker trajectory (FrameOffsets of the attached snapshot file is 400, 450, 500).

May I know the reason why?

I am using the AMMR version 1.6 and AMS version 6.0.1

Best regards,
Katsunari

Hi AnyBody support,

Thank you for your answer.
I tried to change the ForcePlate definition, the marker set and the FrameOffsets following your your answer.

But the problem is that the direction of body is a different from marker trajectory.

As you can see the attached snapshot file, the body is a different from marker trajectory (FrameOffsets of the attached snapshot file is 400, 450, 500).

May I know the reason why?

I am using the AMMR version 1.6 and AMS version 6.0.1

Best regards,
Katsunari

Katsunari,

like I wrote, you’ll have to crop your c3d file because the markers start from the origin if the don’t have real measured coordinates. Please reread my previous post for the time range.

Best regards,

Patrick

Katsunari,

like i wrote, you’ll still have to remove the markers which are not in use. Maybe you should also use the lower body model, because you do not have any markers on the head or the upper extremities.

Regards,

Patrick