Seeed-Jetson-DevelopTool / gr00t-n1-5-deploy-thor
AGENTS.md57 starsChanged 4 months agoMITView on GitHub
Fine-tune NVIDIA Isaac GR00T N1.5 for the LeRobot SO-101 arm and deploy on Jetson AGX Thor. Covers Thor flashing, dev environment setup, SO-ARM data collection, cloud training via NVIDIA Brev, and GR00T N1.5 inference on Thor. Requires Jetson AGX Thor and SO-101 arm hardware.
- Installs packages
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository297 other files it gives its agents.
- AGENTS.mdAGENTS.md
- ai-nvrAGENTS.md
- allxon-ota-updateAGENTS.md
- allxon-setupAGENTS.md
- alwaysai-setupAGENTS.md
- backup-restoreAGENTS.md
- bsp-source-buildAGENTS.md
- clawdbot-developmentAGENTS.md
- cochl-sense-setupAGENTS.md
- cvedia-setupAGENTS.md
- dashcamnet-xavier-nx-multicameraAGENTS.md
- deciai-setupAGENTS.md
- deepseek-quick-deployAGENTS.md
- deploy-deepseek-mlcAGENTS.md
- deploy-depth-anything-v3AGENTS.md
- deploy-diaAGENTS.md
- deploy-efficient-vision-engineAGENTS.md
- deploy-frigateAGENTS.md
- deploy-live-vlm-webuiAGENTS.md
- deploy-nvbloxAGENTS.md
- deploy-ollama-anythingllmAGENTS.md
- deploy-riva-llama2AGENTS.md
- developtool-deviceAGENTS.md
- disk-encryptionAGENTS.md
- diy-bsp-buildAGENTS.md
- ethercat-communicationAGENTS.md
- ethercat-setupAGENTS.md
- finetune-llm-llama-factoryAGENTS.md
- fix-browser-snap-jetsonAGENTS.md
- gapi-setupAGENTS.md
- generative-ai-introAGENTS.md
- gpt-oss-liveAGENTS.md
- gr00t-n1-6-deploy-agxAGENTS.md
- hardhat-setupAGENTS.md
- hybrid-bsp-dk-to-recomputerAGENTS.md
- imx477-a603-setupAGENTS.md
- j501-viola-fruit-sortingAGENTS.md
- jetpack5-ssd-boot-fixAGENTS.md
- jetpack-flash-wsl2AGENTS.md
- jetpack-jetson-overviewAGENTS.md
- jetpack-ota-updateAGENTS.md
- jetson-ai-toolsAGENTS.md
- jetson-docker-setupAGENTS.md
- jetson-faqAGENTS.md
- jetson-pc-wired-shareAGENTS.md
- jetson-project-galleryAGENTS.md
- jetson-resource-indexAGENTS.md
- jetson-tutorial-exercisesAGENTS.md
- ko-module-buildAGENTS.md
- l4t-differencesAGENTS.md
- langchain-output-formattingAGENTS.md
- lerobot-env-setupAGENTS.md
- llama-cpp-rpc-distributedAGENTS.md
- llm-interface-controlAGENTS.md
- local-chatbot-multimodalAGENTS.md
- local-chatbot-physicalAGENTS.md
- local-llm-text-to-imageAGENTS.md
- local-rag-llamaindexAGENTS.md
- lumeo-setupAGENTS.md
- maskcam-nanoAGENTS.md
- The first 60 shown.
The file
We split this AGENTS.md into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Run one phase at a time. After each phase:
- Very specific: line 14
If output contains [STOP] → stop immediately, consult the failure decision tree below.
- Very specific: line 15
If output ends with [OK] → tell the user "Phase N complete" and proceed to the next phase.
- Distinctive: line 36
Create bootable USB with Balena Etcher (https://etcher.balena.io/):
- Distinctive: line 45
Wait ~15 minutes for flashing, then wait for Update Progress to reach 100%.
- Distinctive: line 88
Follow the complete SO-ARM tutorial at: https://wiki.seeedstudio.com/lerobot_so100m_new/
- Distinctive: line 95
Add cameras (wrist + front)
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Fine-tune GR00T N1.5 for LeRobot SO-101 Arm and Deploy on Jetson Thor
Execution model
Run one phase at a time. After each phase:
- Relay all command output to the user.
- If output contains
[STOP]→ stop immediately, consult the failure decision tree below. - If output ends with
[OK]→ tell the user "Phase N complete" and proceed to the next phase.
Prerequisites
| Requirement | Details |
| Hardware | NVIDIA Jetson AGX Thor Developer Kit |
| Robot arm | LeRobot SO-101 (leader + follower) |
| Cameras | 2× USB cameras (wrist + front) |
| Flashing | USB drive ≥16GB, monitor, DP/HDMI cable, 240W+ power, USB keyboard |
| Cloud training | GPU with ≥25GB VRAM (Ampere or newer — V100 not supported) |
| System image | Thor v38.2 (latest as of Sept 2025) |
Phase 1 — Flash Thor system image (~20 min)
Download the ISO image from https://developer.nvidia.com/embedded/jetpack/downloads (select Thor 38.2).
Create bootable USB with Balena Etcher (https://etcher.balena.io/):
- Select the ISO image
- Select the USB drive as target
- Click Flash and wait for completion
Insert USB, keyboard, display cable, and power into Thor. Boot and select:
Boot Manager→ select USB drive →Esc→ContinueJetson Thor options→Flash Jetson AGX Thor Developer Kit on NVMe
Wait ~15 minutes for flashing, then wait for Update Progress to reach 100%.
[OK] when Ubuntu 24.04 initial setup screen appears. [STOP] if screen goes black — see FAQ in source.
Phase 2 — Install development dependencies (~10–20 min)
Install JetPack SDK:
sudo apt update
sudo apt install nvidia-jetpackInstall additional tools:
sudo apt install firefox python3 python3-pip
sudo pip3 install -U pip
sudo pip3 install jetson-statsInstall 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
conda --versionFor GPU PyTorch on Thor, download pre-compiled wheels (Python 3.10 + CUDA 13):
- PyTorch 2.9 and TorchVision 0.24 wheels from Seeed SharePoint links in
references/source.body.md - Additional wheels at https://pypi.jetson-ai-lab.io/sbsa/cu130
[OK] when conda --version and python3 -c "import torch; print(torch.cuda.is_available())" both succeed.
Phase 3 — Data collection with SO-ARM
Follow the complete SO-ARM tutorial at: https://wiki.seeedstudio.com/lerobot_so100m_new/
Key steps:
- Configure motors before assembly
- Assemble leader and follower arms
- Calibrate both arms (do NOT connect cameras during calibration)
- Add cameras (wrist + front)
- Record dataset episodes
On Thor, two USB cameras must be on different USB hub controllers. Use one USB-A port and one external USB-C hub.
[OK] when dataset is collected and saved locally.
Phase 4 — Train GR00T N1.5 on cloud (~varies)
Set up NVIDIA Brev (https://login.brev.nvidia.com/signin) or equivalent cloud GPU.
On the cloud server, install Conda and clone Isaac-GR00T:
mkdir -p ~/miniconda3 && cd ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -u -p ~/miniconda3
source ~/miniconda3/bin/activate
conda init --allgit clone https://github.com/NVIDIA/Isaac-GR00T
cd Isaac-GR00T
conda create -n gr00t python=3.10
conda activate gr00t
pip install --upgrade setuptools
pip install -e .[base]
pip install --no-build-isolation flash-attn==2.7.1.post4Fine-tune:
python scripts/gr00t_finetune.py \
--dataset-path ./demo_data/so101-table-cleanup/ \
--num-gpus 1 \
--output-dir ./so101-checkpoints \
--max-steps 10000 \
--data-config so100_dualcam \
--video-backend torchvision_avDefault fine-tuning requires ~25GB VRAM. Add
--no-tune_diffusion_modelto reduce VRAM usage.
Download the trained checkpoint from the cloud server.
[OK] when checkpoint files are available locally on Thor.
Phase 5 — Run GR00T N1.5 inference on Thor
Pull the reference Docker image (or use your own environment):
docker pull johnnync/isaac-gr00t:r38.2.arm64-sbsa-cu130-24.04Start the container:
sudo docker run --rm -it \
--network=host \
-e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video,graphics \
--runtime nvidia \
--privileged \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /etc/X11:/etc/X11 \
--device /dev/nvhost-vic \
-v /dev:/dev \
johnnync/isaac-gr00t:r38.2.arm64-sbsa-cu130-24.04Inside the container, install GR00T:
git clone https://github.com/NVIDIA/Isaac-GR00T.git
cd Isaac-GR00T
pip install --upgrade setuptools
pip install -e .[thor]Terminal 1 — Start inference server:
python scripts/inference_service.py --server \
--model_path ./so101-checkpoints \
--embodiment-tag new_embodiment \
--data-config so100_dualcam \
--denoising-steps 4Terminal 2 — Start inference client (in same container via docker exec):
python examples/SO-100/eval_lerobot.py \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_awesome_follower_arm \
--robot.cameras="{ wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, front: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \
--policy_host=0.0.0.0 \
--lang_instruction="Grab pens and place into pen holder."Replace index_or_path with your camera indices (find with ls /dev/video*).
[OK] when the robot arm executes the learned behavior.
Failure decision tree
| Symptom | Action |
| Thor screen goes black during flash | Enable SoC Display Hand-Off in UEFI setup menu. Flashing continues in background. |
| No HDMI signal after flash | Switch to DisplayPort (DP) connector. |
| No keyboard input during flash | Use a wired USB keyboard. Wireless keyboards may not work. |
| KVM no video output | Connect monitor directly to Thor, bypassing KVM. |
| Cloud fine-tuning "GPU not supported" | Use Ampere or newer GPU (RTX A6000, RTX 4090). V100 is not supported. |
/dev/ttyACM0 not found for arm | Thor may lack CH34x drivers. Install from https://github.com/juliagoda/CH341SER |
| Type-C hub not recognized | Use the Type-C port closest to the QSFP28 connector. |
| OOM during fine-tuning | Add --no-tune_diffusion_model flag. Or use a GPU with more VRAM. |
| Two USB cameras can't stream simultaneously | Cameras must be on different USB hub controllers. Use USB-A + external USB-C hub. |
| ACT inference fails in GR00T Docker image | The GR00T Docker image (Python 3.12) doesn't support LeRobot ACT inference. Use external environment. |
| User password incorrect after flash with capture card | Keyboard input bug with capture cards. Re-flash and verify password carefully. |
Reference files
references/source.body.md— full original Seeed tutorial with Thor flashing screenshots, Docker image pip list, Brev platform walkthrough, and FAQ (reference only)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

