Курсовая работа: Проектирование системы управления для роботизированной системы сварки

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рабочая зона робота-манипулятора изображена на рисунке 2.3.

Рисунок 2.3 -- Рабочая зона робота-манипулятора

Рисунок 2.5 - структурная схема манипулятора

Рисунок 2.4 - структурная схема создания роботизированной системы сварки

Роботизированная система сварки включает в себя следующие элементы:

Панель оператора - с помощью нее реализуется настройка комплекса и ручное управление

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

Установка сварочного манипулятра включает в себя устройство передвижения, манипулятор и рабочий орган.

Сам манипулятор робота крепится на неподвижной платформе (НП). Также на платформе будут находиться следующие индикаторы:

Индикатор отображения выполняемой операции (желтый);

Индикатор питания (зеленый);

Индикатор ошибки (красный).

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

Предлагаемый робот должен обладать следующими функциями:

- Серийная сварка геометрически сложных швов

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

Манипуляционный робот промышленного класса - Dobot, созданный китайскими разработчиками. Dobot представляет собой механическую «руку», способную выполнять целый комплекс различных операций. Он имеет модульную конструкцию, что позволяет при необходимости заменить его рабочий орган. На рынке он представлен в различных комплектациях, от чего зависит его стоимость, при этом цены и функционал данных роботов варьируются в значительном диапазоне [5]. Данный робот представлен на рисунке 2.6.

Рисунок 2.6 Манипуляционный робот Dobot

Основные характеристики робота Dobot:

- Максимальный вес, удерживаемый УЗ: 500г.

- Радиус рабочей зоны УЗ: 30см.

- Количество степеней свободы манипулятора: 4.

- Приводы: шаговые двигатели с высокоточным редуктором.

- Используемый материал: алюминий.

- Параметры источника питания: 12В, 5А.

- Стоимость (максимально возможной комплектации): 350 000 рублей.

Выводы: В этой главе была разработана кинематическая и структурная схема создания роботизированной системы сварки и разработан вариант манипуляционного робота.

2.2 Решение прямой и обратной задачи кинематики

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

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

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

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

Кинематический анализ робота-манипулятора предполагает решение двух основополагающих задач: прямой и обратной задач кинематики.

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

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

Прямая задача кинематики

Решим для такого манипулятора прямую задачу кинематики. Для этого построим его схему и для каждого звена определим системы координат.

Проектируемый манипулятор имеет следующие характеристики:

- Углы

, ,

- Длины звеньев, см

, ,

Для построения матриц перехода необходимы следующие параметры:

- - угол сочленения

- - смещение звена

- - длина звена

- - угол скручивания

Формула для вычисления матрицы :

.

По рисунку 6 определим необходимые параметры для перехода к каждой матрице.

Переход к системе координат

1

0

0

2

3

0

0

0

В результате получим следующие матрицы:

,

,

.

,

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

.

Решим обратную задачу для манипулятора.

Задаём длины звеньев, см:

, ,

Задаём координаты положения точки схвата:

, , .

Решение задачи:

Находим проекцию точки P4 на плоскость OXY:

Находим проекцию точки P3 на плоскость OXY:

Смещаем вниз координату z точки P3 на длину L0:

Находим расстояние между началом координат и точкой P3:

Находим угол :

1ое и 2ое звенья и отрезок B образуют треугольник, т.к. мы знаем их длины, то можем определить углы этого треугольника по формулам:

Найдём угол q01:

Найдём угол q0r:

Найдём угол q02:

Найдя углы треугольника можно определить углы поворотов звеньев:

Найдём значения углов в градусах:

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

Выводы: В данной главе были разобраны и решены прямая и обратная задачи кинематики в соответствии с выбранным вариантом.

Раздел 3. Моделирование

В качестве объекта моделирования была построена схема в программном комплексе copellaSim. Был разработан робот манипулятор, включающий в себя следующие компоненты(рис 4.1)

Рисунок 4.1 - Компоненты робота-манипулятора

На рисунке 4.2 представлена модель робота-манипулятора

Рисунок 4.2 -Модель робота-манипулятора

Для работы данного робота-манипулятора был разработан собственный уникальный программный код на языке программирования lua и загружен в виртуальный микроконтроллер.

--lua

sim=require'sim'

function sysCall_init()

h=sim.getObject('.')

dr=sim.addDrawingObject(sim.drawing_lines|sim.drawing_cyclic,2,0,-1,500,{1,0,1})

pt=sim.getObjectPosition(h)

end

function sysCall_sensing()

local l={pt[1],pt[2],pt[3]}

pt=sim.getObjectPosition(h)

l[4]=pt[1]

l[5]=pt[2]

l[6]=pt[3]

sim.addDrawingObjectItem(dr,l)

end

--lua

sim=require'sim'

simIK=require'simIK'

function callback_fk(config,vel,accel,handles)

for i=1,#config,1 do

if sim.isDynamicallyEnabled(handles[i]) then

sim.setJointTargetPosition(handles[i],config[i])

else

sim.setJointPosition(handles[i],config[i])

end

end

end

function callback_ik(config,vel,accel,handle)

sim.setJointPosition(handle,config[1])

simIK.handleGroup(ikEnv,ikGroup,{syncWorlds=true})

end

moveToJointPositions=function(newPos,velF)

if not velF then velF=1 end

local accel=40*math.pi/180

local jerk=20*math.pi/180

local maxVel={velF*175*math.pi/180,velF*175*math.pi/180,velF*175*math.pi/180,velF*250*math.pi/180,velF*250*math.pi/180,velF*360*math.pi/180}

