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

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

热心网友开源环境配置:解析A1-QP-MPC-Controller (matheecs.tech) (这位大佬现在关闭了这个网页 大家可以在他的主页找找有没有A1-QP-MPC-Controller的文章 内容跟我的博客是差不多的)

代码可以从知乎文章中跳转至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安装-优快云博客https://blog.youkuaiyun.com/tugepaopaoo/article/details/131178584linux安装eigen/osqp/osqp_eigen库_osqp安装-优快云博客https://blog.youkuaiyun.com/qjj18776858511/article/details/125963379

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

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

<think>好的,我现在需要帮用户解决如何配置宇树机器狗GO1运行环境的问题。首先,我得回顾一下用户提供的引用内容,特别是引用[1]里的信息,因为那里提到了宇树科技A1机器狗开源控制器仿真环境搭建步骤,可能和GO1的配置有相似之处。 首先,用户需要的是GO1的环境配置,但引用里提到的是A1的步骤。虽然型号不同,但宇树机器人可能使用类似的框架,比如ROS(Robot Operating System)。所以,我需要确认GO1是否也基于ROS,如果是的话,步骤可能类似,但需要特定的包或参数调整。 接下来,引用[1]中的指令包括启动Gazebo仿真、初始化位姿、运行控制器等。这些步骤可能适用于GO1,但可能需要不同的启动文件或包名称。例如,rname参数可能改为go1,而不是a1。用户需要确保安装正确的ROS包,比如unitree_ros或unitree_controller,可能需要从宇树的官方仓库克隆代码。 另外,用户可能需要安装依赖项,比如ROS的特定版本(如Noetic或Melodic),以及相关的工具如catkin_make。引用[4]提到ROS集成开发环境搭建,可能涉及VSCode的配置,但用户的问题更偏向于运行环境,所以可能需要关注ROS工作空间的配置、包的编译和启动文件的执行。 还要考虑是否需要仿真环境,比如Gazebo,或者实际硬件连接。引用[1]中的Gazebo启动命令可能需要针对GO1调整wname(世界名称)和rname(机器人名称)。此外,手柄控制部分可能需要joy包,这在ROS中是常见的,但需要确认驱动是否正确安装。 用户可能还需要配置机器人的网络连接,比如通过Ethernet或Wi-Fi,确保机器狗与主机通信。宇树的文档可能提到特定的IP设置或ROS_MASTER_URI配置,这部分需要参考官方指南。 另外,引用[3]中的关于Go环境的安装可能不相关,但如果有自定义控制器或需要Go语言支持,可能需要安装特定版本的Go,但可能性较低,因为宇树可能主要使用C++或Python。 最后,需要提醒用户注意版本兼容性,比如ROS版本与Ubuntu版本的对应,以及宇树软件包的依赖项。如果有错误,可能需要查看日志,检查启动文件中的参数是否正确,或者依赖是否安装完整。 总结步骤可能包括:安装ROS,创建ROS工作空间,克隆宇树的ROS包,安装依赖,编译工作空间,配置网络,启动仿真或实际硬件,运行控制器节点。需要确保用户按照官方教程操作,并参考提供的引用中A1的步骤进行调整,同时建议查阅宇树GO1的官方文档获取准确信息。</think>### 宇树科技 GO1 机器人环境搭建与配置教程 #### 一、基础环境准备 1. **操作系统选择** 推荐使用 **Ubuntu 20.04 + ROS Noetic** 或 **Ubuntu 18.04 + ROS Melodic**,需与宇树官方提供的SDK兼容[^4]。 ```bash # 安装ROS(以Noetic为例) sudo apt-get install ros-noetic-desktop-full ``` 2. **依赖库安装** 安装编译工具及通信库: ```bash sudo apt-get install cmake libasio-dev libprotobuf-dev protobuf-compiler ``` --- #### 二、ROS工作空间配置 1. **创建工作空间** ```bash mkdir -p ~/go1_ws/src cd ~/go1_ws/src git clone https://github.com/unitreerobotics/unitree_ros.git # 克隆宇树官方ROS包 ``` 2. **编译与环境变量** ```bash cd ~/go1_ws catkin_make # 编译ROS包 echo "source ~/go1_ws/devel/setup.bash" >> ~/.bashrc # 添加环境变量 source ~/.bashrc ``` --- #### 三、仿真与硬件连接 1. **Gazebo仿真启动** 启动仿真环境并加载GO1模型(需确认官方是否提供GO1的Gazebo模型): ```bash roslaunch unitree_gazebo go1_sim.launch # 示例指令,具体名称需参考官方文档 ``` 2. **硬件通信配置** - 通过网线连接GO1控制盒,设置静态IP(例如`192.168.123.15`)[^1] - 配置ROS网络通信: ```bash export ROS_MASTER_URI=http://<机器人IP>:11311 export ROS_IP=<本机IP> ``` --- #### 四、控制器与示例程序 1. **基础运动控制** 启动底层控制器: ```bash roslaunch unitree_controller go1_ctrl.launch # 示例指令,需适配GO1 ``` 2. **手柄控制(可选)** 使用游戏手柄实现遥控: ```bash rosrun joy joy_node # 启动手柄驱动 rosrun unitree_controller unitree_joystick # 启动控制节点 ``` --- #### 五、常见问题与验证 1. **依赖缺失错误** 若编译报错,检查是否遗漏依赖: ```bash rosdep install --from-paths src --ignore-src -r -y ``` 2. **仿真模型验证** 在Gazebo中观察机器人是否正常加载,并通过`rostopic list`检查ROS话题是否正常发布。 --- ###
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神筆&『馬良』

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值