> 技术文档 > 开源!!!!一行代码安装 宇树Go2机器狗 SDK+ros1(感知+定位+规划) 的大模型语言控制导航框架详细教程_宇树机器狗sdk

开源!!!!一行代码安装 宇树Go2机器狗 SDK+ros1(感知+定位+规划) 的大模型语言控制导航框架详细教程_宇树机器狗sdk


一.成果展示

博主在基于go2_SDK的基础上,在原本没有topic支持的ros1,实现了机器狗的导航,可以实现在rviz里发布目的地,实现导航,也可以通过模型接收模糊文本指令实现导航,直接展示成果:

已完成的任务:(1)go2​​​​SDK改写,启动后发布ros1的topic imu,机器人pose,雷达。

                         (2)大模型+导航,根据文字输入模糊转向指令与目的地,实现狗的导航。

开源地址:https://github.com/bitLYL/go_ros_sdk  (有详细部署教程)

求大家点上一颗免费的小星星~您的收藏与点赞是我更新的源泉!

总体来说就是跑出了一个go2.基于SDK与ROS1的基础大模型语音控制导航框架~欢迎大家去github下载!

二.SDK开发指南

1.SDK开始

参考go2 SDK官网教程宇树科技 文档中心

注意:要下载作者开源的SDK,

https://github.com/bitLYL/go_ros_sdk/tree/main/gogo

实现ROS1的topic pose,imu,rslidar_points发布。不放心的话,可以先跑一遍官方的熟悉流程。

下载github的资源包,unitree_sdk2,将其放在主目录,打开一个终端,并依次执行下列命令以安装 unitree_sdk2:

cd ~/unitree_sdk2/mkdir buildcd buildcmake ..sudo make install

2.例程编译

打开一个终端,并依次执行下列命令以编译例程:

cd ~/unitree_sdk2mkdir buildcd buildcmake ..make

为什么编译的内容不同?

  • SDK 编译和示例编译的目标不同:第一次编译的目的是构建并安装 SDK,第二次是构建和链接示例代码。因此,虽然执行的指令相同,但实际生成的目标文件和依赖不同。

  • 构建目录不同:第一次构建的目录是用于安装 SDK 的 build 目录,而第二次是专门用于编译例程的 build 目录。两个目录的内容和生成的文件不同,虽然你在两个目录中都运行了相同的 cmakemake 命令。

运行上文中的 make 命令后,若进度进行到100%且没有报错,则意味着编译成功。

                          

若成功执行 make 命令, 生成的例程会在 build/bin 目录下。

例程运行

历程介绍:

编译成功后 unitree_sdk2/build/bin 文件夹有完成的历程:

go2_imu_pub系列:实现对机器人坐标与朝向的话题发布

go2_lidar_pub系列:实现对雷达的发布

go2_move_pub系列:自动订阅ros1的cmd_vel,实现速度控制

运行操作步骤:

 ################################SDK启动################################# 进入SDK文件夹: 

1.启动位置信息发布

cd build .cd bin  

sudo ./go2_imu_pub_6    

2.启动cmd_vel速度控制接口  

sudo ./go2_move_sub eth0 #注意要写你自己的网口

3.雷达话题发布

进入intiree_SDK2文件夹  

cd build .cd bin  

sudo ./go2_lidar_pub3 eth0  

注意:要启动roscore

成功运行后,得到如下图所示:

现在开始,就全都完成啦,下一步进行导航框架的发布!

三、导航框架的搭建与启动

1.资源准备

下载博主开源的包lyl_ws,地址:https://github.com/bitLYL/go_ros_sdk

2.编译运行

直接ros1 make

cd lyl_ws

catkin_make

source devel/setup.bash

##############################传统rviz导航#################################

roslaunch robot_navigation robot_navigation.launch

在rviz中添加goal规划

##############################大模型类导航################################

roslaunch robot_llm robot_llm.launch  

在新的终端下:

 source ~/lyl_ws/devel/setup.bash 

 rostopic pub /llm custom_msgs/MoveCommand \"{x: 0.0, y: 0.0, direction: [4], distance: 0.7}\"

注意,大模型发的控制指令为:

# -*- codig: utf-8 _*_float32 xfloat32 yfloat[] direction #前后左右 1 2 3 4 0为导航float32 distance 距离 

 3.结果演示

发布话题后可实现机器人导航

四.大模型部分实现

本次任务中,调用的大模型完成简单的任务分解即可,采取的方式为,外接本地知识库以及调用api的方式即可解决,也可本地部署大模型完成。