【低空经济】无人机物流路径规划模拟器
课程介绍
项目功能
课程章节 
合规声明
1. 低空经济与无人机物流概论 选修
1.1. 什么是低空经济?——国家战略新兴产业解读 选修
1.2. 无人机物流真实案例:美团外卖、顺丰丰鸟、Zipline医疗配送 选修
1.3. 项目分层目标(初中:实现Dijkstra+可视化 / 高中:A*+多约束 / 大学:遗传算法+动态障碍) 选修
1.4. 项目最终演示:在地图上设置5个收货点,自动规划最短路径并模拟飞行 选修
1.5. 开发环境搭建(Python + Pygame + Matplotlib + numpy) 选修
1.6. 图论基础知识铺垫:节点、边、权重、邻接矩阵 选修
2. ython基础衔接:网格地图与鼠标交互 选修
2.1. Pygame绘制网格:双重循环绘制矩形、设置不同颜色 选修
2.2. 鼠标事件处理:获取点击坐标,转换为网格索引 选修
2.3. 实现地图编辑器:左键添加“快递点”(绿色)、右键添加“禁飞区”(红色)、中键添加“仓库”(蓝色) 选修
2.4. 数据存储:使用二维数组(list of list)存储每个格子的类型(0空地,1快递点,2禁飞区,3仓库) 选修
2.5. 保存/加载地图:JSON格式序列化 选修
2.6. 实战:手动绘制一张包含5个快递点、3个禁飞区的地图 选修
3. 路径规划算法基础:Dijkstra 选修
3.1. 算法思想:贪心 + 松弛操作,保证找到最短路径 选修
3.2. 数据结构:优先队列(heapq)实现待探索节点集合 选修
3.3. 距离初始化:起点为0,其余为无穷大 选修
3.4. 核心代码实现:while循环,弹出最小距离节点,更新邻居 选修
3.5. 路径回溯:记录每个节点的前驱节点,从终点回溯到起点 选修
3.6. 可视化:在网格上高亮显示Dijkstra找到的路径(红色方块) 选修
4. 启发式算法:A*算法 选修
4.1. Dijkstra的缺点:盲目探索所有方向,效率低 选修
4.2. A*核心:引入启发函数f(n)=g(n)+h(n) 选修
4.3. 启发函数选择:曼哈顿距离 vs 欧氏距离 vs 对角线距离 选修
4.4. A*代码实现:与Dijkstra的区别在于优先队列排序依据改为f值 选修
4.5. 对比实验:在同一张地图上运行Dijkstra和A,比较探索节点数量和耗时 选修
4.6. 可视化探索过程:用不同颜色标记已探索节点(灰色),展示A如何“直奔目标” 选修
5. 多目标路径规划(单个快递点 → 仓库) 选修
5.1. 问题:无人机从仓库出发,送完一个快递后需返回仓库充电/取货 选修
5.2. 转化为单源最短路径问题:仓库到快递点A的最短路径 选修
5.3. 实现“往返路径”:去程路径 + 返程路径(反向) 选修
5.4. 考虑单向禁飞区:某些区域允许从上往下飞但不允许从下往上 选修
5.5. 显示路径长度(米):假设每个格子边长100米,计算总里程 选修
5.6. 实战:规划从仓库到快递点A的往返路径,并显示总里程 选修
6. 多快递点配送:旅行商问题(TSP)简化 选修
6.1. 问题:无人机需一次性配送多个快递点,如何排序使总路径最短? 选修
6.2. 计算所有点对之间的最短路径(调用A*算法) 选修
6.3. 构建距离矩阵:6×6矩阵(仓库+5个快递点) 选修
6.4. 暴力枚举(点数≤8时可行):使用itertools.permutations生成所有排列,计算总距离 选修
6.5. 最近邻启发式算法(点数>8时):从仓库出发,每次都去最近的未访问点 选修
6.6. 可视化:在网格上依次显示配送顺序(1→2→3→4→5) 选修
7. 加入真实约束:电量与载重 选修
7.1. 电池续航限制:最大航程5000米,超出的配送方案不可行 选修
7.2. 实现电量检查:在计算TSP路径后,检查每段航程是否超出剩余电量 选修
7.3. 若超出则提示“需要中途换电”,建议在中间快递点设立换电站 选修
7.4. 载重限制:无人机最大载重5kg,每个快递包裹重量1-3kg随机 选修
7.5. 超重处理:提示“分两次配送”,并自动拆分为多个任务 选修
7.6. 可视化:在路径上用颜色标注电量耗尽点(红色X) 选修
8. D可视化(VPython) 选修
8.1. VPython入门:创建三维场景、添加长方体建筑、球体代表无人机 选修
8.2. 将2D网格转换为3D坐标:x=列索引,z=行索引,y=高度 选修
8.3. 禁飞区表示为红色半透明立方体,快递点为金色球体 选修
8.4. 路径动画:无人机沿规划路径移动,旋转面向方向 选修
8.5. 添加高度变化:避开禁飞区时自动升高(y坐标变化) 选修
8.6. 录制动画:使用screen recorder或VPython自带导出功能 选修
9. 遗传算法求解大规模TSP(大学版) 选修
9.1. 为什么需要遗传算法?——当快递点数量>15时,暴力枚举不可行 选修
9.2. 染色体编码:用一个列表表示配送顺序(如[3,1,4,2]) 选修
9.3. 适应度函数:路径总距离的倒数(越短适应度越高) 选修
9.4. 选择操作:轮盘赌选择适应度高的个体 选修
9.5. 交叉操作:顺序交叉(OX)保留子路径 选修
9.6. 变异操作:交换两个随机位置的基因 选修
9.7. 迭代进化:展示每代最优适应度的收敛曲线 选修
9.8. 实战:求解20个随机快递点的近似最优路径 选修
10. 动态障碍物与多无人机协同(进阶) 选修
10.1. 动态障碍物:其他无人机或临时禁飞区(随时间变化) 选修
10.2. 实现动态重规划:每5秒检测一次,若原路径被阻塞则重新运行A* 选修
10.3. 多无人机协同:2架无人机同时配送,避免碰撞 选修
10.4. 简单协同策略:划分区域(无人机A负责左半区,B负责右半区) 选修
10.5. 冲突检测:若两架无人机即将进入同一格点,优先级高的先过,低的等待 选修
10.6. 可视化:用不同颜色无人机(红、蓝)显示各自路径 选修
11. 数据导出与性能分析 选修
11.1. 导出最优路径为CSV:包含每一步的坐标、距离、剩余电量 选修
11.2. 生成报告:总配送距离、总耗时、电量利用率、禁飞区绕行次数 选修
11.3. 算法性能对比:Dijkstra vs A* vs 遗传算法在不同地图大小下的耗时 选修
11.4. 绘制性能曲线图:地图规模(节点数)vs 运行时间(秒) 选修
11.5. 导出为PDF报告:供综评材料提交 选修
11.6. 分层适配:初中仅导出CSV / 高中生成简单报告 / 大学完整性能分析 选修
12. 项目展示与行业应用 选修
12.1. 演示场景1:城市配送(高密度禁飞区,展示绕行能力) 选修
12.2. 演示场景2:山区配送(地形起伏,3D视角展示高度变化) 选修
12.3. 演示场景3:紧急医疗配送(时间最短优先,而非距离最短) 选修
12.4. 答辩问题准备:为什么选择A*而不是Dijkstra?如何处理动态禁飞区? 选修
12.5. 拓展方向1:接入真实地图API(高德/百度)获取真实道路和禁飞区 选修
12.6. 拓展方向2:与无人机仿真软件(AirSim)联动,控制虚拟无人机飞行 选修
联系Tom老师
扫码添加老师微信
微信1二维码 微信2二维码
QQ:
1445154666
邮箱:
1445154666@qq.com