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í.
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í:
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.
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
Zatím žádné komentáře.