四足机器人控制算法——建模、控制与实践(unitree_guide配置)

news2024/9/21 14:46:12

目录

官方文档

unitree_guide

1. 快捷指令

2. ROS安装

3. LCM库安装

3.1. 安装步骤

4. pthread库

5. 工程文件下载

6. 编译

报错:

报错1

报错2:

报错3

其他报错

7. 运行

7.1. 运行 Gazebo 仿真环境

7.2. 启动控制器

8. 简单使用


官方文档

宇树科技 文档中心

  1. 四足机器人算法实践
  2. 宇树官方开源

我使用的是Ubuntu 20.04 + ROS noetic 环境。


unitree_guide

1. 快捷指令

如果以下配置都已经完成,直接使用以下三条指令,快速完成Go1的配置:

// 在~/catkin_ws下打开第一个终端
source ./devel/setup.bash
roslaunch unitree_guide gazeboSim.launch

// 在~/catkin_ws下打开第二个终端
sudo ./devel/lib/unitree_guide/junior_ctrl

2. ROS安装

参考 ROS—1. ROS安装

3. LCM库安装

LCM(Lightweight Communications and Marshalling)是一组用于消息传递和数据编组的库和工具,其基于UDP传输的属性,传输速度较快,其目标是高带宽和低延迟的实时系统。它提供了一种发布/订阅消息传递模型以及带有各种编程语言C++、Java、python等应用程序绑定的自动编组/解组代码生成,LCM通过将消息封装在不同的Channel中进行通信,这点类似于ROS中的Topic。

网址:GitHub - lcm-proj/lcm: Lightweight Communications and Marshalling

LCM Documentation — LCM documentation

LCM库的简单使用-腾讯云开发者社区-腾讯云

3.1. 安装步骤

  • 安装编译依赖:
sudo apt-get install build-essential autoconf automake autopoint libglib2.0-dev libtool openjdk-8-jdk python-dev
  • GitHub上下载releases,我下载的是V1.5.0版本

  • 将下载的压缩包解压到:主目录

  • 进入 lcm-1.5.0打开终端输入:
mkdir build
cd build
cmake ..
make
make install
  • 上面完成了LCM的安装。然后告诉系统lib的库所在位置:
export LCM_INSTALL_DIR=/usr/local/lib
sudo sh -c "echo$LCM_INSTALL_DIR> /etc/ld.so.conf.d/lcm.conf"
sudo ldconfig
  • 配置pkgconfig:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$LCM_INSTALL_DIR/pkgconfig
  • 以上步骤都完成后:输入指令lcm-tester以测试是否已经安装 LCM。 若终端显示的内容与下图类似,则表示已经安装 LCM。

4. pthread库

一个多线程库。

运行 getconf GNU_LIBPTHREAD_VERSION 命令以测试是否已经安装pthread库。若可以显示版本信息,则说明 pthread 库已经安装。

5. 工程文件下载

到宇树Github下载这三个文件:

  1. unitree_guide :
    GitHub - unitreerobotics/unitree_guide
  2. unitree_ros :
    GitHub - unitreerobotics/unitree_ros
  3. unitree_legged_msgs :
    GitHub - unitreerobotics/unitree_ros_to_real

6. 编译

打开一个终端,并将工作路经切换至包含 unitree_guide 工程的 ros 工作空间的根目录下(本文假设该路经为 ~/catkin_ws ),并在终端输入下列命令开始编译该工程: catkin_make

编译通过后,显示如下:进度条100%

如果出现报错,就安装对应的包。

报错:

报错1

比如出现这个报错:Could not find the required component 'move base msgs'. The followingCMake eror indicates that you either need to install the package with the same name orchange your environment so that it can be found.

原因:此报错是由于move_base_msgs缺失引起的,使用如下命令安装这个功能包:

sudo apt-get install ros-noetic-navigation
报错2:

pip3 install pyyaml
报错3

出现报错:AttributeError: module 'em' has no attribute 'RAW_OPT'

解决办法:pip3 install empy==3.3.4

其他报错

其他类似报错参考:开源四足机器人代码踩坑指南

7. 运行

7.1. 运行 Gazebo 仿真环境

在同一个终端中,执行下列命令:source ./devel/setup.bash

然后执行下列命令来打开 Gazebo 仿真环境:roslaunch unitree_guide gazeboSim.launch

出现报错:

解决方法:

