Математическое описание кинематики
На этом этапе необходимо рассчитать прямую и обратную кинематику манипулятора. Прямая задача состоит в том, чтобы по известным значениям обобщённых координат (в данном случае углы поворота звеньев) определить положения звеньев относительно некоторой базовой системы координат.
Начнём с расчёта обратной кинематики. Изобразим геометрическую схему манипулятора, из которой будут ясны интересующие нас геометрические соотношения.
Требуемую позицию изображаем радиус-вектором
Рассмотрим переход фланцевой точки в нужное положение. Оно осуществляется поворотам звеньев
ab
(их я изобразил в виде векторов) в шарнирах
ABC
. Начало базовой системы координат (БСК) поместим в точку шарнира
B
. Ось вращения шарнира
A
направлена вдоль оси
Z
, оси
BC
направлены перпендикулярно
ZКогда всё формальности соблюдены, перейдём к сути. Для решения обратной задачи кинематики я использовал геометрический подход в силу простоты конструкции манипулятора. Из геометрии видно, что вектор А, В и С соответственно.
Рассмотрим треугольник, ограниченный векторами
Запишем теорему косинусов относительно искомых углов:
Выразим углы
Из геометрической схемы видно, что:
Тогда:
Окончательно, переход от линейной координаты к углам поворота звеньев осуществляется формулами:
Теперь, когда переместили фланцевую точку в требуемое положение надо правильно сориентировать рабочий орган. Чтобы это сделать, необходимо знать координаты вектора
Вектор
направлен по звену
b
, вектор
– вдоль оси шарнирного соединения
f1
Для нахождения базиса
определим матрицу перехода от БСК (с базисом
) и ЛСК. Эта матрица получается путём комбинации поворотов в шарнирах
ABC
где
Т.к. матрица
является единичной, тогда:
Матрица
вычисляется путём перемножения
матриц поворота вокруг оси на угол
Зададим функцию, которая вычисляет эту матрицу:
Ось берётся в виде вектора как столбец матрицы, полученной предыдущими поворотам, а углы уже рассчитаны выше.
В итоге получаем:
Пусть вектор рабочего органа в БСК
. Тогда справедливо равенство:
Отсюда выразим
– вектор рабочего органа в базисе
, т.е. относительно фланцевой точки:
Теперь, зная вектор РО, можно рассчитать углы поворота ориентирующих осей
f1f2
Чтобы переместить РО в заданную позицию, требуется совершить поворот на углы
. Из рисунка видно, что
где
— длина рабочего органа,
— координаты вектора
Программное обеспечение манипулятора разделено на два уровня, верхний и нижний. Верхний уровень написан в Matlab в виде библиотеки и различными командами-методами, нижний – на микроконтроллере Atmega328. Задача верхнего уровня состоит в том, чтобы сформулировать команды, отсылаемые на микроконтроллер.
Формулировка команды и отправка со стороны верхнего уровня происходит следующим образом: пользователь в командном окне Matlab вызывает функцию из библиотеки (например, функцию простого перемещения в точку), указывает необходимые аргументы (обычно это координаты и ориентация РО).
После по изложенным выше математическим соображения, записанных в библиотеку, вычисляются углы поворота осей и при необходимости скорости вращения. После по простенькому протоколу собираем команду и шлём её на микроконтроллер нижнего уровня по последовательному COM – порту.
Пару слов о написанной библиотеке. В её распоряжении есть следующие функции:
- функции создания соединения по последовательному интерфейсу
- функции перемещения
Список функций можно конечно расширить, но достаточно было и этого функционала для решения непосредственно той задачи, для которой манипулятор и проектировался.
На видео продемонстрирована работа манипулятора.
1 разработка аппаратного обеспечения
1.1 Разработка функциональной структуры системы
В соответствии с требованиями система управления взаимодействует с объектом управления, поэтому в ней необходимо предусмотреть подсистему управления технологическим оборудованием (рисунок 1.1). Данная подсистема включает в себя устройства сбора информации (датчики положения суставов), эталоны и состояния оборудования (ограничения по изменению положения суставов), систему контроля состояния оборудования, программу управления реализующую перемещение рабочего органа, противоаварийную защиту, блок перевода в ручной режим управления и исполнительные органы (сервоприводы).
Рисунок 1.1 – Робот-манипулятор
Кроме того система должна обеспечивать визуализацию и контроль функционирования робота, поэтому она должна включать подсистему информационного обеспечения работы оператора. Данная подсистема включает в себя регистрацию параметров процессов, человеко-машинный интерфейс и сигнализацию достижения параметрами управления заданных значений.
Так же система должна обеспечивать архивирование протекающих технологических процессов, поэтому в ней должна присутствовать подсистема ведения архивов параметров и событий, включающая базу данных и резервное хранилище.
С учетом перечисленных требований функциональная структура системы имеет вид, приведенный на рисунке 1.2. Такая структура системы обеспечивает управление, сбор информации, ее регистрацию, визуализацию, сохранение в базе данных и создание резервных копий. Кроме того обеспечивается контроль, за оборудованием и сигнализация достижения параметрами управления заданных значений.
Рисунок 1.2 – Функциональная структурная схема
1.2 Выбор и обоснование аппаратных средств
Исходя из требований, разрабатываемая автоматизированная система управления роботом-манипулятором KUKA KR AGILUS: KR 6 R700 sixx, должна обеспечивать автоматическое перемещение его рабочего органа за минимальное время по заданным координатам с учетом ограничений накладываемых на рабочую зону.
№ | Наименование параметра | Значение |
---|---|---|
1 | Полезная нагрузка, кг | 6 |
2 | Количество осей | 6 |
3 | Стабильность повторяемости, мм | ±0,03 |
4 | Максимальный вылет, мм | 706,7 |
5 | Изменение угла оси 1 (A1), ° | ±170 |
6 | Изменение угла оси 2 (A2), ° | 45/-190 |
7 | Изменение угла оси 3 (A3), ° | 156/-120 |
8 | Изменение угла оси 4 (A4), ° | ±185 |
9 | Изменение угла оси 5 (A5), ° | ±120 |
10 | Изменение угла оси 6 (A6), ° | ±350 |
11 | Монтаж | Напольный |
12 | Масса, кг | 50 |
Анализ существующих решений показал, что требования к динамике и точности управления суставами робота могут быть обеспечены за счет использования сервоприводов. При этом система управления роботом в соответствии с требованиями должна включать: программируемый логический контроллер, систему управления сервоприводами, сервоприводы и ЧМИ панель. Структура системы приведена на рисунке 1.3.
Рисунок 1.3 – Структура системы управления роботом
Из существующих систем управления сервоприводами выдвинутым требованиям удовлетворяет сервосистема ECS компании Lenze. Она обеспечивает высокую динамику, выдерживание осевыми модулями перегрузки в 200%, обмен энергией по общей шине постоянного тока, имеет общий источник питания и встроенное управление тормозом.
Система ECS может использоваться с синхронными и асинхронными сервоприводами, а в качестве источников обратной связи в системе могут использоваться резольверы или энкодеры. Каждый модуль системы обладает 2 последовательными интерфейсами CAN и может быть расширен коммуникационными модулями PROFIBUS-DP, INTERBUS, DeviceNet, Lecom AB, LON и INTERBUS Loop.
Рисунок 1.4 – Структура системы управления роботом
Сервосистема ECS состоит из трех основных элементов: модуля источника питания, осевого модуля и сервопривода. Модуль источника питания предназначен для запитывания осевых модулей по единой шине постоянного тока, использование данного подхода позволяет эффективно перераспределять энергию между ними, что в свою очередь обеспечивает снижение энергопотребления.
Осевой модуль предназначен для управления сервоприводом с целью поддержания момента и скорости, отработки перемещения по соответствующим позициям с учетом разных скоростей, реализации скоординированного движения по нескольким осям при централизованном управлении.
В соответствии с методикой компании Lenze подбор оборудования для сервосистемы ECS начинается с выбора сервоприводов, после чего выбираются осевые модули и в заключении выбирается модуль источника питания.
При разработке системы управления роботом-манипулятором выбор сервоприводов осуществляется в соответствии с требуемой номинальной скоростью вращения, максимальной скоростью вращения, номинальным моментом и пиковым моментом. Соответствующие требования, предъявляемые к техническим характеристикам сервоприводов (с учетом наличия редукторов) для робота KUKA KR AGILUS: KR 6 R700 sixx приведены в таблице 1.4.
Ось | A1 | A2 | A3 | A4 | A5 | A6 |
---|---|---|---|---|---|---|
nN, об/мин | 2850 | 5200 | 5350 | 3800 | 3950 | 3750 |
nmax, об/мин | 6000 | 6500 | 6700 | 5900 | 7250 | 7500 |
Mn, Нм | 2,7 | 2,4 | 1,6 | 1,9 | 0,9 | 0,4 |
Mmax, Нм | 13,3 | 17,0 | 8,4 | 8,8 | 3,7 | 2,2 |
Выдвинутым требованиям удовлетворяет сервоприводы производящиеся компанией Lenze и входящие в серию MCS (рисунок 1.5). Статорная обмотка данных электродвигателей создана комбинированием отдельных катушек в одноэлементный полюс. Специально сконструированные полюсы обеспечивают высоких динамических характеристик привода.
Рисунок 1.5 – Сервопривод Lenze MCS
Технические характеристики выбранных сервоприводов приведены в таблице 1.3.
Ось | А1 | А2 | А3 | А4 | А5 | А6 |
---|---|---|---|---|---|---|
Двигатель | MCS 09F38 | MCS 09H60 | MCS 09D60 | MCS 09D41 | MCS 06F41 | MCS 06C41 |
nN, об/мин | 3750 | 6000 | 6000 | 4050 | 4050 | 4050 |
nmax, об/мин | 7000 | 7000 | 7000 | 7000 | 8000 | 8000 |
M0, Нм | 4,2 | 5,5 | 3,3 | 3,3 | 1,5 | 0,8 |
Mn, Нм | 3,1 | 3,0 | 1,8 | 2,3 | 1,2 | 0,6 |
Mmax, Нм | 15,0 | 20,0 | 9,5 | 9,5 | 4,4 | 2,4 |
Pn, кВт | 1,2 | 1,9 | 1,1 | 1,0 | 0,51 | 0,25 |
In, А | 2,5 | 6,0 | 3,8 | 2,3 | 1,5 | 1,3 |
fn, Гц | 250 | 400 | 400 | 270 | 270 | 270 |
Jmot, кг * м2 * 10-4 | 1,5 | 1,9 | 1,1 | 1,1 | 0,22 | 0,14 |
КПД, % | 96 | 96 | 96 | 96 | 96 | 96 |
m, кг | 5,2 | 6,1 | 4,3 | 4,3 | 2,2 | 1,8 |
Выбранные сервоприводы имеют в своем составе резольверы, при помощи которых определяется абсолютное положение вала двигателя, а так же скорость его вращения. Поэтому выбор дополнительных средств контроля положения и скорости не требуется.
На основании технических характеристик сервоприводов выбраны осевые модули (рисунок 1.6). Их технические характеристики приведены в таблице 1.4.
Рисунок 1.6 – Осевой модуль Lenze ECS
Ось | A1 | A2 | A3 | A4 | A5 | A6 |
---|---|---|---|---|---|---|
Двигатель | ECS_A008 | ECS_A016 | ECS_A008 | ECS_A004 | ECS_A004 | ECS_A004 |
Ток ускорения, А | 8,0 | 16,0 | 8,0 | 4,0 | 4,0 | 4,0 |
Ном. ток, А | 4,0 | 8,0 | 4,0 | 2,0 | 2,0 | 2,0 |
Ток удержания, А | 4,0 | 8,0 | 4,0 | 2,0 | 2,0 | 2,0 |
Мощность, кВт | 2,2 | 5,5 | 2,2 | 1,1 | 1,1 | 1,1 |
Ток шины, А | 4,9 | 9,8 | 4,9 | 2,5 | 2,5 | 2,5 |
Емкость, мкФ | 165 | 165 | 165 | 165 | 165 | 165 |
Напряжение, В | 0 ÷ 770 | 0 ÷ 770 | 0 ÷ 770 | 0 ÷ 770 | 0 ÷ 770 | 0 ÷ 770 |
Макс. частота, Гц | 600 | 600 | 600 | 600 | 600 | 600 |
В соответствии с общим номинальным током всех осевых модулей 22 А и их общей мощностью 13,2 кВт, в качестве модуля источника питания выбран ECSEE040 с номинальным током в звене постоянного тока 38,5 А и номинальной мощностью 20 кВт (рисунок 1.7).
Рисунок 1.7 – Модуль источника питания Lenze ECSEE040
Технические характеристики модуля источника питания приведены в таблице 1.5.
№ | Наименование параметра | Значение |
---|---|---|
1 | Напряжение питания, В | 3 фазы, ~380 |
2 | Ток питания, А | 31,9 |
3 | Номинальный ток в звене постоянного тока, А | 38,5 |
4 | Номинальная мощность при 400 В, кВт | 20,0 |
5 | Тормозное сопротивление внутреннее, Ом | 20,0 |
6 | Максимальная кратковременная мощность торможения, кВт | 31,2 |
7 | Длительная мощность торможения с внутренним резистором, кВт | 0,15 |
8 | Длительная мощность торможения с внешним резистором, кВт | 6,0 |
В соответствии с методикой нужно рассчитать требуемую постоянную мощность, теплоемкость и сопротивление тормозного резистора, что бы определить удовлетворяет ли требованиям сервосистемы ECS внутренний тормозной резистор модуля блока питания.
Постоянная мощность рассчитывается по формуле:
где P – мощность тормозного резистора (Вт), Pmax – максимальная тормозная мощность нагрузки (Вт), ηe – электрический КПД (преобразователь электродвигатель), ηm – механический КПД (редуктор, механизм), t1 – время торможения (с), tcycl – время цикла (с).
Время цикла рассчитывается по формуле:
tcycl = t1 tp,
где tp – время паузы (с).
Исходя из выбранного оборудования и требований к системе максимальная тормозная мощность соответствует сумме тормозных мощностей всех осевых модулей 8,8 кВт, электрический КПД сервоприводов 0,96, а механический с учетом редукторов суставов 0,93, время торможения не превышает 1 с, а время паузы не составляет не менее 1 с. На основании этого мощность тормозного резистора:
Теплоемкость рассчитывается по формуле:
C ≥ Pmax * ηe * ηm * t1 ≥ 8,8 * 0,96 * 0,93 * 1 ≥ 7,86 кВт * c.
Сопротивление рассчитывается по формуле:
где U – порог срабатывания тормозного транзистора (В).
В соответствии с выбранным оборудованием порог срабатывания тормозного транзистора 790 В. На основании этого сопротивление тормозного резистора:
Так как внутренний резистор модуля источника питания не удовлетворяет требованиям, в качестве внешнего тормозного резистора выбран резистор компании Lenze ERBP047R200W мощностью 4 кВт и сопротивлением, 47 Ом (рисунок 1.8).
Рисунок 1.8 – Тормозной резистор Lenze ERB047R200W
Для снижения влияния сервосистемы ECS на сеть, снижения потребления ею тока и продления ее срока службы во входную силовую цепь должен быть установлен дроссель. В соответствии с током потребления модуля источника питания 31,9 А выбран трехфазный дроссель компании Lenze ELN3-0075H045 (рисунок 1.9).
Рисунок 1.9 – Дроссель Lenze ELN3-0075H045
Технические характеристики дросселя приведены в таблице 1.6.
№ | Наименование параметра | Значение |
---|---|---|
1 | Напряжение, В | ~320 ÷ 528 |
2 | Индуктивность, мГн | 0,75 |
3 | Ток, А | 45,0 |
4 | Масса, кг | 10,0 |
Для снижения радиочастотных помех передаваемых от сервосистемы ECS в питающую сеть должен быть установлен RFI фильтр. В соответствии с током потребления модуля источника питания 31,9 А выбран трехфазный RFI фильтр компании LENZE E94AZRP0824 с номинальным напряжением ~440 В и номинальным током 82 А (рисунок 1.10).
Рисунок 1.10 – RFI фильтр E94AZRP0824
На основании выбранного оборудования сервосистемы ECS разработан перечень входных и выходных сигналов системы управления приведенный в таблице 1.7.
№ п/п | Наименование информации (сигналы, данные) | Иденти- фика- торы | Напр. вх./вых. | Функция | Вид | Источник / Получатель | Форма представления (разрядность, точность) | Период вв./выв., мсек | |
Внеш. | Внутр. | ||||||||
1 | Уставка угла оси A1 | 1-1 | Выход. | Управл. | Дискрет. | ПЛК/ECS_A008 | 32 бит | 1 | |
2 | Скорость изменения угла оси A1 | 2-1 | Вход. | Контроль | Дискрет. | ECS_A008/ПЛК | 32 бит | 1 | |
3 | Угол поворота оси A1 | 3-1 | Вход. | Контроль | Дискрет. | ECS_A008/ПЛК | 32 бит | 1 | |
4 | Уставка угла оси A2 | 4-1 | Выход. | Управл. | Дискрет. | ПЛК/ECS_A016 | 32 бит | 1 | |
5 | Скорость изменения угла оси A2 | 5-1 | Вход. | Контроль | Дискрет. | ECS_A016/ПЛК | 32 бит | 1 | |
6 | Угол поворота оси A2 | 6-1 | Вход. | Контроль | Дискрет. | ECS_A016/ПЛК | 32 бит | 1 | |
7 | Уставка угла оси A3 | 7-1 | Выход. | Управл. | Дискрет. | ПЛК/ECS_A008 | 32 бит | 1 | |
8 | Скорость изменения угла оси A3 | 8-1 | Вход. | Контроль | Дискрет. | ECS_A008/ПЛК | 32 бит | 1 | |
9 | Угол поворота оси A3 | 9-1 | Вход. | Контроль | Дискрет. | ECS_A008/ПЛК | 32 бит | 1 | |
10 | Уставка угла оси A4 | 10-1 | Выход. | Управл. | Дискрет. | ПЛК/ECS_A004 | 32 бит | 1 | |
11 | Скорость изменения угла оси A4 | 11-1 | Вход. | Контроль | Дискрет. | ECS_A004/ПЛК | 32 бит | 1 | |
12 | Угол поворота оси A4 | 12-1 | Вход. | Контроль | Дискрет. | ECS_A004/ПЛК | 32 бит | 1 | |
13 | Уставка угла оси A5 | 13-1 | Выход. | Управл. | Дискрет. | ПЛК/ECS_A004 | 32 бит | 1 | |
14 | Скорость изменения угла оси A5 | 14-1 | Вход. | Контроль | Дискрет. | ECS_A004/ПЛК | 32 бит | 1 | |
15 | Угол поворота оси A5 | 15-1 | Вход. | Контроль | Дискрет. | ECS_A004/ПЛК | 32 бит | 1 | |
16 | Уставка угла оси A6 | 16-1 | Выход. | Управл. | Дискрет. | ПЛК/ECS_A004 | 32 бит | 1 | |
17 | Скорость изменения угла оси A6 | 17-1 | Вход. | Контроль | Дискрет. | ECS_A004/ПЛК | 32 бит | 1 | |
18 | Угол поворота оси A6 | 18-1 | Вход. | Контроль | Дискрет. | ECS_A004/ПЛК | 32 бит | 1 |
В соответствии с требованиями к системе рабочий цикл программируемого логического контроллера должен длиться не более 500 мкс, для обеспечения реакции на изменения положения суставов робота.
Данным требованиям удовлетворяет программируемый логический контроллер компании VIPA 314-2AG12 имеющий время выполнения арифметической операции над двойным целым 0,01 мкс, объем памяти программ 512 кБайт и объем рабочей памяти 256 кБайт (рисунок 1.11).
Исходя из требований к системе управления программируемый логический контроллер не будет иметь модули ввода и модули вывода поэтому в качестве источника питания для выбранного контроллера выбран блок питания компании VIPA PS 307-1BA00 с выходным напряжением 24 В и максимальной нагрузочной способностью 2.5 А.
Рисунок 1.11 – ПЛК VIPA 314-2AG12
Технические характеристики ПЛК приведены в таблице 1.8.
№ | Наименование параметра | Значение |
---|---|---|
1 | Тип | CPU 314SB/DPM |
2 | Память, кБайт | 512 |
3 | Рабочая память, кБайт | 256 |
4 | Максимальное количество модулей, штук | 32 |
5 | Время выполнения команды над битом, мкс | 0,01 |
6 | Время выполнения команды над байтом, мкс | 0,01 |
7 | Время выполнения команды над словом, мкс | 0,01 |
8 | Время выполнения команды над двойным словом, мкс | 0,06 |
9 | LAN интерфейс | Есть |
10 | PROFIBUS-DP интерфейс, мастер | Есть |
11 | Напряжение питания, В | 24 |
12 | Потребляемая мощность, Вт | 6 |
Так как стандартной полевой шиной для управления, как сервоприводами, так и их осевыми модулями является полевая шина CAN, интерфейсы программируемого логического контроллера необходимо расширить при помощи коммуникационного процессора. В соответствии с требованиями выбран коммуникационный процессор компании VIPA 342-1CA70 работающий в режиме мастера и использующий для обмена данными с контроллером внутреннюю сверхбыструю шину SPEED-Bus (рисунок 1.12).
Рисунок 1.12 – Коммуникационный процессор VIPA 342-1CA70
Технические характеристики модуля приведены в таблице 1.9.
№ | Наименование параметра | Значение |
---|---|---|
1 | Тип | CP 342S CAN, CANopen |
2 | Режим работы | Мастер |
3 | Внутренняя шина | SPEED-bus |
4 | Количество ведомых в сети, штук | 125 |
5 | Передаваемых PDO | 40 |
6 | Принимаемых PDO | 40 |
7 | Серверов SDO | 1 |
8 | Клиентов SDO | 127 |
9 | Напряжение питания, В | 24 |
10 | Потребляемая мощность, Вт | 2,75 |
В соответствии с требованиями к системе отображение процессов протекающих при перемещении рабочего органа робота должно осуществляться в реальном времени при помощи человеко-машинного интерфейса, а доступ к данным контроллера по интерфейсу Ethernet. Устройство отображение ЧМИ должно иметь физическое разрешение экрана не менее 17”, и разрешение изображения не менее 1024 x 768 пикселей.
Выдвинутым требованиям удовлетворяет промышленный компьютер компании ESA XS717 (рисунок 1.13) имеющий физическое разрешение экрана 17” и разрешение изображения 1280 x 1024 пикселя. В качестве источника питания для панели выбран блок питания SPD 241201 с выходным напряжением 24 В и максимальной нагрузочной способностью 5 А.
Рисунок 1.13 – Промышленный компьютер ESA XS717
Технические характеристики промышленного компьютера приведены в таблице 1.10.
№ | Наименование параметра | Значение |
---|---|---|
1 | Экран | TFT, 15” |
2 | Разрешение экрана, пиксель | 1280 x 1024 |
3 | Процессор | Intel Atom Dual Core 1,86 GHz |
4 | Оперативная память, ГБайт | 4 |
5 | Жесткий диск, ГБайт | 250 |
6 | RS-232 | 2 |
7 | USB | 5 |
8 | Ethernet RJ45 | 2 |
9 | Операционная система | Windows XP Professional Service Pack 3 |
10 | Напряжение питания, В | 24 |
11 | Потребляемый мощность, Вт | 95 |
1.3 Разработка функциональной схемы автоматизации
На основании требований к системе автоматизированного управления роботом-манипулятором и выбранного аппаратного обеспечения разработана функциональная схема автоматизации, приведенная на рисунке 1.14.
Рисунок 1.14 – Функциональная схема автоматизации
Настройка параметров работы робота-манипулятора выполняется при помощи человеко-машинного интерфейса UYR (промышленный компьютер ESA XS717).
Настройки от промышленного компьютера передаются контроллеру UY (ПЛК 314-2AG12) при помощи интерфейса Ethernet. Контроллер во время выполнения программы задает абсолютные значения углов для каждого из суставов. Значение углов передаются по полевой шине CAN соответствующим осевым модулям SC (регулятор скорости, осевой модуль Lenze ESC).
Значения углов поступают на все модули синхронно и могут обновляться с гарантированной частотой 1 кГц. Осевые модули анализируют положения суставов и начинают отрабатывать их перемещение, контролируя процесс при помощи датчиков положения GE (первичный преобразователь положения) и датчиков скорости SE (первичный преобразователь скорости).
Преобразование положения и скорости выполняется соответствующими преобразователями GT (промежуточный преобразователь положения для передачи на расстояние) и ST (промежуточный преобразователь скорости для передачи на расстояние). Данные с датчиков передаются от осевых модулей программируемому логическому контроллеру.
1.4 Разработка схемы электрической принципиальной
На основе функциональной схемы автоматизации и выбранного аппаратного обеспечения разработана схема электрическая принципиальная системы управления роботом-манипулятором приведенная на рисунке 1.15.
Рисунок 1.15 – Схема электрическая принципиальная
В системе используются три независимых источника питания для программируемого логического контроллера, промышленного компьютера и сервосистемы ECS. Таким образом, силовые, сигнальные и информационные цепи имеют разные источники питания и развязаны между собой, за счет встроенных в них гальванических развязок.
Связь между программируемым логическим контроллером и промышленным компьютером организована при помощи интерфейса Ethernet, а с сервосистемой ECS при помощи полевой шины CAN. В качестве мастера полевой шины CAN выступает программируемый логический контроллер VIPA 314-2AG12. Внутри сервосистемы ECS связь между осевыми модулями так же организована при помощи шины CAN со своим мастером.
Каждый осевой модуль отвечает за соответствующий сервопривод. Сервопривод представляет собой асинхронный двигатель с электромагнитным тормозом, датчиком перегрева и резольвером. Подключение сервопривода к осевому модулю выполняется при помощи двух кабелей: силового и сигнального.
2 разработка программного обеспечения
В соответствии с требованиями к системе необходимо разработать фрагмент человеко-машинный интерфейса, который должен отображать положения суставов робота-манипулятора. Данные для человеко-машинного интерфейса должны поступать от программируемого логического контроллера посредством интерфейса Ethernet. Адресация данных программируемого логического контроллера приведена в таблице 2.1.
№ | Параметр | Адрес | Тип данных | Диапазон |
---|---|---|---|---|
1 | Уставка угла оси A1 | DB1.DBD0 | Вещественный | -170 ÷ 170° |
2 | Скорость изменения угла оси A1 | DB1.DBD4 | Вещественный | -10 ÷ 10° |
3 | Угол поворота оси A1 | DB1.DBD8 | Вещественный | -170 ÷ 170° |
4 | Уставка угла оси A2 | DB2.DBD0 | Вещественный | -190 ÷ 45° |
5 | Скорость изменения угла оси A2 | DB2.DBD4 | Вещественный | -10 ÷ 10° |
6 | Угол поворота оси A2 | DB2.DBD8 | Вещественный | -190 ÷ 45° |
7 | Уставка угла оси A3 | DB3.DBD0 | Вещественный | -120 ÷ 156° |
8 | Скорость изменения угла оси A3 | DB3.DBD4 | Вещественный | -15 ÷ 15° |
9 | Угол поворота оси A3 | DB3.DBD8 | Вещественный | -120 ÷ 156° |
10 | Уставка угла оси A4 | DB4.DBD0 | Вещественный | -185 ÷ 185° |
11 | Скорость изменения угла оси A4 | DB4.DBD4 | Вещественный | -15 ÷ 15° |
12 | Угол поворота оси A4 | DB4.DBD8 | Вещественный | -185 ÷ 185° |
13 | Уставка угла оси A5 | DB5.DBD0 | Вещественный | -120 ÷ 120° |
14 | Скорость изменения угла оси A5 | DB5.DBD4 | Вещественный | -20 ÷ 20° |
15 | Угол поворота оси A5 | DB5.DBD8 | Вещественный | -120 ÷ 120° |
16 | Уставка угла оси A6 | DB6.DBD0 | Вещественный | -350 ÷ 350° |
17 | Скорость изменения угла оси A6 | DB6.DBD4 | Вещественный | -30 ÷ 30° |
18 | Угол поворота оси A6 | DB6.DBD8 | Вещественный | -350 ÷ 350° |
Разрабатываемая система является автоматизированной системой управления (АСУ). В АСУ стандартом для сбора и визуализации информации при помощи человеко-машинного интерфейса является использование SCADA систем. При выборе SCADA системы ключевыми вопросами является наличие драйверов необходимых для связи с используемым аппаратным обеспечением, наличие сертификации в данной отрасли производства, простота и удобство разработки человеко-машинного интерфейса, возможности расширения функциональности за счет использования скриптов, VBA, VSTA, наличие симуляции аппаратного обеспечения.
В данном случае, основными требованиями, выдвигаемыми к SCADA системе, является наличие драйвера Ethernet для подключения к программируемым логическим контроллерам фирмыVIPA или SIEMENS S7-300 с функцией полноценной симуляции аппаратного обеспечения.
Разрабатываемое программное обеспечение для SCADA системы zenon должно выполнять как функции сбора информации, визуализации и архивирования, так и функции симуляции объекта управления. Структура программного обеспечения приведена на рисунке 2.1.
При разработке программного обеспечения для SCADA системы zenon сначала выполняется конфигурирование драйверов предоставляющих доступ к аппаратному обеспечению. Для доступа к данным программируемого логического контроллера должен использоваться драйвер Ethernet организующий работу SCADA системы с семейством контроллеров VIPA 300. Данным требованиям удовлетворяет драйвер “S7 TCP-IP”, конфигурация которого приведена на рисунке 2.2.
Рисунок 2.1 – Структура программного обеспечения
Рисунок 2.2 – Структура программного обеспечения
В связи с отсутствием физической системы драйвер сконфигурирован таким образом, что бы использовать программную симуляцию объекта управления на основании программного программируемого логического контроллера zenon Logic входящего в состав SCADA системы zenon.
Исходя из требований к системе, данные программируемого логического контроллера должны считываться не реже одного раза в 100 мс, в соответствии с этим задано общее время опроса “Global updatetime in ms” равным 100 мс. Задержка времени соединения доступа к контроллеру “Reconnect delay” задана равной 10000 мс.
В качестве основного IP адреса контроллера “Primary connection” задан адрес “192.168.9.180”, так как в системе не используется резервирование контроллеров резервный адрес “Secondary connection” не указан.
Перед разработкой программы симуляции объекта управления создаются переменные драйвера с соответствующими адресами. После создания переменные становятся доступны программному программируемому логическому контроллеру zenon Logic выполняющему функцию программной симуляции. Заполненная таблица переменных приведена на рисунке 2.3.
Рисунок 2.3 – Таблица переменных
Разработка программы симуляции объекта управления выполняется в два этапа. На первом этапе заполняется таблица сигналов. В таблице для каждого сигнала указывается значение соответствующее временной метке и названию сигнала. Таблица сигналов заполненная, в соответствии с функционированием объекта управления приведена на рисунке 2.4.
Рисунок 2.4 – Таблица символов
Симуляция объекта выполняется в следующем порядке. В начальный момент времени сустав A2 повернут на -90°, сустав A3 повернут на 90°, остальные суставы находятся в начальном положении 0° (рисунок 2.5).
Рисунок 2.5 – Допустимые углы поворота суставов робота-манипулятора
Через 5 секунд начинается симуляция работы сустава A1, в результате которой робот поворачивается вокруг своей в положение 170°, после чего делается пауза и он начинает поворачиваться в положение -170°, после чего так же делается пауза и робот возвращается в исходное положение.
Далее выполняется симуляция работы сустава A2, параллельно с поворотом сустава в положение 45°, выполняется поворот сустава A3 в положение 0°, что связано с ограничениями накладываемыми конструкцией робота.
По завершению симуляции работы сустава A6, робот находиться в исходном состоянии, цикл симуляции может быть запущен заново незаметно для SCADA системы.
На втором этапе разработки программного zenon Logic, выполняется непосредственная разработка программы симуляции объекта управления на языке программирования функциональных блоков FBD. Программа выполняет воспроизведение сигналов при помощи специфического для zenon Logic функционального блока SigPlay.
Рисунок 2.6 – Фрагмент программы на языке функциональных блоков FBD реализующий воспроизведение сигналов
Проверка правильности функционирования и соответствия выдвинутым требованиям разработанного программного обеспечения программного программируемого логического контроллера zenon Logic выполняется при помощи программного осциллографа “Soft Scope”. Окно осциллографа с диаграммами соответствующими функционированию объекта управления приведено на рисунке 2.7.
Рисунок 2.7 – Окно программного осциллографа
На этом разработка программного обеспечения симуляции объекта управления завершена. Далее выполняется разработка человеко-машинного интерфейса системы.
Исходя из требований и выбранного аппаратного обеспечения, человеко-машинный интерфейс должен разрабатываться под промышленный компьютер с разрешением 1280 x 1024 пикселей и иметь многооконный интерфейс. В SCADA системе zenon данная задача решается с помощью шаблонов позволяющих разделить рабочую область монитора на несколько секторов с каждым, из которых может быть связан свой тип изображения.
Рисунок 2.8 – Основное изображение
В соответствии с требованиями разрабатываемое изображение системы управления должно отображать уставки положения суставов робота, скорость изменения положения, текущее положение суставов, а так же непосредственно сам робот-манипулятор.
Исходя из выдвинутых требований разработано изображение отображающее положение манипулятора, приведенное на рисунке 2.9. Изображение условно разделено на четыре части: области оси A1, область осей A2, A3, A5, область осей A4, A6 и область отображения информации о состоянии робота.
Все проекции робота являются анимированными и отображают текущее положение робота. В области оси A1 проекция поворачивается вокруг своей оси, в области осей A2, A3, A5 сустав A5 поворачивается относительно сустава A3, сустав A3 поворачивается относительно сустава A2, а сустав A2 поворачивается относительно сустава A1.
Рисунок 2.9 – Изображение контроля положения манипулятора
Разработка устройства для отслеживания перемещения руки
Переходим к следующему этапу. Здесь потребуется спроектировать специальное устройство, которое может отслеживать в реальном времени положение в пространстве ладони. Также этот процесс носит название «захват движения». Для осуществления задуманного я решил использовать бесплатформенную инерциальную навигационную систему (БИНС) на основе трёх датчиков: гироскопа, акселлерометра и магнитометра. Связка этих датчиков называется IMU – сенсор (в переводе и есть то самое БИНС).
Сперва я спроектировал печатную плату с необходимым мне функционалом, на которой я разместил эти три датчика. В качестве обрабатывающего контроллера я выбрал (точнее взял что было) микроконтроллер Atmega2560. Сенсоры использовал распространённые и дешёвые на китайском рынке. Это спаренные датчики трёхосные гироскоп и акселерометр MPU6050 и магнитометр HMC5883l.
Алгоритм расчёта положения в пространстве достаточно прост: вначале определяем ориентацию в виде базиса локальной системы координат (ЛСК), которая связана с датчиками, а в конечном итоге с ладонью руки.
Ориентацию определяем относительно начальной системы координат (НСК), что по сути является начальным положением устройства в момент включения питания. Базисы НСК и ЛСК состоят вектор-столбцов её орт:
Они связаны соотношением:
Где
– матрица перехода, она же матрица вращения в пространстве. Базис НСК будем считать единичной матрицей. Следовательно
После, вектор ускорения
, который известен относительно ЛСК, необходимо определить в НСК. Это делается путём умножения вектора-столбца ускорения на базис ЛСК:
Затем полученный вектор ускорения два раза интегрируем по времени и получаем расстояние, т.е. координаты:
Первые попытки реализации этого алгоритма были весьма наивны… Наивность была в том, что я посчитал возможным только по данным гироскопа, используя дискретное интегрирование, получить матрицу поворота вокруг оси. Осью в данном случае можно рассматривать как псевдовектор угловой скорости, компоненты которого (проекции на оси) и есть выходные данные с датчика гироскопа.
А угол в свою очередь получается интегрированием модуля вектора. Первоначальный задор и энтузиазм пропал, когда я увидел чудовищный по величине, так называемый «дрейф нуля», вызванный накапливающейся ошибкой из-за погрешности дискретного интегрирования и собственного шума датчика.
Ещё тогда у меня появились мысли, что по данным акселерометра, который в состоянии покоя показывает вектор, обратный вектору ускорения свободного падения (далее в тексте вектор гравитации), можно делать корректировку матрицы, но и здесь появляется неопределённость, связанная с тем, что корректировка возможно только с точностью до поворота угла вокруг оси Z.
Особо интересующимся поясню. Почему нельзя по акселерометру восстановить матрицу поворота? Точнее недостаточно данных. Как нам известно, вектор гравитации направлен всегда к центру планеты, а, следовательно, перпендикулярен поверхности Земли. Поскольку мы связываем начальную систему координат, например, со столом, так что плоскость XY параллельная поверхности стола, который в свою очередь параллелен (с некоторой условностью) полу, а пол в свою очередь параллелен плоскости основания здания, которая обычно является касательной плоскостью к поверхности Земли. Отсюда делаем вывод, что показания акселерометра в состоянии покоя (или при равномерном движении) говорят нам о положении оси
ЛСК, относительно НСК. На этом полезность этих данных исчерпывается, т.к. вращение вокруг оси
не изменят саму ось
, но изменяет две остальные оси
и
. Следовательно показания акселерометра не изменятся и тогда положение будет не определено.
Тогда необходимо использовать ещё один фактор, по которому возможно будет сделать полноценную корректировку положения. Этим фактором является магнитное поле Земли, которое наряду с гравитацией в отдельной взятой точке планеты не меняются со временем (в краткосрочной перспективе конечно).
Теперь возникает закономерный вопрос – «как это сделать?». После неудачных попыток ответить на это вопрошание самостоятельно я полез в интернет, где нашёл нужную мне информацию. Задача определения ориентации в пространстве по данным трёх измерений (угловая скорость, вектор гравитации и вектор магнитного поля) встаёт также при проектировании любительских летательных аппаратов (например коптеры), поэтому эта задача не раз решалась различными методами.
Один из популярных методов – это так называемый фильтр Маджвика (Sebastian O.H. Madgwick). Прочитав оригинальную статью и не поняв англицкого, я обратился к замечательному переводу (спасибо автору за проделанный труд). Пока углублялся в изучении статьи у меня всё чаще и чаще возникала мысль о том, чтобы всё-таки попробовать написать свой алгоритм фильтра определения положения, учитывая, что к этому моменту мой уровень познаний в этой области заметно повысился. Хотя бы ради интереса «изобрести велосипед»! И я его «изобрёл». Ниже привожу свои рассуждения.
В алгоритме используются показания все трёх датчиков. Напомню, задача алгоритма – вычисление ориентации объекта и компенсация дрейфа нуля гироскопа, учитывая данный пары акселерометра и магнитометра. В качестве математического инструмента, описывающего положение, используется кватернион, т.к. он удобен в плане построения и оптимизация алгоритма и требует меньше математических операций для его расчёта в отличие от матриц. Кватернион вращения в пространстве выглядит следующим образом:
Зная ось вращения, описанное нормированным вектором
, и угол
(откуда они берутся сказано выше) можно рассчитать кватернион:
Тогда, используя только показания гироскопа, на каждой итерации цикла будем рассчитывать текущее значение кватерниона по выражению:
Здесь
– кватернион в данный момент времени. Индекс
G
сверху говорит о том, что это значение относится к измеренному относительно показаний гироскопа, т.е. угловой скорости;
– значение кватерниона в предыдущий момент времени;
–изменение положение за один шаг измерений, можно сказать дискретное изменение положения на угол
– период дискретизации, выраженное кватернионом вращения (*).
Следующий этап вычислений – нахождение матрицы поворота исходя из данных пары датчиков акселерометра и магнитометра. Конкретно, рассматриваем вектор гравитации и вектор индукции магнитного поля Земли, которые, как это было сказано выше, статичны относительно Земли и связанной с ней НСК.
Обозначим через
Через
обозначаем нормированный начальный вектор магнитной индукции:
Также требуется третий вектор
, который связан с этими двумя. Он получается векторным умножением
Теперь формируется матрица
, которая характеризует начальной положение, т.е. НСК, поскольку в начальный момент времени ЛСК совпадает с НСК. Матрица получается из компонентов векторов
Аналогично, но уже на каждой итерации цикла, создаётся подобная матрица
, где
– текущий нормированный вектор магнитной индукции,
– текущий нормированный вектор гравитации,
. Эта матрица характеризует положение ЛСК, т.к. эти вектора известны в системе координат датчиков, которая совпадает с ЛСК. Тогда, зная обе матрицы, можно записать такое уравнение:
Оно связывает две матрицы, найденные при разных обстоятельствах. Учитывая выражение
и то, что базис
– единичная матрица, получим:
Отсюда выразим матрицу перехода
Первый множитель, как можно понять, рассчитывается только один раз в самом начале алгоритма, и не требует пересчёта в процессе работы. Второй множитель формируется довольно таки легко и не принуждённо на каждой итерации цикла.
После, когда найдена матрица перехода, преобразуем её в кватернион
В результате получаем кватернион, в котором находится актуальная информация о положении в пространстве устройства с модулем БИНС.
«Велосипед» поехал… Алгоритм работал, но в некоторых положениях вёл себя несколько не адекватно, что в принципе не мешало, но и не давало повода думать о нём положительно. Свой спортивный интерес я удовлетворил, и теперь можно обратиться к готовым решениям, более качественным.
Тогда я вновь вернулся к статье Себастьяна Маджвика и решил использовать его алгоритм, благо, что этот замечательный человек опубликовал все исходники на сайте проекта. В архиве были исходный коды на разных языках, в том числе и на языке Matlab.
Этот факт повлиял на моё решение отказать от идеи делать все вычисления на микроконтроллере (тем паче что он 8-ми битный) и писать программу уже на компьютере в среде Matlab. Микроконтроллер используется только для опрашивания датчиков и отсылку данных на ПК (похожая ситуация и с манипулятором).
Хорошо, ориентацию, заданную кватернионом, мы получили. Что дальше по плану? А далее следует нахождение линейных координат объекта по данным акселерометра. Что ж, здесь лучше просто констатировать, что невозможно с нужной точностью по акселерометру определить координаты.
Даже хотя бы находить изменение положения, которое было бы адекватным! Конечно, были попытки решить эту задачу, но в режиме реального времени находить координаты не получалось. Почему? Потому, что двойное дискретное интегрирование зашумленных показаний датчика приводила только к полёту в стратосферу, причём с бешеной скоростью, но никак не к положительному результату. Поэтому обозначенный в начале пункта алгоритм я обрезал до момента нахождения ориентации, и на этом остановился.
Настройка и полетные испытания летающего крыла.
В этой статье я расскажу о своем опыте настройки летающего крыла, а также поделюсь впечатлениями от первого полета.
В своем дневнике http://www.radiocopter.ru/38737/blogs/view_entry/2090/я рассказывал о постройке модели летающего крыла из пенокартона.
Это моя первая модель, которую я построил своими руками. Все оказалось не так сложно, как казалось на первый взгляд.
На летающее крыло установлена следующая электроника:
Пара сервоприводов Hitec 82MG
Приемник FrSky TFR8SB http://www.radiocopter.ru/38737/product/440773.
Система стабилизации F-TEK 31AP Система стабилизации полета F-TEK 31AP и F-TEK OSD Combo
Регулятор Turnigy SuperBrain 80A Turnigy Super Brain 80A Brushless ESC
Мотор Turnigy 3542 1250kv Бесколлекторный двигатель Turnigy D3542/5 1250KV
складной винт 10×8 дюйма
аккумуляторы Turnigy 2200 11.1v 25C Turnigy 2200mAh 3S 25C Lipo Батарея
регулятор напряжения Turnigy 5A (8-26v) SBEC Устройство бортового питания Turnigy 5A (8-26v) SBEC для Lipo
Полетный вес летающего крыла составил 1453 грамма. Многие в комментариях писали, что модель очень тяжелая, но я считаю, для модели в 1,6 метра вес вполне нормальный.
Разместив электронику, удалось добиться нужной развесовки. Центр тяжести находится на расстоянии 262 мм от носа, т.е. соответствует 20%.
Что касается настроек, то в пульте я создал новую модель. Долго мучился с настройками, пока до меня не дошло, что же я делаю не так.
Сначала я выбрал схему летающего крыла – Flying Wing 2AIL, но работать такая схема отказалась наотрез. Хотя подключал согласно приведенной производителем диаграммы.
После длительных мучений, выбрал Wing Type (Normal) – 1 Aileron. Буквально сразу все зашевелилось именно так как и требовалось. Как уже потом выяснилось, причина была в системе стабилизации, она сама микширует сигнал под соответствующий тип самолета.
Система стабилизации была настроена под летающее крыло с помощью четырех переключателей.
В итоге в пульте выбран следующий тип модели.
Тип хвоста выбираем Normal, соответственно к четвертому каналу ничего не подключаем.
Для корректного отклика на стики настраиваем реверсы.
Отклоняем стики и наблюдаем за элеронами.
При настройке смотрим на самолет сзади. Отклоняем стик, управляющий элеронами, влево – элерон на левой плоскости поднимается вверх, соответственно на правой – опускается вниз, и наоборот. Стик элеватора тянем на себя, элероны отклоняются вверх, от себя – вниз.
Когда стики находятся в центре, элероны должны находиться в нейтральном положении, иначе регулируем длину тяг.
Далее проверяем отклик системы стабилизации.
Крутим самолет в пространстве и наблюдаем за отклонением элеронов.
Если они отклоняются в другую сторону, а не так как указано на рисунках, то крутим соответствующий переменный резистор.
Обязательно в системе стабилизации проверяем и записываем нейтральное положение, иначе идеального полета в режиме стабилизации будет добиться сложно.
После тщательных проверок можно ехать на поле и запускать самолет для первого тестового полета.
Видео моего первого полета
Сразу после первого полета стало ясно, что летающее крыло достаточно вяло реагировало в полете на отклонение стиков. На земле стало ясно, что тяги, сделанные из шпажек для еды, не выдерживают нагрузок и сильно гнутся.
Тяги были сделаны из 4 мм угольных трубок. Трубочки внутри полые, поэтому скрепку согнул петелькой и вклеил ее на эпоксидную смолу. После переделки поведение модели в воздухе стало адекватным.
Подводя итоги, хочу сказать, что модель в воздухе ведет себя достаточно предсказуемо. Хотя профиль крыла достаточно специфичный, но на видео отчетливо видно, что модель при сбросе газа имеет способность планировать. На полном газу модель стремительно нарезает воздушное пространство. Силовой установки для этого вполне достаточно.
На самом деле очень непривычно управлять моделью без руля направления, даже после нескольких полетов машинально пытаешься подруливать.
Данная конструкция выдержала несколько жестких падений после неудачных попыток запуска. Были опробованы различные способы запуска, но наиболее оптимальным оказался по типу бумеранга (запускали вдвоем).
Сенсоры
Контроллер полета, это обычный микроконтроллер, который можно запрограммировать, единственное отличие, это спец. датчики. Не все контроллеры имеют одинаковые наборы датчиков, рассмотрим основные чаще встречающиеся наборы:
3-х осевой акселерометр: измеряет линейное ускорение по 3-м осям. Главная функция, это регистрация гравитации, получает информацию куда направлен «спуск». Это важно для обеспечения стабильности беспилотника. Установка производится на контроллер полета (линейные оси должны совпасть с осями дрона)
Гироскоп: помогает измерить скорость изменения углов по 3м осям (измеряются в градус/сек). Чтобы получить необходимый для дрейфа угол, вам нужно сделать итерацию. Устанавливают его учитывая совпадения осей вращения с осями беспилотника.
IMU/Инерционный измерительный блок — плата, включающая в себя акселерометр и гироскоп (традиционно многоосевые). У многих 3-х осевой акселерометр и гироскоп, у других могут быть доп. сенсоры, такие как, магнитометр и пр.
Электронный магнитный компас – предназначен для определения магнитного поля земли, полученная информация направляет компас беспилотника (относительно северного плюча). Данный датчик есть практически всегда (если есть GPS вход)
Барометр: в зависимости от того, насколько ваш дрон удаляется от уровня моря, исменяется давление, поэтому данный сенсор выдает четкие показания на какой высоте находится ваш беспилотник. Для точного расчета высоты, многие контроллеры используют информацию от барометра и GPS системы одновременно. Устанавливая барометр, накройте его, так отрицательное влияние ветра, уменьшится.
GPS: нужен, чтобы вычислить местоположения (использует сигналы спутников Земли). GPS может быть встроен или подключен к контроллеру полета. Соответственно, чем больше спутников сможет использовать ваш GPS, тем точнее будут данные.
Датчики расстояния: используют, как дополнительный датчик потому, что GPS и датчик давления, не смогут дать вам информацию, как далеко ваш дрон находится от земли (помогает при облете препятствий). Крепится внизу рамы и для определения расстояния использует ультразвуковую/лазерную/лидарную технологии. Данный датчик практически никогда не входит в комплект контролера (приобретается отдельно)