目录

无人车地形行进规划

数学建模课程考核作业(大二下):基于 GeoTIFF 栅格地形数据,对无人车给定路径做指标计算、通行性判定与车头方向优化。

任务背景

2025 年春季《数学建模》限选课课程考核:任务区域是一张约 12500×12500、格网间距 5 m 的 GeoTIFF 地形栅格(map.tif),无人车逐格行驶,车头朝向限定 8 个方向,单次转向不超过 90°。围绕三问展开:

  1. 问题一:对给定 P1→P2 行驶路径(附件5)逐格计算里程、时间、高程、坡度、速度,汇总平稳性(相邻栅格坡度均值乘坡面法向量夹角)与安全性(在不良区域行驶的总时长,不良区域见附件4),并绘制各指标随里程变化的曲线。
  2. 问题二:对给定 P3→P4 路径(附件6)逐格判定可通行性,标记坡度超过 30°(最大通行坡度)与车头朝向违反移动规则的栅格,输出错误清单(Result_of_Q2.xlsx)。
  3. 问题三:路径栅格序列固定(P5→P6,附件7),用动态规划为每个栅格选择车头方向,在转向角只允许 0°/45°/90° 的约束下使总里程最小,输出方向序列(Result_of_Q3.xlsx)并绘制最优路径平面图。

关键模型设定(见 main.py):

  • 里程:5 × (√d_Li + 转向附加项),d_Li 为坐标曼哈顿距离,转向 0°/45°/90° 分别附加 0/0.5/1 个格距;
  • 速度按坡度分档(km/h):<10° 为 30,10°20° 为 20,20°30° 为 10,不小于 30° 视为不可通行;
  • 坡度用 3×3 邻域加权差分(Horn 形式,代码中含夸张系数 k=5)求解,同时给出坡向与坡面法向量。

内容结构

路径 说明
code/main.py 三问主程序:栅格读取、高程/坡度/里程/时间计算、平稳性与安全性统计、通行性判定、动态规划求最优车头方向
code/path_draw.py 读取 Result_of_Q3.xlsx,绘制问题三最优路径的二维平面图
README.md 本说明文件

结果文件(Result_of_Q2.xlsx、Result_of_Q3.xlsx)与 figures/ 下的结果图为程序产物,未入库;地形数据 map.tif 与附件 xlsx 属课程考核数据,同样未入库。

运行方法

依赖(Python 3.10+):numpy、pandas、matplotlib、rasterio、openpyxl(pandas 读写 xlsx 用)。

pip install numpy pandas matplotlib rasterio openpyxl
# 数据准备:把 map.tif 与 附件4/5/6/7 的 xlsx 放进 code/ 目录
cd code
python main.py        # 在文件末尾 __main__ 处选择要运行的题目(当前默认运行问题二、三)
python path_draw.py   # 绘制问题三路径平面图,需先生成 Result_of_Q3.xlsx

运行后输出各题统计量,并在 code/ 目录生成对应的结果 xlsx 与图片。

来源声明

  • 课程考核题目、地形数据(map.tif)与各附件数据为任课教师提供的课程框架材料,不入库,本仓库也不含题目原文。
  • code/ 下两个脚本为本人独立完成的求解代码,模型思路与程序实现均为自研。
  • 结果 xlsx 与图片为程序运行产物,未收录;按上方运行方法备齐数据后即可复现。
关于

数学建模课程考核:无人车地形行进的路径规划(GeoTIFF 栅格 + 路径绘制)

34.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号