local maxAccel={accel,accel,accel,accel,accel,accel}

local maxJerk={jerk,jerk,jerk,jerk,jerk,jerk}

local currentConfig={}

for i=1,#newPos,1 do

currentConfig[i]=sim.getJointPosition(jointHandles[i],newPos[i])

end

sim.moveToConfig(-1,currentConfig,nil,nil,maxVel,maxAccel,maxJerk,newPos,nil,callback_fk,jointHandles)

end

moveToAuxJointPosition=function(newPos,velF)

if not velF then velF=1 end

local vel=40*math.pi/180

local accel=10*math.pi/180

local jerk=30*math.pi/180

local maxVel={vel*velF}

local maxAccel={accel}

local maxJerk={jerk}

sim.setObjectPosition(simTarget,{0,0,0},simTip)

sim.setObjectOrientation(simTarget,{0,0,0},simTip)

sim.moveToConfig(-1,{sim.getJointPosition(auxJoint)},nil,nil,maxVel,maxAccel,maxJerk,{newPos},nil,callback_ik,auxJoint)

end

function sysCall_thread()

-- Initialization:

simBase=sim.getObject('.')

simTip=sim.getObject('./IkTip')

simTarget=sim.getObject('./IkTarget')

ikEnv=simIK.createEnvironment()

-- Prepare an ik group, using the convenience function 'simIK.addElementFromScene':

ikGroup=simIK.createGroup(ikEnv)

simIK.addElementFromScene(ikEnv,ikGroup,simBase,simTip,simTarget,simIK.constraint_pose)

jointHandles={}

for i=1,6,1 do

jointHandles[i]=sim.getObject('./joint',{index=i-1})

end

auxJoint=sim.getObject('./auxJoint')

-- Main loop:

while true do

moveToJointPositions({90*math.pi/180,-30*math.pi/180,60*math.pi/180,0*math.pi/180,60*math.pi/180,0*math.pi/180})

sim.setObjectPosition(auxJoint,{0,1.5,0},simBase)

sim.setJointPosition(auxJoint,0)

sim.setObjectParent(simTarget,auxJoint,true)

moveToAuxJointPosition(360*math.pi/180)

moveToJointPositions({0*math.pi/180,-30*math.pi/180,60*math.pi/180,0*math.pi/180,60*math.pi/180,0*math.pi/180})

sim.setObjectPosition(auxJoint,{1.5,0,0},simBase)

sim.setJointPosition(auxJoint,0)

sim.setObjectParent(simTarget,auxJoint,true)

moveToAuxJointPosition(360*math.pi/180)

moveToJointPositions({-90*math.pi/180,-30*math.pi/180,60*math.pi/180,0*math.pi/180,60*math.pi/180,0*math.pi/180})

sim.setObjectPosition(auxJoint,{0,-1.5,0},simBase)

sim.setJointPosition(auxJoint,0)

sim.setObjectParent(simTarget,auxJoint,true)

moveToAuxJointPosition(360*math.pi/180)

moveToJointPositions({0*math.pi/180,0*math.pi/180,0*math.pi/180,0*math.pi/180,0*math.pi/180,0*math.pi/180})

end

end

function sysCall_cleanup()

simIK.eraseEnvironment(ikEnv)

end

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

Вывод: В этой главе была построена схема в программном комплексе copellaSim. А также был разработан робот манипулятор.

Заключение

В процессе выполнения курсового проекта был разработан, спроектирован робот-манипулятор, выполняющий комплекс операций, направленных на автоматизацию технологического процесса сварки.

Была разработана структурная схема объекта автоматизации, разработан алгоритм работы программного обеспечения.

Была создана модель робота-манипулятора, создано контроллерное ПО, отвечающее за функциональность.

Список литературы

1. Шахинпур М. Курс робототехники. - Мир. - 1990. - 527с.

2. Свободная библиотека Википедия [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.org/

3. Autodesk [Электронный ресурс]. - Режим доступа: https://www.autodesk.ru/

4. InfoFrezer Принцип системы ЧПУ фрезерных станков [Электронный ресурс]. - Режим доступа: https://infofrezer.ru/

5. Siemens Системы ЧПУ и приводы [Электронный ресурс]. - Режим доступа: http://www.sinumerik.by/

6. Orgprint Обзор технологий 3D печати [Электронный ресурс]. - Режим доступа: http://www.orgprint.com/

7. ЭКСПОЦЕНТР Металлообработка-2018 [Электронный ресурс]. - Режим доступа: http://www.metobr-expo.ru/

8. Занимательная робототехника Курс Arduino для начинающих [Электронный ресурс]. - Режим доступа: http://edurobots.ru/

9. Инженерные решения. Электродвигатели [Электронный ресурс]. - Режим доступа: http://engineering-solutions.ru/

10. Peter Corke Robotics, Vision and Control Fundamental Algorithms in MATLAB: Springer, 2011, 570 с.

11. Масальский Г. Б. Математические основы кибернетики. Методы оптимизации часть 2. Учебное пособие. Красноярск. СФУ, 2014, 136 с.

12. BaseGroup Labs Технологии анализа данных. Нечеткая логика [Электронный ресурс]. - Режим доступа: https://basegroup.ru/community/

13. Представление знаний в интеллектуальных системах [Электронный ресурс]. - Режим доступа: http://nrsu.bstu.ru/

14. Центр стратегических оценок и прогнозов. Нечеткая логика в системах управления системах [Электронный ресурс]. - Режим доступа: http://csef.ru/

Источник: https://otherreferats.allbest.ru/download/1477621/