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 perimetral 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 coste (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 agentes 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 se gestiona con 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 coste
Kit de desarrollo NVIDIA® Jetson AGX Thor™ SO-ARM101 Brazo de IA de bajo coste

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 comprobació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.10
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 sustituirlo 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

[Optional] 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...