Zpět na domů

STM ovládání Python: simulátor a RL

Knihovna amrl-transport unifikuje ovládání STM pro RL-agenty. Simulátor emuluje fyziku přesouvání atomů, asyncio-server nahrazuje LabVIEW. Podpora Createc/Nanonis, fronty úkolů RabbitMQ.

Ovládání atomů přes Python a RL-agenty
Advertisement 728x90

Pythonovská infrastruktura pro řízení STM a manipulaci s atomy

Knihovna amrl-transport poskytuje jednotný rozhraní pro skenující tunelové mikroskopy (STM). Třída STMTransport definuje 12 metod v fyzikálních jednotkách: nanometry, milivolty, pikoamper. Implementace závisí na ovladači — Createc, Nanonis nebo simulátor.

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: ...
    # ještě 8 metod

Metody zahrnují skenování povrchu, laterální a vertikální přesun atomů, tvorbu špičky a chemické manipulace. RL-agenty pracují s abstrakcí, nezávisle na hardwarové platformě.

Simulátor pro vývoj bez vybavení

SimulatorTransport emuluje kompletní cyklus práce STM. Povrch generuje s Gaussovými atomy, podporuje nastavitelný šum. Fyzika manipulací: atom se přesune při dostatečném proudu, špička se zaobla a opět zpřesní.

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

Simulátor umožňuje trénovat RL-agenty na notebooku. Přechod k reálnému vybavení vyžaduje úpravy kvůli rozdílu mezi simulací a realitou.

Nahrazení LabVIEW serveru DeepSPM

DeepSPM (Nature Communications, 2020) používá LabVIEW TCP-server pro komunikaci s ovladačem Createc. Protokol byl reverzně inženýrsky analyzován: 6 příkazů — scan, tipshaping, tipclean, getparam, approach, movearea. Odpovědi jsou v binárním formátu.

Pythonová implementace na asyncio je plně kompatibilní:

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

DeepSPM kód se připojuje na localhost:5556 bez změn. LabVIEW (licenční náklady $3500/rok, Windows) je nahrazen křížově platným kódem pod MIT licencí.

Systém front pro paralelní úlohy

RabbitMQ + Redis organizují distribuci úloh mezi mikroskopy. Úlohy jsou popsány modely Pydantic: ManipulationTask, AtomTarget.

# Pracovník
python -m amrl_transport.cli worker --transport simulator --worker-id sim-01

# Odeslání úlohy
python -m amrl_transport.cli submit --atoms '[[0,0],[1,0],[0.5,0.866]]'

Podporuje se paralelní skenování a manipulace na 3–5 zařízeních. Graceful shutdown a backoff v pracovnících.

Google AdInline article slot

Integrace s RL prostředím

TransportEnv je přímá náhrada pro RealExpEnv z SINGROUP (Aalto University). Gym-kompatibilní rozhraní:

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)

Trénované modely lze přenést ze simulátoru do reálného provozu.

Možnosti řízení STM:

  • Atomární rozlišení skenování
  • Laterální přesun (10 s/atome)
  • Vertikální manipulace
  • Chemie indukovaná špičkou
  • Autonomní řízení RL-agentů

Testování a architektura

41 testů pokrývá protokoly, simulátor, mocky COM/TCP, asyncio server, fronty, integraci. Všechny probíhají bez vybavení:

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

Architektura:

amrl_transport/
├── transport/           # ABC + adaptéry
├── deepspm/            # asyncio server
├── queue/              # RabbitMQ/Redis
├── integration.py      # Gym Env
└── cli.py

Co je důležité

  • Jednotné API pro Createc, Nanonis, simulátor
  • Plná emulace fyziky STM bez vybavení za 500 tis. USD
  • Křížově platná náhrada LabVIEW (MIT vs $3500/rok)
  • Přímá Gym-prostředí pro trénování manipulace s atomy
  • Paralelní provádění úloh na několika mikroskopech

— Editorial Team

Advertisement 728x90

Číst dál