ImFusion SDK 4.3
UltrasoundCalibrationInit Class Reference

#include <ImFusion/US/UltrasoundCalibrationInit.h>

Helper class for the geometric computations needed in the UltrasoundCalibrationWizardAlgorithm. More...

Detailed Description

Helper class for the geometric computations needed in the UltrasoundCalibrationWizardAlgorithm.

The calibration wizard lets the user perform various primitive motions that are recorded into TrackingSequence objects. This class estimates the translation and rotation components of the final calibration matrix—the matrix between the tip of the ultrasound probe to the tracking target.

Example usage to estimate a calibration matrix:

// axes may be estimated in any order
m_calibrationInit->computeForwardSweep(forwardMotion);
m_calibrationInit->computeSideSweep(sideMotion);
// translation should be estimated after the rotations have been estimated
m_calibrationInit->computeSphereSweep(rollMotion, pitchMotion, yawMotion);
mat4 matrix = m_calibrationInit->matrix();
mat4 matrix() const
Probe to tracker calibration matrix.

After the forward and side axes are estimated, the up axis will automatically be estimated as well. The three axes are guaranteered to form an orthonormal basis.

Public Member Functions

bool computeForwardSweep (const TrackingSequence &forwardSweep)
 Estimates forwardAxisWorld using a straight motion through the longitudinal axis (proximal to distal).
 
bool computeSideSweep (const TrackingSequence &sideSweep)
 Estimates sideAxisWorld using a straight motion through the lateral axis (left to right).
 
bool computeSphereSweep (const TrackingSequence &lateral, const TrackingSequence &side, const TrackingSequence &up)
 Takes all input tracking sequences, assumes all poses lie on a hemisphere and estimates, like in a pivot calibration, the translation.
 
bool flipImage ()
 Flips the image along the lateral axis. The rotation needs to have been estimated already. Call in case the main direction is opposite to the image normal.
 
std::optional< vec3 > forwardAxisWorld ()
 Returns the forward axis in world space, if it was possible to estimate it in computeForwardSweep.
 
std::optional< vec3 > sideAxisWorld ()
 Returns the side axis in world space, if it was possible to estimate it in computeSideSweep.
 
std::optional< vec3 > upAxisWorld ()
 Returns the up axis in world space, if it was possible to estimate the other two axes first.
 
std::optional< vec3 > translation ()
 Returns the translation offset, if it was possible to estimate it in computeSphereSweep.
 
mat4 matrix () const
 Probe to tracker calibration matrix.
 
void clearSideSweep ()
 Clears the result of computeSideSweep.
 
void clearSphereSweep ()
 Clears the result of computeSphereSweep.
 

The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close