具身智能系列教程——(三)gazebo环境配置与强化学习训练

系列的最后一篇教程,我来到自己比较擅长的gazebo环境中训练自己的go2机器人,这个也是借鉴了开源资料,我们现在来复现一下。
通过gazebo来进行仿真,训练强化学习的控制器完成相关任务.
在这里插入图片描述

安装ros

我现在使用的是ros2版本下的,用习惯之后其实就能很快实现转换过程了,所以后续应该都是以ros2作为基础版本了.这里安装的是galactic版本.安装过程直接跳过,通过fishros快速安装即可,当然,最初使用的话还是可以使用ros1的,版本为noetic:

wget http://fishros.com/install -O fishros && . fishros.

克隆项目并配置

git clone -b ros2 https://github.com/fan-ziqi/rl_sar.git

安装一些ros的依赖项

sudo apt install ros-$ROS_DISTRO-teleop-twist-keyboard ros-$ROS_DISTRO-ros2-control ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-control-toolbox ros-$ROS_DISTRO-robot-state-publisher ros-$ROS_DISTRO-joint-state-publisher-gui ros-$ROS_DISTRO-gazebo-ros2-control ros-$ROS_DISTRO-gazebo-ros-pkgs ros-$ROS_DISTRO-xacro

sudo apt install liblcm-dev libyaml-cpp-dev

由于训练使用了torch的cpp库,这里需要一并下载安装,我们通过wget下载:

wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.0.1%2Bcpu.zip

然后解压

unzip libtorch-cxx11-abi-shared-with-deps-2.0.1+cpu.zip -d ./

将libtorch的位置添加到.bashrc的环境变量中,注意修改为自己的路径:

export Torch_DIR=/path/to/your/libtorch

到此位置,项目就配置完毕了

编译项目

通过catkin build编译这个ros项目:

catkin build

source环境变量

source devel/setup.bash

然后运行自己的环境.这个的规则是:

source devel/setup.bash

roslaunch rl_sar gazebo_<ROBOT>.launch cfg:=<CONFIG>

然后运行控制模块,包含cpp和python两个版本:

source devel/setup.bash
(for cpp version)    rosrun rl_sar rl_sim
(for python version) rosrun rl_sar rl_sim.py

实际运行

机器人

我们这里就主要运行机器人和机器狗两个内容,对于机器人,我们运行:

source devel/setup.bash

roslaunch rl_sar gazebo_g1_12dof.launch cfg:=unitree_rl_gym

在这里插入图片描述
然后启动控制器

source devel/setup.bash
rosrun rl_sar rl_sim

在这里插入图片描述

控制模型

  • 然后进行实际的控制,这里推荐使用手柄来控制,也可用通过键盘,说明如下:
  • 按下可在 running 和 stopped 之间切换模拟器。
  • 按 0 将机器人从初始模拟姿势移动到使用位置控制插值的 YAML 文件中定义的 default_dof_pos。
  • 按 p 切换到强化学习模式。
  • 使用 W/S 向前/向后移动, 使用 J/L 向左/向右移动,使用 A/D 转动。按下可将所有控制命令重置为零。
  • 按 n 切换到导航模式,禁用游戏手柄命令并接收来自 cmd_vel 主题的命令。
  • 如果机器人掉落,请按 R 键重置 Gazebo 环境。
  • 按 1 可使用位置控制插值将机器人从其当前位置移回初始模拟姿势。

对于手柄来说:
按 LB 可在 running 和 stopped 之间切换模拟器。
按 RB + Y 使用位置控制插值将机器人从初始模拟姿势移动到 YAML 文件中定义的 default_dof_pos。
按 RB + B 切换到强化学习模式。
使用 LY 向前/向后移动, 使用 LX 向左/向右移动,使用 RX 转动。
按左侧的向下按钮切换到 Navigation 模式,禁用游戏手柄命令并接收来自 cmd_vel 主题的命令。
如果机器人掉落,请按 RB + X 重置 Gazebo 环境。
按 RB + A 使用位置控制插值将机器人从其当前位置移回初始模拟姿势。

如果是使用手柄,那么先回到rl_sim的终端回车启动simulation(或者LB)
在这里插入图片描述
实际就是控制gazebo环境的起停:
在这里插入图片描述
启动之后RB+Y将其初始化,初始化完成之后的姿态为:
在这里插入图片描述
没有站立,我们这里通过RB + X调用gazebo的reset函数
在这里插入图片描述
此时由于没有加入控制器,所以重置环境后还是会倒下,这时RB + B启动强化学习的控制器
在这里插入图片描述
就可以完美站立了,然后通过方向键来控制它的运动即可.

机器狗

类似的运行

source devel/setup.bash

roslaunch rl_sar gazebo_go2.launch cfg:=robot_lab

在这里插入图片描述

然后启动控制器

source devel/setup.bash
rosrun rl_sar rl_sim

他的控制与机器人也是一样的,我们安装:
启动仿真->设置初始关节->启动强化学习控制器->重置gazebo环境的顺序就能够让狗正常站立了
接下来就能够正常运动我们的模型了
在这里插入图片描述
在这里插入图片描述

对于控制器的训练来说,我们也可以训练自己的控制器,这里先留着,后面继续完善强化学习控制器的训练部分.

参考:https://github.com/fan-ziqi/rl_sar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云千载尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值