Podproblémy Paden – Kahan je soubor řešených geometrických problémů, které se často vyskytují v inverzní kinematika běžných robotických manipulátorů.[1] Ačkoli soubor problémů není vyčerpávající, lze jej použít ke zjednodušení inverzní kinematické analýzy pro mnoho průmyslových robotů.[2]
Strategie zjednodušení
Pro strukturní rovnici definovanou součin exponenciálů Metoda, Paden – Kahanovy dílčí problémy lze použít ke zjednodušení a vyřešení inverzní kinematické úlohy. Je pozoruhodné, že exponenciály matice nejsoukomutativní.
Obecně se subproblémy používají k řešení konkrétních bodů úlohy inverzní kinematiky (např. Průsečík os kloubů) za účelem řešení úhlů kloubů.
Eliminace otáček kloubů
Zjednodušení je dosaženo zásadou, že rotace nemá žádný vliv na bod ležící na její ose. Například pokud jde o bod
je na ose otáčení otáčení
, jeho poloha není ovlivněna aktivací zákrutu. K vtipu:

Tedy pro strukturní rovnici

kde

,

a

jsou všechny zvraty s nulovou roztečí, aplikující obě strany rovnice na bod

který je na ose

(ale ne na osách

nebo

) výnosy

Zrušením

, to přináší

který, pokud

a

protínají, lze vyřešit dílčím problémem 2.
Norma
V některých případech může být problém také zjednodušen odečtením bodu od obou stran rovnice a převzetím normy výsledku.
Například řešit

pro

, kde

a

protínají se v bodě

, lze na bod aplikovat obě strany rovnice

to není na ose

. Odečítání

a brát normu obou stran výnosy

To lze vyřešit pomocí dílčího problému 3.
Seznam dílčích problémů
Každý dílčí problém je prezentován jako algoritmus založený na geometrickém důkazu. Kód pro řešení daného dílčího problému, který by měl být zapsán pro případy s více řešeními nebo bez řešení, může být integrován do inverzních kinematických algoritmů pro širokou škálu robotů.
Podproblém 1: Rotace kolem jedné osy
Ilustrace prvního dílčího problému Paden – Kahan.
Nechat
být twist s nulovým stoupáním s jednotkovou velikostí a
být dva body. Nalézt
takhle 
V tomto dílčím problému bod
se otáčí kolem dané osy
tak, že se shoduje s druhým bodem
.
Ilustrace promítaného kruhu v prvním dílčím problému Paden – Kahan.
Řešení
Nechat
být bodem na ose
. Definujte vektory
a
. Od té doby
je na ose
,
Proto, 
Dále vektory
a
jsou definovány jako projekce
a
na rovinu kolmou k ose
. Pro vektor
ve směru osy
,

a

V případě, že

,

a oba body leží na ose otáčení. Subproblem proto v tomto případě přináší nekonečné množství možných řešení.
Aby problém měl řešení, je nutné, aby projekce
a
na
osy a na rovinu kolmou na
mají stejnou délku. Je nutné zkontrolovat, že:

a to

Pokud jsou tyto rovnice splněny, hodnota úhlu spoje
lze najít pomocí atan2 funkce:

Pokud

, měl by tento dílčí problém přinést jedno řešení pro

.
Subproblem 2: Rotation around two subsequent axes
Ilustrace Paden – Kahan Subproblem 2. Subproblem přináší dvě řešení v případě, že se kružnice protínají ve dvou bodech; jedno řešení, pokud jsou kružnice tangenciální; a žádné řešení, pokud se kruhy neprotínají.
Nechat
a
být dva zvraty s nulovým stoupáním s jednotkovou velikostí a protínajícími se osami Nechat
být dva body. Nalézt
a
takhle 
Tento problém odpovídá rotaci
kolem osy
podle
, poté jej otočíte kolem osy
podle
, takže konečné umístění
je shodný s
. (Pokud osy
a
jsou shodné, pak se tento problém redukuje na dílčí problém 1 a připouští všechna taková řešení
.)
Řešení
Za předpokladu, že obě osy nejsou rovnoběžné (tj.
), nechť
být takovým bodem

Jinými slovy,

představuje bod, ke kterému

se otáčí kolem jedné osy, než se otáčí kolem druhé osy, aby se shodovalo s

. Každá jednotlivá rotace je ekvivalentní k dílčímu problému 1, je však nutné určit jedno nebo více platných řešení pro

za účelem řešení rotací.
Nechat
být průsečíkem dvou os:

Ilustrace Paden – Kahanova dílčího problému 2, ukazující tangenciální případ, ve kterém dílčí problém přináší pouze jedno řešení.
Definujte vektory
,
a
. Proto,

To z toho vyplývá
,
, a
. Od té doby
,
a
jsou lineárně nezávislé,
lze psát jako

Hodnoty koeficientů lze vyřešit takto:
Ilustrace Paden – Kahanova dílčího problému 2, znázorňující případ se dvěma protínajícími se kruhy, a tedy se dvěma řešeními. Obě řešení (c, c2) jsou zvýrazněna.


, a

Subproblém získá dvě řešení v případě, že se kružnice protínají ve dvou bodech; jedno řešení, pokud jsou kružnice tangenciální; a žádné řešení, pokud se kruhy neprotínají.
Podproblém 3: Rotace na danou vzdálenost
- Nechat
být twist s nulovým stoupáním s velikostí jednotky; nechat
být dva body; a nechte
být reálné číslo větší než 0. Najít
takhle 
V tomto problému bod
se otáčí kolem osy
dokud není bod vzdáleností
z bodu
. Aby mohlo existovat řešení, kruh je definován rotací
kolem
musí protínat kouli o poloměru
se středem na
.
Řešení
Nechat
být bodem na ose
. Vektory
a
jsou definovány tak, že

Projekce
a
jsou
a
„Projekce“ úsečkového segmentu definovaná
se zjistí odečtením složky
v
směr:

Úhel

mezi vektory

a

je nalezen pomocí
atan2 funkce:

Úhel spoje

se nachází podle vzorce

Tento dílčí problém může přinést nula, jedno nebo dvě řešení, v závislosti na počtu bodů, ve kterých je poloměr kruhu

protíná kruh o poloměru

.
Subproblem 4: Rotation around two axes to a given distance
- Nechat
a
být dva zvraty s nulovým stoupáním s jednotkovou velikostí a protínajícími se osami Nechat
být body. Nalézt
a
takhle 
Tento problém je analogický k dílčímu problému 2, až na to, že konečný bod je omezen vzdálenostmi ke dvěma známým bodům.
Podproblém 5: Překlad na danou vzdálenost
- Nechat
být zkroucením velikosti jednotky o nekonečné výšce;
dva body; a
reálné číslo větší než 0. Najít
takhle 
Reference