AnyMoCap Modeling - Foot Contact and Units

Hi there!

I am new to the AnyBody modeling system, so please forgive me for any and all the potentially ridiculous questions I may start filling this forum with. I will spare you somewhat for now, and just send two major questions:

Question 1) Best methods for improving foot contact issues when running GRF predictions?

I am working with a set of xsens motion capture data that I have come to find gives issues with foot contact when I drive AnyBody models with the data. This may be something that I have to resolve within the mvnx/bvh files before bringing into AnyBody, but I thought it would be good to understand how to manipulate foot contact in AnyBody for any future simulations with complex contact/ground definitions. After marker tracking of the human model against the BVH data, the models hover anywhere between 7-11cm above the ground depending on the participant. I can manually adjust the ground offset after running the inverse dynamics study to find where the foot contact nodes are during stance phase of gait, but that is tedious and I would like to let the code do work for me whenever possible :wink: Any thoughts as to a best method to solve this issue? I was thinking I could run a kinematics study with the foot contact nodes, find the y-minima of one or a few of the nodes over the entire trial, then use that as the ground offset value for the inverse dynamics study. Does that sound reasonable, or is there some other approach that would be easier and/or more appropriate for scenarios where the ground offset may be quite different between trials?

Question 2) Where should I looks for info on joint coordinate systems or questions on units?

The naming convention of outputs from the inverse dynamics study are fairly straight forward, but I want to make sure that I am not just blindly assuming the directionality (positive vs negative) of different joint forces and moments. What files or documentation should I look into to gain more insight into the directionality of all the JRF’s/torques? Is there an .any file buried somewhere deep in the AMMR archives or even in this ready-made model tree structure for MoCap trials that I should start with if I ever run into questions? It also appears that all the units are in SI, but again, if I am ever unsure or would like to trace back units for troubleshooting purposes, is there somewhere I should be navigating to?

Thank you for taking the time to read this novella of woe,

Lindsay Schuring

Hi Ischuring,

Welcome to the forum, here are some answers:

A1: I think the issue coms from the measurement but it should be possible to calculate it automatically. The nice thing about the newest versions of the BVH models is that the virtual BVH markers are available at loadtime. This means you can use one of the foot markers to find the height as you say, and you do not need to run anything to do that so e.g. something in this line

AnyVar Height= min(Main.ModelSetup.BVHFileData.Markers.LTOE.PosInterpol.Data[1])

(i am not exactly sure on syntax, [1] is assuming y direction to be normal)

A2: Units in AMMR are in SI. In AnyBody there are no direct specification of units this is all implicit done when creating a model. If you build your own model from scratch your are free to choose any unit you like, but I would recommend SI units always.
Output question, this is a good question and we have it on our todo list to improve the documentation on this subject. I would use the output from the selected output folder and if you are in doubt about what a variable represents use the right click option from the modeltree and select "locate in script" this will show you the calculation. Also note that you are free to add as many new measures to the model as you like to measure things in the way you want it to be. Also note all joints/drivers have a RefFrameOutput object, here you find forces and moments measured in global coordinates. To measure forces and moments look at the AnyForceMomentMeasures these are created solely to measure, you can also add AnyKinLinear and AnyKinRotational to measure positions.

Best regards
Søren

Thank you Søren,

Your idea works like a charm! For anybody looking at this post in the future, I used:

AnyVar LFootOffset = min(Main.ModelSetup.BVHFileData.Markers.LTOE.PosFiltered'[1]);
AnyVar RFootOffset = min(Main.ModelSetup.BVHFileData.Markers.RTOE.PosFiltered'[1]);

to find the offset for the left and right foot.

I think you are right about the issue coming from xsens measurements. The data is unfortunately not my own so I can't say for certain, but there does appear to be an offset of the toes in xsens animate, but not the heels oddly enough.

And thank you for answering my questions regarding the units and inverse dynamics results output!

Lindsay

Super, thanks for the update,

Best regards
Søren

This topic was automatically closed 125 days after the last reply. New replies are no longer allowed.