Kenneth A. Goldberg, Ph.D., Optical Physicist
Center for X-Ray Optics • Lawrence Berkeley National Laboratory
Extreme Ultraviolet Optics • Ultra-High-Accuracy Interferometry • EUV Lithography
EUV 'Actinic' Mask Inspection • Optical System Modeling • Synchrotron Light • Coherence
EXPERIMENTAL SYSTEM CONTROL

Performing an experiment well requires careful planning, and a smooth collaboration between the technical, engineering, and scientific aspects of the project. In my work, steering and focusing invisible beams of light through vacuum chambers and onto samples, is how we make our measurements. There can be ten or more mirrors to reflect the light, and literally dozens of individual motors, cameras and light-detecting sensors that all have to work in concert.

Software Control Panel
A software control panel.

Underlying all of the experimental systems, are layers of computer software that give us control and feedback. These programs collect and record data, protect the equipment from damage, and provide continuous detailed information about where components are, how they are moving, and how the system is operating. The programs collect information and give commands to a series of computers all linked together monitoring the experiment.

Without well-engineered software control, even simple tasks and data collection can be tedious and time-consuming at best, impossible at worst. Since my earliest days as an undergraduate research assistant, I recognized that huge gains in experimental efficiency and productivity can be made by handing over the repetitive tasks to software. As the systems I worked with have become increasingly complex, I developed a programming framework to control any number of experimental systems, in real-time, with data recording and feedback. The programs I write provide visual feedback on the relative positions of sensitive components, through computer graphics, allowing us to position beams of light on the nanometer scale.

With tens of degrees of freedom to control, we steer and adjust interacting components micron-by-micron, nanometer-by-nanometer, optimizing and aligning, measuring, recording, and analyzing data on the fly. Or, we sit back and allow the automated processes to steer the system, collecting data in patterns and in time. By performing complex analysis as the data is collected, or immediately afterward, we save time waiting for offline analysis, allowing us to make decisions quickly. Both alignment and data processing can happen in a fraction of the time it would otherwise take.

Software Control Panel
Scanning in two dimensions.

Nearly all of the software we use is home grown. Over ten years, with daily refinement and improvement, it has reached a level of maturity such that new components and systems can be introduced with considerably less programming time than if they were introduced from scratch. In any given experiment, there are tens of thousands of lines of code, working together to control the system. The top-level, interactive software and analysis programs that I write interact with complex hardware drivers and networking software created by my colleagues at CXRO. To date, we have adapted this software to six different research projects within CXRO.

The primary programming language I use is IDL by Research Systems, Inc., a fantastic, adaptive, and scalable programming language that runs cross-platform on Windows and Unix (including Mac OS X) systems.

There are number of researchers, engineers, and technicians who are instrumental in this work. They include Ron Tackaberry, who oversees computer operations at CXRO, Robert Gunion, Jeff Gamsby, Seno Rekawa, C. Drew Kemp, Paul Denham, and others.

Key Publications

"Graphical user interface for image acquisition and processing," K. A. Goldberg, U.S. Patent No. 6,341,183, January 22, 2002, [LINK]

To learn more about this research, please browse the publication list where a number papers are available, view slides from recent public presentations, or contact me. Wikipedia.org has entries for "Experiment" and "Software."