RC车辆算法

时间:2010-10-27 18:30:54

标签: algorithm coordinate-systems cartesian motion-planning

我正在寻找算法,我不知道从哪里开始!

我试图在笛卡尔图中从A点到达B点。运动仅限于遥控车的运动:向后,向前,向前 - 向左和向前 - 向右(恒定的转弯半径;汽车要么完全转动,要么根本不转弯)。

我将如何构建一个采用以下内容的算法:

turningRadius, initialPosition, initialOrientation, finalPosition

并产生一组有序的步骤以进入finalPosition?

请注意,我不在乎最终的方向是什么。

谢谢!


编辑:请注意,这不是带有谨慎节点的图形,而是连续坐标系

4 个答案:

答案 0 :(得分:5)

描述问题的方法,算法很简单,只需要两个简单的步骤:1)转动(向左或向右)直到汽车直接指向B,2)向前移动直到你击中B完成。

唯一相对棘手的部分是第一步。如果B在汽车纵轴位于其初始位置的左侧,则自然的方法是从开始。这将起作用,除非点B位于由这样的左转弯(半径turningRadius)产生的圆形轨迹内。在后一种情况下,汽车将以圆圈运行,但永远无法直接瞄准B.在这种情况下,正确的策略实际上是从转弯开始并继续转弯直到你瞄准汽车在B。

因此,如果你对轨迹没有任何最优性要求,第一步最简单的算法就是无条件地从这个点“离开”:如果B谎言,则转向汽车纵轴的,如果B位于右侧,则转动。继续转弯,直到汽车直接瞄准B.这听起来有点不自然,但总是有效,即你总是能够最终瞄准汽车。

如果你想要一个更优的(更短的)轨迹,那么你需要分析B相对于汽车的初始位置/方向的位置(“B在转弯圈内或在外面?”)并选择相应的第一个转弯的方向。

答案 1 :(得分:1)

一般来说,这不是一个容易的问题。它属于“在差别约束下规划”的范畴。 LaValle的书的最后三章(可在线提供here)处理这个问题。特别是,请参阅第14.4.2节,其中涉及“Dubins汽车”,它类似于您的遥控车,但它不会向后移动。

还搜索“Dubins车道规划”。你会发现很多论文。

答案 2 :(得分:0)

你试过*(a-star)吗?当你提供地形图时它也很好。您可以将权重分配给地形的不同部分,这将导致不同的路径。我相信默认情况下算法不提供对角线方向,但你可以很容易地添加它。

此外,它不会默认处理“转向”,但是a-star将提供完整路径。你能做的是根据2点计算转弯半径。当前位置和下一个计算位置,或最后位置和当前位置。然后,您可以随角度的变化添加或减去面向方向。你可能需要调整一些。

答案 3 :(得分:0)

听起来像一个有趣而有趣的项目!要获得特定的算法建议,您应该提供更多详细信息......您是否希望在连接到RC汽车的某种嵌入式控制器上实际运行此功能?或算法是在工作站上运行并远程控制汽车? (或者这纯粹是一个抽象的练习,没有车... awwww。)

我掌握在哪里开始的通用建议是Building Problem Solvers,这是对“AI”问题解决技术世界的一个很好的介绍。这些天可能有点陈旧......但是等等,我在说什么!可能不是。 : - )

[好吧我应该解释一下最后的评论:我在实践中看到的大多数“现代”人工智能技术实际上可以追溯到多年前的想法......他们现在只是变得实用感谢摩尔定律的无情推进。因此,1993年写的一本书仍在讨论相当先进的技术,从我个人看到的。我很乐意被指向一个反例!]