(AFMs) tend to be specific to a particular model of device, and further have a tendency to require that they be written to target an inconvenient execution environment. This paper addresses these problems by describing a high-level programming system for an AFM in which the device-specific low level code has been separated into a different process accessible across the network. This frees the bulk of the code from the assorted constraints imposed by the specific device, and also allows for the insertion of an abstraction layer between the high level control code and the device itself, making it possible to write device independent control code. I.INTRODUCTION HERE is a great deal of potential benefit to be gained from the controlled structuring of matter on the nanoscale. Unfortunately, there are few techniques known for achieving the level of precision that we desire. One of the techniques that can achieve the desired precision is direct manipulation of matter by pushing it with the tip of an Atomic Force Microscope (AFM). For example, by pushing nanoparticles with the AFM tip, it is possible to place them with positioning errors of 1 nanometer or less. T Achieving such a degree of accuracy is no simple task, though. When operating on that scale, an AFM is a relatively clumsy manipulator, as thermal drift, actuator creep , hysteresis effects and other non-ideal behaviors all have a tendency to decrease positioning accuracy. Add to that the fact that an AFM tip is a single, somewhat round " finger " and that it is both the means of sensing and the means of actuation, but typically not both at once, and it is easy to see that controlling the AFM for manipulation is a difficult endeavor. The space of operating modes of AFM manipulation is a large one, and not yet fully explored, and so the correct way to achieve a given manipulation task is not always known. Finally, it is usually difficult to predict which facilities will be useful in a research environment, and a flexible development system that will encourage experimentation is a must. For all of these reasons, we need an AFM control framework which allows us to quickly develop and deploy AFM control code; that framework is what this paper describes. II.ARCHITECTURE The software is broken into two components, a client and a server, which communicate with each other over TCP/IP. The client, which …
[1]
H. Kuhn.
The Hungarian method for the assignment problem
,
1955
.
[2]
J. Munkres.
ALGORITHMS FOR THE ASSIGNMENT AND TRANSIORTATION tROBLEMS*
,
1957
.
[3]
J. H. Makaliwe,et al.
Manipulation of nanoscale components with the AFM: principles and applications
,
2001,
Proceedings of the 2001 1st IEEE Conference on Nanotechnology. IEEE-NANO 2001 (Cat. No.01EX516).
[4]
Aristides A. G. Requicha,et al.
Towards automatic nanomanipulation: drift compensation in scanning probe microscopes
,
2004,
IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA '04. 2004.
[5]
Aristides A. G. Requicha,et al.
Drift compensation for automatic nanomanipulation with scanning probe microscopes
,
2006,
IEEE Transactions on Automation Science and Engineering.
[6]
Aristides A. G. Requicha,et al.
Compensation of Scanner Creep and Hysteresis for AFM Nanomanipulation
,
2008,
IEEE Transactions on Automation Science and Engineering.
[7]
Harold W. Kuhn,et al.
The Hungarian method for the assignment problem
,
1955,
50 Years of Integer Programming.