RBF_TPS Warping Using Predefined Control Points

Hi Everyone,

I have a question about using the RBF3D Transformation with the TPS function. My expectation is that when I set up this function using P0 and P1 points, that P0 points are mapped to the exact location of homologous P1 points. I've taken care of any alignment / scaling / orientation outside of AnyBody.

I have set up a warping of the Pelvis STL (TLEM2.1) using point homologies I created outside AnyBody. But in this list are the hard coded position of anatomical locations (ASIS, PT, Hip center) taken from ModelJointParameters.any and ModelParameters.any.

I have located these anatomical points on my target (P1) pelvis. However, when I load the model, the anatomically defined control points in P0 do not map to their P1 defined locations. This manifests in distances between the anatomical locations that are different than in the P1 points (on average ~1.6mm)

As an additional issue, I have marker drivers that are defined relative to some of these anatomical locations (namely hips). But their positions seem to be offset by the difference between the P0 origin point and homologous location in the P1 points.

Any guidance would be greatly appreciated.

Hi @asylves4

The first thing that comes to my mind is something another user recently experienced during morphing of the pelvis.

The pelvis model is a little special since there are two pelvis' in the body model. If you are selected points from one but is loading the other - you will get an offset.

Try to use the BM_LEG_TRUNK_INTERFACE statement to change between the two pelvis' You can find the options here

Best regards,
Bjørn

Hi,

I suspect we are using the correct pelvis. If I use the TLEM2 pelvis for both P0 and P1 - I recover the TLEM2 pelvis. My suspicion if I were selecting vertices from the TLEM2 pelvis for P0, but loading the lumbar pelvis - then I would see similar manifestation of the problem.

The model displayed seems to TLEM2 pelvis.

Adam

Hi

I have been able to replicate the anybody result in Matlab. It seems my TPS function is being set up in global coordinates (using the vertices of the STL for P0, and another pelvis of the same topology for P1), but then applied to the TLEM2.1 in a segment / anatomical reference frame.

Your link to the other forum page definitely helped. Thanks.

Adam

1 Like