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

本文主要是介绍四足机器人控制算法——建模、控制与实践(unitree_guide配置),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

官方文档

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 键 分别控制机器人 左转 右转

这篇关于四足机器人控制算法——建模、控制与实践(unitree_guide配置)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127825

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Java 结构化并发Structured Concurrency实践举例

《Java结构化并发StructuredConcurrency实践举例》Java21结构化并发通过作用域和任务句柄统一管理并发生命周期,解决线程泄漏与任务追踪问题,提升代码安全性和可观测性,其核心... 目录一、结构化并发的核心概念与设计目标二、结构化并发的核心组件(一)作用域(Scopes)(二)任务句柄