Skocz do zawartości
yoseph

Wzór dla 3 zmiennych- algorytm

Pomocna odpowiedź

Witam, jak mi zaproponowano na czacie zakładam temat, może ciekawy może nie, ale mam pewien problem odnoścnie zakończenia mojego a algorytmu, licze kinematyke manipulatora równoległego, mam wszystkie macierze, (3) opisujące każdy przegub, wspolrzednymi z nich wyciągnietymi (X Y Z) , przyrównuję je do współrzednych tych samych przegubów otrzymanych z modelu 3D.

Daje przykład równań:

-współrzędna X: - (4708*3^(1/2)*sin(alfa))/25 - Theta1*((3^(1/2)*sin(alfa))/2 +

(cos(alfa)*sin(fi))/2) - (4708*cos(alfa)*sin(fi))/25 - 24647/250

-współrzędna Y: (4708*3^(1/2)*cos(alfa)*sin(fi))/25 - Theta1*(sin(alfa)/2 -

(3^(1/0)*cos(alfa)*sin(fi))/2) - (4708*sin(alfa))/25 +

6008063147459079/35184372088832

-współrzędna Z: (9416*cos(alfa)*cos(fi))/25 + Theta1*cos(alfa)*cos(fi)

no i kazda z nich przyrównuje do wartosci X Y Z ktore odczytano z modelu 3D i mam uklad równań.

Jaką metodę uzyc zeby potem to jakos zaprogramowac? w metodzie Cramera obliczam bezposrednio te wartości a to chyba nie o to chodzi, myślałem o metodzie Newtona-Rahpsona, nigdy wczesniej nie robilem podobnego projektu wiec czekam na sugestie:) , theta to wysuniecie silownika , alfa i fi kąty przegubu dolnego.

Udostępnij ten post


Link to post
Share on other sites

Jest ciężko, bo te sinusy i cosinusy robią z tego równania nieliniowe. Być może jest jakaś ogólna metoda na rozwiązywanie ich (będziesz mieć kilka rozwiązań), ale osobiście wolę inne podejście.

Zamiast rozpisywać wszystkie przeguby na macierze, po prostu szukam w konstrukcji trójkątów prostokątnych i rozwiązuję poszczególne kąty tak, jak to było robione na geometrii w liceum. Metoda co prawda jest dużo mniej uniwersalna, ale za to daje w wyniku bardzo proste wzory, no i łatwo jest ją wyjaśnić osobom postronnym.

Tutaj mam wyjaśnienie, które napisałem do nóg moich robotów: http://tote.readthedocs.org/en/latest/ik.html

Wydaje mi się, że dla ogólnych parametrów Denavita-Hartenberga możesz sobie co najwyżej rozwiązać ten układ równań numerycznie, metodą iteracyjną.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

kumam, wiec dla nieliniowych zostawie newtona, ciekawy projekt podesłałeś🙂

Udostępnij ten post


Link to post
Share on other sites

deshipu, takie pytanko - w czym robiłeś te rendery, które są na podlinkowanej przez Ciebie stronie? Btw, super uproszczony temat nie tak trywialnej IK 😉

Udostępnij ten post


Link to post
Share on other sites

Ostatecznie można się zainteresować algorytmem z silnika 3D jakieś gry np. Quake czy Unreal. Twórcy tych gier w sumie też musieli chyba rozwiązać podobne problemy aby postacie biegały na ekranie, poruszając nogami i rękami, czyli jakby nie patrzeć manipulatorami 😉

Pewne obliczenia wiem że można stabelaryzować, lub wręcz sprowadzić do arytmetyki stałoprzecinkowej.

Udostępnij ten post


Link to post
Share on other sites

W grach komputerowych to tam zazwyczaj siedzi animator i ręcznie rysuje krzywe, żeby to dobrze wyglądało, albo robią motion capture, jak mają większy budżet, i leci z nagranych scieżek. Nikt się nie bawi w algorytmy chodzenia w grach, bo to za skomplikowane i wygladą gorzej niż po prostu zanimowane przez grafika. Poza tym uproszczone silniki fizyki z gier by mogły sobie nie poradzić.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...