Kinematyka - obliczenia
Drugie ramię robota charakteryzuje się tylko jednym stopniem swobody i jest zakończone efektorem sterowanym za pomocą kolejnego serwomotoru. Im większy stopień swobody, tym większej liczby serwomotorów pracą musisz sterować. Im większy stopień swobody, tym więcej pracy trzeba włożyć w ustawienie efektorów końcowych na właściwym miejscu. Jak określić punkt, w którym ramię powinno ustawić efektor końcowy? Gdzie znajdzie się efektor końcowy po ustawieniu wałów serwomotorów pod określonymi kątami? Na pytania te odpowie kinematyka.
Kinematyka jest działem mechaniki zajmującym się opisem ruchu punktów, obiektów i grup obiektów bez analizy przyczyn ich ruchu. Można jej użyć do opisu ruchu mechanicznego ramienia lub ruchu robota. Kinematyka planarna zajmuje się ruchem na płaszczyźnie i ruchem w przestrzeni dwuwymiarowej. Umożliwia opis przesunięcia dwóch punktów za pomocą obrotu lub
translacji. Robota poruszającego się w środowisku pracy można traktować jak ciało poruszające się po płaszczyźnie do momentu, w którym spadnie ze stołu lub krawędzi urwiska. Ten rodzaj kinematyki można stosować do obliczenia obrotów silników napędzających robota poruszającego się po płaszczyźnie. Kinematykę można również wykorzystać do określenia położenia efektora końcowego w przestrzeni dwuwymiarowej (zobacz rysunek 7.27).
Rysunek 7.27. Kinematyka opisująca ruch robota i mechanicznego ramienia na płaszczyźnie
Ruch mechanicznego robota opisują kinematyka prosta i odwrotna — oba rodzaje mają zastosowanie w przestrzeniach dwu- i trójwymiarowych. Omówmy pokrótce przestrzenią dwuwymiarową (płaszczyzną). Kinematyka umożliwia tu udzielenie odpowiedzi na następujące pytanie:
Jak możemy określić kąty, pod którymi należy ustawić przeguby w celu umieszczenia efektora końcowego we właściwym miejscu?
Kinematyka prosta jest używana do określenia położenia efektora końcowego na podstawie kątów przegubów ramienia. Dzięki niej możemy udzielić odpowiedzi na następujące pytanie: gdzie znajdzie się efektor końcowy ramienia charakteryzującego się dwoma stopniami swobody, którego serwomotory są ustawione pod określonymi kątami (jeden serwomotor steruje pracą stawu barkowego, a drugi pracą stawu łokciowego)? Kinematyka odwrotna jest używana do określenia położeń przegubów (obu serwomotorów) na podstawie położenia efektora końcowego. Dzięki niej możemy udzielić odpowiedzi na następujące pytanie: pod jakim kątem należy ustawić pierwszy serwomotor (sterujący stawem barkowym), a pod jakim drugi serwomotor (sterujący stawem łokciowym), aby ustawić efektor końcowy tego samego ramienia o dwóch stopniach swobody? Te kwestie zestawiliśmy na rysunku 7.28.
Kinematyka prosta i odwrotna są przydatne, ale wymagają rozwiązywania równań trygonometrycznych i geometrycznych. Równania te mogą okazać się skomplikowane w przestrzeniach trójwymiarowych i w przypadku ramion z dużą liczbą przegubów. Po stworzeniu równań należy je przekształcić na język używany do programowania robota. Skorzystajmy z kinematyki opisującej
ruch na płaszczyźnie i określmy kąty serwomotoru pierwszego ramienia robota. Na rysunku 7.29 przedstawiliśmy wyprowadzenie równań.
Dysponując długością ramienia i współrzędnymi opisującymi docelowe położenie efektora końcowego, możesz obliczyć kąt, pod którym należy ustawić serwomotor. Listing 7.10 zawiera pseudokod programu do określania kąta ustawienia serwomotoru, a także fragment uzyskanego na jego podstawie kodu zapisanego w C++.
Rysunek 7.28. Mechaniczne ramię o dwóch stopniach swobody — kinematyka prosta i kinematyka odwrotna
Rysunek 7.29. Mechaniczne ramię o jednym stopniu swobody i kinematyka odwrotna
Listing 7.10. Mechanizm PUMT — odwrotna kinematyka mechanicznego ramienia nr 1
Dane wejściowe mechanizmu PUMT
Nazwa: ServoMotor
Części:
Sekcja silników:
Jeden serwomotor
Akcje:
Znając długość ramienia robota i docelowe współrzędne x, y efektora końcowego:
Krok 1.: Podnieś wartości x i y do kwadratu.
Krok 2.: Jeżeli pierwiastek kwadratowy sumy podniesionych do kwadratu wartości x i y jest mniejszy od długości ramienia,
Krok 2.1.: określ wartość arcus tangens dla punktu x, y,
Krok 2.2.: ustaw kąt położenia serwomotoru na podstawie tej wartości.
Zadania:
Sprawdź działanie serwomotorów, sterując położeniem ich wałów.
Koniec ramy
Dane wyjściowe mechanizmu PUMT: implementacja w C++
300 SquaredX = Math.pow(X,2);
301 SquaredY = Math.pow(Y,2);
302 if(ArmLength >= Math.sqrt(SquaredX + SquaredY))
303 {
304 ArmAngle = math.atan2(X,Y);
305 }
306 ...
W przypadku określania ruchu ramienia o dwóch stopniach swobody w płaszczyźnie dwuwymiarowej korzysta się z innych równań. Wyprowadziliśmy je na rysunku 7.30.
Rysunek 7.30. Mechaniczne ramię o dwóch stopniach swobody i kinematyka odwrotna
Kąt ustawienia serwomotorów można obliczyć na podstawie długości dwóch elementów łączących przeguby ramienia i współrzędnych docelowego położenia efektora końcowego. Pełny kod w języku C++ sterujący pracą ramienia możesz pobrać z naszej strony: http://www.robotteams.org/intro-robotics.
