宇树机器狗Go1开发指南:Unitree工具包安装教程
宇树机器狗Go1开发指南:Unitree工具包安装教程
近期开始学习使用宇树科技公司的机器人Go1,目前只是初步实现了GitHub上readme文档的一些基本功能。本文将详细介绍在Ubuntu 20.04 LTS系统上安装Unitree工具包的步骤,包括创建ROS工作空间、安装相关依赖、以及在RViz和Gazebo中进行机器人可视化操作。
基本条件
本文使用的基本环境如下:
- ROS1 noetic
- Ubuntu 20.04 LTS
- VS Code 1.87.2
官方资料
关于宇树机器人的一些资料网址:
- 宇树官网:宇树科技—全球四足机器人行业开创者
- 宇树文档中心:宇树科技 文档中心
- Go1系列使用教学:Go1系列使用教学
- 宇树SDK使用教学:宇树SDK使用教学
安装总共需要用到三个包:
- unitree_ros:主要用于仿真(rviz,gazebo),包含了一些上层的运动算法。依赖于unitree_ros_to_real;
- unitree_ros_to_real:封装了各种数据类型和电机的位置扭矩速度模式,依赖于unitree_legged_sdk;
- unitree_legged_sdk:封装了通信协议和简单的机器人运动模式,如果要连接实体机器狗的话需要这个。
安装步骤
1. 创建工作空间
在主目录下面打开终端(Ctrl + Alt + T),键入如下命令:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
此时src文件夹下面会多出一个 CMakeLists.txt 文件,这时候我们的工作空间算是创建好了,我们对其进行编译,记住要先回到工作空间下面:
cd ~/catkin_ws/
catkin_make
编译完成之后,此时catkin_ws下应该有三个目录:build、devel、src。每次打开终端需要进行source一下,更新一下环境变量:
source devel/setup.bash
为了方便,可以将source命令添加到.bashrc文件中:
sudo gedit ~/.bashrc
在最后面加上:
source ~/catkin_ws/devel/setup.bash
保存之后关闭,然后再输入:
source ~/.bashrc
2. 安装相关依赖
2.1 安装Gazebo9
之前安装过Gazebo的就不用管了,没有安装过的话请参考以下教程:
2.2 安装unitree相关的文件
首先打开终端,进入catkin_ws/src:
cd ~/catkin_ws/src
git clone https://github.com/unitreerobotics/unitree_ros_to_real
git clone https://github.com/unitreerobotics/unitree_ros
unitree_ros_to_real文件夹下面,只需要保存unitree_legged_msgs,其他的可以删除,也可以不管,然后把unitree_legged_msgs文件夹拿出来和unitree_ros放在同一目录下。
2.3 安装gazebo与ros的交互
新建终端,如果你是Melodic版本,就键入下面的命令,其他版本只需要把下面命令的Melodic换成你的版本就行了:
sudo apt-get install ros-melodic-controller-interface ros-melodic-gazebo-ros-control ros-melodic-joint-state-controller ros-melodic-effort-controllers ros-melodic-joint-trajectory-controller
然后要修改一下其中的一个world文件,保证绝对路径的正确。不知道自己电脑名字的同学,可以在终端中输入pwd命令查看当前文件的系统路径。
3. RViz与Gazebo可视化机器人
在终端中输入下面的命令,可以在RViz中查看机器狗:
roslaunch laikago_description laikago_rviz.launch
结果如下图所示:
新开一个终端,输入下面的命令,可以打开Gazebo仿真界面:
roslaunch unitree_gazebo normal.launch rname:=a1 wname:=stairs
其中rname表示机器人名称,可以是laikago、aliengo、a1或go1。wname表示世界名称,可以是地球、空间或楼梯。rname的默认值为laikago,wname的默认值为Earth。在Gazebo中,机器人应该躺在地面上,且关节未激活。
启动机器狗的话,我们就让他站起来,输入如下命令:
rosrun unitree_controller unitree_servo
你还可以通过下面这个指令添加外部干扰:
rosrun unitree_controller unitree_external_force
下面我们演示一下如何在没有控制器的情况下控制机器人的位置和姿态:
rosrun unitree_controller unitree_move_kinetic
这个命令是让机器狗沿着世界坐标系做圆周运动。在源文件move_publisher.cpp中,还提供了使用机器人坐标系进行移动的方法。
总结
到这里,Unitree工具包的安装就结束了,并且我们进行了几个比较简单的可视化操作。想要实现更多功能,还需要自己探索。
参考文献: