宇树科技A1机器狗开源QP-MPC-Controller仿真环境搭建及运行

本文主要是介绍宇树科技A1机器狗开源QP-MPC-Controller仿真环境搭建及运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文章:硕哥大佬知乎文章又一个开源的四足机器人控制器 - 知乎 (zhihu.com)

热心网友开源环境配置:解析A1-QP-MPC-Controller (matheecs.tech)

代码可以从知乎文章中跳转至github下载

本文主要用于说明如何搭建宇树科技开源代码运行环境,环境配置比较复杂,需要提前准备好一个游戏手柄,键盘无法控制机器狗运动

原始仓库采用 Docker 安装依赖环境,其实不用 Docker 也能跑,只需要按照 A1-QP-MPC-Controller/docker/Dockerfile 文件里的指令一步步执行。假设你已经安装好了 ROS,那么还需要完成以下步骤:

1.安装基本库

sudo apt-get update && apt-get install -y \vim \libatlas-base-dev \libeigen3-dev \libgoogle-glog-dev \libsuitesparse-dev \python-catkin-tools \python3-matplotlib \gfortran \autoconf \coinor-libipopt-dev \libgfortran3 \curl \libopenmpi-dev \apt-utils \software-properties-common \build-essential \libssl-dev \ros-${ROS_DISTRO}-ros-control \ros-${ROS_DISTRO}-gazebo-ros \ros-${ROS_DISTRO}-joy \ros-${ROS_DISTRO}-ros-controllers \ros-${ROS_DISTRO}-robot-state-publisher

2.安装osqp及osqp-eigen等库(这里要注意大概率后续要修改库版本,因为这两个库版本要对应起来才能运行,可以先看我后面的链接)

安装 OSQP

cd ~
git clone --recursive https://github.com/oxfordcontrol/osqp
cd osqp
mkdir build
cd build
cmake ..
make -j
sudo make install

安装 osqp-eigen

cd ~
git clone https://github.com/robotology/osqp-eigen.git
cd osqp-eigen
mkdir build
cd build
cmake ..
make -j
sudo make install

安装 LCM

cd ~
git clone https://github.com/lcm-proj/lcm.git
cd lcm
mkdir build
cd build
cmake ..
make -j
sudo make install

编译(无需安装) unitree_legged_sdk & aliengo_sdk

cd ~
git clone https://github.com/unitreerobotics/unitree_legged_sdk.git
cd unitree_legged_sdk
git checkout v3.2
mkdir build
cd build
cmake ..
make -j
cd ~
git clone https://github.com/unitreerobotics/aliengo_sdk.git
cd aliengo_sdk
mkdir build
cd build
cmake ..
make -j

3.配置环境变量

修改 ~/.bashrc 文件,末尾添加

source /opt/ros/${ROS_DISTRO}/setup.bash
source ~/catkin_ws/devel/setup.bash
export UNITREE_LEGGED_SDK_PATH=~/unitree_legged_sdk
export ALIENGO_SDK_PATH=~/aliengo_sdk
#amd64, arm32, arm64
export UNITREE_PLATFORM="amd64"

最后安装 unitree_ros (假设 ROS 工作空间路径为 ~/catkin_ws) 和 A1-QP-MPC-Controller

cd catkin_ws/src
git clone https://github.com/ShuoYangRobotics/unitree_ros.git
git clone https://github.com/ShuoYangRobotics/A1-QP-MPC-Controller.git
cd ~/catkin_ws
catkin_make

顺利执行完以上指令后,就可以启动程序啦。以

4.启动 Gazebo 仿真

# 启动 Gazebo 仿真环境
$ roslaunch unitree_gazebo normal.launch rname:=a1 wname:=stairs_single
# 初始化机器人位姿
$ rosrun unitree_controller unitree_servo # let the robot stretch legs
$ rosrun unitree_controller unitree_move_kinetic # place the robot back to origin
# 启动手柄🎮驱动
$ rosrun joy joy_node
# 启动控制器
$ roslaunch a1_cpp a1_ctrl.launch type:=gazebo solver_type:=mpc

其中手柄的 A 键用来切换 stand/tort 步态

遇到的问题:如果在catkin_make运行报错,八成是osqp和osqp-eigen库版本不匹配的原因,可以在csdn上找一些解决方案,参考文章:

osqp和osqp-eigen优化库安装编译报错记录_osqp安装-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/tugepaopaoo/article/details/131178584linux安装eigen/osqp/osqp_eigen库_osqp安装-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qjj18776858511/article/details/125963379

还有一些错误是C语言版本的问题,可以在Cmakelist文件中修改调用的C++库来解决,具体问题可以搜到,时间太久远我都忘了去年搞的

如果没有遇到问题,则说明您运气比较好,我当时改了三天bug才成功!!!

这篇关于宇树科技A1机器狗开源QP-MPC-Controller仿真环境搭建及运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

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

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

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1