Powrót do strony głównej

STM sterowanie Python: symulator i RL

Biblioteka amrl-transport ujednolica sterowanie STM dla agentów RL. Symulator emuluje fizykę przemieszczania atomów, serwer asyncio zastępuje LabVIEW. Obsługa Createc/Nanonis, kolejki zadań RabbitMQ.

Sterowanie atomami za pomocą Pythona i agentów RL
Advertisement 728x90

Infrastruktura Pythona do sterowania STM i manipulacji atomami

Biblioteka amrl-transport zapewnia jednolity interfejs do skanujących mikroskopów tunelowych (STM). Klasa STMTransport definiuje 12 metod w jednostkach fizycznych: nanometry, mV, pA. Implementacja zależy od kontrolera — Createc, Nanonis lub symulator.

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: ...
    # jeszcze 8 metod

Metody obejmują skanowanie powierzchni, poziome i pionowe przemieszczanie atomów, kształtowanie igły oraz modyfikacje chemiczne. Agenty RL działają na abstrakcji niezależnej od platformy sprzętowej.

Symulator do rozwoju bez sprzętu

SimulatorTransport emuluje pełny cykl pracy STM. Powierzchnia generowana jest z atomów Gaussa, obsługuje się niestandardowy szum. Fizyka manipulacji: atom przesuwa się przy wystarczającym prądzie, igła się tępi i ostrzy.

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 — tablica numpy 128x128

Symulator umożliwia naukę agentów RL na laptopie. Przejście do sprzętu rzeczywistego wymaga uwzględnienia różnicy między symulacją a rzeczywistością.

Zastąpienie serwera LabVIEW DeepSPM

DeepSPM (Nature Communications, 2020) wykorzystuje serwer TCP LabVIEW do komunikacji z kontrolerem Createc. Protokół został przeanalizowany: 6 poleceń — scan, tipshaping, tipclean, getparam, approach, movearea. Odpowiedzi są w formacie binarnym.

Implementacja w Pythonie z asyncio jest całkowicie zgodna:

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

Kod DeepSPM podłącza się do localhost:5556 bez zmian. LabVIEW (licencja $3500/rok, Windows) zastępuje krosplatformowy kod MIT.

System kolejek do zadań równoległych

RabbitMQ + Redis organizują rozkład zadań między mikroskopami. Zadania opisane są modelami Pydantic: ManipulationTask, AtomTarget.

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

# Wysłanie zadania
python -m amrl_transport.cli submit --atoms '[[0,0],[1,0],[0.5,0.866]]'

Obsługiwane jest równoległe skanowanie i manipulacje na 3–5 urządzeniach. Obsługa bezpiecznego zakończenia i retry w workery.

Google AdInline article slot

Integracja z środowiskami RL

TransportEnv — gotowa do użycia zastępca RealExpEnv z SINGROUP (Aalto University). Interfejs zgodny z Gym:

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)

Wytrenowane modele można przenieść z symulatora na sprzęt.

Możliwości sterowania STM:

  • Rozdzielczość atomowa skanowania
  • Przesunięcie poziome (10 s/atom)
  • Manipulacja pionowa
  • Chemia indukowana igłą
  • Autonomiczne sterowanie agentami RL

Testowanie i architektura

41 testów obejmuje protokoły, symulator, mocki COM/TCP, serwer asyncio, kolejki, integrację. Wszystkie działają bez sprzętu:

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

Architektura:

amrl_transport/
├── transport/           # ABC + adaptery
├── deepspm/            # serwer asyncio
├── queue/              # RabbitMQ/Redis
├── integration.py      # Gym Env
└── cli.py

Co jest ważne

  • Jednolity API dla Createc, Nanonis, symulatora
  • Pełna emulacja fizyki STM bez sprzętu za $500 tys.
  • Krosplatformowa alternatywa dla LabVIEW (MIT vs $3500/rok)
  • Gotowe środowisko Gym do uczenia RL przemieszczania atomów
  • Wykonywanie zadań równoległych na kilku mikroskopach

— Editorial Team

Advertisement 728x90

Czytaj dalej