Algorithm 无限平面上无图的运动规划

Algorithm 无限平面上无图的运动规划,algorithm,language-agnostic,math,2d,motion-planning,Algorithm,Language Agnostic,Math,2d,Motion Planning,对象位于A并希望移动到B。我想在那里计算一个运动矢量,它不在数组C中要避免的点的距离D内移动 因此,如果移动向量(B-A)归一化并与物体速度相乘,将使其位于C中任意点的D范围内,则向量会旋转,因此它不会 这是二维的。另外,如果这个操作有名称,请自己评论或编辑这个问题,因为我不知道该怎么称呼它 此外,我的第一反应是将活动区域划分为节点并运行a*但我想在这一点上尝试数学方法,一些植绒实验给我的印象是这是可以做到的 更新(来自评论):此图像非常接近我想要的解决方案: 假设我们从左边的点开始,我们开始

对象位于A并希望移动到B。我想在那里计算一个运动矢量,它不在数组C中要避免的点的距离D内移动

因此,如果移动向量(B-A)归一化并与物体速度相乘,将使其位于C中任意点的D范围内,则向量会旋转,因此它不会

这是二维的。另外,如果这个操作有名称,请自己评论或编辑这个问题,因为我不知道该怎么称呼它

此外,我的第一反应是将活动区域划分为节点并运行a*但我想在这一点上尝试数学方法,一些植绒实验给我的印象是这是可以做到的

更新(来自评论):此图像非常接近我想要的解决方案:

假设我们从左边的点开始,我们开始向右转向目标(另一个点),我们检测到右边有一堵墙,所以我们停止转向并向前移动。墙不见了,所以我们可以再次转向球门,以此类推。我知道这可能会导致对象根本无法到达那里,但我想定义行为,而不一定是解决方案,如果你知道我的意思的话

更新2:将活动区域转换为一组节点可能效率低下。A*和其他启发式图遍历算法非常适合于低维问题。但我想穿越的区域是无限大的,只有少数几个障碍物散布在上面。节点本身,或者说潜在位置,是无限小的。这当然可以通过某种四叉树进行优化,但我感觉简单的运动矢量在某种程度上旋转和插值也可以解决这一问题。

我听到这样的叫法,以及寻路(如上所述)

有很多算法,但从您的描述来看,a可能是一个好的开始。你有一张图,上面有点a,B,和C中每个点周围的多边形(我相信你也可以通过计算每个点的切线来画圆)。将边计算为点之间的潜在路径。这里有一个更好的解释

然后,在Visibility图的顶部,应用像a*(启发式搜索)这样的搜索算法,在图中找到最佳路径

但是,你应该考虑你在寻找什么。上面的方法会找到一条最短路径,它非常贴近所有角落,但是其他算法可能更适合你的最优性。

< P>你可以考虑使用。这提供了一种避免“拥抱障碍物边缘”的方法


但请注意,与A*算法一样,这需要对状态空间进行量化,因此可能需要大量的计算,具体取决于所需的精度。

我在上找到了一个非常详细的群集例程描述

对所有障碍物使用分离规则,并且只朝向目标位置对齐(因为我们没有羊群伙伴),并且(出于同样的原因)忽略内聚规则

我想知道这是否会产生预期的效果。

关于转向行为的一般性讨论也非常好

特别要注意的是,看看他的网页上有没有好的例子


您是否希望找到满足此标准或任何解决方案的最小路径?任何解决方案。或者更确切地说,我根本不是在寻找一条路。对象不应该“规划”其路径,而应该只向前看一步。它不是一个规划路径的机器人,它更符合蜂群或细胞自动机。至少这是我想要的效果。你发布的“运动规划”维基文章中的“有效路径示例”图像非常接近我想要的解决方案。假设我们从左边的点开始,我们开始向右转向目标(另一个点),我们检测到右边有一堵墙,所以我们停止转向并向前移动。墙不见了,所以我们又开始朝着球门转,以此类推。我知道这可能会导致对象根本无法到达那里,但我想定义一个行为,而不是解决方案,如果你知道我的意思的话。昂贵的计算正是我想要避免a*的原因。还要注意的是,我的世界正在迅速变化,这使得对它的量化几乎不可能。这本书读得不错,但遗憾的是,我认为很难把它应用到我的问题上。