Dopředná úloha: průsečík tří koulí
Teď opačně: úhly motorů jsou známé, hledá se plošina. Tady se ta „snadnost" obrátí — a u delty se to naštěstí obrátí jen napůl.
Trik, který to zachrání
Z úhlů se spočítají tři lokty, to je přímočaré. Každý přípojný bod plošiny pak leží l od svého lokte. Jenže ty tři přípojné body nejsou totéž místo — jsou to tři různé rohy plošiny.
A tady pomůže, že se plošina neotáčí. Když se od každého lokte odečte příslušný odsazovací vektor plošiny, přesunou se všechny tři podmínky na tentýž neznámý bod — na střed plošiny:
Zbývá najít bod ve vzdálenosti l od tří známých středů. To je klasická trilaterace a má uzavřený tvar.
Kdyby se plošina otáčela, tenhle krok by nešel — odsazovací vektory by závisely na neznámé orientaci a rovnice by se svázaly. Přesně to se stane u Stewartovy platformy, a proto tam žádný uzavřený tvar není.
Dvě řešení, a jak se vybere
Tři koule se protínají obecně ve dvou bodech, zrcadlově podle roviny proložené jejich středy. Jeden je nad tou rovinou, druhý pod ní. Fyzikálně platí ten dolní, protože plošina delty visí pod základnou — a to je informace zvenčí, ne z rovnic.
Když se koule nepotkají
Solver hlásí no-intersection a o kolik chybí. Stává se to při nesmyslné kombinaci úhlů,
kterou by skutečný stroj nedokázal zaujmout — což je užitečné, protože to odhalí chybu v zadání dřív, než
se z ní stane nesmyslný výsledek.
A ověření, které nic nestojí
Protože inverzní úloha je uzavřený vzorec a dopředná trilaterace, dá se jedna složit s druhou. Musí vyjít identita — a v testech vychází na 1e-9 mm přes stovky bodů. Tohle je nejsilnější kontrola v celé labce a nic v kódu ji nezařizuje.