Як перетворити параметри зв'язку та кути (у кінематиці) в матриці перетворення в логіці програмування?


10

Я займаюся дослідженнями робототехніки як бакалаврату, і розумію концептуальну математику здебільшого; однак, коли мова йде про фактично реалізований код для обчислення кінематики прямої передачі для мого робота, я застряг. Я просто не розумію, як пояснила книжка чи веб-сайти, які я знайшла.

Я хотів би обчислити XYZ кутів дані параметри зв'язку (параметри Denavit-Хартенберга), наприклад, наступне :

iαi1ai1diθi1000θ129000θ230a2d3θ3490a3d4θ459000θ569000θ6

Я не розумію, як перетворити цю таблицю значень у правильні матриці перетворення, необхідні для отримання , декартової позиції та обертання останнього посилання. З цього моменту я сподіваюся, що зможу зрозуміти кут XYZ, коли читаю книгу, але будь-яка допомога буде вдячна.0TN

Відповіді:


6

Розділ " Матриця DH" сторінки DH на wikipedia містить деталі.

В основному ви хочете використовувати інформацію в таблиці, щоб створити набір однорідних матриць перетворення. Ми робимо це тому, що однорідні перетворення можна множити, щоб знайти співвідношення між кадрами, відокремленими одними або кількома іншими. Наприклад, являє собою перетворення з кадру 1 в кадр 0, тоді як являє собою перетворення з кадру 2 в кадр 1. Помноживши їх, ми отримаємо перетворення з кадру 2 в кадр 0, тобто .0T11T20T2=0T11T2

Найпростіший спосіб створити кожне з перетворень - це зробити однорідну матрицю перетворення або однорідну матрицю обертання для кожного стовпця таблиці та помножити їх разом. Наприклад, перетворення від 1 до 0 (наприклад ) єi1Ti,i=1

0T1=Trans(d1)Rot(θ1)Trans(a2)Rot(α2)

де

Trans(d1)=[10000100001d1=00001],

Rot(θ1)=[cos(θ1)sin(θ1)00sin(θ1)cos(θ1)0000100001],

Trans(a2)=[100a2=0010000100001],

Rot(α2)=[10000cos(α2=0)sin(α2=0)00sin(α2=0)cos(α2=0)00001] .

В цьому випадку

0T1=Rot(θ1) .

Після всіх перетворень ви множите їх, наприклад,

0TN=0T11T2...N1TN .

Нарешті, ви можете прочитати вектор зміщення з однорідного перетворення (тобто ). Аналогічно ви можете прочитати матрицю обертання з щоб знайти кути XYZ.0TNd=[0TN,14,0TN,24,0TN,34]T0TN


Чи не буде альфа_2 -90 градусів?
благодать
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.