2D реализация инверсной кинематики

Я пытаюсь реализовать Инверсную кинематику на 2D руке (составленный из трех палок с соединениями). Я могу повернуть самую низкую руку к желаемой позиции. Теперь, у меня есть некоторые вопросы:

  1. Как я могу заставить плечо переместить alongwith третье, таким образом, конечная точка руки достигает желаемой точки. Сделайте я должен использовать матрицы вращения для обоих и если да может кто-то давать мне некоторый пример или справку и там какой-либо другой possibl; e способ сделать это без матриц вращения???

  2. Самая низкая рука только перемещается в одно направление. Я попробовал Google это, они говорят, что векторное произведение двух векторов дает направление для руки, но это для 3D. Я использую 2D и векторное произведение двух 2D векторов, дают скаляр. Так, как я могу определить его направление???

Парни любая справка ценились бы....

Заранее спасибо Vikram

9
задан Nietzche-jou 13 April 2010 в 12:27
поделиться

3 ответа

Я попробую, но поскольку моя робототехника ушла два десятилетия назад, отнеситесь к этому с недоверием.

Как я узнал, каждый сустав описывался собственной матрицей вращения, определенной относительно его текущего положения и ориентации. Затем вычислялась координата конечной точки всего плеча путем объединения матриц вращения вместе.

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

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

С помощью этой матрицы преобразования вы можете решить обратную кинематическую проблему: поскольку элементы матрицы преобразования будут зависеть от углов суставов, вы можете рассматривать весь расчет «конечная точка = начальная точка x преобразование» как систему уравнений, и зная начальную и конечную точки, вы можете решить эту систему, чтобы определить неизвестные углы. Сложность здесь заключается в том, что уравнение может быть неразрешимым или существует несколько решений.

Я не совсем понимаю ваш второй вопрос - что вы ищете?

7
ответ дан 4 December 2019 в 11:04
поделиться

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

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

Как вы, возможно, уже знаете, однородные матрицы преобразования очень полезны для таких преобразований. Это матрицы 4x4, которые инкапсулируют вращение и перемещение. Еще одно очень полезное свойство этих матриц заключается в том, что если у вас есть две системы координат, связанные и определяемые некоторым вращением и перемещением, если вы умножаете две матрицы вместе, вам просто нужно умножить цель преобразования на произведение этого умножения.

Таким образом, таблица DH поможет вам построить эту матрицу.

Обратная кинематика немного сложнее и зависит от вашего приложения. Сложность возникает из-за наличия нескольких решений одной и той же проблемы. Чем больше количество степеней свободы, тем больше решений.

Подумайте о своей руке. Ущипните что-нибудь твердое вокруг себя.Вы можете переместить руку в несколько мест в пространстве, сохраняя при этом вектор сжатия неизменным. Решение обратной кинематической задачи также включает решение, какое решение выбрать.

3
ответ дан 4 December 2019 в 11:04
поделиться

В робототехнике мы чаще всего используем параметры DH для прямой и обратной кинематики. В Википедии есть хорошее введение.

3
ответ дан 4 December 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: