Найти в Дзене
Николай Зубий

РЕШЕНИЕ ЗАДАЧИ КИНЕМАТИКИ ПРИ УПРАВЛЕНИИ МНОГОЗВЕННЫМИ МАНИПУЛЯТОРАМИ РОБОТОТЕХНИЧЕСКОГО КОМПЛЕКСА С ПОМОЩЬЮ НЕЙРОННОЙ СЕТИ

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

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

Входные данные. Рассмотрим трехзвенный манипулятор с параметрами, приведенными в таблице 1.

Для построения компьютерной модели манипулятора воспользуемся пакетом Matlab с помощью свободно распространяемого Toolbox RBT. На входные данные нейронной сети подается положение и ориентация конечного узла манипулятора. Зная параметры манипулятора, можем смоделировать входные данные для нейронной сети с помощью решения прямой задачи кинематики. Получим набор данных, связывающих значение обобщенных координат и положения рабочего инструмента. Внешний вид рабочей области – набора обучающих данных для нейронной сети приведен на рис.1. Задача нейронной сети спрогнозировать конфигурацию соединения узлов манипулятора, которые максимально будут соответствовать заданному положению и ориентации в пространстве. Решая прямую задачу кинематики, были получены для каждого угла сервопривода координаты конечной точки манипулятора

Рисунок 1 – Рабочая область манипулятора – набор обучающих данных
Рисунок 1 – Рабочая область манипулятора – набор обучающих данных

Всего был получен набор для обучения из 3000 данных.

Нейронная сеть. Для создания нейронной сети будет использоваться библиотека Tensorflow для Python. В начале набор разбивается на тренировочные и тестовые данные.

X_train, X_test, y_train, y_test = train_test_split(data_x, data_y, test_size=0.2, random_state=42)

Новая сеть обучается «с нуля» в течение пятиста эпох и затем оценивается получившийся результат на тестовых данных. Ниже приведен фрагмент программы.

def base_model():

model = Sequential() model.add(Dense(32,input_dim=6,activation='relu'))
model.add(Dense(64,activation='relu'))
model.add(Dense(128,activation='relu'))
model.add(Dense(32,activation='relu')) model.add(Dense(3, init='normal'))
model.compile(loss='mean_absolute_error', optimizer = 'adam', metrics=
['accuracy']) model.summary()

return model

clf = KerasRegressor(build_fn=base_model, epochs=500, batch_size=20,verbose=2) clf.fit(X_train,y_train)

После обучения сети ее можно использовать для прогнозирования.

res = clf.predict(X_test)

Точность: 99%

Результат обучения. На Рисунке 2 линией отмечено движение робота, рассчитанное при помощи решения обратной задачи кинематики. Точками отмечены положения робота, построенное с помощью нейронной сети. Как видно траектории частично совпали. Возможно, для улучшения результата потребуется увеличить набор данных и добавить в нейронную сеть несколько дополнительных слоев.

Рисунок 2 – Результат прогнозирования
Рисунок 2 – Результат прогнозирования

Заключение. В ходе выполнения работы была решена обратная задача кинематики с помощью\нейросетевого подхода. Задача была решена для трехзвенного манипулятора. С увеличением числа звеньев, задача резко усложняется из-за возможности возникновения множества решений. С этой целью, в дальнейшем нейронная сеть будет усовершенствована. Входные данные для обучения нейронной сети можно решать несколькими способами. Как с использованием подхода «Programming by demonstration», так и с помощью решения прямой задачи кинематики. В настоящей работе решение прямой задачи кинематики реализовывалось с помощью пакета Matlab и компьютерной модели манипулятора, построенной на основе подхода Денавита – Хартенберга.