问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

宇树机器狗Go1开发指南:Unitree工具包安装教程

创作时间:
作者:
@小白创作中心

宇树机器狗Go1开发指南:Unitree工具包安装教程

引用
CSDN
1.
https://m.blog.csdn.net/ZJFJhanxi/article/details/137887419

近期开始学习使用宇树科技公司的机器人Go1,目前只是初步实现了GitHub上readme文档的一些基本功能。本文将详细介绍在Ubuntu 20.04 LTS系统上安装Unitree工具包的步骤,包括创建ROS工作空间、安装相关依赖、以及在RViz和Gazebo中进行机器人可视化操作。

基本条件

本文使用的基本环境如下:

  • ROS1 noetic
  • Ubuntu 20.04 LTS
  • VS Code 1.87.2

官方资料

关于宇树机器人的一些资料网址:

安装总共需要用到三个包:

  • 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工具包的安装就结束了,并且我们进行了几个比较简单的可视化操作。想要实现更多功能,还需要自己探索。

参考文献:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号