Чтобы поддерживать заданную силу воздействия на рабочем инструменте робота, необязательно оснащать его силомоментным датчиком. Можно оценить динамическую модель робота, после чего сверить реальные моменты в сочленениях и теоретические. Этот избыток можно пересчитать в силу и момент на рабочем инструменте. Динамическая модель состоит из трёх компонент: первая зависит от ускорения – инерция, вторая от угла и скорости – различные трения, а третья – только от угла – гравитационная компонента.
Чтобы идентифицировать гравитационную компоненту, робот размещался в различных точках. Т.к. гравитационная компонента – это частная производная потенциальной энергии, то я выразил потенциальную энергию каждого из звеньев. Звенья были идеализированно представлены, как невесомые стержни с прикреплённым точечным весом. При движении звена соответствующий точечный вес движется вместе с ним. За счёт такого допущения я составил явные зависимости потенциальных энергий каждого из звеньев от углов поворота звеньев.
После этого я продифференцировал суммарную потенциальную энергию системы по каждой из обобщённых координат (углов поворота звеньев) и получил зависимость гравитационной компоненты от обобщённых координат.
Робот Kuka Youbot был демонтирован с колёсной базы, после чего был проведён ряд экспериментов с фиксацией манипулятора в произвольных положениях. В каждом из этих положений замерялась сила тока в каждом из сочленений. Она пропорционально связана с моментом в звене. Эксперименты выполнялись с помощью программ, написанных на Python+Ros.
Измеренные зависимости я разложил в виде матричного уравнения и применил метод наименьших квадратов. Сначала часть значений определялась с ошибкой, т. к. у составленной матричной функции число обусловленности приближалось к бесконечности. Это было связано с тем, что часть строк оказалась линейно зависимой (матрица неполного ранга), поэтому пришлось их найти и построить усечённую регрессионную модель.
Для идентификации компоненты трения был проведён ряд экспериментов с каждым из звеньев, кроме первого. Суть экспериментов заключалась в симметричном относительно вертикального положения движении из крайнего положения в крайнее. Получившиеся два участка различались только на гравитационную компоненту, причём взятую с разным знаком. Поэтому я с помощью Matlab достроил недостающие симметричные значения с каждой из сторон и потом попарно сложил их. С помощью аппроксимации были установлены оценки зависимости компоненты трения для каждого задействованного в эксперименте звена.
По составленной оценке гравитационной компоненты я разработал аналог программы управления по моментам роботом Kawasaki, но без использования силомоментного датчика. Реальные токи на каждом звене сверялись с оцененными, после чего их разница преобразовывалось в оценку внешнего воздействия.