宇树科技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

相关文章

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

PostgreSQL如何用psql运行SQL文件

《PostgreSQL如何用psql运行SQL文件》文章介绍了两种运行预写好的SQL文件的方式:首先连接数据库后执行,或者直接通过psql命令执行,需要注意的是,文件路径在Linux系统中应使用斜杠/... 目录PostgreSQ编程L用psql运行SQL文件方式一方式二总结PostgreSQL用psql运

如何用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 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推