Разработка роботизированной передвигающейся платформы Rash 1

Задачи учебной разработки

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

1. Знакомство с аппаратным обеспечением – механическая часть.
2. Знакомство с аппаратным обеспечением – электронная часть: МК Arduino, плата ультразвукового дальномера, плата драйвера двигателей.
3. Получение навыков работы разработки (написание программы и отладка) ПО на языке Си в среде Arduino IDE, выработка стиля и структуры написания ПО.
4. Знакомство с прошивкой cyberWRT и получение опыта передачи сигналов управления из веб-интерфейса сервера, запущенного на cyberWRT, на МК Arduino.
5. Создание работоспособного конечного результата – движущейся платформы – для оценки своих возможностей и ресурсов для обеспечения и поддержания разработки.

Результат разработки

1. Будет сконструирована движущаяся платформа:

  • платформа способна перемещаться автономно без столкновений, столкновения предотвращает УЗ датчик: при появлении препятствия запускается алгоритм случайного объезда;
    платформа способна перемещаться по командам, отдаваемым через веб-интерфейс сервера, работающего на маршрутизаторе (блок связи) на борту робота: вперед/назад/влево/вправо, подать звуковой сигнал, включить/отключить фары, установить скорость перемещения от 10% до 100% от максимально возможной + зарезервировано еще 5 команд;
  • в веб-браузер транслируется картинка бортовой камеры, установленной на роботе;
  • выбор режима управления – по командам или удаленно – задаётся кнопкой, установленной на роботе;
  • на роботе имеются средства индикации – светодиод питания МК (красный), светодиод выполнения команд движения (синий), светодиод дальности до объекта (желтый) – чем ближе находится объект, тем светодиод становится ярче;
  • в прошивке версии 1.0 установлен диапазон видимости 20-110см, при этом критически близким является расстояние 40см до объекта – с этого расстояния запускается алгоритм поворота и объезда препятствий;
  • в автоматическом режиме реализована схема самодиагностики (хотя и не выделена в самостоятельный модуль): в том случае если робот застрял и «не видит» препятствие присутствует защита по времени (20 сек) на движение вперед, после чего робот отъезжает назад и выполняется алгоритм поворота.

2. Будет создан комплект рабочее — конструкторской документации для программной части разработки.
3. Будет создан материал (фото и видео), демонстрирующий возможности движущейся платформы.
4. Будет получен статистический материал для анализа.

Анализ результатов разработки

В процессе тестирования полученной платформы будут выявлены недостатки и нюансы, которые приведены описаны и приведены ниже.
1. Робот всегда забирает влево при прямолинейном движении. Чем сильнее разряд источника питания, тем отклонение сильнее. Очевидно это происходит из-за разброса параметров двигателей, возможно – из-за разной работы каналов драйвера двигателей. Для исключения подобного поведения робота необходимо подключать оптические энкодеры и, получая информацию с них, корректировать алгоритм модуля управления двигателями при движении вперед или назад. Кроме того, для источника питания необходимо иметь интегральный стабилизатор напряжения, например, можно перевести питание на пару Li-ION элементы с использованием понижающего стабилизатора питания.
2. Робот довольно часто не видит впередистоящий объект. Это связано с узким углом обзора ультразвукового измерителя расстояния. Очевидно, что точность и надежность определения расстояния до объектов можно повысить, установив два-три УЗ датчика. Для определения расстояния датчики опрашиваются последовательно с небольшими паузами для исключения влияния переотражений УЗ сигналов друг на друга.
3. Пару раз на прошивке версии 1.0 наблюдалась ситуация зависания алгоритма поворота – робот постоянно крутился и не двигался вперёд даже если впереди не было препятствия. Если робота принудительно удерживать в свободном направлении, то через некоторое время он начинал нормально работать. Для исключения таких ситуаций необходимо расширить критерии самодиагностики поведения робота с его принудительной переинициализацией в случае возникновения проблем. Для исключения зависания МК необходимо использовать WatchDog.
4. При удалённом управлении часто возникает ситуация, когда после отпускания кнопки на клавиатуре, задающей движение робот не останавливался. Тогда нужно было быстро нажать и отпустить любую кнопку движения. Возможно команда «стоп» терялась в приёмном буфере, возможно команда не выдавалась с маршрутизатора. Для исключения подобных ситуаций с маршрутизатора необходимо выдавать команду «стоп» несколько раз подряд при отпускании кнопки движения.
5. При создании прошивки для МК специфику вносит последовательное выполнение программы. Для того чтобы отработать команду «вперед» нужно последовательно опросить модули интерфейса, определения дальности, управления и затем вызвать модуль движения. При таком опросе модуль определения дальности вносит задержку до полусотни миллисекунд, тормозя принятие решения по пришедшей команде. В случае чрезмерного разрастания функционала или появлении дополнительных модулей дальности задержка может стать неприемлимой. В ПЛИС такой проблемы нет – все блоки в каждый момент времени работают параллельно, т.е. допустимо в один момент времени принимать команду, обрабатывать дальность и выводить её на светодиод и выполнять кучу других операций. В МК же параллельное выполнение даже несвязанных функций друг с другом невозможно, либо надо постоянно использовать прерывания по внешним событиям, что не всегда удобно. Однако разработка прошивки для ПЛИС – это существенно более трудоёмкая работа, требующая определённой квалификации, т.к. написать код на Си может практически любой программист, а для написания кода на VHDL/Verilog требуется понимание сути работы логики микросхемы.
6. При удалённом управлении картинка с бортовой камеры слишком сильно изменяется, затрудняя ориентирование в пространстве. Для снижения этого эффекта необходимо применять сглаживание и/или уменьшение окна отображения.
7. В процессе тестирования выявилась неудачная конструкция механической части. При полной загрузке (платформа + «второй этаж») динамика платформы снижается, слышны скрипы при поворотах. Возможно ситуацию можно исправить подняв питающее напряжение. Кроме того, заднее колесо часто заклинивает при поворотах и смазка шарикоподшипников не помогает ввиду неудачной конструкции.
8. При ручном управлении на максимальной скорости при движении вперёд в случае необходимости остановки и быстром движении назад робот мог резко наклоняться вперёд при этом задняя точка опоры отрывалась от земли.

