Skip to content

Main Window

Chris Chronopoulos edited this page Aug 30, 2023 · 16 revisions

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

When Parallax first starts up, you'll see the Main Window, shown below.

main_window

The main window consists of two View Ports (large black squares upon startup), four Stage Control Panels, the Calibration Panel, and the Transform panel, and the Message Log (white text box at the bottom). This allows you to control up to 4 probes and 2 cameras simultaneously.

View Ports

Right-clicking on a View Port will bring up a context menu. To start streaming a camera feed:

Right click > Parallax > Cameras > (camera name)

If you don't have any cameras plugged in, you will only see one option: MockCamera0, which streams white noise at the standard Parallax image resolution (4000,3000).

mock_camera

This allows you to get familiar with using the View Port: left-click to select an image point, mouse wheel controls zoom, click-and-drag to pan, middle-click to home the view.

The View Port widget shows up in many features of Parallax, so it has its own documentation page with more details here.

Control Panel

The Control Panel allows you to control a probe translation stage. To select a stage, click the drop-down menu and choose the serial number of the stage you want to control. Once a stage is selected, the Control Panel will begin to show the coordinates of the X, Y, and Z axes of the stage in microns:

motor_coordinates

To move the stage to a prescribed position, click the second button with the "cross hairs" icon to launch the Target Dialog, shown below

target_dialog

The Target Dialog allows you to enter the X, Y, and Z coordinates of your target location. Clicking "Move" will move the probe stage through a safe move to that location. Clicking "Randomize" will populate the coordinate values with random values (this is useful if, for example, you want to test out your triangulations, or introduce noise into your manual targeting prodecure to reduce bias).

The button at the bottom with the red "stop sign" icon is the Halt button. Clicking it will immediately halt this stage (and only this stage, see Halting for more details). Another Halt button with identical functionality is included on the Control Panel itself (rightmost button).

The "crosshairs" icon at the top of the dialog is a drag-and-drop widget (drop only) for coordinate values. See Drag-and-drop Coordinates for more details.

The "Retract" button at the bottom-right of the Control Panel will retract the probe to position (Z=0), keeping the X and Y axes the same.

The stage can be "jogged" (moved in small increments) by rolling the mouse wheel up/down (increase/decrease position value) over the X,Y, and Z axis coordinate labels. Three jog increments are supported:

  • Standard Jog (mouse wheel, unmodified) - default value 50 um
  • Fine Jog (Control + mouse wheel) - default value 10 um
  • Coarse Jog (Shift + mouse wheel) - default value 250 um

The values can be changed in the Stage Settings Dialog, which is launched by clicking the "gear" icon in the Stage Control Panel:

stage_settings

This settings dialog allows you to view and set various settings for stage control, on a per-stage basis:

  • Closed-loop speed: The speed of the motion for this stage. 3 speeds are reported, one for each axis, but the application enforces that all 3 speeds are equal when setting this parameter. Units are in native New Scale steps per second.
  • Default Jog Increment (standard jog) in microns
  • Control-Jog Increment (fine jog) in microns
  • Shift-Jog Increment (coarse jog) in micons
  • Z-safe position: this is the Z-position (in microns) from or to which any user-initiated move-to-target command (not including jogs with the mouse wheel) will trigger a "safe move". It should be set at a position which is clear of any obstacles to the probe.

The "Calibrate PID Frequency" button at the bottom of the Settings Dialog will instruct the stage to calibrate the frequency of its PID loop. This may be necessary if you find the stage getting stuck in a bad feedback loop (jittering back and forth and making noise). WARNING: The PID calibration will cause the stage to briefly but quickly move over a distance of ~250 um while it sweeps through PID frequencies. It's important that the probe is clear of any obstacles before performing this calibration.

Calibration Panel

In the center of the Main Window, you will find the Calibration Panel:

calibration_panel

This section allows you to load, save, inspect, edit, generate, or use (triangulate) calibrations. To load a calibration into the application, click Load and select the calibration file (extension .pkl). This will populate the dropdown menu with the loaded calibration; you can have several calibrations loaded simultaneously, but only one will be active at any time.

Click the "gear" icon to open the Calibration Settings dialog:

calibration_settings

Here, you can inspect (and for some fields, edit) the parameters of the active calibration. Parameters are organized into four tabs: General, Statistics (for the statistics of the reconstruction error), Intrinsics, and Extrinsics.

Clicking the Triangulate button will Triangulate the image points selected in the View Ports; the results will be reported (in microns) in the message log:

triangulation_msglog

If you haven't selected an image point in both frames, you will get a warning message instead.

The most recently computed triangulation result will be available as [drag-and-drop coordinates] from the empty space in the Calibration Panel widget.

Clicking the Start button at the bottom-right will initiate the probe calibration procedure.

Transform Panel

Just below the Calibration Panel, you'll find the Transform Panel:

Screenshot from 2023-08-30 15-00-50

Similar to the Calibration Panel, the Transform Panel allows you to load and save transforms from/into the application. Several transforms can be loaded simultaneously, but only one is active at time (selected from the drop-down menu at the top-left). To generate a new transform, click the "Generate" button. This will launch the Rigid Body Transform Tool - see that page for details on how to generate a transform.

Clicking the "gear" icon will launch the Transform Settings Dialog:

Screenshot from 2023-08-30 15-02-41

Here you can view the transform parameters and metadata. Clicking "Export as JSON" will open a file dialog, allowing you to save the parameters as a platform-independent JSON file. The exported data includes:

  • name
  • from_cs: the coordinate system we are transforming from
  • to_cs: the coordinate system we are transforming to
  • r_euler: the rotation vector [rx, ry, rz], where ri is the Euler rotation angle about axis i
  • dr_euler: the uncertainty in r_euler, as computed by the "remove one correspondence point and recalculate" method
  • t: the translation vector [tx,ty,tz]
  • dt: the uncertainty in t
  • Rt: the 4x4 matrix combining the rotation matrix and translation vector; dotting this with a 4D homogeneous column vector applies the transform
  • rmse: RMS error over the correspondence points
  • dproj: RMS variation of the projected correspondence points while performing the "remove one point and recalculate" operation

Note: These parameters follow the convention x' = R(x + t) for Euclidean transforms.

Clicking the "Apply" button will launch a non-modal dialog to assist in mapping coordinates bidirectionally through the active transform:

apply_transform

The left side represents the "from" coordinate system, while the right side represents the "to" system of the transform (the coordinate systems are named at the top of the dialog). Filling in the left coordinate fields (X,Y,Z) and clicking "map forward" will apply the transform directly, and auto-populate the right coordinate fields. To apply the inverse transform, fill in the right coordinate fields and click "map inverse" to auto-populate the left fields. Both coordinate widgets are endowed with drag-and-drop coordinate functionality, so results can be easily transferred to/from other widgets in Parallax.