px4 使用gazebo进行模拟

1、安装 PX4 和 Gazebo

首先需要安装 PX4 自动驾驶仪固件和 Gazebo 仿真环境。推荐使用官方提供的脚本进行安装:

# 克隆PX4仓库
git clone https://github.com/PX4/PX4-Autopilot.git --recursive

# 进入目录
cd PX4-Autopilot

# 运行安装脚本(会自动安装Gazebo及其他依赖)
bash ./Tools/setup/ubuntu.sh

2、启动 Gazebo 仿真

安装完成后,可以直接启动 PX4 与 Gazebo 的仿真环境:

# 基本多旋翼仿真(默认是iris无人机)
make px4_sitl gazebo

# 固定翼仿真
make px4_sitl gazebo_standard_vtol

# 车类机器人仿真
make px4_sitl gazebo_rover

# 水下机器人仿真
make px4_sitl gazebo_uuv_hippocampus

运行命令后,会自动启动:

  • PX4 SITL (Software In The Loop) 模拟器
  • Gazebo 仿真环境,显示对应的机器人模型
  • MAVLink 连接,用于与地面站通信

在这里插入图片描述

这是 PX4 编译过程中遇到的子模块版本不匹配问题 .

具体来说,src/drivers/gps/devices这个子模块的当前版本与 PX4 主仓库期望的版本不一致,导致编译过程被中断。

devices`子模块版本不匹配解决方案

1.自动更新子模块(推荐,适合大多数情况)

在编译中断后的交互提示中,输入 u 并按回车,系统会自动同步并更新所有子模块到正确版本:

u

2.手动更新子模块
如果错过了交互提示,可以在 PX4-Autopilot 目录下手动执行以下命令:

# 同步子模块配置
git submodule sync --recursive

# 更新子模块到指定版本
git submodule update --init --recursive

3.如果是专家用户且确实需要使用当前子模块版本

可以输入 y 忽略版本检查继续编译,或执行以下命令将当前子模块版本提交到本地仓库:

git add src/drivers/gps/devices
git commit -m 'Updated src/drivers/gps/git_init_devices.stamp'

完成上述操作后,重新运行编译命令即可:

make px4_sitl gazebo

在这里插入图片描述

这是 PX4 编译过程中出现的子模块版本不匹配问题,涉及到src/modules/mavlink/mavlink子模块。

mavlink`子模块解决方法

如果不是你主动修改了该子模块(或者不清楚子模块是什么),按照提示,在当前交互界面输入 u 并回车,系统会自动同步并更新所有子模块到正确版本,之后再重新尝试编译即可。

在这里插入图片描述

这是在编译 PX4(一款无人机飞控软件)时出现的错误,涉及到 Gazebo - classic(一种机器人仿真软件)相关的子模块和依赖问题。

Gazebo - classic 依赖问题解决步骤

1.安装缺失的依赖库

在终端中运行以下命令安装lxmllibxml2libxslt相关依赖:

sudo apt - get install python3 - lxml libxml2 - dev libxslt1 - dev

2.更新或重新初始化子模块

进入 PX4 - Autopilot 目录,执行以下命令确保子模块正确:

git submodule sync --recursive
git submodule update --init --recursive

3.清理并重新编译

清理之前的编译产物,然后重新编译:

make clean
make px4_sitl gazebo_classic

如果出现依赖库安装失败的情况

在这里插入图片描述

安装缺失的依赖库失败解决步骤

  1. 更新软件源列表:在终端中输入以下命令,更新系统的软件源信息,确保能获取到最新的软件包列表。

    sudo apt update
    
  2. 重新安装软件包:更新完成后,再次尝试安装需要的软件包,输入命令:

sudo apt install python3-lxml libxml2-dev libxslt1-dev

成功进入仿真模式

在这里插入图片描述
在这里插入图片描述

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