Рабочая зона робота-манипулятора изображена на рисунке 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/