Pular para o conteúdo principal

Controlar SO-Arm com OpenClaw no Jetson Thor

Introdução

Este wiki explica como combinar OpenClaw e LeRobot no Jetson Thor para controlar um SO-Arm com um agente de IA local.

NVIDIA Jetson AGX Thor é uma plataforma de IA de borda de alto desempenho projetada para robótica e cargas de trabalho de IA física, fornecendo forte capacidade de computação local para percepção, planejamento e controle.

SO-Arm é uma plataforma de braço robótico de baixo custo e código aberto (SO-ARM100/SO-ARM101) amplamente utilizada para experimentos de IA incorporada, teleoperação e desenvolvimento de tarefas de manipulação.

OpenClaw é um framework de agente de IA que pode orquestrar ferramentas e modelos locais. Neste projeto, o OpenClaw é usado como a interface de controle de alto nível, enquanto o LeRobot fornece a comunicação de baixo nível com os motores e utilitários de calibração para o SO-Arm.

nota

Neste guia, o OpenClaw lida com o planejamento do agente e a orquestração de tarefas, enquanto a execução de movimento do SO-Arm é tratada pelo LeRobot.

Sumário

  1. Preparação de Hardware
  2. Configuração do Sistema no Jetson Thor
  3. Instalar Ollama e Executar um LLM Local
  4. Instalar OpenClaw no Jetson Thor
  5. Conectar e Calibrar SO-Arm
  6. Executar Demo de Controle
  7. Referências

Preparação de Hardware

Lista de Dispositivos

  • 1x Kit de Desenvolvimento NVIDIA® Jetson AGX Thor™
  • 1x SO-ARM101 Braço de IA de Baixo Custo
Kit de Desenvolvimento NVIDIA® Jetson AGX Thor™ SO-ARM101 Braço de IA de Baixo Custo

Fiação e Conexão

  • Conecte a placa controladora do SO-Arm ao Thor via USB.
  • Conecte o adaptador de energia DC correspondente à placa controladora do SO-Arm.
  • Ligue o Thor e depois ligue a placa controladora do braço.

Checklist de Inicialização

  • Thor inicializa normalmente e a rede está disponível.
  • Os LEDs da placa controladora do SO-Arm estão acesos.
  • O dispositivo serial aparece após a conexão USB.
ls /dev/ttyACM*

Se um nó serial for detectado na saída do terminal, a conexão de hardware está correta.

Configuração do Sistema no Jetson Thor

Atualizar Pacotes do Sistema

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

Instalar Dependências Principais

Instale o 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

Crie o ambiente 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

Instale o Pinocchio no ambiente LeRobot:

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

Verificar CUDA e Dispositivos Periféricos

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

Resultado esperado:

  • torch.cuda.is_available() imprime True
  • portas seriais do braço são detectadas (por exemplo /dev/ttyACM0)

Instalar Ollama e Executar um LLM Local

Instale o Ollama:

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

Baixe um modelo:

ollama pull qwen3.5:35b
info

Este guia usa qwen3.5:35b como exemplo. Você pode substituí-lo por outro modelo Ollama com base nas suas restrições de desempenho e memória.

Instalar OpenClaw no Jetson Thor

Instalar OpenClaw

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

Configurar Parâmetros de Execução

Edite ~/.openclaw/openclaw.json e defina o Ollama como provedor de modelo padrão:

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: você também pode usar diretamente o script fornecido pelo Ollama para configurar rapidamente o arquivo de configuração do OpenClaw. ollama launch openclaw --model qwen3.5

Mais Configurações

Instale a skill de controle do SO-Arm:

Prepare o arquivo de descrição do robô:

  • Baixe o SO-ARM101 URDF
  • Mova-o para ~/.openclaw/workspace/skills/soarm-control/references

[Opcional] Adicionar modelo de detecção:

  • Treine um modelo de detecção (YoloV11n) conforme referência aqui
  • Mova o modelo de detecção (best.pt) para ~/.openclaw/workspace/skills/soarm-control/scripts

Reinicie o gateway do OpenClaw:

openclaw gateway restart

Abra o WebUI:

http://127.0.0.1:18789/wiki

Conectar e Calibrar SO-Arm

Permissão e Detecção da Porta Serial

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

Calibração Inicial

Calibre o braço seguidor:

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

Os arquivos de calibração são salvos em:

~/.cache/huggingface/lerobot/calibration/

nota

Para um passo a passo completo de calibração, consulte: SO-Arm no LeRobot - Calibrate

Executar Demo de Controle

Iniciar Serviço de Backend

Certifique-se de que os ambientes OpenClaw e LeRobot estão prontos:

openclaw gateway restart

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

Executar Tarefa Básica de Movimento

No OpenClaw WebUI, insira instruções de controle do robô. O OpenClaw irá analisar seu prompt e chamar a skill soarm-control instalada para mover o braço até a posição alvo.

Referências

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...