Руководство робота через путь

Мне заполнили поле препятствиями, я знаю, где они расположены, и я знаю положение робота. Используя новаторский алгоритм, я вычисляю путь для робота для следования.

Теперь моя проблема, я веду робот от сетки до сетки, но это создает not-so-smooth движение. Я запускаю в A, поворачиваю нос к точке B, перемещаюсь прямо, пока я не достигаю точки B, промывки и повторения, пока конечная точка не достигнута.

Таким образом, мой вопрос: Какие методы используются для навигации в такой среде так, чтобы я получил гладкое движение?

Робот имеет два колеса и два двигателя. Я изменяю направление двигателя путем превращения двигателей наоборот.

Править: Я могу варьироваться скорость двигателей в основном, робот является arduino плюс ardumoto, я могу предоставить значения между 0-255 к двигателям на любом направлении.

11
задан Hamza Yerlikaya 25 May 2010 в 14:20
поделиться

3 ответа

Вам нужна линеаризация обратной связи для робота с дифференциальным приводом. Этот документ объясняет это в Разделе 2.2. Я включил соответствующие части ниже:

Смоделированный робот, необходимый для проект - робот с дифференцированным приводом с ограниченной скоростью. С роботы с дифференцированным приводом неголономной, студентам предлагается использовать линеаризацию обратной связи для преобразовать кинематический управляющий выход от их алгоритмов для управления роботы с дифференцированным приводом. В следующее преобразование:

Transformation

где v, ω, x , y - линейные, угловые и кинематические скорости. L длина смещения, пропорциональная размер колесной базы робота.

8
ответ дан 3 December 2019 в 08:28
поделиться

Мои первые мысли по этому поводу (я на работе, поэтому не могу потратить много времени):

Это зависит от того, насколько крутыми вы хотите или должны быть ваши углы (что будет зависеть от того, какое расстояние от препятствий дает вам ваш траектор)

Учитывая ширину робота, вы можете рассчитать радиус поворота, учитывая скорость каждого колеса. Предполагая, что вы хотите ехать как можно быстрее и что занос не является проблемой, вы всегда будете держать внешнее колесо на 255 и уменьшать скорость внутреннего колеса до скорости, которая дает вам необходимый радиус поворота.

Учитывая угол для любого конкретного поворота на вашем пути и радиус поворота, который вы будете использовать, вы можете определить расстояние от этого узла, где вы будете замедлять внутреннее колесо.

1
ответ дан 3 December 2019 в 08:28
поделиться

Один алгоритм управления, с которым я добился довольно хороших результатов, - это чистое преследование . По сути, робот пытается переместиться в точку пути на фиксированном расстоянии впереди робота. Таким образом, по мере того, как робот движется по пути, точка просмотра вперед также увеличивается. Алгоритм компенсирует неголономные ограничения, моделируя возможные пути в виде дуг.

Чем больше расстояние для просмотра вперед, тем более плавное движение. Однако при увеличении расстояния взгляда вперед робот будет срезать углы, что может привести к столкновению с препятствиями. Вы можете решить эту проблему, реализовав идеи из алгоритма реактивного управления, называемого гистограммой векторного поля (VFH). VFH в основном отталкивает робота от тесных стен. Хотя обычно для этого используется какой-либо датчик дальности, вы можете экстраполировать относительное расположение препятствий, поскольку знаете позу робота и расположение препятствий.

5
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: