2012-08-03 86 views
1

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

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

我可以先对角度进行控制,然后对距离进行控制,这样机器人首先绕中心转动(通过对一个轮子提供正向顺序,对另一个轮子提供负向),然后移动到点B到达(通过向车轮提供两个正向oders)。然而,如果我想让机器人在一次移动中完成它,我希望同时控制两个不同的控制值。这样机器人在到达目的地之前确实有一条很好的曲线。这样做,我向车轮提供了两个积极的命令,并且我在一侧增加了一个积极的命令,而另一侧增加了一个积极的命令。

有了这最后的解决方案,我有一些麻烦,以了解如何达到正确的方向。

例如,如果我想向后走1米。我将把我的订单设置为B点:(1米,180度)。第一个解决方案没有问题,首先完成角度,完成后,完成1米。 随着第二种解决方案,我移动而我转动,因此,曲线比有序的1米大,它停在1米后,而不是在B点。

我应该如何解决这个问题?你有什么建议,或者我对这项技术不太了解?我试图用一个小小的XNA游戏模拟一个控制系统来尝试解决方案,即使没有任何机器人,所以随时给你任何你可能觉得有趣的建议!

Al_th

回答

1

我不是完全有资格这样回答自己,但有关于这一些伟大的材料上Udacity:http://www.udacity.com/view#Course/cs373/CourseRev/apr2012/Unit/510040/Nugget/515042。 (负责谷歌自动驾驶汽车项目的)塞巴​​斯蒂安·斯伦(Sebastian Thrun)将会比我所能解释的要好得多。

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

+0

感谢您的回答!对不起,延迟,但我没有访问互联网:) – 2012-08-13 09:51:28

0

你可能想看看反馈linearizataion。我相信它在你使用的机器人类型之间略有不同,所以你应该寻找关于非完整机器人的东西。

0

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

正如你所提到的,通常有2个差速器驱动机器人的控制方案。鉴于您当前的位置和角度以及目标位置和角度,您可以:

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

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

通知我说“计划”。或换句话说“搜索”。有两种不同的方法来获得2点。所以机器人需要选择“最好”的给定一些指标,如转弯半径,最短路径,不向后驱动等。

如果你不关心最终角度,就像我想的那样,事情会更简单一些你没有。但通常非完整路径规划是一种痛苦。所以除非你的学习领域(http://scholar.google.com/scholar?hl=zh-CN & as_sdt = 0,22 & as_vis = 1 & q = nonholonomic + path + planning),我认为大多数人只是使用案例1.

我认为,即使在案例2中,向后直行是一种最佳的解决方案,可以在您身后行驶1米。除非你的指标之一是不要倒退。那么如果出现某种螺旋,它可能会开车。我不知道如何在控制方案中表示这一点。对于车轮的电动机将像20到左轮,10到右轮。那么左轮将缓慢减速,越来越接近右轮的速度。