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

近期开始学习使用宇树科技公司的机器人Go1,目前只是初步实现了Github上readme文档的一些基本功能,在网上看了一些博客文章,感觉思路都不是很清晰,所以打算写一篇更为仔细的博客,希望可以帮助初学者(PS:本人也是初学者,如有不当请指出批评)

基本条件

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

  • ROS1 noetic
  • Ubuntu 20.04 LTS
  • VS Code 1.87.2

官方资料

关于宇树机器人的一些资料网址也放在这里

【宇树官网】

宇树科技—全球四足机器人行业开创者 (unitree.com)

【宇树文档中心】

宇树科技 文档中心 (unitree.com)

【Go1系列使用教学】

 Go1系列使用教学_哔哩哔哩_bilibili

【宇树SDK使用教学】

 宇树SDK使用教学_哔哩哔哩_bilibili

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

  • 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

这里我们创建了一个叫作catkin_ws的工作空间,然后我们进入到src里面

 cd ~/catkin_ws/src

初始化仓库

catkin_init_workspace

此时src文件夹下面会多出一个 CMakeLists.txt 文件,这时候我们的工作空间算是创建好了,我们对其进行编译,记住要先回到工作空间下面

cd ~/catkin_ws/

然后再编译,命令如下:

catkin_make

编译完成之后,此时catkin_ws下应该有三个目录:build、 devel、 src。之前用过ROS的同学应该都知道,每次打开终端需要进行source一下,更新一下环境变量。也就是每打开一个终端,都需要下面的命令

source devel/setup.bash

这样难免有些麻烦,有个一劳永逸的办法如下

新开一个终端,输入

sudo gedit.bashrc

在最后面加上

source ~/catkin_ws/devel/setup.bash

保存之后关闭,然后再输入

source ~/.bashrc

这样以后就不用每次都要source了~

2、安装相关的依赖

2.1安装Gazebo9

之前安装过Gazebo的就不用管了,没有安装过的话请看这个教程(我给的这个教程是Ubuntu20.04,如果你是其他版本,自己去搜一下就行了,安装很简单的)

http://t.csdnimg.cn/5qoB8icon-default.png?t=N7T8http://t.csdnimg.cn/5qoB8

2.2安装unitree相关的文件

这里我们直接使用gitclone来下载相关的文件,首先打开终端,进入catkin_ws/src

 cd ~/catkin_ws/src

安装unitree_ros_to_real

git clone https://github.com/unitreerobotics/unitree_ros_to_real

再安装unitree_ros

git clone https://github.com/unitreerobotics/unitree_ros

unitree_ros_to_real文件夹下面,只需要保存unitree_legged_msgs,其他的可以删除,也可以不管,然后把unitree_legged_msgs文件夹拿出来和unitree_ros放在同一目录下。

大家可以在资源管理器中操作,也可以在vscode里面操作,我在vscode里面操作之后,结构如下所示

 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文件,否则后面会报错

其实就是把unitree换成你自己PC的名字,保证绝对路径的正确。

不知道自己电脑名字的同学,也可以这样操作

鼠标选中stairs.world文件,然后右键在集成终端中打开,在终端命令行输入pwd,就可以显示当前文件的系统路径了,然后再修改stairs.world文件。

3、rviz与gazebo可视化机器人

在终端中输入下面的命令,可以在rviz中查看机器狗

roslaunch laikago_description laikago_rviz.launch

结果如下图所示

不过rviz只是对机器狗的描述,不能够实际的操作,所以在gazebo中操作空间更大,新开一个终端,输入下面的命令,可以打开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中,我们还提供了使用机器人坐标系进行移动的方法。你可以将def_frame的值更改为coord::ROBOT并再次运行catkin_make,然后unitree_move_publisher将在自己的坐标系下移动机器人。

总结

到这里,unitree安装就结束了,并且我们进行了几个比较简单的可视化操作,不过这些都是github官方开源文档里面的,想要实现更多功能大家还是得自己探索。

您的支持是我不断更新的动力,初学才浅,若有不当还请在评论区指出!

参考了下方的一些博客文章

http://t.csdnimg.cn/FECem

unitree GO1 资料整理、仿真环境搭建、以及通过 ROS 控制实体机器狗 (egh0bww1.com)

在ubuntu20.04+ros noetic上安装unitree工具包 - 知乎 (zhihu.com)

  • 47
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
八叉树路径规划是一种常用的算法,用于在给定环境中规划机器人的路径。RRT(Rapidly-exploring Random Tree,快速扩展随机树)是一种基于树的路径规划算法,适用于复杂的非完整环境。 在ROS(Robot Operating System,机器人操作系统)中,可以使用八叉树路径规划算法和RRT算法进行机器人路径规划。ROS提供了强大的路径规划库,如move_base,可以方便地实现路径规划功能。 八叉树路径规划算法在ROS中的实现过程如下:首先,通过传感器获取机器人所在环境的地图信息,并将其转化为八叉树地图表示。然后,在八叉树中,以机器人当前位置为起始点,在地图中随机选择一个点作为目标点。接下来,在八叉树中利用RRT算法进行快速扩展,通过不断将树向目标点扩展,直到找到一条可行的路径。 在ROS中实现八叉树路径规划可以使用近似最近邻搜索算法,如KD-树,来加速RRT算法的扩展过程,并提高路径规划的效率。 八叉树路径规划的优势在于能够在复杂的环境中找到有效的路径,充分考虑机器人的运动限制和环境的障碍物分布情况。同时,通过RRT算法的随机性,可以有效避免陷入局部最优解的问题。 总之,八叉树路径规划和RRT算法是在ROS中常用的路径规划方法,能够实现机器人的自主导航和路径规划功能,提高机器人的移动效率和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值