Saltar al contenido principal

Controlar SO-Arm con OpenClaw en Jetson Thor

Introducción​

Este wiki explica cómo combinar OpenClaw y LeRobot en Jetson Thor para controlar un SO-Arm con un agente de IA local.

NVIDIA Jetson AGX Thor es una plataforma de IA de borde de alto rendimiento diseñada para robótica y cargas de trabajo de IA física, que proporciona una potente computación en el dispositivo para percepción, planificación y control.

SO-Arm es una plataforma de brazo robótico de código abierto y bajo costo (SO-ARM100/SO-ARM101) que se utiliza ampliamente para experimentos de IA encarnada, teleoperación y desarrollo de tareas de manipulación.

OpenClaw es un framework de agente de IA que puede orquestar herramientas y modelos locales. En este proyecto, OpenClaw se utiliza como la interfaz de control de alto nivel, mientras que LeRobot proporciona las utilidades de comunicación de motor de bajo nivel y calibración para SO-Arm.

nota

En esta guía, OpenClaw se encarga de la planificación del agente y la orquestación de tareas, mientras que la ejecución del movimiento de SO-Arm es gestionada por LeRobot.

Tabla de contenidos​

  1. Preparación de hardware
  2. Configuración del sistema en Jetson Thor
  3. Instalar Ollama y ejecutar un LLM local
  4. Instalar OpenClaw en Jetson Thor
  5. Conectar y calibrar SO-Arm
  6. Ejecutar demostración de control
  7. Referencias

Preparación de hardware​

Lista de dispositivos​

  • 1x Kit de desarrollo NVIDIA® Jetson AGX Thor™
  • 1x SO-ARM101 Brazo de IA de bajo costo
Kit de desarrollo NVIDIA® Jetson AGX Thor™ SO-ARM101 Brazo de IA de bajo costo

Cableado y conexión​

  • Conecta la placa controladora de SO-Arm a Thor mediante USB.
  • Conecta el adaptador de alimentación de CC correspondiente a la placa controladora de SO-Arm.
  • Enciende Thor y luego enciende la placa controladora del brazo.

Lista de verificación de encendido​

  • Thor arranca con normalidad y la red está disponible.
  • Los LED de la placa controladora de SO-Arm están encendidos.
  • El dispositivo serie aparece después de la conexión USB.
ls /dev/ttyACM*

Si se detecta un nodo serie en la salida del terminal, la conexión de hardware es correcta.

Configuración del sistema en Jetson Thor​

Actualizar paquetes del sistema​

sudo apt update
sudo apt install -y nvidia-jetpack git curl ffmpeg python3-pip
python3 -m pip install -U pip

Instalar dependencias principales​

Instalar Miniconda (recomendado):

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
chmod +x Miniconda3-latest-Linux-aarch64.sh
./Miniconda3-latest-Linux-aarch64.sh
source ~/.bashrc

Crear entorno LeRobot:

conda create -y -n lerobot python=3.12
conda activate lerobot
pip install 'lerobot[feetech]'
pip uninstall torch torchvision
pip install torch torchvision --index-url https://pypi.jetson-ai-lab.io

Instalar Pinocchio en el entorno LeRobot:

conda install mamba -y
mamba install -c conda-forge pinocchio pinocchio-python libpinocchio -y

Verificar CUDA y dispositivos periféricos​

python -c "import torch; print(torch.cuda.is_available())"
lerobot-find-port

Resultado esperado:

  • torch.cuda.is_available() imprime True
  • Se detectan los puertos serie del brazo (por ejemplo /dev/ttyACM0)

Instalar Ollama y ejecutar un LLM local​

Instalar Ollama:

curl -fsSL https://ollama.com/install.sh | sh

Descargar un modelo:

ollama pull qwen3.5:35b
info

Esta guía utiliza qwen3.5:35b como ejemplo. Puedes reemplazarlo por otro modelo de Ollama según tus restricciones de rendimiento y memoria.

Instalar OpenClaw en Jetson Thor​

