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


10

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

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

iαi−1ai−1diθi1000θ12−90∘00θ230a2d3θ34−90∘a3d4θ4590∘00θ56−90∘00θ6

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

Відповіді:


6

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

В основному ви хочете використовувати інформацію в таблиці, щоб створити набір однорідних матриць перетворення. Ми робимо це тому, що однорідні перетворення можна множити, щоб знайти співвідношення між кадрами, відокремленими одними або кількома іншими. Наприклад, являє собою перетворення з кадру 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)=[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=0T1∗1T2...N−1TN .

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


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