Jetson Thor上でOpenClawによりSO-Armを制御する
はじめに
このWikiでは、Jetson Thor上でOpenClawとLeRobotを組み合わせて、ローカルAIエージェントによりSO-Armを制御する方法を説明します。
NVIDIA Jetson AGX Thor は、ロボティクスおよびPhysical AIワークロード向けに設計された高性能エッジAIプラットフォームであり、認識・計画・制御のための強力なオンデバイス計算能力を提供します。
SO-Arm は、オープンソースで低コストなロボットアームプラットフォーム(SO-ARM100/SO-ARM101)であり、Embodied AI実験、遠隔操作、マニピュレーションタスク開発に広く利用されています。
OpenClaw は、ローカルのツールやモデルをオーケストレーションできるAIエージェントフレームワークです。本プロジェクトでは、OpenClawを高レベル制御インターフェースとして使用し、LeRobotがSO-Arm向けの低レベルモーター通信およびキャリブレーションユーティリティを提供します。

このガイドでは、OpenClawがエージェントのプランニングとタスクオーケストレーションを担当し、SO-Armの動作実行はLeRobotが担当します。
目次
- ハードウェアの準備
- Jetson Thor上でのシステムセットアップ
- OllamaをインストールしてローカルLLMを実行
- Jetson ThorにOpenClawをインストール
- SO-Armの接続とキャリブレーション
- 制御デモを実行
- 参考資料
ハードウェアの準備
デバイス一覧
- NVIDIA® Jetson AGX Thor™ Developer Kit ×1
- SO-ARM101 低コストAIアーム ×1
配線と接続
- SO-ArmコントローラボードをUSB経由でThorに接続します。
- 対応するDC電源アダプタをSO-Armコントローラボードに接続します。
- Thorの電源を入れ、その後アームコントローラボードの電源を入れます。
電源投入時のチェックリスト
- Thorが正常に起動し、ネットワークに接続できる。
- SO-Armコントローラボード上のLEDが点灯している。
- USB接続後にシリアルデバイスが現れる。
ls /dev/ttyACM*
ターミナル出力でシリアルノードが検出されれば、ハードウェア接続は正しく行われています。

Jetson Thor上でのシステムセットアップ
システムパッケージの更新
sudo apt update
sudo apt install -y nvidia-jetpack git curl ffmpeg python3-pip
python3 -m pip install -U pip
コア依存パッケージのインストール
Minicondaをインストールします(推奨):
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

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
LeRobot環境にPinocchioをインストールします:
conda install mamba -y
mamba install -c conda-forge pinocchio pinocchio-python libpinocchio -y
CUDAと周辺デバイスの確認
python -c "import torch; print(torch.cuda.is_available())"
lerobot-find-port
期待される結果:
torch.cuda.is_available()がTrueを出力する- アームのシリアルポートが検出される(例:
/dev/ttyACM0)
OllamaをインストールしてローカルLLMを実行
Ollamaをインストールします:
curl -fsSL https://ollama.com/install.sh | sh
モデルを取得します:
ollama pull qwen3.5:35b
このガイドでは qwen3.5:35b を例として使用します。性能やメモリ制約に応じて、別のOllamaモデルに置き換えることもできます。
Jetson ThorにOpenClawをインストール
OpenClawをインストール
curl -fsSL https://openclaw.ai/install.sh | bash
実行時パラメータの設定
~/.openclaw/openclaw.json を編集し、Ollamaをデフォルトのモデルプロバイダとして設定します:
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"
}
}
オプション: Ollamaが提供するスクリプトを直接使用して、OpenClawの設定ファイルを素早くセットアップすることもできます。
ollama launch openclaw --model qwen3.5
追加設定
SO-Arm制御スキルをインストールします:
- soarm-control Skill をダウンロードします
- それを
~/.openclaw/workspace/skillsに展開します
ロボット記述ファイルを準備します:
- SO-ARM101 URDF をダウンロードします
- それを
~/.openclaw/workspace/skills/soarm-control/referencesに移動します
[任意] 検出モデルを追加します:
- 検出モデル(YoloV11n)をこちらを参考に学習させます
- 検出モデル(
best.pt)を~/.openclaw/workspace/skills/soarm-control/scriptsに移動します
OpenClawゲートウェイを再起動します:
openclaw gateway restart
WebUIを開きます:
http://127.0.0.1:18789/wiki

SO-Armの接続とキャリブレーション
シリアルポートの権限と検出
conda activate lerobot
lerobot-find-port
sudo chmod 666 /dev/ttyACM*
初期キャリブレーション
フォロワーアームをキャリブレーションします:
lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=openclaw_soarm
キャリブレーションファイルは次の場所に保存されます:
~/.cache/huggingface/lerobot/calibration/
完全なキャリブレーション手順については、以下を参照してください: LeRobotにおけるSO-Arm - Calibrate
制御デモを実行
バックエンドサービスの起動
OpenClawとLeRobotの環境が準備できていることを確認します:
openclaw gateway restart
conda activate lerobot
cd ~/.openclaw/workspace/skills/soarm-control
bash scripts/start_server.sh &
基本モーションタスクの実行
OpenClaw WebUI でロボット制御の指示を入力します。OpenClaw はプロンプトを解析し、インストール済みの soarm-control スキルを呼び出して、アームを目標位置まで動かします。
参考資料
- https://docs.openclaw.ai/
- https://wiki.seeedstudio.com/ja/local_openclaw_on_recomputer_jetson/
- https://unstabledemos.com/tutorials/openclaw-orin-nano/
- https://wiki.seeedstudio.com/ja/lerobot_so100m_new/
- https://github.com/huggingface/lerobot
- https://github.com/TheRobotStudio/SO-ARM100
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに合わせて選べる、複数のコミュニケーションチャネルをご用意しています。

