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.

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 manejada por LeRobot.
Tabla de contenidos
- Preparación de hardware
- Configuración del sistema en Jetson Thor
- Instalar Ollama y ejecutar un LLM local
- Instalar OpenClaw en Jetson Thor
- Conectar y calibrar SO-Arm
- Ejecutar demostración de control
- 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
git clone https://github.com/huggingface/lerobot.git ~/lerobot
cd ~/lerobot
pip install -e .
pip uninstall torch torchvision
pip install torch torchvision --index-url https://pypi.jetson-ai-lab.io
Instalar Pinocchio en el entorno LeRobot:
conda install pinocchio -c conda-forge
Verificar CUDA y dispositivos periféricos
python -c "import torch; print(torch.cuda.is_available())"
lerobot-find-port
Resultado esperado:
torch.cuda.is_available()imprimeTrue- 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-vl:9b
Esta guía utiliza qwen3-vl:9b 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:
{
"agents": {
"defaults": {
"models": {
"ollama": {}
},
"model": {
"primary": "ollama/qwen3-vl:9b"
}
}
},
"models": {
"providers": {
"ollama": {
"baseUrl": "http://127.0.0.1:11434/v1",
"apiKey": "ollama-local",
"api": "openai-completions",
"models": [
{
"id": "qwen3-vl:9b",
"name": "Qwen3 VL 9B",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000,
"maxTokens": 8192
}
]
}
}
}
}
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:
- Descarga soarm-control Skill
- Extráela en
~/.openclaw/workspace/skills
Preparar archivo de descripción del robot:
- Descarga SO-ARM101 URDF
- Muévelo a
~/.openclaw/workspace/skills/soarm-control/references
Reinicia la pasarela de OpenClaw:
openclaw gateway restart
Abrir WebUI:
http://127.0.0.1:18789/
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/
Para una guía completa de calibración, consulta: SO-Arm en LeRobot - Calibrate
Ejecutar demostración de control
Iniciar servicio de OpenClaw
Asegúrate de que los entornos de OpenClaw y LeRobot estén listos:
openclaw gateway restart
conda activate lerobot
Ejecutar tarea básica de movimiento
En OpenClaw WebUI, introduce instrucciones de control del robot. OpenClaw analizará tu prompt y llamará a la skill soarm-control instalada para mover el brazo a la posición objetivo.
El vídeo muestra tres comandos:
- Mover el efector final del brazo robótico hacia arriba 20 cm.
- Luego moverlo hacia adelante 20 cm, manteniendo la altura sin cambios.
- Volver a la posición inicial.
Las respuestas de OpenClaw a estos tres comandos coinciden con el comportamiento esperado.
Referencias
- https://docs.openclaw.ai/
- https://wiki.seeedstudio.com/es/local_openclaw_on_recomputer_jetson/
- https://unstabledemos.com/tutorials/openclaw-orin-nano/
- https://wiki.seeedstudio.com/es/lerobot_so100m_new/
- https://github.com/huggingface/lerobot
- https://github.com/TheRobotStudio/SO-ARM100
Soporte técnico y debate sobre el producto
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes 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.

