Управление роботом ТУР-10 средствами LabVIEW
1. Постановка задачи
- разработка иерархии программных модулей в системе управления
- формирование закона движения манипулятора
- замыкание по положению всех осей подвижности
- решение прямой и обратной задач кинематики
- обеспечение четырех режимов управления манипулятором
2. Описание решения
В настоящее время в нашей стране сохранилось большое количество манипуляционных устройств, имеющих, как правило, исправную механику и электродвигатель, но управляющая часть которых морально и физически устарела. Поэтому мне предложили рассмотреть возможность использования программно-апаратных средств фирмы National Instruments, которые она продвигает на рынок в качестве эффективных средств автоматизации. В качестве объекта автоматизации было рекомендовано взять робот ТУР-10 с целой механической частью, двигателями, датчиками. Управление локальными осями подвижности на уровне регулятора тока и скорости осуществляется специальными контроллерами, разработанными на кафедре САУ.
Передо мной были поставлены следующие задачи:
- разработка иерархии программных модулей в системе управления
- формирование закона движения манипулятора
- замыкание по положению всех осей подвижности
- решение прямой и обратной задач кинематики
- обеспечение четырех режимов управления манипулятором
А именно:
- ручное управление;
- позиционное управление;
- прямое обучение;
- режим обхода опорных точек.
Робот ТУР-10 состоит из вертикальной стойки, двух последовательно соединенных звеньев и схвата.
Имеет 5 степеней подвижности, 2 из которых обеспечиваются механизмом ориентации схвата. В нашей работе мы ограничились рассмотрением трех оставшихся степеней подвижности. Робот работает в ангулярной сферической системе координат.
В связи с этим мы столкнулись с задачей преобразования координат из ангулярной сферической системы, где положение схвата описывается тремя углами, в декартову систему координат и обратно. Эта задача была решена графическим методом.
При выборе оборудования мы остановились на контроллере CompactRIO, т.к. от обладает такими достоинствами, как изначально предполагалось организовать связь с датчиками положения при помощи модулей дискретного ввода и вывода и связь с приводами манипулятора при помощи CAN-модуля. Но нужные модули не были предоставлены, поэтому связь была организована иначе. При помощи модулей дискретного ввода и аналогового ввода и вывода. Таким образом удается управлять только двумя степенями подвижности робота.
Была разработана трехуровневая система управления. Верхний уровень управления манипулятором реализован на базе персонального компьютера. По сети Ethernet он связывается с центральным контроллером, который представляет собой средний уровень управления. Средний уровень, в свою очередь, разделяется на два подуровня: верхний - подуровень контроллера реального времени и нижний -подуровень реконфигурируемого шасси со встроенной программируемой логической интегральной схемой. В шасси вставляются модули ввода/вывода, которые в свою очередь и взаимодействуют с нижним уровнем. А именно, выдают целеуказания на приводы степеней подвижности и принимают информацию с датчиков положения. Все задачи системы управления были распределены между уровнями.
Верхний уровень решает задачи:
- визуализации;
- задание режима работы и управляющих воздействий с клавиатуры;
- обмен данными с ЦК.
Задачи среднего уровня, касающиеся контроллера реального времени:
- обеспечение связи с верхним уровнем;
- решение прямой и обратной задач кинематики;
- формирование алгоритма движения манипулятора;
- проверка попадания заданной точки перемещения в рабочую область манипулятора;
- обработка информации с датчиков положения;
- формирование задания по положению для всех приводов степеней подвижности;
Задачи среднего уровня, выполняющиеся на интегральной схеме реконфигурируемого шасси:
- поочередный выбор опрашиваемых датчиков положения;
- преобразование информации, получаемой с датчиков;
- реализация пропорциональных регуляторов положения осей подвижности.
Задачами нижнего уровня является
- получение целеуказаний со среднего уровня;
- регулирование скоростей приводов;
- обработка информации с датчиков скорости и конечных выключателей.
Программное обеспечение верхнего уровня состоит из двух программных модулей. Первый (host) отвечает за получение целеуказаний с клавиатуры и отображения текущих декартовых координат, скоростей и временных задержек. Второй (robo) служит для передачи текущих координат в приложение RoboWorks, в котором реализована трехмерная модель манипулятора. Обмен данными между уровнями реализуется при помощи библиотеки сетевых переменных.
Модуль host строится на базе структуры конечный автомат. В исходном состоянии инициализации пользователь выбирает режим работы и конечный автомат переходит в состояние, соответствующее этому режиму. При выходе из режима конечный автомат возвращается обратно в инициализацию.
Второй программный модуль взаимодействует с приложением RoboWorks. Взаимодействие происходит в три этапа: установка соединения при помощи утилиты RoboTalk, отправка и прием данных при помощи утилит SetTagValue и GetTagValue и разрыв соединения.
ПО среднего уровня состоит из двух программных модулей. Один из них (target) работает на контроллере реального времени и обменивается данными с верхним уровнем через сетевую библиотеку. Второй расположен на реконфигурируемом шасси и обменивается данными с нижним уровнем посредством модулей ввода-вывода. Между собой модули взаимодействуют при помощи специального механизма FPGA.
Модуль target представляет собой две параллельные структуры: конечный автомат и временной цикл. Временной цикл выполняет отправку и прием данных с верхнего уровня, там же реализована задача прямого преобразования координат. Конечный автомат изначально находится в состоянии инициализации. Если с верхнего уровня поступает сигнал о начале движения, то производится обратное преобразование координат, затем проверка попадания заданной точки в рабочую зону. Если проверка показала, что точка не попадает в рабочую зону, то автомат возвращается в состояние инициализации. В противном случае, производится расчет величины шага по всем осям подвижности и количества итераций. Затем автомат переходит в состояние представленное временным циклом с высоким приоритетом, где каждый период квантования Юме производится расчет текущего задания и отправка данных на уровень шасси. После того, как временной цикл выполнен нужное число раз, производится отправка сигнала на верхний уровень и автомат снова переходит в состояние инициализации.
Второй модуль среднего уровня тоже имеет структуру конечный автомат. Работа с нижним уровнем организована следующим образом. Выбирается первый опрашиваемый датчик. Датчик соединен с устройством сбора данных параллельной шиной, длина которой достигает нескольких метров. Поэтому после выбора датчика необходимо произвести (5мкс). После этого осуществляется опрос датчика и отправка целеуказаний по первой оси. Далее те же действия производятся для второй оси.
После создания программного обеспечения была создана программная модель манипулятора и произведен эксперимент. В результате эксперимента были измерены времена выполнения основных задач реального времени. Эксперимент показал, что контроллер имеет достаточное быстродействие для решаемой задачи. Процедура определения времени выполнения основных задач была запущена на ядре операционной системы реального времени в фоновом режиме. Очевидно, что в этом случае она имела низший приоритет. Следовательно, полученные времена, указанные в таблице, являются наихудшим результатом измерения из всех возможных. Также было замечено, что время выполнения задачи зависит от количества использованных в ней переменных.
В результате проделанной работы были сформулированы рекомендации
- При создании подобного рода систем удобно использовать структуру конечный автомат, т.к. она четко определяет порядок выполнения операций и условия перехода от одной задачи к другой.
- Желательно осуществлять обмен данными между уровнями при помощи сетевых переменных.
- Необходимо синхронизировать доступ к сетевой библиотеке. Это делается при помощи создания временных циклов, ответственных за обмен данными, параллельно основному циклу работы.
- Для улучшения эффективности работы лучше минимизировать количество сетевых переменных.
- и для каждого уровня создать свою библиотеку локальных переменных
- Важно помнить о том, что уровень шасси оперирует только с целыми числами, поэтому необходимо перед отправкой на уровень шасси все переменные приводить к целому типу.
3. Использованное оборудование и ПО
Оборудование:
Персональный компьютер, контроллер CompactRIO, робот ТУР-10
ПО:
RoboWorks, программа для построения 3D модели робота
4. Внедрение и развитие решения
В качестве перспектив развития этой темы можно предложить создание контурного управления манипулятором и реализацию задания и коррекции рабочей зоны.
Список литературы
1. Официальный сайт фирмы National Instruments www.ni.com
2. П.В.Куропаткин Теория автоматического управления. М.: Высшая школа, 1973.
3. Б. Куо Теория и проектирование цифровых систем управления. М.: Машиностроение, 1986.
4. И.А.Фадеев Диссертация на тему «Управление трехкоординатным манипулятором» СПб, 2001.
5. М.Шахинпур Курс робототехники. М.: Мир, 1990.
6. Г.Корн, Т.Корн Справочник по математике для научных работников и инженеров. М.: Наука, 1978.
7. И.Н.Бронштейн, К.А.Семендяев Справочник по математике для инженеров и учащихся ВТУЗов. М.: Наука, 1976.