Развитие разработки в данном аппаратном исполнении

1. Реализация выдачи звукового сигнала – разработка генератора звуковых сигналов с определённой частотой.
2. Выравнивание скорости колёс при прямолинейном движении, используя оптические датчики и оптических энкодер для колёс.
3. Реализация автоматического включения/отключения фар, используя датчик освещенности.
4. Повышение надёжности определения расстояний до впередистоящих объектов путём увеличения УЗ датчиков до трёх.
5. Организация питания на базе двух Li-Ion аккумуляторов типоразмера 18650 и интегрального стабилизатора напряжения.
6. Разобрать и смазать редукторы двигателей силиконовой смазкой для устранения скрипов.
7. Оценить увеличение питающего напряжения до 7,0-7,5В. При этом учесть что придётся пересчитывать и перепаивать резисторы для светодиодов, чтобы не допустить превышения максимального выходного тока вывода МК.
8. При резкой смене состояния (начало движения или остановка) реализовать плавное изменение скорости движения, функция изменения может быть линейной или экспоненциальной.

Ресурсозатраты

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

Комплектующие
Платформа (колеса, двигатели, крепеж)
МК
Максимальная скорость реза (1 мм картона)
Сонар
Драйвер двигателя
Материнская плата
Бат. отсек
Маршрутизатор
Видеокамера
Кабели, разъемчики, светодиоды, припой, спирт и т.д. и т.п.
4 аккумулятора АА
Используемое оборудование
Паяльная станция
Обжимка
Клеевый пистолет
Мультиметр
Газовый паяльник
Требуемое дополнительное оборудование
Лабораторный источник питания
Цифровой запоминающий осциллограф

Временные затраты.

Необходимо учитывать, скорость разработки студентом или школьником будет сильно зависеть от знаний и опыта работы с Arduino и с языком Си.
Образовательный курс рассчитан на полных 72 часа.

Перспективные разработки, открываемые после текущей

1. Создание четырёхколёсной полноприводной платформы. Использование шаговых двигателей для точного контроля вращения колес и движения и широкого диапазона установки скорости.

2. Проработка варианта замены управляющего МК на ПЛИС.

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

4. Новое направление – удалённый мониторинг. Фактически, данная платформа, после ряда доработок, может являться прототипом для создания робота удалённого мониторинга. Если робота оснастить сервоприводом для вращения видеокамеры, устранить выявленные недостатки и проработать систему подзарядки не требующий личного присутствия (например, для заряда аккумуляторов робота нужно подогнать к специальной стойке, на которую будут выведены контакты зарядного устройства), то с помощью робота можно лично прямо с сотового телефона мониторить квартиры, дачи и прочие помещения. Таких решений на современном рынке, кажется, вообще нет.