Итак, в предыдущей статье с помощью математического моделирования было показано, что для решения задания для младшей группы Международной робототехнической олимпиады наиболее оптимальным является способ обхода лабиринта по "Правилу левой руки". |
Но поскольку для пободы в состязании робот должен выполнить задание как можно быстрее, заход в тупиковые коридоры крайне не желателен. Перемещение по таким коридорам не приближает робота к финишу, и робот попросту тратит в них драгоценные секунды.
Очевидно, что для того, чтобы робот определял более оптимальный маршрут, в базовую программу перемещения робота нужно добавить интеллекта. Скорее всего, это также потребует конструктивных изменений робота.
Напомним, что в конструкции всех роботов, двигающихся по "Правилу левой руки", будет одинаковый элемент: сенсор расстояния/освещенности/касания будет направлен влево.
Рассмотрим, одну из возможных трасс, где заштрихованными отображаются те коридоры , в которых робот будет терять время, в случае, если он просто следует "Правилу левой руки".
Давайте подумаем, как можно избежать заездов в заштриховнные области?
Первый заезд в тупик возникает в тех случаях, когда робот выезжает из срединного проезда и не знает, в каком месте будет находится следующий проезд. Для нас же, сторонних наблюдателей, очевидно, что роботу бы неплохо посмотреть с какой стороны от него находится стенка и сразу двигаться в ту сторону, где стенки нет.
Один из возможных вариантов – не закреплять сенсор расстояния жестко с левой стороны, а прикрепить его к двигателю. Еще вариант – не только сделать сенсор вращающимся, но и добавить еще один. В обоих случаях, при определенном положении робота и сенсора, у него возникает возможность "увидеть", что его ждет в каждом из ответвлений – со стороны, где стенки нет, сенсор будет показывать большее расстояние.
Если робот обнаружил такую ситуацию, он сразу же корректирует свой курс, и, таким образом, избегает "ненужного" поворота.
Такая же конструкция позволит оптимизировать траектория движения и для тупика второго вида.
При всей простоте, этот метод для выполнения данной конкретно оптимизации, возможно, у вас не заработает. Причин несколько – погрешности измерений сенсора , помехи от других стен, слишком большой угол расположения сенсора, относительно стены, от которой должен отразиться сигнал и т.п.
Тогда решением может оказаться, автоматическое изменение конфигурации сенсоров при движени вдоль стены. Сенсоры из расположения "углом" начинают просто смотреть в разные стороны:
Как видно, "свободный проход" в таком случае определяется достаточно просто. В то время как один сенсор работает на движение по "Правилу левой руки", второй просто сообщает роботу, что заметил проход, после чего робот корректирует свое поведение.
Если и дальше рассматривать всевозможные переходы из одного коридора в другой в лабиринте такого типа, то выяснится, что предлагаемых изменений в конструкции робота будет достаточно для того, чтобы робот оптимизировал траекторию своего перемещения.
К сожалению - это все красиво только в теории. На практике же значение с Ультра-звукового датчика рандомные и не предсказуемые.. Почему-то со стороны отверстия расстояние приходит меньше(не всегда конечно) чем со стороны перегородки.
ОтветитьУдалить