TRON2 双足运控项目开源示例

TRON 2 EDU版2026/10/30Markdown下载

电脑硬件配置及开发环境要求(训练与部署同等需求):

  1. GPU:NVIDIA GPU至少 8GB 显存。为节省训练时间,推荐 GeForce RTX 3090 (24 GB) 或更高
  2. CPU:至少六核处理器,推荐Intel: Core i7-10700K/AMD:Ryzen5 5600X/或更高版本
  3. 内存:16GB以上
  4. 存储空间:至少 30GB 可用空间
  5. 操作系统:Ubuntu 22.04 LTS及以上版本
  6. Python:3.10或更高版本
  7. 网络环境:能正常访问Github

1 任务概述

双足运控项目的开发流程包含以下 4 个主要阶段:

flowchart LR
    A["01 · 训练"] --> B["02 · Play"] --> C["03 · Sim2Sim"] --> D["04 · Sim2Real"]

    classDef training fill:#e8f1ff,stroke:#4f83cc,color:#17365d,stroke-width:1.5px
    classDef play fill:#e8f6f1,stroke:#4a9b76,color:#174d38,stroke-width:1.5px
    classDef sim2sim fill:#fff4df,stroke:#d69b36,color:#68480d,stroke-width:1.5px
    classDef sim2real fill:#f2ecff,stroke:#8666c5,color:#38265f,stroke-width:1.5px

    class A training
    class B play
    class C sim2sim
    class D sim2real

本教程中所用到的训练环境为IsaacLab 2.3.2 + Isaac Sim 5.1.0。

Isaac Lab 是一个统一的、模块化的机器人学习框架,旨在简化机器人研究中的常见工作流程(如强化学习、从示范中学习和运动规划)。它构建在 NVIDIA Isaac Sim 之上,以利用最新的仿真能力以用于逼真的场景和快速高效的仿真。

该框架的核心目标包括:

  • 模块化: 轻松定制并添加新的环境、机器人和传感器。

  • 灵活性: 适应社区的不断变化需求。

  • 开放性: 保持开源,允许社区贡献和扩展该框架。

  • 功能齐全: 包括多种环境、传感器和任务,可供直接使用。

Isaac Lab 中提供的主要功能包括由 PhysX 提供的快速准确的物理仿真,用于矢量化渲染的分块渲染 API,用于改善鲁棒性和适应性的域随机化,以及支持在云端运行的功能。

为了快速上手,我们将在本教程中指导您完成一个具体的双足运控任务,即TRON2机器人WF、SF形态下的基础运动。如下所示

2 环境配置

以下步骤首先从其预构建的二进制文件中安装 Isaac Sim,然后从源代码中安装 Isaac Lab。

2.1 IsaacSim安装

在本次安装中,我们使用Isaaclab的预编译二进制安装,可以从下方页面下载ZIP包:

https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/download.html

下载完成 zip 文件后,您可以将其解压到所需目录。

在本次安装中,我们假设Isaac Sim目录被命名为 ${HOME}/isaacsim 。

然后将下面两个指令加入环境变量.bashrc中:

# Isaac Sim root directory
export ISAACSIM_PATH="${HOME}/isaacsim"
# Isaac Sim python executable
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"

2.2 验证 Isaac Sim 安装

使用下方指令检查仿真器是否正常运行::

# note: you can pass the argument "--help" to see all arguments possible.
${ISAACSIM_PATH}/isaac-sim.sh

使用下方指令检查仿真器是否可以从独立的 python 脚本中运行:

# checks that python path is set correctly
${ISAACSIM_PYTHON_EXE} -c "print('Isaac Sim configuration is now complete.')"
# checks that Isaac Sim can be launched from python
${ISAACSIM_PYTHON_EXE} ${ISAACSIM_PATH}/standalone_examples/api/isaacsim.core.api/add_cubes.py

如果您之前使用过 Isaac Sim 的旧版本,您需要在安装后 第一次 运行以下命令,以删除所有旧用户数据和缓存变量:

${ISAACSIM_PATH}/isaac-sim.sh --reset-user

如果按照上述说明仿真器无法运行或崩溃,意味着某些配置不正确。要调试和故障排除,请查看 Isaac Sim 文档 和 Isaac Sim Forums 。

2.3 IsaacLab安装

2.3.1 克隆IsaacLab

git clone -b release/2.3.0 https://github.com/isaac-sim/IsaacLab.git

2.3.2 构建软链接

# enter the cloned repository
cd IsaacLab
# create a symbolic link
ln -s path_to_isaac_sim _isaac_sim
# path_to_isaac_sim是指本地的isaac_sim的存放路径,需注意!!!
# recommended: ln -s ~/isaacsim _isaac_sim

2.4 Conda安装

可以参照下方的方法安装Conda:

https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html

安装好Conda后,创建Conda环境:

# Option 1: Default environment name 'env_isaaclab'
./isaaclab.sh --conda  # or "./isaaclab.sh -c"
# Option 2: Custom name
./isaaclab.sh --conda my_env  # or "./isaaclab.sh -c my_env"
#激活环境
# Activate environment
conda activate env_isaaclab  # or "conda activate my_env"

2.5 Python依赖安装

2.5.1 安装系统依赖包

build-essential 是 Ubuntu / Debian 系统中的一个元软件包(meta-package),用于一次性安装 C/C++ 开发最基础的一套编译工具。

# these dependency are needed by robomimic which is not available on Windows
sudo apt install cmake build-essential

2.5.2 安装IsaacLab Python包

./isaaclab.sh --install # or "./isaaclab.sh -i"

默认情况下,上述命令将安装 所有 学习框架。这些包括 rl_games 、 rsl_rl 、 sb3 、 skrl 、 robomimic 。

2.6 验证 Isaac Lab 安装

# Option 1: Using the isaaclab.sh executable
# note: this works for both the bundled python and the virtual environment
./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py

# Option 2: Using python in your virtual environment
python scripts/tutorials/00_sim/create_empty.py

上述命令应该启动仿真器,并显示具有黑色视口的窗口。您可以通过在终端上按 Ctrl+C 来退出脚本。

如果您看到这个,那么安装成功了!

如果出现错误 ModuleNotFoundError: No module named 'isaacsim' ,请确保虚拟环境已激活且已执行 source _isaac_sim/setup_conda_env.sh 。

3 代码准备

3.1 拉取代码

使用下方指令拉取代码:

git clone https://github.com/limx-tron2/tron2_rl_lab

3.2 安装Python包

首先进入代码路径

cd tron2_rl_lab

激活Conda环境

conda activate env_isaaclab

然后安装代码包

pip install -e rsl_rl
pip install -e exts/bipedal_locomotion --no-build-isolation

4 启动训练

本章代码均以脚掌形态为示例

4.1 训练

conda activate env_isaaclab
python scripts/rsl_rl/train.py \
  --task Isaac-Limx-SF-TRON2A-Blind-Flat-v0 \
  --num_envs 4096 \
  --headless 

4.2 Play训练好的策略

使用如下指令播放训练好的策略,播放的同时也会导出部署所需要的ONNX模型文件

conda activate env_isaaclab
python scripts/rsl_rl/play.py \
  --task Isaac-Limx-SF-TRON2A-Blind-Flat-v0 \
  --num_envs 1 

5 仿真、真机部署

5.1 环境准备

  • 配置 Conda 环境用于Python部署

    创建一个专门用于Python部署运行的 Conda 环境(例如,tron2_deploy),并指定 Python 版本:

    conda create --name tron2_deploy python=3.8
    
  • 激活刚刚创建的环境:

    conda activate tron2_deploy
    

5.2 创建工作空间

可以按照以下步骤,创建一个RL部署开发工作空间:

  • 打开一个Bash终端。

  • 创建一个新目录来存放工作空间。例如,可以在用户的主目录下创建一个名为“limx_ws”的目录:

    mkdir -p ~/limx_ws
    
  • 下载 MuJoCo 仿真器

    cd ~/limx_ws
    git clone --recurse-submodules https://github.com/limx-tron2/tron2_mujoco_sim
    
  • 下载部署实现

    cd ~/limx_ws
    git clone --recurse-submodules https://github.com/limx-tron2/tron2_rl_deploy_python
    
  • 安装运动控制开发库(如果尚未安装):

    • Linux x86_64 环境
    # 激活tron2_deploy的conda环境
    conda activate tron2_deploy
    
    # 安装limxsdk
    pip install tron2_rl_deploy_python/limxsdk-lowlevel/python3/amd64/limxsdk-*-py3-none-any.whl
    
    
    • Linux aarch64 环境
    # 激活tron2_deploy的conda环境
    conda activate tron2_deploy
    
    # 安装limxsdk
    pip install tron2-rl-deploy-python/limxsdk-lowlevel/python3/aarch64/limxsdk-*-py3-none-any.whl    
    
  • 设置机器人型号:请参考“查看/设置机器人型号”章节,查看您的机器人型号。如果尚未设置,请按照以下步骤进行设置。

    • 通过 Shell 命令 tree -L 1 tron2-mujoco-sim/robot-description/tron2 列出可用的机器人类型:
    limx@limx:~$ tree -L 1 tron2-mujoco-sim/robot-description/tron2
    tron2-mujoco-sim/robot-description/pointfoot
    ├── SF_TRON2A
    └── WF_TRON2A
    
    • 以 WF_TRON2A(请根据实际机器人类型进行替换)为例,设置机器人型号类型:
    echo 'export ROBOT_TYPE=WF_TRON2A' >> ~/.bashrc && source ~/.bashrc
    

5.3 更新RL训练模型

在您的工作空间中,以 WF_TRON2A机器人类型为例,

  • RL模型、配置文件所在路径为:~/limx_ws/tron2-rl-deploy-python/controllers/model/WF_TRON2A,

如下所示。请根据您所使用的训练环境和训练结果更新替换。

tree ~/limx_ws/tron2-rl-deploy-python/controllers/model/WF_TRON2A/
.
├── params.yaml
├── policy.onnx
└── encoder.onnx

5.4 仿真部署

  • 打开一个Bash终端,运行 MuJoCo 仿真器。

    # 激活tron2_deploy的conda环境
    conda activate tron2_deploy
    
    # 运行仿真器
    cd ~/limx_ws
    python tron2-mujoco-sim/simulator.py
    
  • 打开一个Bash终端,运行控制算法。

    如果您的机器人处于摔倒状态,请在启动运动控制后,单击 MuJoCo 仿真器左侧菜单栏的“Reset”按钮以重置机器人。此时,您将看到机器人恢复并开始行走。

    # 激活tron2_deploy的conda环境
    conda activate tron2_deploy
    
    # 运行控制算法
    python tron2-rl-deploy-python/main.py
    
  • 打开一个Bash终端,运行虚拟遥控器:仿真的过程中,您可以使用虚拟遥控器来控制机器人运动。左摇杆:控制前进/后退/左转/右转运动;右遥控:可控制机器人左右横向运动。

    ./tron2-mujoco-sim/robot-joystick/robot-joystick
    

5.5 部署前准备

  • 修改开发者电脑IP:确保您的开发电脑与机器人本体通过外置网口连接。设置您的电脑IP地址为:10.192.1.200,并通过Shell命令ping 10.192.1.4 能够正常ping通。如下图所示对您的开发电脑进行IP设置:
  • 打开底层开发者模式:机器人开机后,同时按下遥控器按键 R1 + Right 会进入High-level Dev,再按L1 + □ 进入Idle,再按R1 + Right 会进入Low-level Dev,这时本体主机将会底层开发者模式,灯显颜色为绿色。在此模式下,用户可以开发自己的运动控制算法。模式设置掉电后不会失效,重新开机后仍然是底层开发者模式。

  • 实机部署运行。在Bash终端只需下面Shell命令启动控制算法(在进行实机部署运行时,确保机器人吊装非常重要):

    # 激活tron2_deploy的conda环境
    conda activate tron2_deploy
    
    # 指定机器人IP地址,运行控制算法
    python3 tron2-rl-deploy-python/main.py 10.192.1.4
    

