Реализация комплексной системы управления промышленным роботом-манипулятором – COPA-DATA

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA Самолеты

Математическое описание кинематики

На этом этапе необходимо рассчитать прямую и обратную кинематику манипулятора. Прямая задача состоит в том, чтобы по известным значениям обобщённых координат (в данном случае углы поворота звеньев) определить положения звеньев относительно некоторой базовой системы координат.

Начнём с расчёта обратной кинематики. Изобразим геометрическую схему манипулятора, из которой будут ясны интересующие нас геометрические соотношения.

Требуемую позицию изображаем радиус-вектором $vec{r}$$vec{r}$$vec{r}$$vec{R}$$vec{v_0}$


Рассмотрим переход фланцевой точки в нужное положение. Оно осуществляется поворотам звеньев

ab

(их я изобразил в виде векторов) в шарнирах

ABC

. Начало базовой системы координат (БСК) поместим в точку шарнира

B

. Ось вращения шарнира

A

направлена вдоль оси

Z

, оси

BC

направлены перпендикулярно

ZКогда всё формальности соблюдены, перейдём к сути. Для решения обратной задачи кинематики я использовал геометрический подход в силу простоты конструкции манипулятора. Из геометрии видно, что вектор $vec{r}$$vec{a}$$vec{b}$$theta$$gamma_1$$gamma_2$А, В и С соответственно.
Рассмотрим треугольник, ограниченный векторами $vec{r}$$vec{a}$$vec{b}$$alpha$$beta$


Запишем теорему косинусов относительно искомых углов:

Выразим углы

$alpha$

Из геометрической схемы видно, что:

Тогда:


Окончательно, переход от линейной координаты к углам поворота звеньев осуществляется формулами:

