Wiki

Clone wiki

XMALab / Using a Virtual Point to Stabilize Rigid Body Movement

Using a Virtual Point to Stabilize Rigid Body Movement

A number of situations can arise where marker implants alone are insufficient for marker-based XROMM tracking. In these instances, a particular bone’s marker set can (1) have too few markers to generate a rigid body, i.e. less than the required three markers for a 3-D constellation, or (2) have markers that are so colinear that XMALab software is unable to determine accurate 3-D orientation of the bone.

A solution to these issues is the use of an additional “virtual” marker to stabilize and orient the problem bone / rigid body. Virtual marker coordinates can be generated in Maya and the motion pathway of an animated bone that articulates with the problem bone, is used to produce virtual marker motion. This technique is generally applicable to bones that rotate relative to one another but have minimal to no translation at their articulation.

  1. In the Maya scene that contains all bones within CT reference space, select an adjacent, well-marked or animated “driver” bone that articulates with the problem bone.
  2. Ensure all bones are in CT reference space. Find a centroid on the driver bone that does not move relative to the problem bone, e.g. the center of rotation between the bones. Center of rotation can be determined through visual assessment of the bone motions or fitting of a shape to the bony morphology of the driver bone, e.g. a sphere fit to the head of a femur.
  3. Create and name a locator that will be your virtual point. Place it at the center of rotation between the two bones or the center pivot of the shape. The locator can be manually moved or snapped to the center pivot of the shape.
  4. If you are using one CT scan for all rigid bodies, parent the virtual point locator to the driver bone. This will allow you to animate the bones later, confirm the accurate placement of the virtual marker, and then go back to CT space.
  5. Export the CT coordinates of your new virtual marker using the CTex MayaTool. This will export the world space CT coordinates of the locator, even when parented. Name this .csv file as your virtual point.
  6. In XMALab, press the cube next to the problem rigid body/bone.
  7. Toward the bottom left of the dialog box that pops up, press “Add virtual point”
  8. Enter a name for this virtual point.
  9. It now asks for the centroid CT coordinates for the virtual point. Select the virtual point locator coordinates you exported in step (4).
  10. Select “Yes” when XMALab asks “Do you want to animate the virtual point by using a Rigid Body? Click “Yes” if you want to import a csv of animated data instead”. If you select “No”, you will have to provide .csv motion pathway data for the virtual point locator. This can be accomplished through parenting the virtual point locator to the driver bone, animating the driver bone, and then exporting the translations for that virtual point locator with MayaTools “export”. The vast majority of issues will not require this.
  11. Select the driver rigid body from the drop-down menu. This is the rigid body of the bone the problem bone articulates with that you associated the virtual point locator with.
  12. Select “No” when XMALab asks “Do you have different CT coordinates for the driver point, i.e. the point attached to the fully animated rigid body (such as from a scan of disarticulated bones or two scans)?” Click “Yes” only if you have two different CT scans or scans from disarticulated bones. If this is the case, select the CT coordinates for the virtual point that are associated with the driver bone.
  13. The virtual point is now added to your problem bone. Be sure to now check the accuracy of how this virtual point changes the motion pathway of the bone. Initial visual checks can be performed with the “Draw bone mesh model” feature in XMALab.
  14. In Maya, check that all bones fit the X-ray shadows with the MayaCams tool in Maya. Additionally, closely watch the animations produced in Maya and ensure that the virtual point is, in fact, at the center of rotation between bones. If clearly inaccurate, you can change the virtual point location in CT space and re-create the virtual point.

Important Notes:

  1. Virtual markers use another rigid body to drive your problem rigid body. You must “Force Update Trial” at least once and potentially more times in order to correctly update each body. This feature is found by click the cog at the top middle of XMALab. This is important as you modify data and change marker locations. If the driver rigid body is RB2 and your problem body is RB1, you must update twice to make sure the driver is updated (it gets done sequentially, after problem body RB1) to then correctly update the problem body (which depends on RB2). This will be automatically done when you open files but keep in mind the potential need for Force Updates.

  2. Never use Rigid Body 1 to drive a virtual point on Rigid Body 2 and then have Rigid Body 2 drive a virtual point on Rigid Body 1.

Updated