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

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

Бездатчиковое управление

Добавлено 25 сен 2023 в 10:11
Чтобы поддерживать заданную силу воздействия на рабочем инструменте робота, необязательно оснащать его силомоментным датчиком. Можно оценить динамическую модель робота, после чего сверить реальные моменты в сочленениях и теоретические. Этот избыток можно пересчитать в силу и момент на рабочем инструменте. Динамическая модель состоит из трёх компонент: первая зависит от ускорения - инерция, вторая от угла и скорости – различные трения, а третья – только от угла - гравитационная компонента.

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

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

Робот Kuka Youbot был демонтирован с колёсной базы, после чего был проведён ряд экспериментов с фиксацией манипулятора в произвольных положениях. В каждом из этих положений замерялась сила тока в каждом из сочленений. Она пропорционально связана с моментом в звене. Эксперименты выполнялись с помощью программ, написанных на Python+Ros.

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

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

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

64a4e4cf50