Skip to content

DeepRoboticsLab/Lite3_rl_deploy

Repository files navigation

English

仿真-仿真

# 依赖安装 (python3.10)
pip install pybullet "numpy < 2.0" mujoco

# 编译
cd Lite3_rl_deploy
mkdir build && cd build
cmake .. -DBUILD_PLATFORM=x86 -DBUILD_SIM=ON -DSEND_REMOTE=OFF -DHIMLOCO=ON
# 指令解释
# -DBUILD_PLATFORM:电脑平台,Ubuntu为x86,机器狗运动主机为arm
# -DBUILD_SIM:是否使用仿真器,如果在实机上部署设为OFF 
# -DHIMLOCO:支持算法,默认为rma,可选himloco
make && cd ..
# 运行 (打开两个终端)
# 终端1 (pybullet)
cd interface/robot/simulation
python pybullet_simulation.py

# 终端1 (mujoco)
cd interface/robot/simulation
python mujoco_simulation.py

# 终端2 
./build/rl_deploy

操控(终端2)

tips:可以将仿真器窗口设为始终位于最上层,方便可视化

  • z: 机器狗站立进入默认状态
  • c: 机器狗站立进入rl控制状态
  • wasd:前后左右
  • qe:顺逆时针旋转

仿真-实际

# apply code_modification

# 电脑和手柄均连接机器狗WiFi
# WiFi名称为 Lite*******
# WiFi密码为 12345678 (一般为这个,如有问题联系技术支持)
# 连上WiFi后打开设置查看ip (192.168.1.120/192.168.2.1)

# scp传输文件 (打开本地电脑终端)
scp -r ~/Lite3_rl_deploy [email protected]:~/

# ssh连接机器狗运动主机以远程开发,密码有以下三种组合
#Username	Password
#ysc		' (a single quote)
#user		123456 (推荐)
#firefly	firefly
ssh [email protected]
# 输入密码后会进入远程开发模式

# 编译
cd Lite3_rl_deploy
mkdir build && cd build
cmake .. -DBUILD_PLATFORM=arm -DBUILD_SIM=OFF -DSEND_REMOTE=OFF -DHIMLOCO=ON
# 指令解释
# -DBUILD_PLATFORM:电脑平台,Ubuntu为x86,机器狗运动主机为arm
# -DBUILD_SIM:是否使用仿真器,如果在实机上部署设为OFF 
# -DHIMLOCO:支持算法,默认为rma,可选himloco
make -j && cd ..

操控(手柄)

参考https://github.com/DeepRoboticsLab/gamepad

模型转换

运行RL训练出的策略文件需要链接onnxruntime库,而onnxruntime支持的模型为.onnx格式,需要手动转换.pt模型为.onnx格式。

可以通过运行policy文件夹中的pt2onnx.py文件将.pt模型转化为.onnx模型。注意观察程序输出对两个模型一致性的比较。

首先配置和验证程序运行环境

pip install torch numpy onnx onnxruntime

python3 -c 'import torch, numpy, onnx, onnxruntime; print(" All modules OK")'

然后运行程序

cd your/path/to/LITE3_RL_DEPOLY/policy/

python pt2onnx.py

就可以在当前文件夹看到对应的.onnx模型文件了

各模块介绍

state_machine

graph LR
A(Idle) -->B(StandUp) --> C(RL) 
C-->D(JointDamping)
B-->D
D-->A

Loading

state_machine模块是Lite3在不同的状态之间来回切换,不同的状态代表的功能如下:

1.Idle 空闲状态,表示机器狗处于关节不发力的情况

2.StandUp 站起状态,表示机器狗从趴下到站起的动作

3.RL RL控制状态,表示机器狗执行策略输出的action

4.JointDamping 关节阻尼状态,表示机器狗的关节处于阻尼控制状态

interface

graph LR
A(Interface) -->B(Robot)
A --> C(User Command)
B-->D(simulation)
B-->E(hardware)
C-->F(gamepad)
C-->G(keyboard)

Loading

interface模块表示机器狗的数据接受和下发接口和手柄控制的输入。其中机器狗平台的输入分为仿真和实物,手柄的输入分为键盘和手柄控制。

run_policy

graph LR
A(policy_runner_base) -->B(policy_runner)


Loading

这部分用于执行RL策略的输出,新的策略可以通过继承policy_runner_base实现。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages