宇树科技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运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次