PX4 / 3D LiDAR / A→B

PX4 SITL · GAZEBO · ROS 2 JAZZY

PX4 三维 LiDAR 导航仿真

Gazebo 提供物理世界与 3D LiDAR,DLIO 估计运动,OctoMap 建图,MRS 3D A* 规划,PX4 OFFBOARD 执行。 本仓库提供启动编排、组件连接、路径检查和结果保存;算法由上游开源项目提供。

$ ./demo.sh --interactive
目标误差
0.040 m
项目边界 ≤ 0.4 m
路径长度
12.753 m
8 个可执行点
障碍中心距
2.856 m
项目边界 ≥ 1.35 m
RViz 应用内导出的三维点云、OctoMap、绿色规划路径、起点和目标点 RViz · LiDAR / OctoMap / Planned path
在线 OctoMap 上的 MRS 3D A* 路径 A [0,0,2.2] → B [7,7,2.2] · 8 path points · AUTO.LAND
A
B

从在线建图
到自动落地

四个场景展示同一条主线:Gazebo 生成传感器数据,RViz 显示在线 OctoMap 与三维路径,PX4 执行路径并在目标点落地。

Gazebo 应用内导出的三维障碍世界,包括门型障碍、柱体、倾斜板和围墙 Gazebo · Obstacle world 01 02
01

物理世界就绪

静态障碍具有不同高度、姿态和通行间隙;Gazebo 同时运行 x500、IMU 和 3D LiDAR。

RViz 应用内导出的实时彩色 LiDAR 点云和 0.4 米 OctoMap 体素地图 RViz · LiDAR + OctoMap 01 02
02

点云进入在线地图

彩虹色表达高度;方块是 OctoMap 占据体素。规划器读取的是同一份在线地图,而不是离线示意图。

RViz 应用内导出的 A 到 B 绿色绕障路径、起点目标标记和飞行器位姿 RViz · MRS 3D A* route A B P
03

规划并执行非直线路径

MRS MinimalOctomapPlanner 生成 8 点完整路径,横向绕行 3.111 m。路径通过完整性与净距检查后,由 PX4 OFFBOARD 执行。

Gazebo 应用内导出的 x500 无人机在 B 点落地后的机体和顶部 3D LiDAR Gazebo · Goal B L
04

到达 B 并自动落地

目标误差 0.040 m;任务切换到 AUTO.LAND,最终事件为 landed_disarmed。

组件与数据流

项目代码位于组件边界,只负责数据路由、目标接收、路径检查、航点平滑和结果保存;定位、地图、规划与飞控继续使用上游开源实现。

01 / PHYSICS

PX4 + Gazebo

SITL 飞控、动力学、IMU 与 3D LiDAR。

02 / ODOM

DLIO

激光惯性里程计输出 pose、velocity 与 yaw。

03 / FUSION

MAVROS + EKF2

PX4 融合外部位置、机体系速度与航向。

04 / MAP

OctoMap

将 pose + cloud 转为 0.4 m 三维占据地图。

05 / PLAN

MRS 3D A*

MinimalOctomapPlanner 生成完整绕障路径。

06 / GUARD

Safety gate

拒绝不完整路径、越界点和净距不足路径。

07 / EXECUTE

OFFBOARD

平滑航点、到达确认、AUTO.LAND。

飞控PX4 v1.17.0
ROSROS 2 Jazzy
仿真Gazebo Harmonic
通信MAVROS 2.14.0

支持的运行环境

启动前检查系统、架构、主机命令、版本、资源、图形显示、runtime 文件和固定源码 commit。检查过程不会修改代理、DNS、软件源或虚拟机设置。

Operating system
Ubuntu 24.04 LTS Desktop
Architecture
Linux x86_64
CPU / RAM
推荐 8 线程、12 GiB RAM + 4 GiB swap;最低 4 线程、guest 内 10 GiB RAM
Disk
首次安装推荐 30 GiB 可用,最低 20 GiB;完整 runtime 约 14 GiB
Desktop
GNOME + X11,或 Wayland + XWayland;VMware 建议启用 3D acceleration
Host versions
Bash ≥ 5.2、Git ≥ 2.43、Python 3.12.x

参考环境检查输出:

$ ./scripts/check_environment.sh --run
PASS operating system   Ubuntu 24.04.4 LTS
PASS architecture      x86_64
PASS Python            3.12.3
PASS desktop display   reachable
PASS runtime files     Jazzy / Harmonic
PASS source versions   PX4 / DLIO / MAVROS

Environment check: PASS

安装与启动

宿主机依赖清单位于安装文档。项目脚本负责检查、下载固定输入、构建和核验;安装完成后使用 ./demo.sh 启动。

# Ubuntu 24.04 Desktop / x86_64
git clone https://github.com/albert17github/PX4-3D-LiDAR-Nav-Demo.git
cd PX4-3D-LiDAR-Nav-Demo
./scripts/check_environment.sh --setup
./setup.sh
./demo.sh --interactive
STAGE

明确停在哪一步

输出例如 setup stage 4/6 failed,不把多个下载或构建错误混在一起。

LOG

给出唯一日志路径

每个阶段保存到 runtime/logs/,上游 apt、curl、git 原始错误保持可见。

BOUNDARY

不隐藏环境差异

脚本不自动切换镜像、DNS 或代理,也不绕过非推荐系统;问题处理完成后可继续复用已完成步骤。

完整冷启动、在线规划、飞行与落地

参考环境从冷启动到 ready 用时 248 秒;MRS 规划器生成完整路径,PX4 执行全部航点并在 B 点自动降落。

REFERENCE RESULT

参考任务结果

MRS MinimalOctomapPlanner 返回完整路径;PX4/DLIO/MAVROS/OctoMap 保持同一在线会话。任务事件末尾是 goal_B_reached → AUTO.LAND → landed_disarmed。

STARTUP248 s
PATH12.753 m
CROSS-TRACK3.111 m
GOAL ERROR0.040 m