Основанная в начале этого года Фомичевым Георгием (Россия) и Маттео Борри (США) компания Endurance анонсировала начало разработки роботизированной мобильной платформы под названием RASH1.
Ниже представлен небольшой обзор результатов тестирования первой версии прототипа.
Результат разработки (1 фаза)
1) Сконструирована движущаяся платформа:
- платформа способна перемещаться автономно без столкновений, столкновения предотвращает УЗ датчик: при появлении препятствия запускается алгоритм случайного объезда;
- платформа способна перемещаться по командам, отдаваемым через веб-интерфейс сервера, работающего на маршрутизаторе (блок связи) на борту робота: вперед/назад/влево/вправо, подать звуковой сигнал, включить/отключить фары, установить скорость перемещения от 10% до 100% от максимально возможной + зарезервировано еще 5 команд;
- в веб-браузер транслируется картинка бортовой камеры, установленной на роботе;
- выбор режима управления – по командам или удаленно – задаётся кнопкой, установленной на роботе;
- на роботе имеются средства индикации – светодиод питания микроконтроллера (красный), светодиод выполнения команд движения (синий), светодиод дальности до объекта (желтый) – чем ближе находится объект, тем светодиод становится ярче;
- в прошивке версии 1.0 установлен диапазон видимости 20-110см, при этом критически близким является расстояние 40см до объекта – с этого расстояния запускается алгоритм поворота и объезда препятствий;
- в автоматическом режиме реализована схема самодиагностики (хотя и не выделена в самостоятельный модуль): в том случае если робот застрял и «не видит» препятствие присутствует защита по времени (20 сек) на движение вперед, после чего робот отъезжает назад и выполняется алгоритм поворота.
2) Создан комплект рабоче-конструкторской документации для программной части разработки.
3) Создан материал (фото и видео), демонстрирующий возможности движущейся платформы.
4) Получен статистический материал для анализа.
Анализ результатов разработки
В процессе тестирования полученной платформы были выявлены недостатки и нюансы, которые приведены ниже.
- Робот всегда забирает влево при прямолинейном движении. Чем сильнее разряд источника питания, тем отклонение сильнее. Очевидно это происходит из-за разброса параметров двигателей, возможно – из-за разной работы каналов драйвера двигателей. Для исключения подобного поведения робота необходимо подключать оптические энкодеры и, получая информацию с них, корректировать алгоритм модуля управления двигателями при движении вперед или назад. Кроме того, для источника питания необходимо иметь интегральный стабилизатор напряжения, например, можно перевести питание на пару Li-ION элементы с использованием понижающего стабилизатора питания.
- Робот довольно часто не видит впередистоящий объект. Это связано с узким углом обзора ультразвукового измерителя расстояния. Очевидно, что точность и надежность определения расстояния до объектов можно повысить, установив два-три УЗ датчика. Для определения расстояния датчики опрашиваются последовательно с небольшими паузами для исключения влияния переотражений УЗ сигналов друг на друга.
- Пару раз на прошивке версии 1.0 наблюдалась ситуация зависания алгоритма поворота – робот постоянно крутился и не двигался вперёд даже если впереди не было препятствия. Если робота принудительно удерживать в свободном направлении, то через некоторое время он начинал нормально работать. Для исключения таких ситуаций необходимо расширить критерии самодиагностики поведения робота с его принудительной переинициализацией в случае возникновения проблем. Для исключения зависания МК необходимо использовать WatchDog.
- При удалённом управлении часто возникает ситуация, когда после отпускания кнопки на клавиатуре, задающей движение робот не останавливался. Тогда нужно было быстро нажать и отпустить любую кнопку движения. Возможно команда «стоп» терялась в приёмном буфере, возможно команда не выдавалась с маршрутизатора. Для исключения подобных ситуаций с маршрутизатора необходимо выдавать команду «стоп» несколько раз подряд при отпускании кнопки движения.
- При создании прошивки для МК специфику вносит последовательное выполнение программы. Для того чтобы отработать команду «вперед» нужно последовательно опросить модули интерфейса, определения дальности, управления и затем вызвать модуль движения. При таком опросе модуль определения дальности вносит задержку до полусотни миллисекунд, тормозя принятие решения по пришедшей команде. В случае чрезмерного разрастания функционала или появлении дополнительных модулей дальности задержка может стать неприемлимой. В ПЛИС такой проблемы нет – все блоки в каждый момент времени работают параллельно, т.е. допустимо в один момент времени принимать команду, обрабатывать дальность и выводить её на светодиод и выполнять кучу других операций. В МК же параллельное выполнение даже несвязанных функций друг с другом невозможно, либо надо постоянно использовать прерывания по внешним событиям, что не всегда удобно. Однако разработка прошивки для ПЛИС – это существенно более трудоёмкая работа, требующая определённой квалификации, т.к. написать код на Си может практически любой программист, а для написания кода на VHDL/Verilog требуется понимание сути работы логики микросхемы.
- При удалённом управлении картинка с бортовой камеры слишком сильно изменяется, затрудняя ориентирование в пространстве. Для снижения этого эффекта необходимо применять сглаживание и/или уменьшение окна отображения.
- В процессе тестирования выявилась неудачная конструкция механической части. При полной загрузке (платформа + «второй этаж») динамика платформы снижается, слышны скрипы при поворотах. Возможно ситуацию можно исправить подняв питающее напряжение. Кроме того, заднее колесо часто заклинивает при поворотах и смазка шарикоподшипников не помогает ввиду неудачной конструкции.
- При ручном управлении на максимальной скорости при движении вперёд в случае необходимости остановки и быстром движении назад робот мог резко наклоняться вперёд при этом задняя точка опоры отрывалась от земли.
Развитие разработки в данном аппаратном исполнении
- Реализация выдачи звукового сигнала – разработка генератора звуковых сигналов с определённой частотой.
- Выравнивание скорости колёс при прямолинейном движении, используя оптические датчики и оптических энкодер для колёс.
- Реализация автоматического включения/отключения фар, используя датчик освещенности.
- Повышение надёжности определения расстояний до впередистоящих объектов путём увеличения УЗ датчиков до трёх.
- Организация питания на базе двух Li-Ion аккумуляторов типоразмера 18650 и интегрального стабилизатора напряжения.
- Разобрать и смазать редукторы двигателей силиконовой смазкой для устранения скрипов.
- Оценить увеличение питающего напряжения до 7,0-7,5В. При этом учесть что придётся пересчитывать и перепаивать резисторы для светодиодов, чтобы не допустить превышения максимального выходного тока вывода МК.
- При резкой смене состояния (начало движения или остановка) реализовать плавное изменение скорости движения, функция изменения может быть линейной или экпоненциальной.
Что в перспективе
- Создание четырёхколёсной полноприводной платформы. Использование шаговых двигателей для точного контроля вращения колес и движения и широкого диапазона установки скорости.
- Проработка варианта замены управляющего МК на ПЛИС.
- Проработка варианта замены блока связи, либо интеграции блоков связи и управления в единый, под управлением унифицированной операционной системы, например, ROS.
Подробнее о проекте и компании:
Сайт компании Endurance robots
Страница Linkedin
Страница Facebook
[add_ratings]