User Tools

Site Tools


wiki:user:ram:resume:ilemt

Electromagnetic Tracking

Electromagnetic tracking is a 50 year old technology for tracking the free 6DOF motion of a sensor, most often by inductive pickup of several fixed reference fields. It is a niche technology with several successful commercial products, mostly for biomedical tracking of human motion. In comparison to optical measurement (such as my ASAP) the very low frequency magnetic field easily penetrates most non-metal objects, so does not require a sightline between source and sensor.

As an offshoot of Micron development and testing we found that the hands of the surgeon and assistants would often block the sightlines required by ASAP. I had been interested in magnetic tracking, but existing products did not give anywhere near the micron resolution and kilosample measurement rates which Micron tremor cancellation required. Yet magnetic modelling and noise analysis showed that this performance was attainable in a new design. Adoption of software demodulation together with relatively newer technology from digital audio and software-defined radio also made it practical to use two-frequency modulation of the source field, which helps with managing interference from metal objects (one of the main weaknesses of these trackers).

I wrote and got funding for a three year National Institute of Health R01 proposal. While a larger effort was originally funded, in the end I worked on this for two years. It proved difficult to find relevant skills in RI students, and the COVID pandemic further complicated matters. So I worked almost entirely on my own. I developed hardware that met the performance requirements, with manufacturable hardware that was reliable enough for field testing, but did not get as far as the implementation of real-time signal processing.

Electronics

View inside the ILEMT electronics:

The left half of the box is the output coil drivers, which use off the shelf audio amplifier boards (slightly modified). Input and processing is on the right. The backplane has a Zedboard ARM/FGPA SOC module. The I/O hardware is controlled by the FPGA, with higher level functions running under Linux. The output DAC card is on the left, followed by three input cards, each which acquires three channels (for a single sensor coil). One of the cards is used to measure the output currents to the source for feedback to compensate nonidealities in the drivers and source coil.

Input Board

The input board is quite critical for realizing the position noise performance of the tracker system. The requirement is not so much for low noise (though that is needed), but very wide dynamic range. Specifically, the measured noise must be very low even in the presence of a near full scale signal. The signal is relatively large so the input amplifier gain is only about 10x. Dynamic range is usually computed from the ratio of the no-signal noise to full scale. This works fairly well for the analog part of the signal chain, but the analog to digital conversion usually adds some noise that is proportional to the signal level, causing the noise floor to rise at larger signal levels. Two major causes of this noise rise are clock jitter and reference noise. Particular ADC designs and architectures may also contribute. I evaluated some digital audio interfaces and audio ADCs using sigma-delta ADCs, but found considerable noise rise. For some reason the datasheets do not test under conditions that would reveal this effect (hmm). I ended up using an oversampling SAR converter (LTC2512-24) which does not show any noise floor rise as implemented on the input board.

One challenge was low noise distribution of a single shared reference voltage to all the converters on all the input boards. A shared reference is very desirable because it cancels the effect of drift and low frequency noise. The reference is basically the analog power supply for the SAR converter. The conversion cycle draws current spikes from the reference, but the reference must still remain clean as seen from the other ADCs. I use only a single reference buffer per board with LC decoupling between the ADCs. The reference buffer has a differential input from the master reference on the main board, a lowpass filter, and a low impedance output buffer.

This ADC has a differential input, giving 10V PP input swing with the 5V reference. This improves the dynamic range, but also requires a differential driver. Since the sensor input is differential it worked well to use a fully differential design for the low noise amplifier and antialias filter/driver. This helps reduce cross coupling between the input channels. Low noise analog supplies are generated locally on the card from the reference voltage. These use a high speed opamp and a discrete pass device to give a very low output impedance in the ~10 kHz range where the tracker operates. This also minimizes cross-coupling between the input channels.

Main board

The main board provides digital connectivity and processing while taking care to maintain a clean analog environment for sensitive signal I/O. The digital component is a Zedboard system-on-module with a Xilinx Zynq FPGA/Arm core SOC running Linux. Data is transferred to/from the offboard labview signal processing using ethernet. One of the critical functions of the main board is to provide low noise clock and analog reference signals to the I/O boards. To avoid running the clock through the relatively noisy FPGA chip the ADCs are clocked directly from the oscillator clock edge with a gating pulse from the FPGA. High speed digital signals are send to/from the boards using LVDS to minimize emitted interference. The boards use PCIE connectors but are not actually PCIE devices.

Output board

The output board has four very low noise audio DACs (PCM1794A dual) giving an output noise well below that of the input noise of the class-D output drivers. The high 10V peak-to-peak output of the DAC allows the output driver gain to be reduced, reducing referred noise. These DACs were not designed to use an external reference, but I discovered how to deliver a reference derived from the main board reference through the DAC reference bypass pin. This greatly reduces 1/f noise in the DAC output.

Output Filter

The output filter board gives an additional 2 pole LC filter to the driver output, further reducing class-D switching noise in the output. The output filter is tuned to be parallel resonant with the high carrier frequency of each channel so that the driver supplies very little current. Each channel has a different snubber network to damp undesirable higher resonances which would cause noise peaking. This board also provides current and voltage sensing of the output signal which is used compensate variations in the output and also to implement adaptive cancellation of cross coupling between the output channels (such as due to mutual inductance between the source coils).

Source coils

I was able to use some off-the shelf coils for the sensor, but to maximize the noise performance we wanted a much higher drive level than was supported by commercial products. The drive level is ultimately limited by the heat dissipation in the coils, minimizing the loss while still presenting a suitable load impedance for commercial audio drivers required an iterative process of magnetic design simulations. Litz wire is used to minimize losses. The source design on the left has a more ideal magnetic dipole response and can be made by conventional coil winding machines. The ferrite cube core style on the right is more compact, and the concentric coil arrangement allows much simpler implementation of the pose solution,

wiki/user/ram/resume/ilemt.txt · Last modified: 2024/04/16 15:24 by ram