Теперь, когда переместили фланцевую точку в требуемое положение надо правильно сориентировать рабочий орган. Чтобы это сделать, необходимо знать координаты вектора $vec{v}$${E'}$

Вектор

$vec{x}'$

направлен по звену

b

, вектор

$vec{y}'$

– вдоль оси шарнирного соединения

f1


Для нахождения базиса

$E'$

определим матрицу перехода от БСК (с базисом

$E_0$

) и ЛСК. Эта матрица получается путём комбинации поворотов в шарнирах

ABC

где


Т.к. матрица

$E_0$

является единичной, тогда:

Матрица

$C$

вычисляется путём перемножения

матриц поворота вокруг оси на угол


Зададим функцию, которая вычисляет эту матрицу:

Ось берётся в виде вектора как столбец матрицы, полученной предыдущими поворотам, а углы уже рассчитаны выше.

В итоге получаем:

Пусть вектор рабочего органа в БСК

$vec{v_0}$

. Тогда справедливо равенство:


Отсюда выразим

$vec{v}$

– вектор рабочего органа в базисе

$E'$

, т.е. относительно фланцевой точки:


Теперь, зная вектор РО, можно рассчитать углы поворота ориентирующих осей

f1f2

Чтобы переместить РО в заданную позицию, требуется совершить поворот на углы

$varphi_1$

. Из рисунка видно, что

где

$V=|vec{v}|=sqrt{v_x^2 v_y^2 v_z^2}$

— длина рабочего органа,

$v_x,v_y,v_z$

— координаты вектора

$vec{v}$

Программное обеспечение манипулятора разделено на два уровня, верхний и нижний. Верхний уровень написан в Matlab в виде библиотеки и различными командами-методами, нижний – на микроконтроллере Atmega328. Задача верхнего уровня состоит в том, чтобы сформулировать команды, отсылаемые на микроконтроллер.

Формулировка команды и отправка со стороны верхнего уровня происходит следующим образом: пользователь в командном окне Matlab вызывает функцию из библиотеки (например, функцию простого перемещения в точку), указывает необходимые аргументы (обычно это координаты и ориентация РО).

После по изложенным выше математическим соображения, записанных в библиотеку, вычисляются углы поворота осей и при необходимости скорости вращения. После по простенькому протоколу собираем команду и шлём её на микроконтроллер нижнего уровня по последовательному COM – порту.

Пару слов о написанной библиотеке. В её распоряжении есть следующие функции:

  1. функции создания соединения по последовательному интерфейсу
  2. функции перемещения


Список функций можно конечно расширить, но достаточно было и этого функционала для решения непосредственно той задачи, для которой манипулятор и проектировался.

На видео продемонстрирована работа манипулятора.

1 разработка аппаратного обеспечения

1.1 Разработка функциональной структуры системы

В соответствии с требованиями система управления взаимодействует с объектом управления, поэтому в ней необходимо предусмотреть подсистему управления технологическим оборудованием (рисунок 1.1). Данная подсистема включает в себя устройства сбора информации (датчики положения суставов), эталоны и состояния оборудования (ограничения по изменению положения суставов), систему контроля состояния оборудования, программу управления реализующую перемещение рабочего органа, противоаварийную защиту, блок перевода в ручной режим управления и исполнительные органы (сервоприводы).

Рисунок 1.1 – Робот-манипулятор

Кроме того система должна обеспечивать визуализацию и контроль функционирования робота, поэтому она должна включать подсистему информационного обеспечения работы оператора. Данная подсистема включает в себя регистрацию параметров процессов, человеко-машинный интерфейс и сигнализацию достижения параметрами управления заданных значений.

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

С учетом перечисленных требований функциональная структура системы имеет вид, приведенный на рисунке 1.2. Такая структура системы обеспечивает управление, сбор информации, ее регистрацию, визуализацию, сохранение в базе данных и создание резервных копий. Кроме того обеспечивается контроль, за оборудованием и сигнализация достижения параметрами управления заданных значений.

Рисунок 1.2 – Функциональная структурная схема

1.2 Выбор и обоснование аппаратных средств

Исходя из требований, разрабатываемая автоматизированная система управления роботом-манипулятором KUKA KR AGILUS: KR 6 R700 sixx, должна обеспечивать автоматическое перемещение его рабочего органа за минимальное время по заданным координатам с учетом ограничений накладываемых на рабочую зону.

Таблица 1.1 – Технические характеристики робота
Наименование параметраЗначение
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.

Таблица 1.2 – Требования, предъявляемые к параметрам сервоприводов
ОсьA1A2A3A4A5A6
nN, об/мин285052005350380039503750
nmax, об/мин600065006700590072507500
Mn, Нм2,72,41,61,90,90,4
Mmax, Нм13,317,08,48,83,72,2

Выдвинутым требованиям удовлетворяет сервоприводы производящиеся компанией Lenze и входящие в серию MCS (рисунок 1.5). Статорная обмотка данных электродвигателей создана комбинированием отдельных катушек в одноэлементный полюс. Специально сконструированные полюсы обеспечивают высоких динамических характеристик привода.

Рисунок 1.5 – Сервопривод Lenze MCS

Технические характеристики выбранных сервоприводов приведены в таблице 1.3.

Таблица 1.3 – Технические характеристики сервоприводов
ОсьА1А2А3А4А5А6
ДвигательMCS 09F38MCS 09H60MCS 09D60MCS 09D41MCS 06F41MCS 06C41
nN, об/мин375060006000405040504050
nmax, об/мин700070007000700080008000
M0, Нм4,25,53,33,31,50,8
Mn, Нм3,13,01,82,31,20,6
Mmax, Нм15,020,09,59,54,42,4
Pn, кВт1,21,91,11,00,510,25
In, А2,56,03,82,31,51,3
fn, Гц250400400270270270
Jmot, кг * м2 * 10-41,51,91,11,10,220,14
КПД, %969696969696
m, кг5,26,14,34,32,21,8

Выбранные сервоприводы имеют в своем составе резольверы, при помощи которых определяется абсолютное положение вала двигателя, а так же скорость его вращения. Поэтому выбор дополнительных средств контроля положения и скорости не требуется.

На основании технических характеристик сервоприводов выбраны осевые модули (рисунок 1.6). Их технические характеристики приведены в таблице 1.4.

Рисунок 1.6 – Осевой модуль Lenze ECS

Таблица 1.4 – Технические характеристики сервоприводов
ОсьA1A2A3A4A5A6
ДвигательECS_A008ECS_A016ECS_A008ECS_A004ECS_A004ECS_A004
Ток ускорения, А8,016,08,04,04,04,0
Ном. ток, А4,08,04,02,02,02,0
Ток удержания, А4,08,04,02,02,02,0
Мощность, кВт2,25,52,21,11,11,1
Ток шины, А4,99,84,92,52,52,5
Емкость, мкФ165165165165165165
Напряжение, В0 ÷ 7700 ÷ 7700 ÷ 7700 ÷ 7700 ÷ 7700 ÷ 770
Макс. частота, Гц600600600600600600

В соответствии с общим номинальным током всех осевых модулей 22 А и их общей мощностью 13,2 кВт, в качестве модуля источника питания выбран ECSEE040 с номинальным током в звене постоянного тока 38,5 А и номинальной мощностью 20 кВт (рисунок 1.7).

Рисунок 1.7 – Модуль источника питания Lenze ECSEE040

Технические характеристики модуля источника питания приведены в таблице 1.5.

Таблица 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.6 – Технические характеристики дросселя Lenze ELN3-0075H04
Наименование параметраЗначение
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.7 – Перечень входных и выходных сигналов системы управления
№ п/пНаименование информации (сигналы, данные)Иденти-
фика-
торы
Напр. вх./вых.ФункцияВидИсточник /
Получатель
Форма
представления (разрядность, точность)
Период
вв./выв., мсек
Внеш.Внутр.
1Уставка угла оси A11-1Выход.Управл.Дискрет.ПЛК/ECS_A008 32 бит1
2Скорость изменения угла оси A12-1Вход.КонтрольДискрет.ECS_A008/ПЛК 32 бит1
3Угол поворота оси A13-1Вход.КонтрольДискрет.ECS_A008/ПЛК 32 бит1
4Уставка угла оси A24-1Выход.Управл.Дискрет.ПЛК/ECS_A016 32 бит1
5Скорость изменения угла оси A25-1Вход.КонтрольДискрет.ECS_A016/ПЛК 32 бит1
6Угол поворота оси A26-1Вход.КонтрольДискрет.ECS_A016/ПЛК 32 бит1
7Уставка угла оси A37-1Выход.Управл.Дискрет.ПЛК/ECS_A008 32 бит1
8Скорость изменения угла оси A38-1Вход.КонтрольДискрет.ECS_A008/ПЛК 32 бит1
9Угол поворота оси A39-1Вход.КонтрольДискрет.ECS_A008/ПЛК 32 бит1
10Уставка угла оси A410-1Выход.Управл.Дискрет.ПЛК/ECS_A004 32 бит1
11Скорость изменения угла оси A411-1Вход.КонтрольДискрет.ECS_A004/ПЛК 32 бит1
12Угол поворота оси A412-1Вход.КонтрольДискрет.ECS_A004/ПЛК 32 бит1
13Уставка угла оси A513-1Выход.Управл.Дискрет.ПЛК/ECS_A004 32 бит1
14Скорость изменения угла оси A514-1Вход.КонтрольДискрет.ECS_A004/ПЛК 32 бит1
15Угол поворота оси A515-1Вход.КонтрольДискрет.ECS_A004/ПЛК 32 бит1
16Уставка угла оси A616-1Выход.Управл.Дискрет.ПЛК/ECS_A004 32 бит1
17Скорость изменения угла оси A617-1Вход.КонтрольДискрет.ECS_A004/ПЛК 32 бит1
18Угол поворота оси A618-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.8 – Технические характеристики ПЛК VIPA 314-2AG12
Наименование параметраЗначение
1ТипCPU 314SB/DPM
2Память, кБайт512
3Рабочая память, кБайт256
4Максимальное количество модулей, штук32
5Время выполнения команды над битом, мкс0,01
6Время выполнения команды над байтом, мкс0,01
7Время выполнения команды над словом, мкс0,01
8Время выполнения команды над двойным словом, мкс0,06
9LAN интерфейсЕсть
10PROFIBUS-DP интерфейс, мастерЕсть
11Напряжение питания, В24
12Потребляемая мощность, Вт6

Так как стандартной полевой шиной для управления, как сервоприводами, так и их осевыми модулями является полевая шина CAN, интерфейсы программируемого логического контроллера необходимо расширить при помощи коммуникационного процессора. В соответствии с требованиями выбран коммуникационный процессор компании VIPA 342-1CA70 работающий в режиме мастера и использующий для обмена данными с контроллером внутреннюю сверхбыструю шину SPEED-Bus (рисунок 1.12).

Рисунок 1.12 – Коммуникационный процессор VIPA 342-1CA70

Технические характеристики модуля приведены в таблице 1.9.

Таблица 1.9 – Технические характеристики коммуникационного процессора
Наименование параметраЗначение
1ТипCP 342S CAN, CANopen
2Режим работыМастер
3Внутренняя шинаSPEED-bus
4Количество ведомых в сети, штук125
5Передаваемых PDO40
6Принимаемых PDO40
7Серверов SDO1
8Клиентов SDO127
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.10 – Технические характеристики промышленного компьютера
Наименование параметраЗначение
1ЭкранTFT, 15”
2Разрешение экрана, пиксель1280 x 1024
3ПроцессорIntel Atom Dual Core 1,86 GHz
4Оперативная память, ГБайт4
5Жесткий диск, ГБайт250
6RS-2322
7USB5
8Ethernet RJ452
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.

Таблица 2.1 – Адресация данных программируемого логического контроллера
ПараметрАдресТип данныхДиапазон
1Уставка угла оси A1DB1.DBD0Вещественный-170 ÷ 170°
2Скорость изменения угла оси A1DB1.DBD4Вещественный-10 ÷ 10°
3Угол поворота оси A1DB1.DBD8Вещественный-170 ÷ 170°
4Уставка угла оси A2DB2.DBD0Вещественный-190 ÷ 45°
5Скорость изменения угла оси A2DB2.DBD4Вещественный-10 ÷ 10°
6Угол поворота оси A2DB2.DBD8Вещественный-190 ÷ 45°
7Уставка угла оси A3DB3.DBD0Вещественный-120 ÷ 156°
8Скорость изменения угла оси A3DB3.DBD4Вещественный-15 ÷ 15°
9Угол поворота оси A3DB3.DBD8Вещественный-120 ÷ 156°
10Уставка угла оси A4DB4.DBD0Вещественный-185 ÷ 185°
11Скорость изменения угла оси A4DB4.DBD4Вещественный-15 ÷ 15°
12Угол поворота оси A4DB4.DBD8Вещественный-185 ÷ 185°
13Уставка угла оси A5DB5.DBD0Вещественный-120 ÷ 120°
14Скорость изменения угла оси A5DB5.DBD4Вещественный-20 ÷ 20°
15Угол поворота оси A5DB5.DBD8Вещественный-120 ÷ 120°
16Уставка угла оси A6DB6.DBD0Вещественный-350 ÷ 350°
17Скорость изменения угла оси A6DB6.DBD4Вещественный-30 ÷ 30°
18Угол поворота оси A6DB6.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.


Алгоритм расчёта положения в пространстве достаточно прост: вначале определяем ориентацию в виде базиса локальной системы координат (ЛСК), которая связана с датчиками, а в конечном итоге с ладонью руки.

Ориентацию определяем относительно начальной системы координат (НСК), что по сути является начальным положением устройства в момент включения питания. Базисы НСК и ЛСК состоят вектор-столбцов её орт:

Они связаны соотношением:


Где

$C$

– матрица перехода, она же матрица вращения в пространстве. Базис НСК будем считать единичной матрицей. Следовательно

После, вектор ускорения

$vec{A}$

, который известен относительно ЛСК, необходимо определить в НСК. Это делается путём умножения вектора-столбца ускорения на базис ЛСК:


Затем полученный вектор ускорения два раза интегрируем по времени и получаем расстояние, т.е. координаты:

Первые попытки реализации этого алгоритма были весьма наивны… Наивность была в том, что я посчитал возможным только по данным гироскопа, используя дискретное интегрирование, получить матрицу поворота вокруг оси. Осью в данном случае можно рассматривать как псевдовектор угловой скорости, компоненты которого (проекции на оси) и есть выходные данные с датчика гироскопа.

А угол в свою очередь получается интегрированием модуля вектора. Первоначальный задор и энтузиазм пропал, когда я увидел чудовищный по величине, так называемый «дрейф нуля», вызванный накапливающейся ошибкой из-за погрешности дискретного интегрирования и собственного шума датчика.

Ещё тогда у меня появились мысли, что по данным акселерометра, который в состоянии покоя показывает вектор, обратный вектору ускорения свободного падения (далее в тексте вектор гравитации), можно делать корректировку матрицы, но и здесь появляется неопределённость, связанная с тем, что корректировка возможно только с точностью до поворота угла вокруг оси Z.

Особо интересующимся

Особо интересующимся поясню. Почему нельзя по акселерометру восстановить матрицу поворота? Точнее недостаточно данных. Как нам известно, вектор гравитации направлен всегда к центру планеты, а, следовательно, перпендикулярен поверхности Земли. Поскольку мы связываем начальную систему координат, например, со столом, так что плоскость XY параллельная поверхности стола, который в свою очередь параллелен (с некоторой условностью) полу, а пол в свою очередь параллелен плоскости основания здания, которая обычно является касательной плоскостью к поверхности Земли. Отсюда делаем вывод, что показания акселерометра в состоянии покоя (или при равномерном движении) говорят нам о положении оси

$vec{z}'$

ЛСК, относительно НСК. На этом полезность этих данных исчерпывается, т.к. вращение вокруг оси

$vec{z}'$

не изменят саму ось

$vec{z}'$

, но изменяет две остальные оси

$vec{x}'$

и

$vec{y}'$

. Следовательно показания акселерометра не изменятся и тогда положение будет не определено.

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

Теперь возникает закономерный вопрос – «как это сделать?». После неудачных попыток ответить на это вопрошание самостоятельно я полез в интернет, где нашёл нужную мне информацию. Задача определения ориентации в пространстве по данным трёх измерений (угловая скорость, вектор гравитации и вектор магнитного поля) встаёт также при проектировании любительских летательных аппаратов (например коптеры), поэтому эта задача не раз решалась различными методами.

Один из популярных методов – это так называемый фильтр Маджвика (Sebastian O.H. Madgwick). Прочитав оригинальную статью и не поняв англицкого, я обратился к замечательному переводу (спасибо автору за проделанный труд). Пока углублялся в изучении статьи у меня всё чаще и чаще возникала мысль о том, чтобы всё-таки попробовать написать свой алгоритм фильтра определения положения, учитывая, что к этому моменту мой уровень познаний в этой области заметно повысился. Хотя бы ради интереса «изобрести велосипед»! И я его «изобрёл». Ниже привожу свои рассуждения.

В алгоритме используются показания все трёх датчиков. Напомню, задача алгоритма – вычисление ориентации объекта и компенсация дрейфа нуля гироскопа, учитывая данный пары акселерометра и магнитометра. В качестве математического инструмента, описывающего положение, используется кватернион, т.к. он удобен в плане построения и оптимизация алгоритма и требует меньше математических операций для его расчёта в отличие от матриц. Кватернион вращения в пространстве выглядит следующим образом:

Зная ось вращения, описанное нормированным вектором

$vec{v}=left[ v_x v_y v_z right]$

, и угол

$varphi$

(откуда они берутся сказано выше) можно рассчитать кватернион:


Тогда, используя только показания гироскопа, на каждой итерации цикла будем рассчитывать текущее значение кватерниона по выражению:

Здесь

$q_n^G$

– кватернион в данный момент времени. Индекс

G

сверху говорит о том, что это значение относится к измеренному относительно показаний гироскопа, т.е. угловой скорости;

$q_{n-1}$

– значение кватерниона в предыдущий момент времени;

$q_{v,dvarphi}$

–изменение положение за один шаг измерений, можно сказать дискретное изменение положения на угол

$dvarphi$

– период дискретизации, выраженное кватернионом вращения (*).

Следующий этап вычислений – нахождение матрицы поворота исходя из данных пары датчиков акселерометра и магнитометра. Конкретно, рассматриваем вектор гравитации и вектор индукции магнитного поля Земли, которые, как это было сказано выше, статичны относительно Земли и связанной с ней НСК.

Обозначим через $vec{G}$

Через

$vec{H}$

обозначаем нормированный начальный вектор магнитной индукции:

Также требуется третий вектор

$vec{K}$

, который связан с этими двумя. Он получается векторным умножением

$vec{H}$


Теперь формируется матрица

$M_0$

, которая характеризует начальной положение, т.е. НСК, поскольку в начальный момент времени ЛСК совпадает с НСК. Матрица получается из компонентов векторов

$vec{H}$

Аналогично, но уже на каждой итерации цикла, создаётся подобная матрица

$M'=left[ vec{h} vec{g} vec{k} right]$

, где

$vec{h}$

– текущий нормированный вектор магнитной индукции,

$vec{g}$

– текущий нормированный вектор гравитации,

$vec{k} =vec{h}timesvec{g}$

. Эта матрица характеризует положение ЛСК, т.к. эти вектора известны в системе координат датчиков, которая совпадает с ЛСК. Тогда, зная обе матрицы, можно записать такое уравнение:


Оно связывает две матрицы, найденные при разных обстоятельствах. Учитывая выражение

$E'=CE_0$

и то, что базис

$E_0$

– единичная матрица, получим:


Отсюда выразим матрицу перехода

$C$

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

После, когда найдена матрица перехода, преобразуем её в кватернион $q_n^A$$F$

В результате получаем кватернион, в котором находится актуальная информация о положении в пространстве устройства с модулем БИНС.

«Велосипед» поехал… Алгоритм работал, но в некоторых положениях вёл себя несколько не адекватно, что в принципе не мешало, но и не давало повода думать о нём положительно. Свой спортивный интерес я удовлетворил, и теперь можно обратиться к готовым решениям, более качественным.

Тогда я вновь вернулся к статье Себастьяна Маджвика и решил использовать его алгоритм, благо, что этот замечательный человек опубликовал все исходники на сайте проекта. В архиве были исходный коды на разных языках, в том числе и на языке Matlab.

Этот факт повлиял на моё решение отказать от идеи делать все вычисления на микроконтроллере (тем паче что он 8-ми битный) и писать программу уже на компьютере в среде Matlab. Микроконтроллер используется только для опрашивания датчиков и отсылку данных на ПК (похожая ситуация и с манипулятором).

Хорошо, ориентацию, заданную кватернионом, мы получили. Что дальше по плану? А далее следует нахождение линейных координат объекта по данным акселерометра. Что ж, здесь лучше просто констатировать, что невозможно с нужной точностью по акселерометру определить координаты.

Даже хотя бы находить изменение положения, которое было бы адекватным! Конечно, были попытки решить эту задачу, но в режиме реального времени находить координаты не получалось. Почему? Потому, что двойное дискретное интегрирование зашумленных показаний датчика приводила только к полёту в стратосферу, причём с бешеной скоростью, но никак не к положительному результату. Поэтому обозначенный в начале пункта алгоритм я обрезал до момента нахождения ориентации, и на этом остановился.

Настройка и полетные испытания летающего крыла.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA
В этой статье я расскажу о своем опыте настройки летающего крыла, а также поделюсь впечатлениями от первого полета.  

В своем дневнике 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%.

Что касается настроек, то в пульте я создал новую модель. Долго мучился с настройками, пока до меня не дошло, что же я делаю не так.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Сначала я выбрал схему летающего крыла – Flying Wing 2AIL, но работать такая схема отказалась наотрез. Хотя подключал согласно приведенной производителем диаграммы.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

После длительных мучений, выбрал Wing Type (Normal) – 1 Aileron. Буквально сразу все зашевелилось именно так как и требовалось. Как уже потом выяснилось, причина была в системе стабилизации, она сама микширует сигнал под соответствующий тип самолета.

Система стабилизации была настроена под летающее крыло с помощью четырех переключателей.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

В итоге в пульте выбран следующий тип модели.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Тип хвоста выбираем Normal, соответственно к четвертому каналу ничего не подключаем.

Для корректного отклика на стики настраиваем реверсы.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Отклоняем стики и наблюдаем за элеронами.

При настройке смотрим на самолет сзади. Отклоняем стик, управляющий элеронами, влево – элерон на левой плоскости поднимается вверх, соответственно на правой – опускается вниз, и наоборот. Стик элеватора тянем на себя, элероны отклоняются вверх, от себя – вниз.

Когда стики находятся в центре, элероны должны находиться в нейтральном положении, иначе регулируем длину тяг.

Далее проверяем отклик системы стабилизации.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Крутим самолет в пространстве и наблюдаем за отклонением элеронов.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Если они отклоняются в другую сторону, а не так как указано на рисунках, то крутим соответствующий переменный резистор.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Обязательно в системе стабилизации проверяем и записываем нейтральное положение, иначе идеального полета в режиме стабилизации будет добиться сложно.

После тщательных проверок можно ехать на поле и запускать самолет для первого тестового полета.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Видео моего первого полета

Сразу после первого полета стало ясно, что летающее крыло достаточно вяло реагировало в полете на отклонение стиков. На земле стало ясно, что тяги, сделанные из шпажек для еды, не выдерживают нагрузок и сильно гнутся.

Тяги были сделаны из 4 мм угольных трубок. Трубочки внутри полые, поэтому скрепку согнул петелькой и вклеил ее на эпоксидную смолу. После переделки поведение модели в воздухе стало адекватным.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Подводя итоги, хочу сказать, что модель в воздухе ведет себя достаточно предсказуемо. Хотя профиль крыла достаточно специфичный, но на видео отчетливо видно, что модель при сбросе газа имеет способность планировать. На полном газу модель стремительно нарезает воздушное пространство. Силовой установки для этого вполне достаточно.

На самом деле очень непривычно управлять моделью без руля направления, даже после нескольких полетов машинально пытаешься подруливать.

Данная конструкция выдержала несколько жестких падений после неудачных попыток запуска. Были опробованы различные способы запуска, но наиболее оптимальным оказался по типу бумеранга (запускали вдвоем).

Сенсоры

Контроллер полета, это обычный микроконтроллер, который можно запрограммировать, единственное отличие, это спец. датчики. Не все контроллеры имеют одинаковые наборы датчиков, рассмотрим основные чаще встречающиеся наборы:

3-х осевой акселерометр: измеряет линейное ускорение по 3-м осям. Главная функция, это регистрация гравитации, получает информацию куда направлен «спуск». Это важно для обеспечения стабильности беспилотника. Установка производится на контроллер полета (линейные оси должны совпасть с осями дрона)

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Гироскоп: помогает измерить скорость изменения углов по 3м осям (измеряются в градус/сек). Чтобы получить необходимый для дрейфа угол, вам нужно сделать итерацию. Устанавливают его учитывая совпадения осей вращения с осями беспилотника.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

IMU/Инерционный измерительный блок — плата, включающая в себя акселерометр и гироскоп (традиционно многоосевые). У многих 3-х осевой акселерометр и гироскоп, у других могут быть доп. сенсоры, такие как, магнитометр и пр.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Электронный магнитный компас – предназначен для определения магнитного поля земли, полученная информация направляет компас беспилотника (относительно северного плюча). Данный датчик есть практически всегда (если есть GPS вход)

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Барометр: в зависимости от того, насколько ваш дрон удаляется от уровня моря, исменяется давление, поэтому данный сенсор выдает четкие показания на какой высоте находится ваш беспилотник. Для точного расчета высоты, многие контроллеры используют информацию от барометра и GPS системы одновременно. Устанавливая барометр, накройте его, так отрицательное влияние ветра, уменьшится.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

GPS: нужен, чтобы вычислить местоположения (использует сигналы спутников Земли). GPS может быть встроен или подключен к контроллеру полета. Соответственно, чем больше спутников сможет использовать ваш GPS, тем точнее будут данные.

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Датчики расстояния: используют, как дополнительный датчик потому, что GPS и датчик давления, не смогут дать вам информацию, как далеко ваш дрон находится от земли (помогает при облете препятствий). Крепится внизу рамы и для определения расстояния использует ультразвуковую/лазерную/лидарную технологии. Данный датчик практически никогда не входит в комплект контролера (приобретается отдельно)

Реализация комплексной системы управления промышленным роботом-манипулятором - COPA-DATA

Смотрите про коптеры:  Mamibot EXVAC890
Оцените статью
Радиокоптер.ру
Добавить комментарий