Применение нескольких преобразований



ROBOT CONTROL

1. Матрицы прямой трансформации

https://studywolf.wordpress.com/2013/08/21/robot-control-forward-transformation-matrices/

 

Пусть дана рука робота с 3мя степенями свободы (DOF), у которой 2 вращательных сочленения q 1 и q 2:

Самым очевидным представлением состояния системы является пространство углов сочленений q =[ q 1 , q 2 ], оно замечательно. Но часто интересно управлять положением захвата, а не углами суставов. Хотелось бы оперировать в декартовых координатах кисти ( x , y ), в 2D операционном пространстве (пространстве задач, пространстве целей).

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

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

Матрицы прямого преобразования в 2D

Матрицы прямого преобразования фиксируют взаимосвязь между системами отсчёта (reference frames) различных звеньев робота. Система отсчета – это «смотрящая вперед» точка зрения каждого сочленения руки.

Рассмотрим системы отсчёта вышеупомянутого робота:

Известно, что вдоль оси x до точки захвата p от q 2 длина = d 2; до q 2 от q 1 вдоль оси y длина = d 1, и также вдоль оси y до q 1 от начала координат q 0 длина = d 0.

Вопрос: где находится точка p в глобальной системе координат?

Ответ для конфигурации, показанной выше, = .

 

 

Рассмотрим следующую конфигурацию:

Нужен метод автоматического учёта поворотов и переходов между различными системами координат, чтобы, если известны текущие углы сочленений робота и относительные положения систем координат, можно было бы быстро рассчитать положение захвата в глобальной системе координат.

Учёт поворотов

Итак, давайте посмотрим на вращающиеся оси на картинке:

На ней показаны 2 системы отсчёта с совпадающей начальной точкой, повернутые друг относительно друга на q градусов. Представьте точку , определённую в системе отсчёта 1. Чтобы найти её координаты в системе отсчёта 0, необходимо выяснить проекцию координат x 1 и y 1 на оси x 0 и y 0.

Проекция  и  на ось x 0 рассчитывается:

При чём, cos (90° – q ) = – sin ( q ), т.к. sin и cos сдвинуты по фазе 90° друг от друга.

Полный вклад точки, определенной в координатах ( x 1 , y 1 ), на ось x 0:

Аналогично для проекции  и  на оси y 0 имеем:

Переписав приведенные выше уравнения в матричной форме, получаем:

где  называется матрицей вращения.

Обозначение матриц вращения: верхний индекс – номер системы отсчёта, из которой производится поворот, нижний индекс – номер системы отсчёта, в которую производится поворот (использование таких обозначений описано здесь).

Чтобы найти местоположение точки, определенной в системе отсчёта 1, повёрнутой относительно координат системы отсчёта 0, нужно умножить на матрицу вращения .

Учёт перемещений

Учёт перемещений – это соотнесение расстояний между начальными точками систем координат.

Рассмотрим системы отсчёта 1 и 0 на рисунке выше. Точка p =(2,2) в координатах 1. Система отсчёта 1 повёрнута на 45°, её начало расположено в точке (3,2) в координатах 0.

Добавляем матрицу расстояний D к матрице вращения  вместе со строкой из нулей с 1 на конце, получена новая матрица преобразования :

Чтобы получилось умножение матрицы на вектор, необходимо использовать однородное представление, которое добавляет дополнительную строку с 1 на конце:

Результат умножения вектора положения p на матрицу преобразования , согласно визуальному наблюдению, должен быть равен примерно (3,5), и действительно:

Первые два элемента результирующего вектора  дают координаты в системе отсчёта 0.

Применение нескольких преобразований

Можно также связать всё вместе!

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

Чтобы получить координаты точки захвата в системе отсчёта 0, сначала напишем матрицу преобразования (1,2) координат захватав системе отсчёта 2, начало которой располо­жено в точке (2.5,4) системы отсчёта 1 и под углом 80° к ней:

Теперь напишем матрицу преобразования из системы отсчёта 1 в систему отсчёта 0:

Глядя на рисунок, можно ожидать, что ответ будет где-то рядом с точной (7,0).

Математика даёт точный ответ.

Замечание: если это вычисление выполняется часто, вместо двух умножений сделать однажды одно:

просто умножая координаты в системе отсчёта 2 на матрицу преобразования , вычислять в дальнейшем координаты в системе отсчёта 0.


Дата добавления: 2019-11-16; просмотров: 102; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!