
前情提要
项目Link:https://github.com/embodied-dobot/x-trainer
比赛赛题:https://github.com/embodied-dobot/x-trainer/tree/dobot-challenge
看前提示
不提供100%回复的技术支持服务,本文主要面向懂一点Linux,但对于部署环境有麻烦的用户,可以结合本文和AI助手来自行部署。
项目概述
简单地说就是IsaacSim做的仿真,项目的话用Lerobot框架做训练,项目的话推荐使用源代码+Anaconda做部署,但是实际上这样做的话会污染现有的环境(因为CUDA要对应环境,且lsaacsim装的也很痛苦),所以作者还提供了Docker这个安装方法,这里主讲这个。
这里简单说一下这个项目给出的Docker部署思路:
首先拉一个Isaaclab2.1.0的image,把项目目录用volume透传进去,随后装一下专有的包。
先期准备
硬件准备:有NvidiaGPU的电脑一台。
首先装双系统,不建议用wsl或者其他方式。系统这里装的Ubuntu24.04。
安装的过程中联网并勾选“使用第三方和专有驱动”,这样能在安装系统的时候就完成Nvidia驱动的安装。
方法一、使用Docker部署
这里让Gemini简单介绍一下Docker:您可以把 Docker 想象成软件领域的“标准化集装箱”。在普通的 Linux 系统中,直接安装不同的应用程序经常会遇到各种运行库版本不匹配的问题,稍不注意就会发生依赖冲突,把系统环境弄得乱七八糟;而 Docker 的巧妙之处在于,它能把每一个软件及其所需的所有运行环境(代码、依赖库、配置文件等)统统打包进一个轻量级、完全隔离的“容器”中。 这样一来,这些容器就可以直接在您的 Linux 机器上平稳运行且互不干扰,不仅让软件的安装、卸载和跨机器迁移变得像搬运集装箱一样简单无痛,还能完美保持您底层操作系统的干净整洁。
综上所述,Docker部署的优势在于宿主机只要安装NVIDIA驱动和NVIDIA Container Toolkit即可,CUDA都不需要配置(因为CUDA库已经包含在Docker Image中),环境隔离性好,不干扰其他项目,且移除简单方便。
安装Docker
这个不赘述,照着指令跑就行。
curl -fsSL https://get.docker.com -o install-docker.sh
sh install-docker.sh --mirror Aliyun
启用Docker-GPU支持
如果使用Docker做部署,由于IssacSim用GPU做加速,必须让Docker具备访问GPU的能力。
这个需要通过NVIDIA Container Toolkit实现,这里简单介绍安装步骤。
首先添加Nvidia签名和源:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
然后直接apt把NVIDIA Container Toolkit装上
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
随后启用NVIDIA Container Toolkit
sudo nvidia-ctk runtime configure --runtime=docker # 开启nvidia-ctk相关
sudo systemctl restart docker # 重启docker
构建镜像
首先装好git,用来下载和同步代码。
apt install git
接下来直接clone仓库,记得找个合适的文件夹。
git clone https://github.com/embodied-dobot/x-trainer.git
cd x-trainer/docker
接下来开始构建镜像,镜像构建过程中自行确保网络畅通,此处不赘述。这个过程大约会消耗4G流量
docker build --network=host -t xtrainer-leisaac:v1 .
创建容器
Dobot官方提供了俩脚本方便创建/直接进入容器的shell。不过我们需要根据我们的实际情况做修改,这里主要是修改create_docker.sh,推荐使用nano对文件进行编辑。
#!/bin/bash
xhost +
docker run --name isaac-lab --entrypoint bash -it --gpus all -e "ACCEPT_EULA=Y" --network=host \
-e "PRIVACY_CONSENT=Y" \
-e DISPLAY \
-v $HOME/.Xauthority:/root/.Xauthority \
-v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
-v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
-v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
-v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
-v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
-v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
-v /home/xtrainer_leisaac:/workspace/xtrainer_leisaac:rw \
xtrainer-leisaac:v1
这里重点是倒数第二行, -v /home/xtrainer_leisaac:/workspace/xtrainer_leisaac:rw
我们要把这个前面的部分,也就是 /home/xtrainer_leisaac ,修改成你项目的绝对目录,比如说我的电脑是 /home/nature/x-trainer/ ,这样在容器内就可以访问到这个了。
配置完成后,我们直接运行create_docker.sh即可,随后自动切换到容器中的shell。
进入容器
创建完容器后就不需要每次走create_docker.sh反复创建容器了,直接执行start_docker.sh就可以了。
方法二、手动安装
安装NVIDIA驱动
略,自行查教程。
安装Miniforge / Anaconda
MiniForge / Anaconda 是一个环境管理工具,可以便捷地安装各种常用的库(如CUDA)和环境(管理python虚拟环境),这里我们先安装。
首先把它下载到Ubuntu系统里面,通过这里获取连接:https://mirrors.ustc.edu.cn/github-release/conda-forge/miniforge/LatestRelease/
wget https://mirrors.ustc.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh
chmod +x ./Miniforge3-Linux-x86_64.sh
bash ./Miniforge3-Linux-x86_64.sh
按照指引完成安装即可。
创建虚拟环境
因为文档建议用IsaacSim 4.5,Python版本选用3.10。
conda create -n leisaac python=3.10
如果你是50系显卡,那么必须安装IsaacSim 5.0+,按照以下指令安装:
conda create -n leisaac python=3.11
指令跑完后,用 conda activate leisaac 切换到对应环境,如图所示,可以看到虚拟环境已经切换,执行python -V 可以输出正确的python版本。