pip3 install rospkg

正确运行后,会跳出 Gazebo 仿真器窗口,并且 Go1 机器人会躺在仿真环境中的地面上。要想让机器人动起来,还需要启动控制器。

7.2. 启动控制器

打开另外一个终端,并切换至相同路径下(本文假设该路经为~/catkin_ws ),然后输入下列命令以启动控制器:sudo ./devel/lib/unitree_guide/junior_ctrl

报错:./devel/lib/unitree_guide/junior_ctrl: error while loading shared libraries: libxmlrpcpp.so: cannot open shared object file: No such file or directory

解决方法:宇树科技 文档中心

添加修改:

/opt/ros/noetic/lib
/usr/local/lib

配置成功后,显示:

8. 简单使用

选中在上一步中用来启动控制器的终端,然后按下键盘上的 “2” 键。此时在 Gazebo 环境中的机器人会站起来,同时终端会显示:

“Switched from passive to fixed stand”

在仿真环境中,按下键盘上的 W A S D 键 分别控制机器人 前进 左平移 后腿 右平移。按下键盘上的 J L 键 分别控制机器人 左转 右转

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贪心(临项交换)

前言&#xff1a;对待这个问题&#xff0c;我想到就是一定是贪心&#xff0c;但是我不知道怎么排序 对待这种问题&#xff0c;肯定是要先假设只有两个&#xff0c;我们要怎么排序呢 class Solution { public:long long minDamage(int power, vector<int>& damage, v…

分布式主键

目录 1.分布式主键的基本需求 2.常见的分布式主键生成策略 2.1UUID&#xff08;128位&#xff09; 2.2MySQL 2.2.1自增主键 2.2.2区间号段 2.3Redis 2.4SnowFlake雪花算法&#xff08;64位&#xff09; 1.分布式主键的基本需求 全局唯一&#xff1a;不管什么主键&…

Linux驱动(二):模块化编程的基本操作

目录 前言一、模块化编程1.模块化驱动代码框架2.printk详解3.应用操作 二、多模块编程三、多文件编程四、函数传参 前言 没多少东西&#xff0c;就是最基础的一些Linux驱动编写操作。 一、模块化编程 驱动加载到内核中的两种方法&#xff1a; 1.静态编译&#xff1a;就是将模…

【Python百日进阶-Web开发-Feffery】Day500 - dash使用秘籍

文章目录 前言:fac是什么?“人生苦短,我用Python;Web开发,首选Feffery!”↓↓↓ 今日笔记 ↓↓↓1 dash应用使用cdn加载静态资源1.1 页面效果1.2 项目源码2 suppress_callback_exceptions=True3 阻止首次回调3.1 阻止所有回调函数的首次回调3.2 阻止单个回调函数的首次回…

《JavaEE进阶》----5.<SpringMVC②剩余基本操作(CookieSessionHeader响应)>

Cookie和Session简介。 Spring MVC的 2.请求 Cookie的设置和两种获取方式 Session的设置和三种获取方式。 3.响应 1.返回静态页面 2.返回数据 3.返回HTML片段 4.返回JSON 5.设置状态码 6.设置header 三、&#xff08;接上文&#xff09;SpringMVC剩余基本操作 3.2postman请求 …

CSAPP Data Lab

CSAPP 的第一个 Lab&#xff0c;对应知识点为书中的第 2 章&#xff08;信息的表示与处理&#xff09;&#xff0c;要求使用受限制的运算符和表达式实现一些位操作。主要分为两个部分&#xff1a;整数部分和浮点数部分。其中整数部分限制较多&#xff0c;比较偏重技巧性&#x…

Red Hat Enterprise Linux 9—Red Hat 9.4Linux系统 Mac电脑虚拟机安装【保姆级教程】

Mac分享吧 文章目录 效果一、下载软件二、安装软件与配置1、安装2、配置 三、查看基本信息安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件 地址&#xff1a;www.macfxb.cn 二、安装软件与配置 1、安装 2、配置 三、查看基本信息 安装完成&#xf…

【国考】特值法

特值法 题干中存在乘除关系&#xff0c;且对应量未知。 例3&#xff1a;甲、乙、丙三个工程队的效率比为6&#xff1a;5&#xff1a;4,现将A、B两项工作量相同的工程交给这三个工程队,甲队负责A工程,乙队负责B工程,丙队参与A工程若干天后转而参与B工程.两项工程同时开工,耗时16…

