Раздел DH Matrix на странице DH в Википедии содержит подробную информацию.
В основном вы хотите использовать информацию в вашей таблице для создания набора однородных матриц преобразования. Мы делаем это потому, что однородные преобразования можно умножить, чтобы найти связь между фреймами, разделенными одним или несколькими другими. Например, представляет преобразование из кадра 1 в кадр 0, а представляет преобразование из кадра 2 в кадр 1. Умножая их, мы получаем преобразование из кадра 2 в кадр 0, то есть .0T11T20T2=0T11T2
Простой способ создать каждое из преобразований - создать однородную матрицу преобразования или однородного вращения для каждого столбца в таблице и умножить их вместе. Например, преобразование от 1 до 0 (например, )i−1Ti,i=1
0T1=Trans(d1)∗Rot(θ1)∗Trans(a2)∗Rot(α2)
где
Trans(d1)=⎡⎣⎢⎢⎢10000100001000d1=01⎤⎦⎥⎥⎥,
Rot(θ1)=⎡⎣⎢⎢⎢⎢cos(θ1)sin(θ1)00−sin(θ1)cos(θ1)0000100001⎤⎦⎥⎥⎥⎥,
Trans(a2)=⎡⎣⎢⎢⎢100001000010a2=0001⎤⎦⎥⎥⎥,
Rot(α2)=⎡⎣⎢⎢⎢⎢10000cos(α2=0)sin(α2=0)00−sin(α2=0)cos(α2=0)00001⎤⎦⎥⎥⎥⎥ .
В этом случае
0T1=Rot(θ1) .
Когда у вас есть все ваши преобразования, вы умножаете их вместе, например,
0TN=0T1∗1T2...N−1TN .
Наконец, вы можете прочитать вектор смещения из однородного преобразования (то есть ). Точно так же вы можете прочитать матрицу вращения из чтобы найти углы XYZ.0TNd=[0TN,14,0TN,24,0TN,34]T0TN