Bioloid STEM. Исследование проходимости роботов.

26 Марта 2014

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

Решение подобных задач возлагается на мобильных гусеничных роботов, которые обладают высокой проходимостью и грузоподъемностью. Важное отличительное качество гусеничных мобильных роботов заключается в их маневренности. Обладая независимым приводом для каждой из гусениц в отдельности, мобильный робот может легко менять направление собственного движения.


Lesson0302.jpg


Благодаря тому, что скорость каждой из гусениц регулируется в отдельности, достаточно легко управлять движением мобильного робота. Для задания какого-либо направления движения необходимо изменить относительную скорость приводов.


Lesson0303.jpg


Вышеуказанная таблица демонстрирует соотношение скоростей и направлений вращения приводов гусеничного шасси. Важно обращать внимание на положение привода, ведь в зависимости от ориентации в пространстве привода зависит направление вращения его выходного вала, а соответственно и направление движения гусеничных траков. Например, для того чтобы робот двигался вперед, необходимо, чтобы его левый привод вращался «против часовой стрелки», а правый – «по часовой стрелке».


Lesson0304.jpg

  1. Для того чтобы двигаться прямо, необходимо, чтобы правый и левый приводы вращались с одинаковой скоростью в направлении «прямо».
  2. Для того чтобы повернуть налево, необходимо, чтобы скорость правого привода была больше, чем скорость левого. Чем больше будет разница скоростей, тем меньше будет радиус разворота при движении.
  3. Для того чтобы повернуть направо, необходимо, чтобы скорость правого привода была меньше, чем скорость левого. Чем больше будет разница скоростей, тем меньше будет радиус разворота при движении.
  4. Для того чтобы повернуть налево на месте, необходимо, чтобы правый привод вращался «прямо», а левый – «назад» с такой же скоростью.
  5. Для того чтобы повернуть направо на месте, необходимо чтобы левый привод вращался «прямо», а правый «назад» с такой же скоростью.
  6. Для того чтобы двигаться назад, необходимо, чтобы правый и левый приводы вращались с одинаковой скоростью в направлении «назад».


Lesson0305.jpg


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


Lesson0306.jpg


В зависимости от назначения гусеничного робота и степени его проходимости различают различные конструкции гусеничных шасси.


Lesson0307.jpg


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


Lesson0308.jpg Lesson0309.jpg


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


Lesson0310.jpg


В данной лабораторной работе исследуются способы управления мобильным гусеничным шасси. Разрабатываемая в рамках данной работы модель робота обладает достаточно большой проходимостью для собственных габаритных размеров.


Lesson0311.jpg


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


Lesson0312.jpg


Для того чтобы робот в процессе своего движения не застрял, преодолевая препятствие, его шасси оснащается ИК-датчиком, определяющим наличие объектов на его пути. Если датчик обнаруживает объект, это значит, что высота объекта соизмерима с высотой робота и есть риск того, что робот не сможет преодолеть данный маршрут. В этом случае робот должен предпринять какое-либо другое действие, например объехать препятствие сбоку и т.п.

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

[править]Выполнение простейших маневров.

В данной части лабораторной работы рассматриваются прямолинейное движение гусеничного робота и процесс поиска препятствий на его пути.


Lesson0313.jpg


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

Lesson0314.jpg


Согласно предложенному алгоритму гусеничный робот едет прямо, переезжая все препятствия на своем пути. Если же на пути робота обнаруживается объект, который не пропадает с пути робота в течение 3 секунд, робот останавливается и совершает маневр по объезду препятствия.


Lesson0315.jpg


В начале программы задаются базовые переменные, определяющие пороговое значение до объекта, скорости вращения приводов робота и время ожидания перед обнаруженным объектом (3 сек). С помощью этих значений определяется скорость маневрирования роботов и расстояние, которое робот не доезжает до обнаруженного объекта.


Lesson0316.jpg


