fly2mato / quadswarms

PRM+CBS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

quadswarms

基本思路

  • 空间随机采样加入图的顶点集,起始点列和目标点列都作为顶点加入图中。
  • 对顶点建立KD-Tree,搜索每个顶点的K个近邻(大顶堆排序),作为双向边加入图的边集。
  • 采用Comflict-Based Search算法,分为high-level和low-level进行搜索
  • low-level采用A-star
  • high-level每次更新一条约束
  • 后续轨迹优化待实现

文件说明

按照使用流程:

  • cd build
  • cmake ../
  • make all

ToDoList

  • 调试CBS算法。
  • 将CBS中碰撞、约束的检测补充完整
  • 为每个CBS搜索树的叶子节点设计一个代价函数,用于选择下一次的搜索节点
  • 路径优化。

Update

2018-11-20

  • 实现了轻量化的CBS结构及功能
  • 碰撞约束目前只考虑了相同点碰撞和相同路径碰撞
  • high-level目前只按照广度优先的情况进行搜索

2018-11-16

  • 增加了考虑步长的A-star搜索算法
  • 能够处理存在(位置点ID,到达时刻k)形式的约束。可以作为CBS的low-level算法使用。
  • 修正了原A-star中的一些bug

2018-11-15

  • 初始化提交
  • 调试完成KDTree的基本功能。 采用静态数据建树, 可设置数据点的最小间距,这部分似乎也可以用动态建树+查询实现。
  • 调试完成PRM的基本功能。搜索采用A-star算法。

About

PRM+CBS

License:MIT License


Languages

Language:C++ 95.4%Language:CMake 3.1%Language:Python 1.5%