待补充
ethz-asl/polygon_coverage_planning
机器人, 飞控/无人机
3/5
🧩 软硬件结合
已发布
项目简介
Coverage planning in general polygons with holes.
polygon_coverage_planning 是一个由苏黎世联邦理工学院(ETH Zurich)自动系统实验室(ASL)开发的开源路径规划工具包,专注于解决带孔洞复杂多边形区域内的全覆盖路径规划与最短路径计算问题。该项目将经典的“牛耕式”覆盖路径规划问题重新建模为广义旅行商问题(GTSP),通过将覆盖路径生成转化为优化问题,显著提升了规划效率与路径质量。其核心功能包括:在任意多边形(含孔洞)中自动生成覆盖整个区域的作业路径,以及计算任意两点间的最短欧几里得路径。技术栈方面,项目基于ROS Noetic框架,底层依赖CGAL库进行精确的几何运算(如多边形布尔运算、三角剖分、可见性计算),并集成了专用的GTSP求解器(memetic算法)来优化路径顺序。用户可通过RVIZ可视化工具交互式设置多边形、选择起止点,并实时查看规划结果。该工具主要解决了农业无人机喷洒、地面机器人清洁、工业表面检测等场景中的全覆盖路径规划难题——传统方法在处理复杂边界或障碍物时往往效率低下或路径冗余,而本项目通过数学优化保证了路径的全局最优性。项目提供了完整的ROS接口,支持通过服务调用或参数配置灵活部署,并附有详细的安装脚本与演示视频,适合机器人领域的研究者与工程师直接使用或二次开发。
标签
项目特点
将全覆盖路径规划转化为广义旅行商问题(GTSP),实现全局最优路径
支持任意复杂多边形区域,包括带孔洞的多边形
自动生成覆盖整个区域的作业路径,避免重复和遗漏
提供任意两点间最短欧几里得路径计算功能
基于ROS Noetic框架,易于集成到机器人系统中
底层依赖CGAL库,确保几何运算的精确性和鲁棒性
技术规格
| 开发语言 | C++ |
|---|---|
| 框架依赖 | ROS Noetic |
| 几何计算库 | CGAL(Computational Geometry Algorithms Library) |
| 核心算法 | 广义旅行商问题(GTSP)求解 |
| 支持区域类型 | 任意多边形(含孔洞) |
| 输出路径类型 | 全覆盖路径、最短欧几里得路径 |
| 操作系统 | Linux(Ubuntu 20.04 推荐) |
| 许可证 | BSD 2-Clause License |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ROS Noetic | 1 | — | 完整桌面版安装 |
| CGAL | 1 | — | 版本 ≥ 5.0 |
| Boost | 1 | — | 系统默认版本 |
| Eigen3 | 1 | — | 线性代数库 |
| GMP | 1 | — | 多精度算术库 |
| MPFR | 1 | — | 多精度浮点库 |
| CMake | 1 | — | 构建系统 |
| Git | 1 | — | 版本控制 |
能力画像
**记忆与知识检索**:3/5 — 项目文档和论文提供了算法原理和参数说明,但需要用户自行查阅和理解
**动手与操作**:4/5 — 需要配置ROS环境和编译依赖,但提供清晰的安装步骤和示例
**编程与算法**:5/5 — 核心是GTSP建模和几何算法实现,涉及复杂路径优化问题
**设计与建模**:4/5 — 支持任意多边形建模,但需要用户提供多边形顶点数据
**实验与调试**:3/5 — 提供可视化工具辅助调试,但算法参数调优需要一定经验
**协作与分享**:3/5 — 开源项目,支持PR和Issue,但社区活跃度一般
**学习与研究**:5/5 — 学术背景深厚,适合研究覆盖路径规划算法
**系统集成**:4/5 — 基于ROS,易于集成到现有机器人系统中
项目图库
所需技能
C++编程基础
ROS(Robot Operating System)基本使用
计算几何基础知识(多边形、三角剖分等)
Linux命令行操作
CMake构建系统使用
路径规划算法理解(TSP、GTSP)
Git版本控制
适用场景
农业无人机自主作业路径规划(如农药喷洒、作物监测)
室内清洁机器人全覆盖清扫路径生成
工业巡检机器人对复杂设备表面的覆盖扫描
测绘无人机对不规则区域进行航拍路径规划
救援机器人在废墟中搜索覆盖路径规划
科研教学:覆盖路径规划算法研究与验证