Оптимизация управления манипулятором

1 февраля 2019 - Администратор

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

Этот проект посвящен оптимальному управлению манипуляторами Ежегодно увеличивается доля автоматизированных производств, эти производства весьма затратные в плане потребляемой энергии. На них совершается большое количество операций манипуляторами, поэтому актуально разработать алгоритм для оптимального управления манипуляторами. Данный программный комплекс позволит существенно сократить расходы энергии и снизить амортизацию (износ) оборудования. Программный комплекс должен формировать оптимальный (наименее затратный) набор команд для сервоприводов манипулятора для выполнения нужных технологических операций.
Для того, чтобы манипулятор выполнил набор необходимых производственных операций, необходимо задать программу для перемещения каждого плеча, то есть необходимо решить обратную задачу кинематики манипуляторов. Если у манипулятора много степеней свободы, то эта задача будет сложной и иметь бесконечное число решений. из них необходимо выбрать оптимальное решение, которое минимизирует суммарные затраты энергии. В результате даже точное решение обратной задачи приведёт к перебору различных параметров, расчёты сложных формул. Поэтому целесообразным будет не решать обратную задачу кинематики, а использовать метод перебора для решения прямой задачи кинематики манипулятора, чтобы таким образом найти набор решений, с помощью которых манипулятор достигает нужной позиции. Из этого набора, впоследствии, нужно выбрать самое оптимальное решение, для которого суммарные затраты энергии будут минимальными. В этом методе и заключается новизна нашего проекта. Так как современные процессоры имеют большую скорость вычислений, они могут решать быстро решать поставленную задачу. Кроме того, все решения прямой задачи кинематики можно хранить в таблицах, чтобы к ним можно было быстро обратиться.
Описание алгоритма оптимального управления манипулятором:
Мы рассмотрим простейший манипулятор с тремя плечами и тремя степенями свободы. Плечи могут вращаться только в вертикальной плоскости. Даны координаты трёх точек в плоскости (начальная точка и две целевых). Даны длины плеч манипулятора. Даны мощности сервоприводов. Дано начальное положение манипулятора. Находим самое минимально энергозатратное решение для перехода из начальной точки в первую. Затраты энергии одного сервопривода рассчитываются следующим образом: угол поворота сервопривода умножается на мощность сервопривода. Затраты энергии всех сервоприводов суммируются. Методом перебора ищутся такие положения плеч для первой и второй точки и повороты сервоприводов, чтобы суммарные затраты энергии были минимальными.
Описание алгоритма: 
Вводим параметры:
ph1,ph2,ph3-углы относительно горизонтали (как на рисунке).
l1,l2,l3-длины плеч.
x0,y0-координаты начала манипулятора.
x1,y1-координаты цели.
inphi1,inphi2,inphi3-начальные значения углов поворота сервоприводов.
eps-точность достижения цели манипулятором.
Плоскость, в которой находится манипулятор, представляет собой математические координаты. Первое плечо относительно начала манипулятора представляется красным цветом, второе – зелёным, а третье – синим.
 схема манипулятора
(рис. 1 – углы между плечами и горизонталями)
Рассчитываем координаты конца x, y манипулятора.
x=l1*cos⁡〖(ph1)〗+l2*cos⁡〖(ph2)〗+l3*cos⁡〖(ph3)〗
y=l1*sin⁡(ph1)+l2*sin⁡〖(ph2)〗+l3*sin⁡〖(ph3)〗
Проверяем, входит ли расчётная точка в эпсилон-окрестность (окружность, радиусом eps,  а центр окружности – цель) цели.
〖(x-x1)〗^2+〖(y-y1)〗^2<eps
Если мы попадаем в эпсилон-окрестность, то сохраняем данное решение. Перебираем все углы phi1,phi2,phi3 от 0 до 2π. Записываем все решения в таблицу (массив). 
Для каждого решения находим углы между плечами p1,p2,p3 по формулам:
p1=ph1*  180/π
Если p1 ≤180,то
p1=ph1*  180/π
Если p1 >180,то 
p1=180-ph1*180/π
 схема манипулятора
(рис. 2 – углы между плечами)
Эти углы (в градусах) выводятся в таблицу (массив).
Рассчитываются углы поворотов сервоприводов для каждого плеча из начального положения в первую цель (нижний индекс – номер точки):
〖turn1〗_1=〖p1〗_1-inphi1
〖turn2〗_1=〖p2〗_1-inphi2
〖turn3〗_1=〖p3〗_1-inphi3
 схема манипулятора
(рис. 3 – определение углов вращения)
Рассчитывается фитнес-функция, определяющая затраты энергии на осуществление поворотов от начального положения до первой точки:
fit1=|turn1|*k1+|turn2|*k2+|turn3|*k3
Затраты энергии на каждый поворот зависят от величины поворота и мощности мотора.
Рассчитываются углы поворотов сервоприводов для каждого плеча из первой цели во вторую цель (нижний индекс – номер точки):
〖turn1〗_2=〖p1〗_2-〖p1〗_1
〖turn2〗_2=〖p2〗_2-〖p2〗_1
〖turn3〗_2=〖p3〗_2-〖p3〗_1
Рассчитывается фитнес-функция, определяющая затраты энергии на осуществление поворотов от первой точки до второй:
fit2=|turn1|*k1+|turn2|*k2+|turn3|*k3
Результаты фитнес-функции:
fit=fit1+fit2
Данный алгоритм перебирает все решения. Фитнес-функция рассчитывается для всех возможных решений для всех точек. Выбираются решения с минимальной суммарной фитнес-функцией.
Таким образом, в конце работы алгоритма, мы получаем набор углов для вращения сервоприводов для перехода из начального значения в точку 1, а затем перехода из точки 1 в точку 2, причём суммарное энергопотребление этих операций будет минимально.

Программа написана на языке программирования vb.net Интерфейс программы управления манипулятором

интерфейс программы
Перспективы проекта
Усовершенствование алгоритма для оптимальной работы манипулятора в пространстве.
Увеличение количества степеней свободы манипулятора.
Использование генетического алгоритма для поиска оптимального решения.
Передача команд через COMport на реальный манипулятор для управления им.
Список литературы по управлению манипуляторами
Александров П.С. Лекции по аналитической геометрии. М.: Наука, 1968. 2. Алексеев А.А., Имаев Д.Х., Кузьмин Н.Н., Яковлев В.Б. / Теория управления: Учебник. Санкт-Петербург: Изд. СПбГЭТУ–ЛЭТИ, 1999.
Попова и А.С. Ющенко. М.: Мир, 1989. 12. Гавриш А.П., Ямпольский Л.С. Гибкие робототехнические системы: Учеб. Киев: Выща шк., 1989. 13. Галиуллин А.С. Методырешения обратных задач динамики: М.: Наука, 1986. 224 с.
Крутько П.Д. Управление исполнительными системами роботов. – М.: Наука. Гл. ред. физ.-мат. лит., 1991.
Медведев В.С., Лесков А.Г., Ющенко А.С. Системы управления манипуляционных роботов. М.: Наука, 1978. 

Познакомиться с другими проектами  по робототехнике и компьютерному моделированию

Поделиться:

 
Комментарии (0)

Нет комментариев. Ваш будет первым!