Работа мобильных роботов сопряжена с постоянным перемещением в пределах рабочей зоны. В настоящее время подобные роботы встречаются все чаще и с каждым днем они становятся все более функциональными и сложными. По мере роста функциональности роботов растет и сложность решаемых ими задач. В настоящее время уже повсеместно встречаются автономные мобильные роботы – робокары, перемещающиеся по производственным помещениям, также стали довольно востребованы сервисные роботы – роботы для проведения экскурсий в музеях и выставочных центрах, роботы – официанты в кафе и ресторанах. Такие роботы работают в тесном контакте с окружающими объектами и людьми, поэтому к точности и безопасности их перемещений предъявляются слишком высокие требования.
В предыдущих работах уже рассматривались примеры решения задач перемещения мобильного робота в рабочей зоне. Также уделялось внимание процессу выполнения простейших маневров по объезду препятствий, встречающихся на пути.
Зачастую в реальных ситуациях мобильный робот сталкивается с препятствиями, расположенными произвольным образом в рабочей зоне, а также и с перемещающимися объектами. Каждый из таких объектов может быть потенциальным препятствием, поэтому в процессе своего движения мобильный робот должен иметь информацию обо всех объектах вблизи, чтобы в случае необходимости иметь возможность отреагировать на них.
Сбор, обработка и систематизация информации об объектах вблизи робота называется составлением локальной карты окружающего пространства. Использование локальной карты в задачах планирования маршрута робота или объезда препятствий называется локальной навигацией.
При разработке мобильных роботов нужно учитывать, какие задачи поставлены перед мобильным роботом, чтобы подобрать необходимые сенсорные устройства для их решения. Так, например, для решения задачи перемещения внутри рабочей зоны робот может быть оснащен дорогими лазерными сканирующими дальномерами и GPS-устройствами для определения собственного положения, тогда как для решения задачи локальной навигации мобильный робот может быть оснащен простыми ультразвуковыми или инфракрасными датчиками по периметру.
Рассмотрим типичную для роботов из данного образовательного модуля задачу. Нам уже не раз встречались мобильные роботы для перемещения вдоль линии, каждый из них был оснащен набором ИК-датчиков или ИК-массивом для обнаружения линии. Поскольку задача перемещения вдоль линии является главной, то в качестве основной сенсорной системы, на основании показаний которой перемещается робот, выбираем систему ИК-датчиков.
В случае если передвижению мобильного робота могут препятствовать различные объекты, по периметру робота можно расположить ИК-датчики, с помощью которых робот может обнаруживать препятствия с каждой из сторон. Количество подобных датчиков определяется возможностями программируемого контроллера, габаритами робота и объектов в зоне его функционирования.
В рамках данной работы предлагается сконструировать робота, оснащенного тремя ИК-датчиками, расположенными спереди и по бокам робота. С помощью этих датчиков робот должен обнаруживать препятствия, возникающие по ходу его движения.
Предлагается рассмотреть ряд приемов, которые могут быть использованы разработчиками как метод усовершенствования системы управления мобильного робота, благодаря чему она сможет выполнять более широкий спектр задач.
Обнаружение объектов или неровностей поверхности в процессе движения
Достаточно часто при движении мобильных роботов по пересеченной местности возникают ситуации, в которых робот не может преодолеть то или иное препятствие на своем пути.
Очень часто разработчики мобильных роботов акцентируют свое внимание на проблемах взаимодействия робота и окружающей среды в процессе движения – это могут быть сенсорные системы для обнаружения препятствий, системы определения уровня вибраций и системы стабилизации и др.
В рамках данной части предлагается рассмотреть модель робота, анализирующего наличие препятствий на собственном пути, а также оценку возможности дальнейшего перемещения. Под этим понимается анализ рабочей поверхности, например поиск обвалов и ям на пути и т.п.
Разрабатываемый нами робот оснащается массивом ИК-датчиков для исследования поверхности по которой он перемещается и тремя ИК- датчиками, расположенными по периметру робота, для обнаружения препятствий во время движения.
Алгоритм движения робота достаточно прост – робот движется прямолинейно и если он обнаруживает препятствие у себя на пути, он совершает поворот налево, если же на пути робота встречается обрыв или область черного цвета («неровность» поверхности), робот разворачивается и едет в противоположную сторону и налево.
По большому счету программа сводится к единственному бесконечному циклу, анализирующему показания ИК-датчика, подключенного к PORT[6], а также срабатывание массива ИК-датчиков в режиме поиска препятствий.
Режим IR Obstacle Detected – это один из базовых режимов работы массива ИК-датчиков, в котором автоматически определяется факт срабатывания одного из 7 датчиков. Данная функция выбирается в меню панели управления на ряду с другими, такими как: возврат текущего значения или срабатывание по пороговому значению.
Таким образом, используя даже такие простые средства, как в данном наборе можно смоделировать и исследовать процесс применения мобильного робота в произвольной рабочей зоне. В качестве задания для закрепления результатов можно рассмотреть процесс объединения двух задач воедино - задачи следования по линии как основной рабочей и задачи, рассмотренной в данном разделе.
Объезд препятствия по периметру
Ранее нами рассматривались задачи объезда препятствий в процессе движения робота по маршруту. В предыдущих работах акцентировалось внимание на алгоритмическую составляющую – поиск препятствия и принятие решения о маневре, а под препятствием понимался объект, который объезжался роботом за один маневр.
В реальной ситуации объекты, встречающиеся на пути робота, могут обладать большими габаритами и объезд их может быть затруднен. В связи с этим, необходимо предусматривать ситуацию в которой робот будет перемещаться вокруг объекта с целью вернуться на заданную траекторию и продолжить движение дальше.
Для того чтобы мобильный робот мог обнаруживать препятствие в процессе его объезда, необходимо расположить один из ИК-датчиков сбоку. В этом случае, подъехав к объекту и начав маневр по его объезду, система управления робота будет постоянно контролировать расстояние до объекта.
Расположим три ИК-датчика на переднем бампере робота, два из них направим по обе стороны от робота, а центральный – в направлении движения. С помощью этих датчиков робот может обнаруживать объект и контролировать расстояние до него при маневрировании вокруг.
При движении робот постоянно анализирует расстояние до объекта, и в случае если расстояние меньше заданного – он отъезжает от него левее, а если больше – приближается, поворачивая направо. Если в процессе движения вдоль объекта он исчезает из виду, робот поворачивает направо, чтобы приблизиться к объекту либо объехать его с другой стороны.
Вышеуказанная процедура выполняется в цикле, описываемом программой, состоящей из четырех последовательных условий. Каждое из условий соответствует одному из рисунков: в первом случае происходит вызов функции l_slight_turn для поворота налево, во втором случае вызывается функция forward для прямолинейного движения, в третьем случае вызывается функция r_slight_turn для поворота направо и в последнем случае осуществляется поворот направо с помощью функции r_corner_turn.
Движения робота задаются традиционным образом с помощью функций, изменяющих направление и скорость вращения колес.
Отдельно рассмотрим функцию r_corner_turn, предназначенную для объезда препятствия справа. Данная функция сначала вызывает функцию forward_shortly, благодаря чему робот перемещается немного вперед, после чего вызывается функция right_turn для поворота направо. Поворот направо осуществляется до тех пор, пока расстояние до объекта станет не менее значения, задаваемого переменной thresh-old_4
Каждое из подобных условий определяется порогом срабатывания датчика, значения которого выбирается в зависимости от необходимого расстояния, на котором необходимо находиться относительно объекта при движении.
Указанные выше значения переменных threshold могут быть подобраны опытным путем, а могут быть рассчитаны на основании характеристики датчика. Каждый датчик имеет собственную характеристику – зависимость выдаваемого значения от расчетной величины. Применяемые нами ИК-датчики имеют выходную характеристику, являющуюся зависимостью интенсивности отраженного света от расстояния до объекта.
На основании приведенного графика можно подобрать такие значения переменной threshold, при которых мобильный робот будет обнаруживать объекты на заданном расстоянии и объезжать их, не приближаясь более чем положено.
Информация о характеристике датчика крайне важна при проектировании системы управления робота. Благодаря ей можно рассчитать точные перемещения исполнительного механизма, так и всего робота в целом.
Заключение
В рамках данной работы были изучены основы локальной навигации мобильных роботов и проведены эксперименты с реальной моделью робота. Методы и подходы, рассмотренные в процессе проведения эксперимента с роботом, являются достаточно общими и применимыми в любой другой аналогичной задаче.
С помощью подобных алгоритмов робот может маневрировать в среде с различными объектами и объезжать препятствия произвольных габаритов. Несмотря на кажущуюся простоту и универсальность методов необходимо заранее оценивать условия применения мобильного робота.
Невозможно разработать систему управления на все случаи жизни, в одной ситуации робот сможет применяться успешно, а в другой ему может не хватить точности перемещений или собственной маневренности для избежания столкновения с объектом.
При разработке робота должны быть учтены все влияющие на него факторы и определены методы по их оценке и компенсации. Возможно, в одном из случаев необходимо будет изменить состав сенсорной системы робота и применить более технически совершенные датчики, а в другом случае может быть достаточно применения тех же самых технических средств, но другим образом.
В рассматриваемом во второй части примере в программе управления робота применялась функция r_corner_turn, предназначенная для объезда робота справа. Принцип работы ее заключался в небольшом перемещении вперед, за время задаваемое таймером, и последующем выполнении поворота.
При выезде передней части робота за габариты объекта датчик, подключенный к PORT[5], перестает видеть препятствие, и последующий поворот осуществляется роботом вслепую. Для того чтобы робот гарантированно выехал за габариты объекта перед выполнением поворота, предлагается установить второй ИК-датчик на борту робота, но уже сзади. Благодаря этому робот сможет продолжать прямолинейное движение ровно до тех пор, пока он полностью не проедет препятствующий движению объект.
Данный пример иллюстрирует адаптивный подход к процессу разработки системы управления робота. К сожалению, не существует универсального решения на все случаи и нельзя рекомендовать один или несколько алгоритмов, способных решить любую задачу. Разработчик должен сам определить критерии, определяющие работоспособность проектируемой системы, и предложить способы их решения и дальнейшей реализации.
Материал с сайта robotgeeks.ru