警告

  1. 执行完运控程序,机器人会自动进入prepare状态(所有关节处于默认零位,机器人处于站直的状态),因此执行程序前需将机器人吊起,并且确保周围没人;
  2. 在进入机器人行走功能前,确保机器人是被吊装的,且机器人末端着地;
  • 这时您可以通过遥控器按键L1 + △开启机器人行走功能。左摇杆:控制前进/后退/左转/右转运动;右遥控:可控制机器人左右横向运动。

  • 遥控器按L1 + □关闭机器人行走功能。

5.6 实机部署

当您完成仿真和真机调试后,可以将您的算法程序部署到机器人上(在部署测试完成之前,确保机器人始终保持吊装状态非常重要,以保障安全)。详细步骤如下:

  • 准备工作

    • 保持机器人继续处于开发者模式:确保机器人仍处于开发者模式,方便您进行程序部署和调试。

    • 网络连接:确保开发电脑与机器人通过外置网口(Ethernet)连接,网络稳定且通信正常。部署完成后,网络连接将不再需要。

  • 拷贝算法程序到机器人

    • 在开发电脑上打开终端,进入到存放算法程序的工作目录,例如 ~/limx_ws。

    • 使用 scp 命令将包含算法的目录拷贝到机器人中,默认机器人用户为 guest,密码为 123456。

    cd ~/limx_ws
    scp -r tron2-rl-deploy-python guest@10.192.1.4:/home/guest
    
  • 安装运动控制开发库(如果尚未安装):

    ssh guest@10.192.1.4 "pip install /home/guest/tron2-rl-deploy-python/limxsdk-lowlevel/python3/amd64/limxsdk-*-py3-none-any.whl"   
    
  • 启动程序:在Bash终端只需下面Shell命令启动控制算法(在进行实机部署运行时,确保机器人吊装非常重要):

# 激活tron2_deploy的conda环境
conda activate tron2_deploy

# 指定机器人IP地址,运行控制算法
python3 tron2-rl-deploy-python/main.py 10.192.1.2

警告

  1. 执行完运控程序,机器人会自动进入prepare状态(所有关节处于默认零位,机器人处于站直的状态),因此执行程序前需将机器人吊起,并且确保周围没人;
  2. 在进入机器人行走功能前,确保机器人是被吊装的,且机器人末端着地;
  • 配置算法自动启动(按需配置)

    • SSH 登录机器人:使用 ssh 命令远程登录到机器人系统,密码为 123456。

      ssh guest@10.192.1.4
      

    自启动脚本正在编辑,用户目前需要手动启动控制器,我们会迅速OTA自启动脚本(6.17):

    python3 /home/guest/tron2-rl-deploy-python/main.py 10.192.1.2
    

    修改自启动脚本:

    • 打开自启动脚本 /home/guest/autolaunch/autolaunch.sh 进行编辑:
      busybox vi /home/guest/autolaunch/autolaunch.sh
    • 在脚本中找到启动 main.py 的命令:确保 python3 /home/guest/tron2-rl-deploy-python/main.py 10.192.1.4 这一行未被注释(没有 # 注释符号)。编辑完成后,保存并退出编辑器。
      #!/bin/bash
      
      while true; do
        # 启动用于控制 Pointfoot 机器人的 Python 控制器脚本
        # 参数 10.192.1.4 表示机器人所在的 IP 地址
        # 该行被注释掉,若要启用自动控制器启动,请取消注释
        # 请根据您控制器脚本的实际路径修改此路径
        python3 /home/guest/tron2-rl-deploy-python/main.py 10.192.1.4
      
        # 使用 roslaunch 启动机器人控制算法
        # 若要启动机器人控制算法,请取消下面注释
        # 请根据您安装的实际路径修改路径
        # source /home/guest/install/setup.bash
        # roslaunch robot_hw pointfoot_hw.launch
      
        # 等待 3 秒后重新启动
        sleep 3
      done
    • 重启机器人电脑。修改完成后,执行以下命令重启机器人:
      reboot
  • 控制机器人运动

    等待系统启动后,您可以使用遥控器控制机器人:

    • L1 + △:启动机器人行走功能;

    • L1 + □: 关闭机器人行走功能;

    • 左摇杆:控制机器人前进、后退、左转、右转;

    • 右摇杆:控制机器人左右横向运动。