Skocz do zawartości

Wzór dla 3 zmiennych- algorytm


yoseph

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.

Link do komentarza
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
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.

Link do komentarza
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ć.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.