Zurück zur Startseite

STM Python-Steuerung: Simulator und RL

amrl-transport Bibliothek vereinheitlicht STM-Steuerung für RL-Agenten. Simulator emuliert Physik der Atommanipulation, asyncio-Server ersetzt LabVIEW. Unterstützung für Createc/Nanonis, RabbitMQ Task-Queues.

Atomsteuerung über Python und RL-Agenten
Advertisement 728x90

Python-Infrastruktur für STM-Steuerung und atomare Manipulation

Die Bibliothek amrl-transport bietet eine konsistente Schnittstelle für Rastertunnelmikroskope (STM). Die Klasse STMTransport definiert 12 Methoden mit physikalischen Einheiten: Nanometer, Millivolt und Pikampere. Die Implementierung unterscheidet sich je nach Controller – Createc, Nanonis oder Simulator.

from amrl_transport.transport.protocol import STMTransport

class STMTransport(ABC):
    def connect(self) -> None: ...
    def scan_image(self, size_nm, offset_nm, pixel, bias_mv) -> ScanResult: ...
    def lateral_manipulation(self, x_start_nm, y_start_nm, 
                             x_end_nm, y_end_nm, ...) -> ManipResult: ...
    def tip_shape(self, x_nm, y_nm, ...) -> bool: ...
    # plus 8 weitere Methoden

Zu den Methoden gehören Oberflächenabtastung, laterale und vertikale atomare Manipulation, Spitzenformgebung sowie chemische Operationen. RL-Agenten arbeiten auf einer Abstraktionsebene und sind unabhängig von der Hardwareplattform.

Simulation zur Entwicklung ohne Hardware

SimulatorTransport emuliert den gesamten STM-Ablauf. Oberflächenatome werden mit Gauß-Verteilungen generiert, und benutzerdefinierter Rauschanteil ist möglich. Die Physik der Manipulation: Atome bewegen sich bei ausreichendem Strom; die Spitze wird im Laufe der Zeit stumpf und schärft sich wieder.

Google AdInline article slot
from amrl_transport.transport import SimulatorTransport
import numpy as np

with SimulatorTransport(seed=42) as stm:
    img = stm.scan_image(
        size_nm=5.0,
        offset_nm=np.array([0.0, 0.0]),
        pixel=128,
        bias_mv=100,
    )
    # img.img_forward — numpy-Array 128x128

Der Simulator ermöglicht die direkte Trainings von RL-Agenten auf einem Laptop. Der Übergang zu echter Hardware erfordert die Überbrückung der Sim-to-Real-Lücke.

Ersetzung des LabVIEW-Server DeepSPM

DeepSPM (Nature Communications, 2020) nutzt einen LabVIEW-TCP-Server zur Kommunikation mit Createc-Controllern. Das Protokoll wurde rekonstruiert: 6 Befehle – scan, tipshaping, tipclean, getparam, approach, movearea. Antworten sind binär.

Die Python-Implementierung mit asyncio ist voll kompatibel:

Google AdInline article slot
python -m amrl_transport.deepspm --transport simulator

Der DeepSPM-Code verbindet sich ohne Änderungen mit localhost:5556. LabVIEW (Kosten: 3.500 $/Jahr, Windows-only) wird durch plattformübergreifenden, MIT-licenzierten Code ersetzt.

Warteschlangensystem für parallele Aufgaben

RabbitMQ + Redis steuern die Aufgabenaufteilung über mehrere Mikroskope. Aufgaben werden über Pydantic-Modelle definiert: ManipulationTask, AtomTarget.

# Worker
python -m amrl_transport.cli worker --transport simulator --worker-id sim-01

# Aufgabe absenden
python -m amrl_transport.cli submit --atoms '[[0,0],[1,0],[0.5,0.866]]'

Unterstützt paralleles Scannen und Manipulieren über 3–5 Geräte. Graceful Shutdown und Retry-Backoff in Workern.

Google AdInline article slot

Integration in RL-Umgebungen

TransportEnv ist ein Drop-in-Ersatz für RealExpEnv von SINGROUP (Aalto University). Gym-kompatible Schnittstelle:

from amrl_transport.transport import SimulatorTransport
from amrl_transport.integration import TransportEnv

stm = SimulatorTransport(seed=42)
stm.connect()

env = TransportEnv(
    transport=stm,
    step_nm=0.2,
    max_mvolt=20,
    max_pcurrent_to_mvolt_ratio=2850,
    goal_nm=2.0,
)

state, info = env.reset()
next_state, reward, done, info = env.step(action)

Getrainierte Modelle lassen sich nahtlos von der Simulation auf echte Hardware übertragen.

Wichtige Funktionen der STM-Steuerung:

  • Atomare Auflösung bei der Abtastung
  • Laterale Manipulation (~10 Sekunden pro Atom)
  • Vertikale Manipulation
  • Spitzen-induzierte Chemie
  • Autonome Steuerung durch RL-Agenten

Testen und Architektur

41 Tests decken Protokolle, Simulator, COM/TCP-Simulatoren, asyncio-Server, Warteschlangen und Integration ab. Alle laufen ohne physische Ausrüstung:

$ pytest tests/ -v
... 41 passed in 2.34s

Architektur:

amrl_transport/
├── transport/           # ABC + Adapter
├── deepspm/            # asyncio-Server
├── queue/              # RabbitMQ/Redis
├── integration.py      # Gym-Umgebung
└── cli.py

Warum es wichtig ist

  • Einheitliche API für Createc, Nanonis und Simulator
  • Vollständige Emulation der STM-Physik ohne 500.000 $-Ausrüstung
  • Plattformübergreifende Alternative zu LabVIEW (MIT vs. 3.500 $/Jahr)
  • Direktes Gym-Environment für RL-Training zur atomaren Manipulation
  • Parallelisierung über mehrere Mikroskope

— Editorial Team

Advertisement 728x90

Weiterlesen