Notacja Denavita-Hartenberga

Notacja Denavita-Hartenberga wprowadzona została do robotyki w celu uproszczenia opisu „mechanicznych ramion”. W uproszczeniu przedstawia ona sposób na przejście od początku do końca układu połączonych ze sobą obiektów (które mogą być liniami prostymi, prostopadłościanami itp.).

Przykład:

Notacja Denavita-Hartenberga dla wahadła podwójnego

Na rysunku przedstawione zostało podwójne wahadło. Notacja Denavita-Hartenberga pozwala opisać sposób przemieszczenia się z punktu zaczepienia pierwszego wahadła (punktu 0), do punktu zaczepienia drugiego ramienia (punktu 1). W notacji Denavita-Hartenberga przedstawia się to jako:

R o t Z ( q 1 ) T r X ( l 1 ) R o t Z ( q 2 ) T r X ( l 2 ) , {\displaystyle RotZ(q_{1})TrX(l_{1})RotZ(q_{2})TrX(l_{2}),}

gdzie:

R o t Z {\displaystyle RotZ} oraz T r X {\displaystyle TrX} są symbolami macierzy transformacji elementarnych,
q 1 , q 2 {\displaystyle q_{1},q_{2}} określają kąt o jaki obrócone są wahadła,
l 1 , l 2 {\displaystyle l_{1},l_{2}} są długością wahadeł.

Notacja ta pozwala za pomocą macierzy przedstawić algorytm przemieszczenia, umożliwiający wyznaczenie zależności położenia punktu końcowego od położenia punktów pośrednich.


W robotyce jednym ze sposobów wyznaczenia położenia poszczególnych ogniw manipulatora jest użycie notacji Denavita-Hartenberga (D-H). Metoda ta jest bardzo prosta w zastosowaniu oraz w implementacji w programie komputerowym i pozwala opisać prawie każdy otwarty łańcuch kinematyczny. W celu zastosowania tej metody na początku wyznacza się macierze przejścia pomiędzy kolejnymi elementami łańcucha. W ogólności pojedyncza macierz transformacji z układu A i 1 {\displaystyle A_{i-1}} w A i {\displaystyle A_{i}} przedstawiona jest jako

A i 1 i = R o t Z ( θ i ) T r a n Z ( d i ) T r a n X ( a i ) R o t X ( α i ) , {\displaystyle A_{i-1}^{i}=RotZ(\theta _{i})TranZ(d_{i})TranX(a_{i})RotX(\alpha _{i}),}

gdzie:

a i , d i , α i {\displaystyle a_{i},d_{i},\alpha _{i}} – parametry geometryczne,
θ i = q i {\displaystyle \theta _{i}=q_{i}} – zmienna przegubowa

dla przegubu obrotowego oraz

θ i , a i , α i {\displaystyle \theta _{i},a_{i},\alpha _{i}} – parametry geometryczne,
d i = q i {\displaystyle d_{i}=q_{i}} – zmienna przegubowa

dla przegubu przesuwnego. Symbole RotZ, TranZ, TranX oraz RotX oznaczają elementarne macierze transformacji.

Złożenie transformacji A i 1 i {\displaystyle A_{i-1}^{i}} dla całego łańcucha kinematycznego pozwala wyznaczyć odwzorowanie K: Q S E ( 3 ) {\displaystyle \mathbb {Q} \to \mathbb {SE} (3)}

K ( q ) = A 0 N ( q ) = i = 1 N A i 1 i ( q i ) , q = ( q 1 , q 2 , , q N ) T Q , {\displaystyle K(q)=A_{0}^{N}(q)=\prod _{i=1}^{N}A_{i-1}^{i}(q_{i}),\quad q=(q_{1},q_{2},\dots ,q_{N})^{T}\in \mathbb {Q} ,}

gdzie:

Q {\displaystyle \mathbb {Q} } – symbol przestrzeni współrzędnych wewnętrznych,
q {\displaystyle q} – wektor współrzędnych wewnętrznych,
S E ( 3 ) {\displaystyle \mathbb {SE} (3)} – symbol specjalnej grupy euklidesowej.

Kinematyka manipulatora ma postać K ( q ) = [ R ( q ) T ( q ) 0 1 ] , {\displaystyle K(q)={\begin{bmatrix}R(q)&T(q)\\0&1\end{bmatrix}},}

gdzie wektor T ( q ) {\displaystyle T(q)} określa położenie efektora wyrażone w bazowym układzie współrzędnych, natomiast macierz R ( q ) {\displaystyle R(q)} określa jego orientację w przestrzeni również wyrażoną w bazowym układzie współrzędnych.