Electromagnetic tracking capture and processing for the NDI Aurora: records six-degree-of-freedom pose from four sensors to CSV, with MATLAB tooling to turn that into vectors and perform point-based registration.
Built to validate the kinematics of a continuum surgical manipulator against measured tip pose — the ground-truth half of an experiment, rather than the robot half.
Status: archived. Research tooling from the PhD, not actively maintained.
Capture. CombinedAPISampleDlg.cpp is NDI's Combined API sample application, modified to log four sensors continuously to a .csv file.
Processing. MATLAB scripts convert the log into pose vectors and run registration against known points.
One row per sample. Positions are in millimetres; orientations are quaternions. Four sensors, labelled a to d, each contributing seven columns:
Sample, Hour, Minutes, Seconds, ms,
Xa, Ya, Za, qoa, qxa, qya, qza,
Xb, Yb, Zb, qob, qxb, qyb, qzb,
Xc, Yc, Zc, qoc, qxc, qyc, qzc,
Xd, Yd, Zd, qod, qxd, qyd, qzd
Quaternion order is w, x, y, z — qo is the scalar term.
There is an example .csv in the repository showing real captured data.
Build the modified sample against NDI's Combined API. To find what was changed, search the source for Andrew — every modification is marked.
NDI_csv_to_vectors.mConverts a captured .csv into pose vectors. The repository also contains worked examples of point-based registration using known sensor positions.
NDI Aurora electromagnetic tracking system, four 6-DOF sensors.
Tracking accuracy depends on the field generator, the sensor type and the volume you work in — consult NDI's specification for your configuration rather than assuming a figure.
QUT students: there is an instruction guide for the lab system in this repository.
The manipulator whose kinematics this was used to validate: SnakeRaven-Project.
MIT — see LICENSE — for the MATLAB tooling, the data-processing scripts and the modifications in this repository.
CombinedAPISampleDlg.cpp is not covered by that licence. It derives from Northern Digital Inc.'s Combined API sample code, which carries its own copyright and is provided by NDI "as is" without warranty of any kind. NDI's notice is retained at the top of the file and governs it. If you intend to reuse or redistribute that file, obtain the sample and its terms from NDI directly.
Portions Copyright © 2002, 2003 Northern Digital Inc. All rights reserved.
Written by Andrew Razjigaev. Questions: andrew_razjigaev@outlook.com