Instalar OpenClaw​

curl -fsSL https://openclaw.ai/install.sh | bash

Configurar parámetros de ejecución​

Edita ~/.openclaw/openclaw.json y establece Ollama como el proveedor de modelo predeterminado:

openclaw.json
{
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4,
"model": {
"primary": "ollama/qwen3.5:35b"
},
"subagents": {
"maxConcurrent": 8
},
"workspace": "/home/seeed/.openclaw/workspace"
},
"list": [
{
"id": "main",
"tools": {
"profile": "full"
}
}
]
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"ownerDisplay": "raw",
"restart": true
},
"gateway": {
"auth": {
"mode": "token",
"token": "98aefed421e9a506a3174dab0575fd3cc36c9d15b856a894"
},
"bind": "loopback",
"mode": "local",
"nodes": {
"denyCommands": [
"camera.snap",
"camera.clip",
"screen.record",
"contacts.add",
"calendar.add",
"reminders.add",
"sms.send"
]
},
"port": 18789,
"tailscale": {
"mode": "off",
"resetOnExit": false
}
},
"messages": {
"ackReactionScope": "group-mentions"
},
"meta": {
"lastTouchedAt": "2026-03-10T06:45:16.014Z",
"lastTouchedVersion": "2026.3.8"
},
"models": {
"providers": {
"ollama": {
"api": "ollama",
"apiKey": "ollama-local",
"baseUrl": "http://127.0.0.1:11434",
"models": [
{
"contextWindow": 262144,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "qwen3.5:35b",
"input": [
"text",
"image"
],
"name": "qwen3.5:35b",
"reasoning": true
},
{
"contextWindow": 262144,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "qwen3.5",
"input": [
"text",
"image"
],
"name": "qwen3.5",
"reasoning": true
}
]
}
}
},
"session": {
"dmScope": "per-channel-peer"
},
"tools": {
"profile": "coding"
},
"wizard": {
"lastRunAt": "2026-03-10T02:17:28.382Z",
"lastRunCommand": "onboard",
"lastRunMode": "local",
"lastRunVersion": "2026.3.8"
}
}

nota

Opcional: también puedes usar directamente el script proporcionado por Ollama para configurar rápidamente el archivo de configuración de OpenClaw. ollama launch openclaw --model qwen3.5

Más configuración​

Instalar la skill de control de SO-Arm:

Preparar archivo de descripción del robot:

  • Descarga SO-ARM101 URDF
  • Muévelo a ~/.openclaw/workspace/skills/soarm-control/references

[Opcional] Añadir modelo de detección:

  • Entrena un modelo de detección (YoloV11n) consulta aquí
  • Mueve el modelo de detección (best.pt) a ~/.openclaw/workspace/skills/soarm-control/scripts

Reinicia la pasarela de OpenClaw:

openclaw gateway restart

Abrir WebUI:

http://127.0.0.1:18789/wiki

Conectar y calibrar SO-Arm​

Permisos y detección del puerto serie​

conda activate lerobot
lerobot-find-port
sudo chmod 666 /dev/ttyACM*

Calibración inicial​

Calibrar el brazo seguidor:

lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=openclaw_soarm

Los archivos de calibración se guardan en:

~/.cache/huggingface/lerobot/calibration/

nota

Para una guía completa de calibración, consulta: SO-Arm en LeRobot - Calibrate

Ejecutar demostración de control​

Iniciar servicio backend​

Asegúrate de que los entornos de OpenClaw y LeRobot estén listos:

openclaw gateway restart

conda activate lerobot
cd ~/.openclaw/workspace/skills/soarm-control
bash scripts/start_server.sh &

Ejecutar tarea de movimiento básica​

En OpenClaw WebUI, introduce instrucciones de control del robot. OpenClaw analizará tu indicación y llamará a la habilidad soarm-control instalada para mover el brazo a la posición objetivo.

Referencias​

Soporte técnico y debate sobre productos​

Gracias por elegir nuestros productos. Estamos aquí para ofrecerte distintos tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...