Skip to content

Rigid Body Transform Tool

Chris Chronopoulos edited this page Aug 12, 2023 · 4 revisions

This page is up-to-date as of Parallax version 0.28.2

The Rigid Body Transform Tool is used to generate a new transform - specifically, a rigid body transform (and even more specifically, a rototranslation, since we are assuming all coordinate systems are right-handed). It is accessible from two places, either:

Main Window > Tools > Rigid Body Transform Tool

Or, by clicking the Generate button in the Transform Panel. The Rigid Body Transform window is shown below:

rbt_tool

There are two ways to generate a new transform with this tool, and they are organized into two tabs:

"From Correspondence" Tab

The first method involves specify correspondence points - the 3D coordinates of the same point in two different coordinate systems - and using them to optimize the transform parameters. The coordinates can come from various source: the motor coordinates of a probe stage, a triangulated object point, or the known geometry of fiducial markers (like the ticks on a targeting reticle or the corners of a checkerboard).

To establish a set of correspondence points, first give names to the "From" and "To" coordinates systems by filling in those fields. Then, populate the coordinate fields with the X, Y, and Z coordinates from each system. Register this point by clicking the "right arrow" icon - the 6 coordinate values will disappear from the left-hand section and appear in the list in the right-hand section. You can delete an erroneous point, or clear the entire list, via the right-click menu.

Another way to populate the coordinate fields is via drag-and-drop coordinates. This allows you to quickly register points from, for example the stage motor coordinates and triangulated camera coordinates of your probe tip location.

Generally, the more correspondence points you provide, the more accurate your resulting transform will be (assuming your coordinates values are accurate, that is). The minimum number will depend on which transform model is being used, but generally for a rigid body transform, you'll need at least 5 correspondence points.

Optional: You can save your correspondence points (independent of the transform) as a CSV file, or load up points from a previous run, by clicking the "Save" and "Load" buttons. This is useful if you want to experiment with other transform models/algorithms using the same correspondence set.

Once you've collected your correspondence points, give the transform a name ("Transform Name" field) and click "Generate Transform". The optimized transform, its name and coordinate system names, and the correspondence points themselves will be saved it the data object, which will appear in the drop-down menu of the Transform Panel; you can then save the transform to disk from the Main Window.

"From Composition" Tab

Another way to generate a new transform is by compositing other transforms together. This is achieved in the "From Composition" tab:

composite_tab

Here, you can select a transform from the drop-down menu, optionally invert it, and add it to a composition chain. You can re-order the transforms in the list widget by dragging and dropping them, and then give your composite transform a name in the "Transform Name" field. Click "Generate" to generate the composition - the result will be a new transform whose "from" coordinate system is the "from" of the first transform in the chain, and whose "to" system is the "to" of the last transform.

Note: If the coordinate systems in the chain don't match up at each intermediate composition, the application will display an error and the composition will be aborted.

Once you've generated a composited transform, it will appear as any other in the transform drop-downs throughout the application.