1

如果不是正确的 Stack Exchange 网站,我很抱歉,我应该问这个问题,但在我看来,这与软件编程密切相关,而不是电气工程!如果它应该在其他地方,请告诉我。

假设我们想要控制一个 2 电动轮机器人从 A 点到 B 点。假设我想通过提供距离和角度来控制我的机器人。

我可以先控制我的角度,然后控制距离,所以机器人首先绕着它的中心转动(通过为一个轮子提供正指令,对另一个轮子提供负指令),然后移动直到到达 B 点(通过向车轮提供两个正序)。

但是,如果我希望机器人一次性完成,我希望同时控制两个不同的控制值。这样,机器人在到达目的地之前确实有一个很好的曲线。这样做,我给轮子提供了两个正指令,我在一侧添加一个正指令,在另一侧添加一个负指令。

使用最后一个解决方案,我很难理解如何达到正确的方向。

例如,如果我想向后走 1 米。我将我的订单设置为 B 点:(1m,180°)。用第一种方案,没问题,先做角度,做完了再做1m。使用第二种解决方案,我在转弯时移动,因此,曲线比有序的 1m 大得多,它在 1m 后停止,而不是在 B 点。

我应该如何解决这个问题?您有什么建议,或者我可能不太了解这种技术?我尝试用一​​个小 XNA 游戏模拟一个控制系统,以尝试没有任何机器人的解决方案,所以请随时提供您认为有趣的任何建议!

Al_th

4

3 回答 3

1

我自己不完全有资格回答这个问题,但在 Udacity 上有一些很好的材料:http ://www.udacity.com/view#Course/cs373/CourseRev/apr2012/Unit/510040/Nugget/515042 。Sebastian Thrun(负责 Google 的自动驾驶汽车项目)会比我更好地解释这一点。

编辑:视频中的示例假定自行车模型(仅两个轮子),因此它并不直接适用于您的情况。但是,您可能会获得一些可以利用的有价值的信息。

于 2012-08-03T10:58:54.580 回答
0

您可能想研究反馈线性化。我相信你使用的机器人类型会略有不同,所以你应该寻找关于非完整机器人的东西。

于 2012-08-03T14:53:19.530 回答
0

什么样的机器人有这个作为它的控制方案?通常,当您控制 2 轮差速驱动机器人时,您会直接给它 2 个电机命令。您将使用轴距和车轮半径来确定机器人的旋转中心。不一定在机器人的中间。

如您所述,2 轮差速驱动机器人通常有 2 种控制方案。给定您当前的位置和角度,以及目标位置和角度,您可以:

  1. 转弯,直行,转弯。这是您描述的简单情况。

  2. 规划两点之间的平滑路径。一般来说,这是一条平滑样条曲线。但我认为它也可以是分段的圆形段和线。

注意我说的是“计划”。或者换句话说“搜索”。有无数种方法可以在 2 点之间获得。因此机器人需要在给定一些指标(如转弯半径、最短路径、不向后行驶等)的情况下选择“最佳”的那个。

如果你不关心最终的角度,事情会简单一些,就像我认为你不关心的那样。但总的来说,非完整路径规划是一种痛苦。因此,除非这是您的研究领域(http://scholar.google.com/scholar?hl=en&as_sdt=0,22&as_vis=1&q=nonholonomic+path+planning),我认为大多数人只是使用案例 1。

我认为即使在案例 2 中,直接向后行驶也是落后您 1 米的最佳解决方案。除非您的指标之一是不向后行驶。那么它可能会驱动某种螺旋。我不知道如何在您的控制方案中表示这一点。车轮上的电机大约是左轮 20 个,右轮 10 个。然后左轮会慢慢减速,接近右轮的速度。

于 2012-09-17T01:58:25.233 回答