【PyQt6 应用程序】视频百叶窗效果一键生成模块

在现代的多媒体创作中,音频和视频的结合是提升作品感染力的关键因素之一。尤其是短视频的制作,往往需要根据音频的节奏进行精细的剪辑和特效添加。PyQt6 作为一个功能强大的 Python GUI 库,为我们提供了极大的便利,使得我们可以轻松地创建功能丰富的应用程序。 本教程将一…

J.U.C并发工具集实战及原理分析

​在J.U.C里提供了很多的并发控制工具类&#xff0c;这些工具类可以使得线程按照业务的某种约束来执行。本节包含CountDownLatch、Semaphore、CyclicBarrier等工具类。目的是了解他们基本使用、原理及实际应用。 1. CountDownLatch主题 1.1 CountDownLatch简介 CountDownLat…

ShardingSphere-JDBC实现数据加解密

一、什么是ShardingSphere&#xff1f; ShardingSphere定位为轻量级 Java 框架&#xff0c;在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库&#xff0c;以 jar 包形式提供服务&#xff0c;无需额外部署和依赖&#xff0c;可理解为增强版的 JDBC 驱动&#xff0c;完…

最优化理论(一)

什么是最优化问题 最优化问题是决策问题&#xff0c;选择一下可以执行的策略来使得目标最优。 一个最优化问题包括&#xff1a; 决策变量一个或多个目标函数一个由科兴策略组成的集合&#xff0c;可由等式或者不等式刻画 最优化问题的基本形式&#xff1a; 最优化问题的分类…

upload-labs通关攻略

Pass-1 这里上传php文件说不允许上传 然后咱们开启抓包将png文件改为php文件 放包回去成功上传 Pass-2 进来查看提示说对mime进行检查 抓包把这里改为image/jpg; 放包回去就上传成功了 Pass-3 这里上传php文件它说不允许上传这些后缀的文件 那咱们就可以改它的后缀名来绕过…

Guitar Pro 8.2.1 Build 32+Soundbanks Win/Mac音色库 开心激活版 音乐软件Guitar Pro 8中文破解版

音乐软件Guitar Pro 8中文破解版是一个受吉他手喜爱的吉他和弦、六线谱、BASS 四线谱绘制、打印、查看、试听软件&#xff0c;它也是一款优秀的 MIDI 音序器&#xff0c;MIDI 制作辅助工具&#xff0c;可以输出标准格式的 MIDI。GP 的过人之处就在于它可以直接用鼠标和键盘按标…

过滤器 与 拦截器

文章目录 过滤器 与 拦截器一、过滤器&#xff08;Filter&#xff09;1、特点2、生命周期3、实现4、过滤器链1&#xff09;配置 order2&#xff09;执行顺序 二、拦截器 Inteceptor1、特点2、生命周期3、实现4、拦截器链1&#xff09;配置 order2&#xff09;执行顺序&#xff…

【Linux】保姆级 Linux 常见命令使用

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. Linux 是什么1.1 Linux 是什么1.2 关于 Linux 我们需要学什么 2. 需提前准备的东西2.1 环境 —— 如何获取…

关于PowerDesigner的使用

1.PowerDesigner概述&#xff1a; 1.PowerDesigner是一款开发人员常用的数据库建模工具&#xff0c;用户利用该软件可以方便地制作 数据流程图、概念数据模型 、 物理数据模型 &#xff0c;它几乎包括了数据库模型设计的全过程&#xff0c;是Sybase公司为企业建模和设计提供的…

蓝色炫酷碎粒子HTML5导航源码

源码介绍 蓝色炫酷碎粒子HTML5导航源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果预览 源码获取 蓝色炫酷碎粒…

火焰传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 IR.h文件 IR.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 火焰传感器是一种常用于检测火焰或特定波长&#xff08;760nm-1100nm&#xff09;红外光的传感器。探测角度60左右&am…

MQTT学习:MQTT vs AMQP,mosquitto安装,调试工具mqttfx mqttx

前言 物联网vs互联网? 数据量/数据源:物联网的数据多是设备的自动采集,其数量远远超过互联网,互联网的数据更多是人工生成的 MQTT 协议(Message Queuing Telemetry Transport)vs AMQP 协议(Advanced Message Queuing Protocol)是两种在物联网中广泛使用的协议。 物联网…