Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
R50 791374ded59b5b2eb89d4329acc460bd
Изобретатель-программист

Обратная задача кинематики для мобильных роботов

Добавлено 25 сен 2023 в 10:10
У робота есть два способа определения пространства состояний: положение с ориентацией рабочего инструмента и углы поворотов звеньев. Первое называется операционным пространством, второе – конфигурационным.

Переход из конфигурационного пространства однозначен (прямая задача кинематики), а в обратную сторону (обратная задача кинематики) – нет. Из углов поворота звеньев робота мы однозначно можем получить положение и ориентацию рабочего инструмента. Решение обратной задачи достаточно трудоёмко.

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

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

Я ввёл новую параметризацию через кватернионы, выраженные параметрами Родриго-Гамильтона. Полученные зависимости оказались непрерывными относительно конфигурационного пространства.

Это позволило составить функцию ошибки между текущим положением рабочего инструмента и желаемым. При этом функция ошибки в конечном счёте являлась скалярной функцией, зависящей только от углов поворота звеньев. Тогда стандартными методами для каждого робота можно составить функцию такого рода, а потом классическими метода минимизировать значение, т. е. свести ошибку решения к нулю.

Для проверки разработанного алгоритма для робота Kuka Youbot было составлено несколько опорных точек, каждая из которых описывала произвольные достижимые положения рабочего инструмента и ориентацию. По каждой из точек с помощью минимизации были получены соответствующие углы поворота звеньев, после чего с помощью Gazebo и Ros был составлен python-скрипт, который последовательно отправлял виртуальному роботу задания по углам поворота звеньев и сравнивал полученные положение и ориентацию с заданными.

D1449d75e9