【问题标题】:Distance and Angle robot control距离和角度机器人控制
【发布时间】:2012-08-03 10:53:12
【问题描述】:

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

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

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

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

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

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

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

Al_th

【问题讨论】:

    标签: algorithm robotics


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答!抱歉耽搁了,但我无法访问互联网 :)
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      什么样的机器人有这个作为它的控制方案?通常,当您控制 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 个。然后左轮会慢慢减速,接近右轮的速度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 2013-05-24
        • 1970-01-01
        • 1970-01-01
        • 2019-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多