Система автоматического ориентирования в пространстве
Автор: Д.С. Добровольский
Группа МТ-204; кафедра Электротехники, Электроники и Микропроцессорной Техники им. Нетушила.
Ключевые слова: робот, программируемые системы, программируемый микроконтроллер, алгоритм управления.
Аннотация
Реализован алгоритм управления автономно работающим роботом, который осуществляет движение, объезжая преграды. Для определения расположения преград используется ультразвуковой датчик.
Для повышения производительности труда в промышленности необходимо использовать роботов, способных выполнять простые рутинные операции. Одной из таких операций является осуществление мониторинга пересеченной местности или территории предприятия с изменяющейся топологией. Для реализации этой задачи необходимо создание самоходного автономного робота, в котором реализован алгоритм объезда препятствий. Время автономной работы робота напрямую зависит от электрической мощности потребляемой им во время работы. Минимальное энергопотребление и возможность реализации алгоритма работы обеспечивает применение в робототехнике программируемых микроконтроллеров. Использование программируемых микроконтроллеров дает значительную гибкость для модификации и изменения алгоритма работы робота в изменяющихся условиях эксплуатации
Удобным в понимании азов программирования микроконтроллеров являются устройства оснащенные микроконтроллером серии AVR компании Atmel. Программы для микроконтроллеров пишутся на языке программирования «С» с определенной спецификой [1]. Для отладки программы и дальнейшей ее записи в микроконтроллер необходимо использовать макетные платы и программатор [2]. Целью нашей работы было написание управляющей программы для микроконтроллера, реализующей управление гусеничного шасси робота, и обработки данных ультразвукового дальномера (УД). Создание рабочей модели робота.
Предварительно нами были выполнены два эксперимента. Определение параметров преобразования расстояний в выходные цифровые значения УД. Охарактеризованы механические характеристики гусеничного шасси, позволяющие осуществлять поворот на определенный угол. С помощью языка «С» реализован алгоритм (рис. 1) работы робота, которой позволяет ему определять положение препятствий и на безопасном расстоянии объезжать их.
Начало работы алгоритма заключается в инициализации периферийных устройств подключенных к микроконтроллеру. После чего происходит сканирование УД пространства по направлению движения робота и определение расстояния до препятствия. В случае, когда препятствий нет - выполняется условие X<A (где X – расстояние, определяемое УД, A – минимальное расстояние до препятствия). Робот начинает движение, вперед непрерывно измеряя расстояние до препятствия и сравнивая его с минимальным значением. В случае приближения робота на минимальное расстояние к препятствию реализуется следующая последовательность действий: робот совершает поворот налево на угол 45°, а затем поворачивается направо на угол 90° (на угол 45° относительно исходного положения). Полученные значения расстояний сравниваются, и робот выбирает движение в том направлении, где следующее препятствие располагается дальше. Если расстояния в обоих случаях равны, то робот поворачивается на угол 180° относительно исходного положения и продолжает движение.
Отладку программы проводили с использованием виртуальных приборов на персональном компьютере. Отлаженную программу записали в микроконтроллер ATMega 16A PU. Электрическую схему робота реализовали с помощью отладочной платы микроконтроллера, присоединив к ней микросхему L293D драйвера двигателей гусеничного шасси и блок УД расстояний URM37. В роботе использовалось раздельное электропитание цифровой и силовой части схемы. Электропитание микроконтроллера осуществляли через стабилизатор напряжения на 5V (L7805). Все электрические схемы были смонтированы на гусеничном шасси рис. 2.
Лабораторные испытания движения робота по территории имеющей значительное количество препятствий показали эффективность разработанного алгоритма и верность его программной реализации. В ходе испытаний было выявлено наличие мертвых зон приводящих к контакту робота с препятствием. Изменением положения УД относительно гусеничного шасси удалось ликвидировать мертвые зоны УД.
Полученные результаты в дальнейшем можно применить для создания более сложных роботизированных систем имеющих дополнительный функционал из измерительных приборов и датчиков или автономных самоходных промышленных роботов.
Рис. 2. Самоходный робот на гусеничном шасси.
1. Шпак, Ю.А. Программирование на языке “C” для AVR и PiC микроконтроллеров. Киев: МК-Пресс. 2006. 400 с.
2. Лебедев М.Б. CodeVisionAVR пособие для начинающих. М.: Додэка-XXI. 2008. 592с.