Программа представляет собой бесконечный цикл, в котором анализируется показания датчика, подключенного к PORT[3]. С помощью переменных obstacle_threshold и bstacle_judging_time задаются максимальные значения расстояния до объекта и время обнаружения объекта. Если объект находится вне зоны видимости, робот продолжает движение под управлением функции forward.

В случае если робот обнаружил объект на своем пути, поочередно вызываются функции reverse, stop, pivot_left с помощью которых робот совершает заданный маневр по объезду препятствия. Функции чередуются с помощью вызова таймера, ограничивающего время работы каждой из них.


Lesson0317.jpg


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


Lesson0318.jpg


Данная функция запускает воспроизведение мелодии на время, определяемое переменной prepare_time. Данная переменная инициализирует таймер, который работает в течение заданного времени.


Lesson0319.jpg


Во время отсчета таймера осуществляется задержка, во время которой выполняется последняя операция, например воспроизведение мелодии. Задержка осуществляется с помощью функции timer_standby, которая с помощью оператора WAIT WHILE ожидает окончания отсчета. Таким образом, можно сгенерировать любую необходимую для работы программы временную задержку.

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

Для этого автоматически опрашиваются все порты, и если на одном из них обнаруживаются показания от ИК-датчика, светодиод моргает соответствующее номеру порта количество раз.


Lesson0320.jpg


В случае с PORT[1] при обнаружении сигнала с ИК-датчика вызывается функции LED_port_num, которая моргает системным светодиодом.


Lesson0321.jpg


Если же сигнал с ИК-датчика обнаруживается на каком-то другом порту контроллера СМ-530, функция LED_port_num вызывается с помощью оператора LOOP FOR, выполняющегося заданное количество раз.

[править]Преодоление препятствий на пути.

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

Подобные мобильные роботы перемещаются достаточно быстро среди завалов, преодолевают уклоны и спуски, но из-за малой массы часто опрокидываются и переворачиваются. Несмотря на это роботы должны выполнять поставленную задачу, а значит, как минимум, продолжать движение.

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


Lesson0322.jpg


Для того чтобы робот мог двигаться в перевернутом состоянии, необходимо изменить направления вращения его приводов. Поскольку подобные роботы перемещаются автономно или зачастую пользователь не может наблюдать за их перемещением, смена направления вращения должна осуществляться автоматически в зависимости от ориентации в пространстве робота.


Lesson0323.jpg


С целью определения положения робота устанавливается ИК-датчик, направленный в пол. Соответственно в одном из положений робота он срабатывает, а в перевернутом – нет, и наоборот, в зависимости от способа установки датчика.

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


Lesson0324.jpg


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


Lesson0325.jpg


Переход от одной ветки программы к другой осуществляется с помощью ИК-датчика, подключенного к PORT[4], который определяет ориентацию робота в пространстве.


Lesson0326.jpg


Также в отличие от программы из части № 1, для функций forward и reverse реализованы аналоги slow_forward и slow_reverse, которые обеспечивают медленное движение робота при маневрах.


Lesson0327.jpg


Данные функции оперируют значениями l_wheel_low_speed и r_wheel_low_speed, описываемыми в начале программы.

[править]Заключение.

Для закрепления материала из данного урока, предлагается выполнить несколько опытных испытаний.

Смоделируйте ситуацию, при которой робот транспортирует груз за пределы черной линии. Для этого оснастите гусеничное шасси двумя ИК-датчиками: спереди для обнаружения объектов и снизу – для определения черной линии.


Lesson0328.jpg


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


Lesson0329.jpg


Исследуйте проходимость гусеничных роботов на пересеченной местности, моделирующей ямы или овраги на пути робота. Направьте робота на преодоление прерывистого препятствия, а сами оцените, как зависит ширина преодолеваемого препятствия от габаритов робота.


Lesson0330.jpg Lesson0331.jpg


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

Источник: Методические пособия по роботехнике для начинающих компании ООО «Экзамен-Технолаб».

Вернуться к списку публикаций