前言
本文介绍如何在 Gazebo 仿真器中运行 unitree_guide 来快速入门 unitree_guide 工程。关于 unitree_guide 的其他用法,请参考《四足机器人控制算法--建模、控制与实践》实体书章节,这本书演示了机器人关节电机控制方法、简单的脚部运动和力控制算法。支持仿真和真实机器人开发环境。
Github地址:unitreerobotics/unitree_guide (github.com)
环境准备和软件包安装
Ubuntu 18.04 和 melodic 版 ROS 系统
推荐大家在 Ubuntu 18.04 系统和 melodic 版 ROS上运行此工程( Ubuntu 20.04 系统 和 noetic 版本 ROS 系统也可以)。至于是用虚拟机还是linux系统就不说了,虚拟机太卡的话还是考虑安装双系统吧。
LCM 库
在终端中运行如下命令测试是否已经安装 LCM。 若终端显示的内容与下图类似,则表示已经安装 LCM。如果不是说明没有安装LCM,请看这篇博客http://t.csdnimg.cn/T5ZGU进行安装。
lcm-tester
pthread 库
运行如下命令测试是否已经安装pthread库。若可以显示版本信息,则说明 pthread 库已经安装。如果没有安装,请看这篇博客http://t.csdnimg.cn/Zg345进行安装。
getconf GNU_LIBPTHREAD_VERSION
unitree相关功能包
-
unitree_guide :
GitHub - unitreerobotics/unitree_guide -
unitree_ros :
GitHub - unitreerobotics/unitree_ros -
unitree_legged_msgs :
GitHub - unitreerobotics/unitree_ros_to_real
关于这三个工具包我在上一篇博客中已经介绍过了,本文的结构和前面那个博客是一样的,没有安装这三个工具包的先去看我上一篇博客http://t.csdnimg.cn/FByEb。
整体的文件结构如下图所示:
编译
打开一个终端(在vscode里面可以直接按快捷键ctrl + ~),注意工作路径一定得是 unitree_guide 工程的 ros 工作空间的根目录下(我的是catkin_ws
),如下图所示:
然后输入下面的指令,开始进行编译:
catkin_make
只要前面正常的配置,编译一般都没问题,编译进度达到100%就说明编译成功,如下图所示:
运行
开始使用 unitree_guide 总共分为两步。
运行 Gazebo 仿真环境
在同一个终端中,依次执行下列命令:
刷新环境变量:
source ./devel/setup.bash
启动gazebo仿真软件:
roslaunch unitree_guide gazeboSim.launch
执行该命令后,会跳出 Gazebo 仿真器窗口,并且 Go1 机器人会躺在仿真环境中的地面上。要想让机器人动起来,还需要启动控制器。
启动控制器
打开另外一个终端,然后输入下列命令以启动控制器:
sudo ./devel/lib/unitree_guide/junior_ctrl
若终端没有显示报错,且终端显示的内容与下图类似,则证明已经成功启动控制器。此时 Go1 机器人还是躺在地面上,下面将会介绍一些简单使用方法使 Go1 机器人在仿真环境中动起来。
选中在上一步中用来启动控制器的终端,然后按下键盘上的 “2” 键。此时在 Gazebo 环境中的机器人会站起来,同时终端会显示 “Switched from passive to fixed stand”
。
接下来同样选中该终端,然后按下键盘上的 “4” 键,在终端显示“按下键盘上的 “Switched from fixed stand to trotting”
内容后,连续按两下键盘上的 “w” 键,机器人即可缓慢向前运动,按下键盘上的 “空格” 键,机器人则会停下来。
在仿真环境中,按下键盘上的 W A S D 键 分别控制机器人 前进 左平移 后腿 右平移。按下键盘上的 J L 键 分别控制机器人 左转 右转。
具体按键可以参考下面这张图:
总结
Unitree_guide 为初学者提供了一个基本的四足机器人控制器。为了获得更好的性能,可能需要对参数进行额外的微调或采用更先进的方法(如 MPC 等)。如果想实现更多的功能可以在机器人学习社区中获取更多帮助。
您的支持是我不断更新的动力,初学才浅,若有不当还请在评论区指出!
参考资料
宇树机器狗Unitree Go1开发指南1:安装Unitree工具包-CSDN博客