跳到主要内容
版本:V2.0.5.x

步态训练部署指引-v1.2.1

说明

参考项目:

  • https://github.com/Open-X-Humanoid/TienKung-Lab

    该代码库是一个基于强化学习的运动控制系统,专为全尺寸人形机器人天工(TienKung)设计。它将AMP风格的奖励与周期性步态奖励相结合,促进了自然、稳定和高效的行走和跑步行为。

    该代码库建立在IsaacLab上,支持Sim2Sim迁移到MuJoCo,并具有模块化架构,便于无缝定制和扩展。此外,它还集成了基于光线投射的传感器,以增强感知能力,能够精确地与环境进行交互和避障。该框架还已经在真实的天工机器人上成功验证。

  • https://github.com/Open-X-Humanoid/Deploy_Tienkung

    该代码库下有两个目录,rl_control_newx_humanoid_rl_sdk

    其中的 rl_control_new 是基于ROS2的人形机器人强化学习控制库,用于控制天工系列人形机器人。该库使用强化学习算法实现机器人运动控制,支持仿真和真实机器人环境。

    另一个 x_humanoid_rl_sdk 是天工人形机器人强化学习控制SDK,包含状态机实现、机器人接口和控制算法。

此指引文档在参考项目基础上,解决了一些编译及配置问题。

  • 适配机型:天工行者(Lite)。天工无界(Plus)及天工无疆(Pro)版本将在26年Q1支持
  • 操作系统:ubuntu 22.04
  • 系统架构:x86
  • 推荐GPU:Nvidia RTX 30系列及以上,显存16G及以上
  • 最低系统配置:磁盘 512G ,内存16G
  • 如果git等资源拉取过慢,建议使用代理

软件包

TienKung-Lab.zipros_lite_src.zip 两个包下载后放到 ~/GTM/soft/ 目录下。

 GTM
├── 📂 soft/ # 软件包
│ ├── 📜 TienKung-Lab.zip # 步态训练包
│ ├── 📜 ros_lite_src.zip # 步态部署包

一、基础软件

1、CUDA

安装CUDA 。

建议正确安装最新Nvidia驱动后,使用 nvidia-smi查看驱动配套的CUDA版本,在 https://developer.nvidia.com/cuda-toolkit-archive 中选择对应的CUDA Toolkit下载。这里以12.8版本CUDA为例。

cd ~/GTM/soft
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run
sudo sh cuda_12.8.0_570.86.10_linux.run

# 设置环境变量 ~/.bashrc
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
# 立即生效
source ~/.bashrc

2、Conda

安装miniconda,一直选择yes完成安装。

cd ~/GTM/soft
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh

安装完毕后检查.bashrc文件内有无设置conda环境变量。

cat ~/.bashrc

3、IsaacSim

安装isaacsim 4.5。下载并解压软件包后,创建env_isaacsim环境,进入env_isaacsim环境后安装。

参考链接:https://docs.isaacsim.omniverse.nvidia.com/4.5.0/installation/install_workstation.html

mkdir ~/GTM/soft/isaacsimdir
cd ~/GTM/soft/isaacsimdir
wget https://download.isaacsim.omniverse.nvidia.com/isaac-sim-standalone-4.5.0-linux-x86_64.zip
unzip "isaac-sim-standalone-4.5.0-linux-x86_64.zip" -d ~/GTM/soft/isaacsimdir
conda create -n env_isaacsim python=3.10
conda activate env_isaacsim
./post_install.sh
./isaac-sim.selector.sh
conda deactivate

4、IsaacLab

安装IsaacLab 2.1.0。下载并解压软件包后,创建env_isaaclab环境,进入env_isaaclab环境后安装。

参考链接:https://isaac-sim.github.io/IsaacLab/release/2.1.0/source/setup/installation/binaries_installation.html#installing-isaac-lab

可从Installing Isaac Lab部分开始参考。

sudo apt install git
mkdir ~/GTM/soft/isaaclabdir
cd ~/GTM/soft/isaaclabdir
wget https://github.com/isaac-sim/IsaacLab/archive/refs/heads/release/2.1.0.zip
unzip "2.1.0.zip" -d ~/GTM/soft/isaaclabdir
cd IsaacLab-release-2.1.0
ln -s ~/GTM/soft/isaacsimdir ~/GTM/soft/isaaclabdir/IsaacLab-release-2.1.0/_isaac_sim
~/GTM/soft/isaaclabdir/IsaacLab-release-2.1.0/isaaclab.sh --conda env_isaaclab
conda activate env_isaaclab
sudo apt install cmake build-essential
~/GTM/soft/isaaclabdir/IsaacLab-release-2.1.0/isaaclab.sh --install
conda deactivate

对于50系列GPU,请使用最新的PyTorch nightly版本,而不是Isaac Sim自带的PyTorch 2.5.1:注意链接中的cu128要与自己的CUDA配套。

~/GTM/soft/isaaclabdir/IsaacLab-release-2.1.0/isaaclab.sh -p -m pip install --upgrade --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128

二、步态训练及部署

1、解压代码

cd ~/GTM/soft/
unzip TienKung-Lab.zip

2、安装环境