然后我们需要安装CUDA,这里呢因为项目用的是IsaacSim 4.5,cuda就安装11.8。
在确保切换到leisaac环境的情况下,我们执行下面的指令安装Cuda
# 如果你是50系显卡以下,执行下面这个指令:
conda install cudatoolkit=11.8 -c nvidia/label/cuda-11.8.0
# 如果你是50系显卡,执行下面这个指令
conda install nvidia::cuda-toolkit==12.6.3
CUDA下载量比较大,需要稍作等待。

完事了再装个nvcc看看,
# 非50系
conda install -c "nvidia/label/cuda-11.8.0" cuda-nvcc
# 50系
conda install -c "nvidia/label/cuda-12.6.3" cuda-nvcc

下载项目代码
(leisaac) nature@rtx5000ada:~$ git clone -b dobot-challenge https://github.com/embodied-dobot/x-trainer.git
如果发现克隆的很慢,可以执行这一条:
git clone https://ghfast.top/https://github.com/embodied-dobot/x-trainer.git
安装Torch
先把torch和torchvision装了,isaacsim版本4.5的话推荐用torch 2.5.1
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118
# 50系:
pip install -U torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu128
指令跑完,我们简单验证一下:
python -c "import torch; print(f'PyTorch: {torch.__version__} | CUDA: {torch.cuda.is_available()} | GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"None\"}')"

这样我们torch就装上了,接下来安装isaacsim
安装IsaacSim
首先提前把setup-tools降级到69版本,安装isaaclab 4.5的依赖flatdict
pip install "setuptools<70.0.0" wheel
pip install flatdict==4.0.1 --no-build-isolation
如果是isaac5.1的话,没有这个bug
随后开始正式安装isaaclab
pip install isaaclab[isaacsim,all]==2.1.0 --extra-index-url https://pypi.nvidia.cn
# 50系显卡执行下面的指令:
pip install "isaaclab[isaacsim,all]==2.3.2.post1" --extra-index-url https://pypi.nvidia.cn
如果指令跑完了,接下来我们来跑一个测试脚本,先执行这个指令创建脚本:
cat << 'EOF' > test_isaac.py
# ⚠️ 黄金法则:在 Isaac Lab/Sim 中,SimulationApp 必须在导入任何其他核心库之前被实例化!
from isaacsim import SimulationApp
# 启动底层 Omniverse 引擎 (Headless 模式,不弹 UI 窗口)
simulation_app = SimulationApp({"headless": True})
import torch
import isaaclab
from isaaclab.app import AppLauncher
print("\n" + "="*50)
print(f"✅ PyTorch 版本: {torch.__version__} (CUDA: {torch.cuda.is_available()})")
print(f"✅ Isaac Lab 成功挂载!")
print("✅ 底层 Omniverse 物理与渲染引擎启动顺利,无崩溃!")
print("="*50 + "\n")
# 安全关闭引擎,释放 GPU 显存
simulation_app.close()
EOF
然后直接执行脚本即可,这个脚本执行需要3-10分钟(第一次运行会下载测试用的资产文件,可能会更久),中途卡住为正常现象。
python ./test_isaac.py
出现以下提示即为成功完成安装。

拉取竞赛用usd文件(模型)
直接敲命令就行了
mkdir ~/xt_race_datasets/
hf download --repo-type dataset Dobot-robot/X-trainer --local-dir ~/xt_race_datasets/
完事了看看文件路径
(leisaac) nature@rtx5000ada:~/x-trainer$ ls ~/xt_race_datasets/assets/
docs robots scenes
出来了就可以准备拷贝了
(leisaac) nature@rtx5000ada:~/x-trainer$ cp -R ~/xt_race_datasets/X-trainer_dataset/x-trainer/assets/ ./
拷贝好我们走ls看一下,看看任务sence下载下来没有,如下图出现task1 / 2 / 3就成功了。

安装leisaac包
conda activate leisaac
conda install -c conda-forge evdev pynput
cd ~/x-trainer/
pip install -e source/leisaac
测试
执行键盘遥操作测试,走一个task1看看,记得在项目根目录执行,并启用leisaac环境,第一次启动需要几分钟,请耐心等待。过程中会出现一个GUI界面,但我们可以靠终端来判断是否执行完成。
python scripts/environments/teleoperation/teleop_se3_agent.py \
--task=task1 \
--teleop_device=bi_keyboard \
--num_envs=1 \
--device=cuda \
--enable_cameras \
--multi_view
如图所示,到这里就启动成功了。

我们切换一下顶部的视角到顶相机

然后按B就可以开始用键盘操作机械臂了。
【可选】查看模拟FPS

采集数据
见:https://github.com/embodied-dobot/x-trainer/tree/dobot-challenge
Comments NOTHING