An AFM works by physically positioning a very sharp tip over a sample and rastering it back and forth over the image. To look at nanometer-scale features as we do in our lab, this means having to physically position the tip over the surface with nanometer precision. It turns out that even the best AFMs in the world run into a problem called thermal drift. When the temperature in the room changes–by even a tenth of a degree–some parts of the microscope or the sample are always going to expand or contract with temperature by just a little bit more than other parts. And that means that the tip can slowly move from where you thought it was. Imagine scanning an image slowly–over several minutes–while the thing you’re imaging is moving under you. The result is an image that can appear stretched, compressed, or badly skewed.
Check two pictures below, which are portions of two scans that were taken right after each other. (One was scanned going up, the other scanned going down.) The circled feature in the upper right is in the same place in each image, but the circled feature in the lower left is shifted slightly. That’s because both images are slightly distorted from thermal drift. On the left image, the distance between the two features appears to be is 400 nanometers. On the right, it appears to be 357 nanometers.
Below are the same two images, after each one has been corrected using our new technique. (They were corrected independently of each other; if all we did was use one as a guide for the other, that would be cheating!) Now, in both corrected images, the features appear to be the same distance apart: 382 nanometers.
The way we corrected each image was by rescanning a small sliver from down the center of each image. The rescanned sliver acts as a “key” to remove the distortion from the main image. There’s actually a lot of computation involved in it, all performed by some numerically intensive computer software written by me and my student, Brian Salmons.
We still have a bit of testing and refining to do on our technique, but we hope we’ll have some published results soon. (Watch for it in a journal near you!) Of course, we’ll make our code available to the public.
Later on, there are several features and enhancements I’d like to add, and I’m actively looking for a physics or computer science student at Richmond to work with. If you’re interested in working on this project with me, let me know.