Применение нескольких преобразований
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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!