1

这可能是一个非常广泛的问题,但如果你能帮助我提出想法,那对我来说将是一个很大的帮助。

我正在尝试在 matlab 中实现基本的寻路算法。我必须创建一个机器人可以导航的地图,还可以避开障碍物并到达目的地。我的算法很好。但是我在 gui 上苦苦挣扎,因为我在 matlab 中没有使用太多 Gui。

这是我的以下想法。

我创建了一个情节,并为每个障碍物定义了 4 个坐标,目的地为一个圆圈和一个起点。但是当我想到如何检测机器人是否撞到障碍物时,我就卡住了。一种方法是创建直线方程并尝试查看该点是否位于其上。但运动是基于随机生成的变量。因此,机器人有可能越过线并进入多边形内部。

我为过于详尽而道歉,但你能告诉我在matlab中实现这个的最佳方法吗?在 matlab 中必须这样做。请建议我一种更好更简单的编程方法。提前致谢。

4

1 回答 1

2

如果您的障碍物都是多边形,您可以尝试使用以下维基百科网站上描述的光线投射算法。

多边形算法中的点

有了这个,您应该能够确定机器人位置是否位于障碍物内,或者您可以确定下一个动作是否会使机器人与障碍物接触。

如果您正在寻找一种可以从本质上解决障碍的简单算法,我建议您使用势场算法(在某些情况下可能会卡住)

潜在领域

否则你也可以尝试A*算法,我认为这更好;A* 的良好描述

于 2013-09-26T08:10:08.343 回答