Московский Государственный Технический Университет им. Н.Э.Баумана Кафедра РК-10 Отчёт по преддипломной практике «Разработка системы управления РТК для обработке сложных поверхностей» Выполнил студент группы РК10-101: Максимов Е.М. Руководитель проекта: Москва 2007 Солнцев В.И. Содержание: 1. 2. 3. 4. 5. 6. 7. 8. Введение…………………………………………………….. Определения………………………………………………… Описание разрабатываемого программного комплекса….. Расчёт траекторий движения инструмента………………... Моделирование процесса резания………………………….. Моделирование работы манипулятора. Симулятор ARPS.. Содержание дипломной работы……………………………. Список использованной литературы………………………. Приложение: - Слайды работы симулятора манипулятора…………………. 1. Введение Робототехнический комплекс, имеющийся на кафедре состоит из следующих структурных блоков: 1. Промышленный манипулятор PM – 01 2. Устройство управления «СФЕРА – 36» 3. Блок пневмоэлектроавтоматов. Манипулятор PM-01 (PUMA -560) был разработан первоначально как программируемый универсальный манипулятор для выполнения операций сборки. Он является антропоморфным, имеет шесть степеней подвижности. Шесть звеньев и основание манипулятора образуют шесть пар звеньев пятого класса. Вращение звеньев осуществляется вокруг осей, проходящих через центры суставов. В состав звеньев входят следящие электроприводы постоянного тока и зубчатые передачи. Передачи четвертого, пятого и шестого звеньев имеют гибкие муфты. В передачах применены косозубые шестерни. Серводвигатели приводов оснащены электромагнитными тормозами, которые включаются при выключении питания двигателей, обеспечивая фиксацию манипулятора. Звенья манипулятора могут перемешаться в строго определенном диапазоне: первое звено от -160 до +160 град, второе звено от -225 до +45 град, третье звено от -45 до +225 град, четвертое звено от -ПО до +170 град, пятое звено от -100 до +100 град, шестое звено от -266 до +266 град. Максимальная грузоподъемность манипулятора 2,5 кг при общей его массе 53 кг. Статическое усилие в рабочей точке инструмента достигает 60 Н. Манипулятор, работая с данной системой управления, обеспечивает точность позиционирования +/- 0,1 мм, которая является средней для данного типа роботов. Она достигается в основном за счет высокой точности механического исполнения манипулятора, равной 0,00254 мм, и высокой разрешавшей способности СУ. Рабочее пространство PM-01 - сферическое с радиусом 0,92 м. В его пределах обеспечивается скорость перемещения охвата с максимальным грузом по свободной траектории до I м/с, а по прямолинейной траектории до 0,5 м/с. Схват манипулятора имеет пневматический привод с управлением от магнитного клапана. Для манипулятора можно ввести несколько систем координат, все они являются правыми прямоугольными. Базовая система координат находится на основании (колонне). Система координат инструмента связана с фланцем манипулятора. В этой системе координат все перемещения определяются относительно рабочего органа. С каждым звеном связана собственная система координат. С их помощью определяют взаимные перемещения звеньев. Для выполнения технологических функций, таких, как снятие облоя, сборка и других, создан набор инструментов, размещаемый в специальном магазине. Инструмент автоматически крепится на фланец манипулятора через специальное устройство - систему автоматической смены оснастки. Блок пневмоэлектроавтоматов (БПЭА) - многофункциональное устройство, обеспечивающее электропитанием и воздухом манипулятор и технологическое оборудование. Блок совместно с устройством управления робота осуществляет управление различными устройствами РТК, задает режимы работы робота и отображает его текущее состояние на панели управления. Функциями блока являются регистрация количества обработанных деталей, а также, при необходимости, аварийное отключение комплекса. БПЭА имеет сорок шесть информационных каналов связи с технологическим оборудованием. Обмен информацией осуществляется установкой в каналах напряжения высокого или низкого уровня. Через каналы осуществляется управление транспортером, двигателями и фиксацией поворотного стола, управление подачей воздуха, перемещением паллет и т.п. БПЭА также включает в себя двадцать восемь пневматических каналов управления исполнительными механизмами. Например, для открывания и закрывания охвата, фиксации деталей и инструментов, перемещения паллет. Тридцать два входных и тридцать два выходных канала связи системы управления с роботом обеспечивают своевременное получение информации не только от технологического оборудования, но и от манипулятора (например, код инструмента на фланце), магазина инструмента и других устройств. Управление основными пневмоэлектроклапанами блока может осуществляться в ручном режиме. Для этого имеется специальная панель, расположенная внутри блока. Данный режим применяется для проверки работы и регулировки клапанов. Система автоматической смены оснастки. Система автоматической смены оснастки (САСО) используется для автоматической смены роботом в программном режиме большого количества инструментов. Стыковка инструмента с фланцем запястья манипулятора осуществляется через специальную вилку на фланце и гнездо на каждом инструменте. Каждый инструмент расположен в отдельной ячейке магазина и закодирован. Из своего гнезда инструмент может быть взят роботом и туда же помещен. В САСО имеются: захват, резьбонарезная головка, две пневмо-машинки, напильник, электродвигатель и фигурный захват. Кроме того, метчики расположены в специальном магазине и закреплены в переходники для стыковки с резьбонарезной головкой. Это позволяет роботу автоматически, не меняя инструмента, устанавливать на него четыре вида метчиков и контролировать их состояние через датчики, расположенные на дне магазина метчиков. Одна из вилок, аналогичная установленной на манипуляторе, закреплена на верхней поверхности поворотного стола. Это позволяет устанавливать инструмент на стол и управлять им, выполняя при этом манипулятором другие операции. Так как режущий инструмент закрепляется на последнем звене манипулятора, то им можно отрабатывать сложные кривые в трёх измерениях, с изменением наклона инструмента. Это позволяет производить обработку резаньем деталей сложной формы, со сложными поверхностями, при наличии соответствующего программного обеспечения. Целью этой курсовой работы было создание некоторых компонентов такого ПО. 2. Определения Сложная поверхность. Сложной поверхностью в данной работе называется открытая трёхмерная поверхность части детали, заданная численно, аппроксимированная массивом соединённых треугольников. Граница поверхности должна быть единственной замкнутой линией. Выпуклая поверхность. Пусть задана сложная поверхность. Ограничим часть пространства этой поверхностью, плоскостью XY и цилиндрической поверхностью, направляющей которой будет граница заданной поверхности, а образующей – прямая параллельная оси Z. В данной работе детально рассматривается обработка только тех поверхностей, которые описанным выше способом образуют выпуклое тело. Далее такие поверхности называются просто выпуклыми. Траектория инструмента. Траекторией инструмента здесь называется упорядоченный массив точек в рабочей зоне манипулятора, а так же соответствующих углов наклона инструмента. В процессе обработки опорная точка инструмента проходит по всем заданным точкам траектории. Финишная траектория. Финишная траектория – траектория последнего прохода инструмента при обработке заданной поверхности. Именно правильный расчёт финишной траектории влияет на качество полученной поверхности. Траектории всех предыдущих проходов инструмента, необходимые для соблюдения режима резания, зависят только от формы заготовки и от финишной траектории. В данной работе все необходимые траектории вычисляются после расчёта финишной траектории и на её основе. Опорная поверхность. Любая правильная финишная траектория, приводящая к образованию заданной поверхности принадлежит т. н. опорной поверхности. Вид опорной поверхности зависит от заданной поверхности и от выбранной фрезы. Расчёт опорной поверхности это первый этап построения траекторий. 3. Описание разрабатываемого программного комплекса. В конечном итоге целью этой курсовой работы и последующего дипломного проектирования будет специализированный CAM-комплекс, исходными данными для которого будет трёхмерная модель требуемой детали, а результатом работы – программа, понятная СУ робота и РТК, которая описывала бы весь тех. процесс обработки этой детали. Структура разрабатываемого комплекса изображена на Рис. 1. данные о материале и доступных инструментах 3D модель детали в промышленном формате 3D модель заготовки программа расчёта режима обработки система расчёта траекторий инструмента траектория, требуемый диаметр фрезы первичная программа для СУ РТК система моделирования и анализа процесса резанья параметры расчёта траекторий Программа симулятор РТК (проверка вырожденных положений, безопасности выбранных траекторий, оценка скорости тех. процесса) пользователь скорректированная программа для РТК СУ РТК Рис. 1. Структура программного комплекса. Комплекс будет работать в диалоговом режиме. Взаимодействие пользователя с комплексом предполагается примерно таким: Пользователь загружает в программу расчёта модель требуемой детали и выбирает поверхности подлежащие обработке. Программа рассчитывает максимальный диаметр фрезы, которой можно обработать поверхность, выбирает подходящую из заданного набора, и рассчитывает траекторию движения инструмента. Затем программа моделирует процесс резанья по заданной модели заготовки, определяет предполагаемое качество полученной поверхности. На основании полученных показателей качества, пользователь корректирует режим резанья, параметры траектории, размер диаметр фрезы, и заново запускает расчёт траекторий. Если предполагаемое качество получаемой поверхности удовлетворяет пользователя, то комплекс генерирует текст программы на языке CУ РТК (сейчас это ARPS) Пользователь загружает полученную программу на ARPS в симулятор РТК. Симулятор наглядно демонстрирует работу РТК. Проверяется безопасность всех выбранных траекторий, отсутствие столкновений с оборудованием. При необходимости пользователь вносит коррективы в программу, добавляет необходимые операции по перемещению заготовки с конвейера и по смене оснастки. Далее скорректированную программу можно загрузить в СУ РТК. Теоретически никаких изменений в ней уже не потребуется. В данный момент реализованы в виде пробных версий следующие компоненты комплекса: - библиотека расчёта траекторий движения инструмента - библиотека моделирования процесса резанья - программа-симулятор РТК. Расчёт траекторий движения инструмента Конструкция манипулятора и имеющаяся система управления дают возможность обрабатывать поверхности высокой сложности деталей различной геометрии и формы. Выбор того или иного алгоритма построения траектории зависит в частности от формы используемой фрезы. Пред формированием опорной поверхности следует определить подходящий вариант формообразования исходя из наличия соответствующего оборудования. Рассмотрим следующие варианты формообразования при резанье фрезой (Рис 2.): 1. Нормирование цилиндрической фрезы к обрабатываемой поверхности, для обеспечения формирования касательной плоскости. В этом случае опорной поверхностью является сама заданная поверхность. Для каждой точки финишной траектории вычисляется нормаль к поверхности, на основании которой рассчитываются углы наклона инструмента. 2. Нормирование цилиндрической фрезы к горизонтальной плоскости. Формирование поверхности ребром фрезы. В этом случае необходимо рассчитывать опорную поверхность. Все точки заданной поверхности сдвигаются вдоль проекций своих нормалей на плоскость XY. Величина сдвига равна половине диаметра фрезы. Полученная поверхность и будет опорной. 3. Использование сферической фрезы (или абразивной головки). Ось фрезы всегда вертикальна. Все точки заданной поверхности сдвигаются вдоль своих нормалей на величину равную половине диаметра фрезы. Полученная поверхность и будет опорной. Первые 2 подхода предпочтительны из-за того, что используются цилиндрические фрезы – они всегда доступны, есть в комплекте имеющегося РТК. Первый подход позволяет обрабатывать более широкий ряд поверхностей по сравнению со вторым. Однако при наклоне инструмента выше вероятность столкновения с заготовкой, требуется тщательное моделирование обработки. Так же при использовании первого подхода программы для СУ получаются более чем в два раза больше по сравнению с другими подходами. Однако наибольшую проблему представляет аналитический выбор максимального подходящего диаметра цилиндрической фрезы. При наличие сферических фрез или абразивных головок, лучше использовать третий подход. В этом случае максимальный диаметр фрезы равен удвоенному минимальному радиусу кривизны вогнутых участков заданной поверхности. К тому же теоретическая погрешность инструментальная легко предсказуема. Была создана программная библиотека процедур, автоматизирующих построение опорных поверхностей для всех трёх вариантов обработки. Для выполнения большинства сложных геометрических операций по построению траекторий (интерпретация файлов геометрии, вычисление нормали в заданной точке поверхности, триангуляция массива точек и т. п.) была использована библиотека GNU Triangulated Surfaces Library. Библиотека написана на языке С++. В библиотеке представлены следующие классы: Surface – общий класс представления поверхностей. Все поверхности (как заданная, так и опорная) в программе пользователя представляются экземплярами класса Surface. Trace – класс представления траекторий. Все вычисленные траектории являются экземплярами класса Trace. В качестве примера работы созданной библиотеки рассмотрим построение финишной траектории для заданной поверхности при использовании сферической фрезы. В данный момент в качестве формата файлов для хранения геометрических данных выбран STL (Stereo Lithography). Пусть задана выпуклая поверхность в виде файла stl. 1. Загрузка файла осуществляется функцией Surface::load_gts(string filename); Построение опорной поверхности для сферической фрезы осуществляется функцией Surface Surface::get_distant(double radius). 2. Строится «сетка» для финишной траектории – упорядоченный массив точек X и Y координаты которых будут соответствовать точкам финишной траектории. Сетка строится с помощью функции void Trace::make_rect_pattern(double ox, double oy, double w, double h, double dx, double dy); Для наглядности здесь продемонстрирована сетка намного более разреженная чем в действительности. 3. Рассчитываются координаты Z опорной траектории. Ф-ция void find_z(Surface *s); 4. Финишная траектория готова. Можно сгенерировать программу для ARPS, которая будет её реализовывать. Ф-ция void Trace::write_arps_relative(ostream *out); Текст программы будет примерно следующий: GONEAR BEGIN,40 GO BEGIN MOVE 0.40, 0.00, MOVE 0.40, 0.00, MOVE 0.40, 0.00, MOVE 0.40, 0.00, MOVE 0.40, 0.00, MOVE 0.40, 0.00, ……… 0.31 0.00 0.00 0.00 0.10 0.00 Манипулятор может перемещаться в двух режимах управления: контурный и позиционный. Целесообразно применение контурного режима, в котором инструмент будет перемещаться по прямой пространственной линии. Для формирования требуемой поверхности требуется большое количество точек принадлежащих «задающей» поверхности. Моделирование процесса резания При желании пользователь может промоделировать процесс резанья. В этом случае многократно используется функция Surface::apply_cutter(Surface *cutter). Пользователю необходимо иметь модель заготовки а так же упрощённую модель используемой фрезы (цилиндр или сфера). При моделировании обработки поверхность фрезы многократно вычитается из поверхности заготовки во всех точках рассчитанной траектории. Моделирование работы манипулятора. Симулятор ARPS. После генерации программы обработки на языке ARPS целесообразно смоделировать её работ у перед загрузкой в CУ РТК. Нужно убедиться, что в процессе работы робот не проходит запрещённых положений, не задевает другое оборудование, заготовк у и стены. Так же в программу обычно вручн ую добавляются команды по смене оснастки, включению/выключению отсоса, по выполнению других технологических операций. Полезно убедиться в их правильности отработке программы на РТК. С этой целью была поставлена задача создания симулятора РТК. Структура симулятора. Симулятор осуществляет проверку синтаксиса запускаемой программы и интерпретацию программ. Во время выполнения программы, на экране пользователя изображается трёхмерная модель манипулятора PUMA-560. При выполнении команд перемещения манипулятора, На экране с соблюдением масштаба времени изображаются соответствующие движения манипулятора. Схема симулятора изображена на Рис. 3. Интерпретатор. Интерпретатор был написан как спецификация для генератора парсеров «FLEX». Так как FLEX не может генерировать многопроходные сканнеры, пришлось использовать не стандартный и не совсем элегантный подход для обеспечения инструкций JUMP и CALL – см. далее. После инициализации сканнер переходит в режим терминала. В этом режиме сканнер выполняет отдельные команды, которые получает со стандартного ввода построчно (с клавиатуры). В этом режиме сканнер может выполнять команды движения и назначать переменные. Так же можно загружать и запускать программы. При поступлении команды “LOAD <имя файла>” сканнер разбирает пакетный файла программ (Файл, который содержит несколько программ на языке ARPS. Этот формат используется программой CONNECT для передачи текстов программ и значений координат сохранённых точек робота с персонального компьютера на СФЕРУ и наоборот.) Во время этого прохода сканнер создаёт несколько файлов, каждый из которых содержит текст только одной программы из пакетного файла. Так же выполняется проверка правильности синтаксиса каждой команды и проверка соответствия формату пакетного файла. Далее пользователь может дать команду на исполнение одной из программ из данного пакетного файла c помощью команды “RUN <программа>”. Тогда сканнер открывает недавно созданный им же файл с текстом этой программы и начинает покомандное исполнение программы. При поступлении инструкции “JUMP <метка> “ сканнер сбрасывает файловый указатель и ищет нужную метку с начала файла. Если метка не найдена, сканнер сбрасывается в исходное состояние и останавливается, выдаётся сообщение об ошибке. После нахождения метки сканнер продолжает выполнять команды начиная со строки, на которой была обнаружена метка. При поступлении инструкции “CALL <программа>” сканер заносит в специальный стек подпрограмм идентификатор текущего файла программы и позицию в нем. Если файл с программой не найден, сканнер сбрасывается в исходное состояние и останавливается, выдаётся сообщение об ошибке. Далее сканнер открывает файл с заданной программой и выполняет команды начиная с первой строки. При поступлении команды “RETURN” сканнер извлекает из стека подпрограмм идентификатор и позицию в файле вызывающей программы и продолжает выполнять команды начиная с сохранённой позиции. Глубина вызовов подпрограмм (т. е. размер стека) ограничена только доступным объемом оперативной памяти компьютера. Реальную глубину вызова подпрограмм УУ СФЕРА-36 неизвестна – в документации этого найти не удалось. При достижении сканером конца файла программы, он переходит в режим терминала. Для хранения переменных реализован ассоциативный список переменных, где в качестве ключа используется имя переменной В настоящей реализации все переменные – это значения с плавающей точкой. При необходимости целого аргумента для некоторых команд, дробная часть отбрасывается. В настоящей реализации не предусмотрена проверка диапазона значений переменных в соответствии с ограничениями УУ СФЕРА-36. Команды интерпретатора. В настоящее время в интерпретаторе реализованы следующие команды языка ARPS. 1. LOAD <имя файла>. Загрузка программ из пакетного файла и проверка их синтаксиса. 2. RUN <программа> Запуск загруженной программы. 3. LOCATE <точка> = <точка> Создать точку равную заданной. 4. SHIFT <точка> = <dx> , <dy> , <dz> Добавить к коортинатам точки заданные значения (сдвинуть точку на заданный вектор). 5. JUMP <метка> Безусловный переход на заданную метку. 6. IF [INGROUP] <переменная1> <cmp> [INGROUP] <переменная2> JUMP <метка> Условный переход. cmp – операция сравнения (<, >, <=, >=, <>, =). Если есть ключевое слово INGROUP, значение для сравнения есть маска ативности группы входов, заданной соотв. Переменной. 7. CALL <программа> Вызов подпрограммы. 9. RETURN Возвращение из подпрограммы. 10. GO <точка> Позиционное перемещение манипулятора в заданную точку. 11. GOS <точка> Прямолинейное перемещение манипулятора в заданную точку. 12. GONEAR <точка>, <расстояние> Позиционное перемещение манипулятора на заданное расстояние от точки. 13. GOSNEAR <точка>, <расстояние> Прямолинейное перемещение манипулятора на заданное расстояние от точки. 14. MOVE <dx> , <dy> , <dz> Прямолинейное перемещение манипулятора вдоль заданного вектора. 15. MOVES <dx> , <dy> , <dz> Позиционнное перемещение манипулятора на заданный вектор. 16. SPEED <переменная> Задаёт скорость движения манипулятора. 17. OPEN Открыть схват. 18. CLOSE Закрыть схват. 19. SET <переменная> = … Установить значение переменной. 20. LLIST ВЫВЕСТИ значения координат точек. Хранение координат точек. Для хранения сохранённых точек используется собственный формат файла определения точек не совместимый с форматом, используемым программой CONNECT. Формат файла описания точек следующий. Одна строка описывает одну точку – абсолютную или координатную. Задание абсолютной точки: <имя точки> A <q1> <q2> <q3> <q4> <q5> <q6> Задание координатной точки: <имя точки> С <x> <y> <z> <o> <a> <t> Угловые значения q1-q6, o, a, t – в градусах. Параметры o, a, t – углы Эйлера для ориентации схвата. (Подробнее в [1]) По определению: R=Rz(o)*Ry(a)*Rz(t) (R – матрица ориентации схвата). При необходимости интерпретатор конвертирует абсолютные точки в координатные, с сохранением абсолютных значений. Только команда SHIFT конвертирует абсолютную точку необратимо. Библиотека “Position solutions” Эта библиотека реализует функции для решения прямой и обратной задачи о положения для манипулятора Puma, так же функции для построения траэктории движения манипулятора. Библиотека активно использует промышленную библиотеку BOOST. (конкретно её подмножество boost::numeric::ublas, в которой реализованы типы матрицы и вектора и операции над ними). Прямая задача о положении манипулятора. См. подробнее в [2]. Для манипулятора Puma были составлены системы координат Денавита-Хартенберга. (Рис. 4) Рис. 4 Параметры Денавита-Хартенберга для каждого звена: N звена d мм a мм α◦ 1 0 0 -90 2 431.8 0 0 3 0 20.32 90 4 433.07 0 90 5 0 0 90 6 56.25 0 0 Далее составляются матрицы перехода для каждого звена. ci ci si si si ai ci s c c s s a s i i i i i i i Ai (ai , di , i , qi ) 0 si ci di 0 0 0 1 Тогда алгоритм нахождения матриц положения каждого звена – следующий: T0 Torigin - матрица положения основной системы координат на сцене For i = 1…6 { Ti Ti 1 * Ai } Этот алгоритм осуществляется с помощью типа “matrix” из BOOST и операции перемножения матриц (prod(M1,M2)). Обратная задача о положении манипулятора. Решение обратной задачи о положении манипулятора Puma подробно описано в [2] , стр. 96-100. Там же представлен результат в общем конечном виде. В библиотеке “Position solutions” реализовано такое же решение. Построение траекторий. Контроль значений обобщенных координат и их скоростей. Для построения траектории прямолинейного движения схвата манипулятора был пременён следующий алгоритм линейной интерполяции. На входе: (q1 – q6)0 – текущее положение манипулятора в обобщённых координатах (x, y, z, o, a, t)N – заданное положение схвата в конечной точке траектории DT – «квант времени» - заданная «точность» решения. speed – заданная скорость линейного перемещения. На выходе: N – количество дискретных положений манипулятора на траектории (q1-q6)i , i = 1..N – значения обобщ. Координат для каждого дискретного положения Решение: 1. Находим текущее положение схвата (решаем прямую задачу) (q1..q6 )0 ( x , y , z , o , a , t ) 0 2. Находим вектор полного перемещения схвата: ( x , y , z ) ( x , y , z ) N ( x, y , z ) 0 3. Находим N и вектор малого дискретного перемещения манипулятора N norm( x, y, z ) /(speed * DT ) Округляем N до целого. (dx, dy, dz ) ( x, y, z ) / N for i = 1..N { ( x, y, z )i ( x, y, z )i 1 (dx, dy, dz ) } 4. Нахождение (o, a, t )i (do, da, dt ) (o, a, t ) N (o, a, t )0 / N for i = 1..N { (o, a, t )i (o, a, t )i 1 (do, da, dt ) } 5. Решение обратной задачи о положении для каждого дискретного положения манипулятора на траектории. for i = 1..N { ( x, y, z, o, a, t )i (q1..q6 )i } 6. Для каждого ( q1..q6 )i проверить, соответствуют ли q1-q6 заданным предельным значениям. Конец Так же можно проверить допустимость скоростей обобщённых координат манипулятора. На входе: (q1..q6 )0 ..( q1..q6 ) N - массив дискретных значений обобщённых координат манипулятора На выходе: (vq1..vq6 )1..(vq1..vq6 ) N - массив дискретных значений скоростей обобщенных координат манипулятора. Решение: 1. Нахождение скоростей обобщенных координат манипулятора. for i = 1..N { (vq1..vq6 )i (q1..q6 )i (q1..q6 )i 1 / DT } 2. Для каждого (vq1..vq6 )i проверить, соответствуют ли vq1-vq6 заданным предельным значениям. Конец В текущей реализации, в целях отладки, проверка допустимости значений скоростей не производится. При позиционном перемещении манипулятора алгоритм построения траектории аналогичен, за исключением того, что обратная задача о положении не решается. Решается прямая задача для заданного конечного положения манипулятора. После этого находятся дискретные значения обобщённых координат манипулятора: ( x, y, z, o, a, t ) N (q1..q6 ) N (deltaq1..deltaq6 ) (q1..q6 ) N (q1..q6 )0 N max(deltaq1..deltaq6 ) /( speed * DT * K ) (К – заданный коэффициент, связывающий заданную скорость линейного перемещения и подходящую угловую скорость звеньев манипулятора) Округляем N до целого. (dq1..dq6 ) (deltaq1..deltaq6 ) / N for i = 1..N { (q1..q6 )i (q1..q6 )i 1 (dq1..dq6 ) } Библиотека “Robot” Библиотека “Robot” – это управляющая библиотека, связующее звено всех остальных подсистем симулятора. Библиотека осуществляет связь симулятора с системой отображения “Maverik”. В ней реализованы механизмы отображения дискретных положений манипулятора в реальном времени. Так же библиотека предоставляет удобный программный интерфейс для интерпретатора ( например ф-ции open(), close(), go(…), move(…)). Операции с графической аппаратной частью ПК осуществляются с помощью OpenGL. Библиотека представляет процедуры для навигации по сцене, контролю времени, загрузки файлов описания трёхмерных объектов. Так же присутствуют простые процедуры контроля столкновений объектов, что позволяет проверять не только допустимость положения робота с точьки зрения пределов обобщ. координат, но и с точки зрения его столкновения с объектами сцены ( например со стенами). Сцена для симулятора – это файл, в котором описана геометрия рабочего пространства манипулятора. Содержание дипломной работы. 1.Исследовательская часть. 1.1 Разработка архитектуры СУ РТК 1.1.1 Анализ требований к СУ РТК для обработки сложных поверхностей. Требования к аппаратному обеспечению СУ. Выделение модулбьной структуры СУ. 1.2 Разработка ПО для СУ РТК. 1.2.1 Выбор операционной системы. 1.2.2 Архитектура ПО СУ РТК. Выделене модульной структуры ПО СУ РТК. Разработка процесса составления траекторий. 1.2.3 Разработка системы моделирования работы РТК. Решение прямой и обратной задачи о положении. Контроль пределов по обобщённым координатам и особым точкам 1.2.4 Разработка модуля расчёта траекторий для РТК. Выбор формата файлов для работы с 3d чертежами. 1.3 Разработка подсистемы управления процессом резания. 1.3.1 Разработка мат. модели пневмопривода 1.3.2 Разработка мат. модели взаимодействия фрезы с заготовкой. 1.3.3 Разработка контроллера для управления процессом резания. 1.4 Настройка СУ РТК. 1.4.1 Измерения рабочего пространства РТК. 1.4.2 Создание точной 3d модели рабочей области РТК. 1.4.3 Испытания пневмопривода. Корректировка модели и контроллера 2. Конструкторская часть 2.1 Конструкция двигателя фрезы с обратной связью на фланце манипулятора 2.3 Конструкция дополнительной системы калибровки манипулятора. Исследовательская часть. Целью этого дипломного проектирования, в частности, является разработка программы моделирования работы РТК. Такая программа позволит писать и отлаживать программы по обработке поверхностей удалённо, без непосредственного доступа к РТК. Для корректного функциониравания такой симулятор должен быть снабжён качественной геометрической моделью сцены – области действия манипулятора. В связи с этим необходимо произвести точные измерения размеров и положения всех значимых частей и узлов РТК находящихся в области действия манипулятора. В данный момент калибровка манипулятора выполняется вручную при каждом старте. Необходимо изучить возможные способы автоматической калибровки манипулятора (например по контрастным меткам с помощью оптического датчика). Так же необходима серия экспериментов по изучению точности и качества получаемой поверхности деталей при разной плотности сетки траекторий, различных способах образования опорных поверхностей, различной скорости резания и подачи. Надо выяснить, в каких пределах и как быстро можно изменять скорость движения фланца манипулятора. Для выяснения параметров модели привода фрезы необходимо провести серию испытаний – измерений скорости вращения холостого хода при заданном рабочем давлении (см. далее). Обычно обработку сложных поверхностей проводят на пятистепенных декартовых станках с ЧПУ. Эти станки обладают хорошим быстродействием и высокой точностью. Используемый для обработки манипулятор обладает существенно меньшей точностью. В данном дипломном проекте очень хочется найти и формализовать реальные технологические приимущества при использовании такого манипулятора. Если, конечно, таковые найдутся. Конструкторская часть В процессе резания, при прохождении режущего инструмента по траектории, в широких пределах меняется ширина срезаемого слоя материала. Так же имеет месо неоднородность и анизотропность материала заготовки. Всё это приводит к значительному изменению сил сопротивления резанию в процессе обработки. Для поддержки режима резания необходимо поддерживать заданный крутящий момент, развиваемый двигателем. Момент поддерживается изменением скорости подачи т.е. скорости перемещения фланца манипулятора. Предполагаемая схема управления приведена ниже. N* 10000 1 s u to w* pi /30 Preassure moment 2 Integrator P*Se-Mfric Disipative coef . Bk inertia 1/J PNEUMATIC MOTOR bearing speed 30 PID controler (s+Ti ) K (s-Td ) 0.2 I 1 s x Vx 1 s Transport Delay x milling lenght Integrator 1 PUMA milling depth Vx w Transfer Fcn Tpuma .s+1 1 cos(alpha ) M |V| Product Pp Fx Fxround milling model depth b Vsup w MILLING MODEL w to n 30 /pi x V Vx b n M Scope В качестве двигателя фрезы на РТК используется пластинчатый ротационный пневмодвигатель Двигатель имеет следующие механические характеристики (в общем виде). n0 – паспортная частота вращения об/мин. M0 – крутящий момент N0 – мощность Q0 – расход воздуха Работа двигателя описывается следующим дифференциальным уравнением: J S P M Mc B 2 Где w – угловая скорость вращения двигателя. J – момент инерции ротора двигателя и оснастки. S – объёмный коэффициент P – питающее давление M – момент полезной нагрузки Mc – момент сопротивления (силы трения) B – коэффициент квадратичного трения. Для настройки ситемы управления необходимо определить параметры S,Mc,B,J. Для определения Mc,B и S надо провести серию испытаний – замерить установившуюся угловую скорость ротора без нагрузки для разных значений P. Очевидно, что минимальное количество испытаний с разными P – 3. Для определения скорости вращения ротора двигателя необходимо сконструировать датчик угловой скорости. Предположтельно – на основе оптронной пары. Так же необходимо разработать систему автоматической калибровки манипулятора, возможно, с помощью контрастных меток на поворотном столе РТК. Основная задача при дипломном проектировании – это создание программного обеспечения, единой системы, на входе которой будет компьютерная трёхмерная модель детали, а на выходе – программа для СУ РТК. Генераторы программ ARPS, а так же интерпретатор ARPS вряд ли понадобятся в дальнейшем. Так как система ARPS не удовлетворяет требованиям, предъявляемым к СУ РТК задачей по обработке трёхмерных поверхностей. Погрешность позиционирования манипулятора составляет 0.2 мм. При обработке сложных поверхностей, чтобы качественно использовать возможности манипулятора, необходимо задавать плотную сетку точек траекторий. Причём должна быть задана не только финишная траектория но и несколько предыдущих, в зависимости от формы заготовки. Например если обрабатывать поверхность 200x200 мм. с шагом сетки 0.5 мм по обоим направлениям, то понадобится записать в память СУ «Сфера» 160 000 команд. При резанье с неизменным наклоном инструмента каждая команда занимает 22 байт. При резаньи с переменным наклоном инструмента каждая команда займёт 38 байт. Т. е. программа будет иметь размер 3.4 Мб или 5.9 Мб соответственно. Это многократно превышает обьём оперативной памяти и обьём магнитного диска СУ «Сфера». (64 Кб и 720 Кб соответственно). К сожалению от использования «Сферы» отказаться не удастся. Возможен вариант терминального управления, при этом команды для СУ будут подаваться одна за одной с компьютера по последовательному интерфейсу. Интерпретатор лишь на малую часть воспроизводит систему ARPS ,Но его возможностей достаточно для исполнения программ в рамках лабораторных работ курса «Микропроцессорные системы управления роботами». Во время изучения этого курса проводятся лабораторные работы по написанию реальных программ для управления роботом PUMA-560 с устройством управления «СФЕРА». В связи с тем, что реальный робот, на котром учащиеся могут выполнить свои программы, всего один, симулятор системы «PUMA-СФЕРА» будет полезен. Студенты смонут писать и проверять работоспособность своих программ самостоятельно. Использование в качестве основы интерпретатора системы Flex было ошибкой. В настоящее время его очень сложно отлаживать и дорабатывать. Если потребуется более качественное повторение свойств ARPS, необходимо заново проектировать весь интерпретатор с целью его прямой реализации на языке C++ с использованием библиотек Boost::Regex, Boost::string_algo. Учитывая то, что ARPS – давно устарела, и в реальных приложениях уже не используется, дальнейшая разработка интерпретатора кажется не целесообразной. В использовании средств трёхмерной графики для моделирования движения робота наиболее интересной кажется возможность моделирования и контроля поведения роботах в условиях конкретного рабочего пространства, с чётким планированием безопасных и эффективных траекторий без реальных пусков робота. Библиотека расчёта траекторий для обработки сложных поверхностей должна быть улучшена и расширена. Необходимо разработать методы вычисления максимального пригодного диаметра цилиндрических фрез. Так же планируется ведение расчётов траекторий сложных поверхностей произвольной конфигурации путём разбивки их на выпуклые поверхности в различных направлениях. Список используемой литературы. 1. Промышленный робот РМ-01. Руководство по программированию. А/O “НОКИА” 2. С. Л. Зенкевич, А. С. Ющенко Основы управления манипуляционными роботами. М.: Изд. МГТУ, 2004 3. A. C. Ющенко, А. П. Власов. Робототехнический комплекс на базе манипулятора РМ-01. М.: Изд. МГТУ, 1992 4. Boost programmers manual. http://boost.org 5. John Cook, Toby Howard. Programmer’s guide for GNU Maverik. Universit y of Manchester, 2002 6. GNU GTS Reference http://gts.sourceforge.net/. 7. «Описание языка программирования ARPS», оригинальный текст NOKIA. Финляндия, переведено на русский язык. Приложение. Слайды работы программы построения траекторий и моделирования резания. Слайды работы симулятора манипулятора Puma Робот в положении READY. Манипулятор в одном из рабочих положений. Система координат схвата. Превышение предела 5-й обобщённой координаты Превышение допустимой скорости в 4-м шарнире. Симулятор с загруженной моделью оборудования РТК. Столкновение с элементом сцены.