四足机器人控制算法——建模、控制与实践(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

相关文章

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二