Прямая кинематика

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Манипулятор робота, который может управляться с помощью прямой кинематики.

Прямая кинематика (прямая кинематическая анимация, англ. forward kinematics, FK) — процесс определения параметров связанных подвижных объектов (например, кинематическая пара или кинематическая цепь) для достижения необходимой позиции, ориентации и расположения этих объектов. Прямая кинематика является типом планирования движения[англ.]. Прямая кинематика активно используется в робототехнике, трёхмерной компьютерной анимации и в разработке компьютерных игр. Алгоритм прямой кинематики противоположен алгоритму инверсной кинематики.

Прямая кинематика применяются к моделям каких-либо персонажей или объектов, которые созданы с использованием скелетной анимации. Суть скелетной анимации состоит в том, что объект состоит из набора твёрдых сегментов (компонентов), соединённых сочленениями (англ. joint). При этом сегменты могут объединяться в кинематические пары, которые в свою очередь объединяются в кинематические цепи. Данные сегменты образуют иерархические цепочки, которые имеют «верхний» и «нижний» уровень. Сегменты (компоненты) верхних уровней называются компонентами-предками (или родительскими сегментами), а компоненты нижних — компонентами-потомками (или дочерними сегментами). Например, если рассмотреть руку человека, то плечевой сустав будет самым верхним уровнем, а кончик пальца — самым нижним, то есть компонентом-потомком к плечевому суставу. Локтевой сустав находится внутри цепочки, он будет иметь как родительские (плечо), так и дочерние (запястье, пальцы) сегменты.

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

Рассмотрим, например, прямую кинематику при движении руки человека. Допустим, человеку, рука которого опущена, необходимо этой рукой взять какой-либо предмет. В таком случае, в соответствии с алгоритмом прямой кинематики, сначала изменяется угол и позиция плечевого сустава. Это изменение меняет позицию всех дочерних элементов руки, которые состоят в иерархической цепочке. То есть, при повороте плечевого сустава все другие суставы руки, такие как локоть, запястье и пальцы, меняют своё положение. Далее поворачивается локтевой сустав, что приводит к изменению положения дочерних сегментов — запястья и пальцев, но не затрагивает родительский сегмент — плечо. Данная процедура проводится до тех пор, пока цель не будет достигнута или пока положение и/или ориентация всех сегментов иерархической цепочки не будет изменена.

Использование

[править | править код]

Прямая кинематика вместе с инверсной кинематикой широко используется в робототехнике, трёхмерной компьютерной анимации и в разработке компьютерных игр. В играх при помощи прямой кинематики анимируются большинство персонажей. Также алгоритм прямой кинематики, наряду с алгоритмом инверсной, очень широко используется в редакторах трёхмерной графики, таких как 3ds Max и Maya.

Англоязычные источники

Русскоязычные источники