面向载荷不确定性的四旋翼可恢复轨迹规划与安全监督。
Research code for Confidence-Set-Conditioned Stopping Occupancy for Recoverable Quadrotor Planning under Payload Uncertainty.
无人机绕开障碍物,并不意味着它能在动力、载荷或执行延迟发生变化后及时停下来。本项目围绕这一问题,将动力学置信集合、停止占据空间与轨迹规划相结合,并在规划失败或环境变化时检查和选择备用动作。
动力学观测与门控更新
↓
质量 / 可用推力 / 延迟等参数的置信集合
↓
与速度方向相关的停止占据空间
↓
安全走廊收缩与连续轨迹验证
↓
轨迹执行前检查 → 安全监督 → 制动 / 悬停 / 撤退备份
| 模块 | 作用 |
|---|---|
confidence_set.py |
参数区间、观测门控与置信集合更新 |
dynamics_envelope.py |
动力学边界与停止距离 |
stopping_tube.py |
三维停止管及椭球切片 |
corridor.py |
自由空间收缩与可恢复状态检查 |
trajectory.py / minco.py |
五次多项式轨迹、最小 jerk 参考实现 |
continuous_verifier.py |
连续轨迹证书与约束验证 |
planner.py |
路径搜索与可恢复规划 |
backup.py / supervisor.py |
备用动作验证与安全状态管理 |
baselines.py |
数值实验中的比较方法 |
核心模块位于 udrc/;scripts/ 提供数值实验、分析和绘图;tests/ 提供单元与集成测试;sitl/bootstrap/ 保存 PX4/Gazebo 实验脚本。
原项目采用 Python 3.12。建议先创建并激活虚拟环境,然后安装依赖:
pip install -r requirements.txt
python -m unittest discover -s tests -v运行数值实验及绘图:
python scripts/run_m5_m7_numerical.py
python scripts/plot_m5_m7_results.py数值实验结果写入 artifacts/m5_m7_numerical/。完整的原始实验步骤见 复现说明。
pip install -r requirements-sitl.txt仿真还需要独立配置 PX4、Gazebo、MAVSDK 及对应 WSL 环境。sitl/bootstrap/ 中的脚本保留了原机器路径:F:/ROBIO_P1_SITL、/mnt/f/ROBIO_P1_SITL 和 /opt/robio/PX4-Autopilot。运行前请调整脚本和分析程序中的路径。启动脚本会恢复或修改仿真模型,并清理相关仿真进程,应在专用仿真环境使用。
- 本次源码整理后,48 项单元与集成测试全部通过。
- 仓库包含算法、数值实验和仿真辅助脚本;未随源码发布原始飞行日志、生成结果、论文草稿或仿真环境镜像。
- 依赖历史日志的分析脚本需要额外数据,不能仅凭本仓库完整重建论文全部图表。
- 当前工作范围为数值与仿真研究,未包含真实硬件飞行验证;测试通过不等于实飞安全认证。
- 最小 jerk 求解器是 dense-KKT 参考实现,不能视为优化过的 ROS/C++ banded-MINCO 实现。
Zihua Liu. Confidence-Set-Conditioned Stopping Occupancy for Recoverable Quadrotor Planning under Payload Uncertainty. ROBIO manuscript.
仓库对应作者确认的 ROBIO 论文版本;出版年份、DOI 和正式引用格式待最终出版信息确定后补充。