Volver al inicio

Control STM con Python: simulador y RL

La biblioteca amrl-transport unifica el control STM para agentes RL. El simulador emula la física de manipulación de átomos, el servidor asyncio reemplaza LabVIEW. Soporte para Createc/Nanonis, colas de tareas RabbitMQ.

Control de átomos vía Python y agentes RL
Advertisement 728x90

Infraestructura de Python para el Control STM y Manipulación Atómica

La biblioteca amrl-transport ofrece una interfaz uniforme para microscopios de efecto túnel (STM). La clase STMTransport define 12 métodos que utilizan unidades físicas: nanómetros, milivoltios y picoamperios. Su implementación varía según el controlador: Createc, Nanonis o simulador.

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: ...
    # más 8 métodos

Los métodos incluyen escaneo de superficies, manipulación atómica lateral y vertical, conformado de punta y operaciones químicas. Los agentes de aprendizaje por refuerzo (RL) operan sobre una capa de abstracción independiente de la plataforma de hardware.

Simulación para desarrollo sin hardware

SimulatorTransport emula todo el flujo de trabajo del STM. Los átomos de la superficie se generan con distribuciones gaussianas, y se soporta ruido personalizable. Física de manipulación: los átomos se mueven bajo corriente suficiente; la punta se va desgastando y afilando con el tiempo.

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

El simulador permite entrenar agentes RL directamente en una laptop. Migrar a hardware real requiere cerrar la brecha entre simulación y realidad.

Reemplazo del servidor LabVIEW DeepSPM

DeepSPM (Nature Communications, 2020) utiliza un servidor TCP de LabVIEW para comunicarse con controladores Createc. El protocolo fue reverse-engineerizado: 6 comandos — scan, tipshaping, tipclean, getparam, approach, movearea. Las respuestas son binarias.

La implementación en Python con asyncio es totalmente compatible:

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

El código de DeepSPM se conecta a localhost:5556 sin cambios. LabVIEW (que cuesta $3.500/año y solo funciona en Windows) se reemplaza por código multiplataforma con licencia MIT.

Sistema de colas para tareas paralelas

RabbitMQ + Redis gestionan la distribución de tareas entre múltiples microscopios. Las tareas se definen mediante modelos Pydantic: ManipulationTask, AtomTarget.

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

# Enviar una tarea
python -m amrl_transport.cli submit --atoms '[[0,0],[1,0],[0.5,0.866]]'

Soporta escaneo y manipulación paralela en 3–5 instrumentos. Apagado ordenado y reintento con backoff en los trabajadores.

Google AdInline article slot

Integración con entornos de RL

TransportEnv es un reemplazo directo de RealExpEnv de SINGROUP (Universidad Aalto). Interfaz compatible con 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)

Los modelos entrenados se transfieren sin problemas desde la simulación al hardware real.

Características clave del control STM:

  • Escaneo con resolución atómica
  • Manipulación lateral (~10 segundos por átomo)
  • Manipulación vertical
  • Química inducida por punta
  • Control autónomo mediante agentes RL

Pruebas y arquitectura

41 pruebas cubren protocolos, simulador, mocks COM/TCP, servidor asyncio, colas e integración. Todas se ejecutan sin equipo físico:

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

Arquitectura:

amrl_transport/
├── transport/           # ABC + adaptadores
├── deepspm/            # servidor asyncio
├── queue/              # RabbitMQ/Redis
├── integration.py      # Entorno Gym
└── cli.py

Por qué importa

  • API unificada para Createc, Nanonis y simulador
  • Emulación completa de física STM sin equipos de $500K
  • Alternativa multiplataforma a LabVIEW (MIT vs $3.500/año)
  • Entorno Gym listo para usar para entrenar RL en manipulación atómica
  • Ejecución paralela en múltiples microscopios

— Editorial Team

Advertisement 728x90

Leer después