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.1.
算法思想:贪心 + 松弛操作,保证找到最短路径
选修
3.2.
数据结构:优先队列(heapq)实现待探索节点集合
选修
3.3.
距离初始化:起点为0,其余为无穷大
选修
3.4.
核心代码实现:while循环,弹出最小距离节点,更新邻居
选修
3.5.
路径回溯:记录每个节点的前驱节点,从终点回溯到起点
选修
3.6.
可视化:在网格上高亮显示Dijkstra找到的路径(红色方块)
选修
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.1.
电池续航限制:最大航程5000米,超出的配送方案不可行
选修
7.2.
实现电量检查:在计算TSP路径后,检查每段航程是否超出剩余电量
选修
7.3.
若超出则提示“需要中途换电”,建议在中间快递点设立换电站
选修
7.4.
载重限制:无人机最大载重5kg,每个快递包裹重量1-3kg随机
选修
7.5.
超重处理:提示“分两次配送”,并自动拆分为多个任务
选修
7.6.
可视化:在路径上用颜色标注电量耗尽点(红色X)
选修
8.1.
VPython入门:创建三维场景、添加长方体建筑、球体代表无人机
选修
8.2.
将2D网格转换为3D坐标:x=列索引,z=行索引,y=高度
选修
8.3.
禁飞区表示为红色半透明立方体,快递点为金色球体
选修
8.4.
路径动画:无人机沿规划路径移动,旋转面向方向
选修
8.5.
添加高度变化:避开禁飞区时自动升高(y坐标变化)
选修
8.6.
录制动画:使用screen recorder或VPython自带导出功能
选修
9.1.
为什么需要遗传算法?——当快递点数量>15时,暴力枚举不可行
选修
9.2.
染色体编码:用一个列表表示配送顺序(如[3,1,4,2])
选修
9.3.
适应度函数:路径总距离的倒数(越短适应度越高)
选修
9.4.
选择操作:轮盘赌选择适应度高的个体
选修
9.5.
交叉操作:顺序交叉(OX)保留子路径
选修
9.7.
迭代进化:展示每代最优适应度的收敛曲线
选修
9.8.
实战:求解20个随机快递点的近似最优路径
选修
10.1.
动态障碍物:其他无人机或临时禁飞区(随时间变化)
选修
10.2.
实现动态重规划:每5秒检测一次,若原路径被阻塞则重新运行A*
选修
10.3.
多无人机协同:2架无人机同时配送,避免碰撞
选修
10.4.
简单协同策略:划分区域(无人机A负责左半区,B负责右半区)
选修
10.5.
冲突检测:若两架无人机即将进入同一格点,优先级高的先过,低的等待
选修
10.6.
可视化:用不同颜色无人机(红、蓝)显示各自路径
选修
11.1.
导出最优路径为CSV:包含每一步的坐标、距离、剩余电量
选修
11.2.
生成报告:总配送距离、总耗时、电量利用率、禁飞区绕行次数
选修
11.3.
算法性能对比:Dijkstra vs A* vs 遗传算法在不同地图大小下的耗时
选修
11.4.
绘制性能曲线图:地图规模(节点数)vs 运行时间(秒)
选修
11.5.
导出为PDF报告:供综评材料提交
选修
11.6.
分层适配:初中仅导出CSV / 高中生成简单报告 / 大学完整性能分析
选修
12.1.
演示场景1:城市配送(高密度禁飞区,展示绕行能力)
选修
12.2.
演示场景2:山区配送(地形起伏,3D视角展示高度变化)
选修
12.3.
演示场景3:紧急医疗配送(时间最短优先,而非距离最短)
选修
12.4.
答辩问题准备:为什么选择A*而不是Dijkstra?如何处理动态禁飞区?
选修
12.5.
拓展方向1:接入真实地图API(高德/百度)获取真实道路和禁飞区
选修
12.6.
拓展方向2:与无人机仿真软件(AirSim)联动,控制虚拟无人机飞行
选修