Разработка нижнего контура управления змееподобного робота
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
;
Робот ЗМЕЕЛОК (Рисунок) представляет из себя робототехническое устройство змеевидного типа состоящую из16 звеньев общей длинной 1 м. Звенья соединены между собой с помощью двухстепенных шарниров Гука таким образом, чтобы обеспечивались повороты вокруг вертикальной и горизонтальной оси для каждого из них.
Корпус активного шарнира модуля робота выполнен из конструкционного карболана. К корпусу крепятся приводы и плата контролера. Для обеспечения необходимого коэффициента iепления робота с поверхностью, к нижней части корпуса звеньев прикреплены резиновые подошвы полусферической формы.
Рис. 3.8 Внешний вид робота ЗМЕЕЛОК
Характеристики робота ЗМЕЕОЛК приведены в Таблице 3.9.
Таблица 3.9
Масса3 кгДлина1020 ммШирина65 ммМаксимальный момент по оси курса0,3 НмМаксимальный момент по оси тангажа1,2 НмНапряжение питания4,8 - 6 ВМаксимально потребляемый ток на привод0,3 А
.20 Структурная схема управления
В соответствии с техническим заданием требовалось реализовать управление которое бы обеспечило змеевидное движение вернее позволяло бы всем контроллерам одновременно отрабатывать заданное воздействие тем самым реализуя требуемую бегущую волну.
При использование разделения управления на уровни общая схема будет выглядеть как показано на Рисунке
Управляющая система реализована в виде двухуровневой системы:
Верхнего уровня, модули которого включают в свой состав программу моделирования волнового движения, человека оператора, который задаёт требования к движению, программу пересчета закона движения в форму необходимую для нижнего уровня и программу обмена. И Нижнего уровня который в свою очередь состоит из модулей отвечающих за прием и обработку данных и формирование требуемого ШИМ.
Поскольку в данной работе подробно рассматривается Нижний уровень управления рассмотрим и разберём алгоритм его работы.
.21 Алгоритм управления и его реализация
В ходе работы программы микроконтроллера необходимо обеспечить выполнение вышеописанных требований: приём данных по последовательному интерфейсу со скоростью 115200 бит/с, их обработка, выдача ШИМ с параметрами удовлетворяющими требованиям описанным в документации к сервоприводам и одновременное управление всеми контроллерами.
В микроконтроллере реализован цикл приёма и формирования управления.
Для реализации данной схемы работы был разработан алгоритм работы программы управления. Он прост, что объясняется тем, что разработка велась на простом микроконтроллере с ограниченным количеством памяти и возможностей.
Рассмотрим реализованный алгоритм поподробнее с приведением ссылок на участки кода программы микроконтроллера для более понятного разъяснения принципа работы.
После подачи питания на контроллер происходит его начальная инициализация, что и отраженно в схеме и программе. В момент инициализации контроллер определяет свой номер (строки 183-186) который устанавливается четыремя джамперами (переключателями) на Рисунке они обозначены номерами 5 - 8. Четырех джамперов достаточно в следствие того, что контроллеры управляют парами машинок, а из четырёх двухпозиционных переключателей возможно получить 16 комбинаций которых хватает для перечисления всех звеньев Змеелока.
Как уже известно с Верхнего уровня должна поступать информация - задания для приводов. Однако до этого момента не был оценён её объём. Но его легко подсчитать:
У нас есть известное число степеней подвижности за каждую из которых отвечает один сервопривод. В Змеелоке таких степеней 30 следовательно необходимо 30 управляющих команд для реализации движения. Но для задания всех возможных положений на используемых машинках не хватает 1 байта и приходится использовать 2, что в результате ведёт к удвоению объёма передаваемой информации. Хотя это не критично т.к. было показано, что скорости интерфейса более чем достаточно для работы данной схемы. Не стоит забывать и о стартовых байтах (их использовано 2 - AA и F1 для обеспечения защиты от срабатывания при помехах) и контрольном. В итоге получается массив из 63 байт данных.
После начальной инициализации контроллер ожидает стартовый байт AA (строка 131) Когда же с Верхнего уровня приходит массив данных состоящий из 63 байт которые включают в себя все задания для всех контроллеров и байт контроля, контроллер обнаружив в канале первый стартовый байт (строка 132) ждёт следующего стартового байта F1 (строка 135) для исключения случайного срабатывания, а по получение его начинает принимать посылку отсчитывая при этом количество принятых байт (строки 140-44) для проверки контрольной суммы (строка 144). Когда номер байта равняется номеру контроллера установленному на плате, микропроцессор сохраняет принятый байт и следующие за ним 3 байта в память (строки 140 -144) и после подсчёта контрольной сумы (строка 144-148) в соответствие с тем сошлась контрольная сумма (строка 148) или не сошлась (строка 149) помещает данные в память для дальнейшей обработки или просто игнорирует принятую посылку и ждёт следующей. Параллельно iиклом приёма в микроконтроллере работает цикл выдачи ШИМ с требуемыми параметрами (строки 56-121).
Это цикл включает в себя два таймера Т0 и Т1.
Частота срабатывания таймера T0 рассчитывается по формуле (6.2) и составляет для данной реализации 100Гц.
(3.4)
где fкварца - частота работы внешнего кварцевого генератора. Для Змеелока она с