我正在实施一个模拟,要求我进行一些寻路 当我的环境没有变化时,A *对我来说很好 当我遇到不在原始地图中的静态障碍物时,LPA *和D * Lite对我来说很好。
但是,当这些障碍物以一定的速度移动时,我该如何处理? 是否有LPA *或D * Lite算法的变体来处理这个问题? 或者我是否必须将某种形式的转向行为与这些算法结合起来?
在我的模拟中,我希望让我的“代理人”从一个起点到一个终点,在一个有障碍的环境中移动。
答案 0 :(得分:6)
This article对动态A *有很好的想法,这对你很有用
随时动态A *:任意时间,重新计算算法 Maxim Likhachev,Dave Ferguson†Geoff Gordon†,Anthony Stentz†和Sebastian Thrun 同样this article,带有移动障碍的随机金属动力学运动计划 David Hsu Robert,Kindel Jean-Claude Latombe,Stephen Rock
他们应该是一个好的开始。
答案 1 :(得分:6)
您可能最好考虑将问题分解为两部分,而不是尝试使用单一算法解决问题。
角色移动有两个组成部分:高级目标选择和寻路,以及本地转向。寻路解决了“我在这里,我需要知道如何到达那里”的问题。本地转向解决了“我正在那里,有人阻碍我”的问题。
保持现在的寻路方式。您需要添加的是角色在沿着该路径移动时检测障碍物然后调整路径的局部部分以避开障碍物的能力。
“人工智能游戏”(作者网站:http://ai4g.com/和亚马逊:http://amzn.to/k9K62F)详细介绍了将寻路与避免冲突相结合的几种方法。这个paper也很好地涵盖了高水平的转向算法。我实施的一种高效技术是转向管道,也称为合作仲裁。
任何完整的答案都取决于您的世界代表性以及您实施的其他因素,但我希望这会有所帮助。