很抱歉,如果这不是我应该问这个问题的Stack Exchange网站,但在我看来,这与软件编程密切相关,而不是电子工程!如果应该在别的地方,请告诉我。
假设我们想要控制一个两个电动轮子的机器人从A点到B点。让我们假设我想通过提供距离和角度来控制我的机器人。
我可以先控制我的角度,然后控制距离,所以机器人首先绕着它的中心转(通过向一个轮子提供正的顺序,对另一个轮子提供负的顺序),然后移动到B点(通过给轮子提供两个正的嗅探器)。
但是,如果我想让机器人在一个动作中完成,我希望同时控制两个不同的控制值。这样,机器人在到达目的地之前确实会有一条漂亮的曲线。这样做,我为轮子提供了两个正的顺序,并在一侧添加了一个正的顺序,在另一侧添加了一个负的顺序。
对于最后一个解决方案,我在理解如何达到正确的方向时遇到了一些麻烦。
例如,如果我想后退1米。我将我的顺序设置为点B:(1m,180°)。对于第一个解决方案,没有问题,首先完成角度,当它完成时,1米就完成了。对于第二种解决方案,我在转弯的同时移动,因此,曲线比有序的1m大得多,它在1m之后停止,而不是在点B。
我该如何解决这个问题呢?你有什么建议吗,或者也许我对这项技术不太了解?我试着用一个小的XNA游戏来模拟一个控制系统,在没有任何机器人的情况下尝试解决方案,所以请随时给出你可能认为有趣的任何建议!
Al_th
发布于 2012-08-03 18:58:55
我自己并不完全有资格回答这个问题,但在Udacity上有一些关于这个问题的很好的材料:http://www.udacity.com/view#Course/cs373/CourseRev/apr2012/Unit/510040/Nugget/515042。塞巴斯蒂安·特伦(谷歌自动驾驶汽车项目的负责人)将比我更好地解释这一点。
编辑:视频中的示例假设是自行车模型(仅限两个轮子),因此它不直接适用于您的情况。然而,你可能会得到一些有价值的信息,你可以利用。
发布于 2012-08-03 22:53:20
你可能想看看反馈线性化。我认为在你使用的机器人类型之间会略有不同,所以你应该寻找关于非完整机器人的资料。
发布于 2012-09-17 09:58:25
什么样的机器人有这样的控制方案?通常,当您控制一个2轮差动驱动机器人时,您可以直接给它2个电机命令。您将使用轮距和轮子半径来确定机器人的旋转中心。它不一定在机器人的中间。
如你所说,两轮差动驱动机器人通常有两种控制方案。给定您的当前位置和角度,以及目标位置和角度,您可以:
注意,我说的是“计划”。或者换句话说是“搜索”。在两个点之间有无数种方法。因此,机器人需要在给定转弯半径、最短路径、不倒车等指标的情况下选择“最好”的一个。
如果你不关心最后的角度,事情就会简单一点,就像我认为你不关心的那样。但一般来说,非完整路径规划是一种痛苦。因此,除非这是您的研究领域(http://scholar.google.com/scholar?hl=en&as_sdt=0,22&as_vis=1&q=nonholonomic+path+planning),否则我认为大多数人只使用案例1。
我认为即使在第二种情况下,直线向后行驶也是在你后面1米处行驶的最佳解决方案。除非您的指标之一是不向后行驶。如果是螺旋状的话它可能会开起来。但我不知道如何在您的控制方案中表示这一点。轮子的马达大概是左轮子20个,右轮子10个。然后左边的轮子会慢慢减速,越来越接近右边的轮子的速度。
https://stackoverflow.com/questions/11794299
复制相似问题