px4 使用gazebo进行模拟
本文介绍了使用PX4与Gazebo进行无人机仿真的完整流程。首先通过克隆PX4仓库并运行安装脚本完成环境搭建。随后介绍了启动不同类型仿真模型(多旋翼/固定翼/车类/水下机器人)的命令。针对编译过程中可能出现的子模块版本不匹配问题,提供了三种解决方案:自动更新子模块(推荐)、手动更新以及专家用户处理方式。最后解决了Gazebo依赖库缺失问题,包括安装python3-lxml等必要依赖包和更新软件源的
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.安装缺失的依赖库
在终端中运行以下命令安装lxml、libxml2和libxslt相关依赖:
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
如果出现依赖库安装失败的情况

安装缺失的依赖库失败解决步骤
-
更新软件源列表:在终端中输入以下命令,更新系统的软件源信息,确保能获取到最新的软件包列表。
sudo apt update -
重新安装软件包:更新完成后,再次尝试安装需要的软件包,输入命令:
sudo apt install python3-lxml libxml2-dev libxslt1-dev
成功进入仿真模式


更多推荐

所有评论(0)