注意
  1. 安装与CUDA配套的pytorch版本。例如可以到 https://mirrors.nju.edu.cn/pytorch/whl/ 查看对应版本,然后更新到对应pip指令中。注意链接中的【cu128】要与自己的CUDA版本配套。

  2. 后续命令都需要进入 conda activate env_isaaclab 环境才能正常运行。

conda activate env_isaaclab
cd ~/GTM/soft/TienKung-Lab
pip install -e .
pip install -U --index-url https://mirrors.nju.edu.cn/pytorch/whl/cu128/ torchvision==0.24.0 torch==2.9.0
pip uninstall -y rsl-rl-lib || true
cd ~/GTM/soft/TienKung-Lab/rsl_rl
pip install -e .
pip install onnxscript

3、训练

参数:

  • --task 任务类别,有walk、run
  • --headless 不显示界面训练
  • --num_envs 场景中机器人数量

目前软件包支持天工行者(Lite),天工无界(Plus)及天工无疆(Pro)会在26年Q1添加。

cd ~/GTM/soft/TienKung-Lab
python legged_lab/scripts/train.py --task=walk --headless --logger=tensorboard --num_envs=2048

模型位置在:~/GTM/soft/TienKung-Lab/logs/walk/xxxx/model_xxx.pt,这里的pt文件是模型,xxxx 是训练开始时候以时间戳为名的文件夹。

可以打开一个新终端,查看训练情况:

conda activate env_isaaclab
cd ~/GTM/soft/TienKung-Lab
tensorboard --logdir=logs/walk

4、恢复训练

cd ~/GTM/soft/TienKung-Lab
mkdir ~/GTM/soft/TienKung-Lab/logs/walk/pretrained
# Copy the PT file to folder【pretrained】
python legged_lab/scripts/train.py --task=walk --headless --logger=tensorboard --num_envs=2048 --resume=True --load_run=pretrained --checkpoint=model_8100.pt

5、运行

cd ~/GTM/soft/TienKung-Lab
mkdir ~/GTM/soft/TienKung-Lab/logs/walk/exe
# Copy the PT file to folder【exe】
python legged_lab/scripts/play.py --task=walk --num_envs=1 --load_run=exe --checkpoint=model_8100.pt

6、Sim2Sim (MuJoCo)

cd ~/GTM/soft/TienKung-Lab
python legged_lab/scripts/sim2sim.py --task walk --duration 50 --policy ./logs/walk/exe/exported/policy.pt

7、模型转换

使用OpenVINO模型转换,得到 bin和xml 文件。

cd ~/GTM/soft/
unzip ros_lite_src.zip -d ros_lite
cd ~/GTM/soft/TienKung-Lab
pip install openvino
ovc logs/walk/exe/exported/policy.pt --output_model logs/walk/exe/exported/

8、本地部署

模型转换后的 .pt.bin.xml 文件,复制到 ~/GTM/soft/ros_lite/install/rl_control_new/share/rl_control_new/config/policy/ 目录下。

cd ~/GTM/soft/TienKung-Lab/logs/walk/exe/exported/
cp policy.pt policy.bin policy.xml ~/GTM/soft/ros_lite/install/rl_control_new/share/rl_control_new/config/policy/

确保 ~/GTM/soft/ros_lite/install/rl_control_new/share/rl_control_new/config/tg22_config.yaml 配置文件内 mlp.path 指向的是正确的刚刚训练出来的模型的名称,不需要后缀。

例如,如果训练出来的模型文件有policy.pt 和 policy.bin 和 policy.xml,则配置文件内 mlp.path 值应该设置为 /config/policy/policy 即可。

cd ~/GTM/soft/ros_lite/install/rl_control_new/share/rl_control_new/config/
cat tg22_config.yaml

9、真机部署

将训练机器上的 ~/GTM/soft/ros_lite 目录整体打包,放置到天工行者的192.168.41.1的x86板内并解压在 /home/ubuntu/ 目录。至此,就已将步态训练的模型部署到了天工真机。

10、测试

  1. 先在192.168.41.1的x86板上,确保机器人自启动服务是关闭的:
    sudo systemctl status proc_manager.service
  2. 检查服务的状态是否为disable,如果不是,手动disable:
    sudo systemctl disable proc_manager.service
    然后断电重启整个机器人,等待重启完成。
  3. 到192.168.41.1的x86板上手动启动本体服务:
    tmux
    sudo su
    cd ros2ws
    source install/setup.bash
    ros2 launch body_control body.launch.py
  4. 另外启动一个终端,启动本次训练的强化学习运控
     tmux
    cd ~/ros_lite
    source install/setup.bash
    ros2 launch rl_control_new rl.launch.py
危险

由于是新训练出来的模型,效果无法保证,所以一定要确保安全:

  • 机器人一定要用绳子连接在移位机上,绳子不要太松以免紧急时机器人下坠的力量过大造成危险
  • 并且另外有一个人随时准备好按下急停按钮

然后可以在确保安全的前提下,逐步用遥控器操作机器人回零,站立,行走。

参考:https://github.com/Open-X-Humanoid/Deploy_Tienkung/tree/main/rl_control_new