Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ndi_tracker_project

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.

What it does

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.

The CSV format

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, zqo is the scalar term.

There is an example .csv in the repository showing real captured data.

Using it

Capture

Build the modified sample against NDI's Combined API. To find what was changed, search the source for Andrew — every modification is marked.

Processing

NDI_csv_to_vectors.m

Converts a captured .csv into pose vectors. The repository also contains worked examples of point-based registration using known sensor positions.

Hardware

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.

Related

The manipulator whose kinematics this was used to validate: SnakeRaven-Project.

Licence

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.

See THIRD-PARTY-NOTICES.md.

Questions

Written by Andrew Razjigaev. Questions: andrew_razjigaev@outlook.com

About

NDI Aurora electromagnetic tracking: four-sensor 6-DOF capture to CSV, with MATLAB processing and point-based registration. Used to validate SnakeRaven's kinematics.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages