KursyPoradnikiInspirujące DIYForum

Roboty kroczące – teoria i podstawy projektowania

Roboty kroczące – teoria i podstawy projektowania

Projektując robota kroczącego, konstruktor musi odpowiedzieć sobie na wiele pytań. Wiąże się to między innymi z założeniami konstrukcyjnymi.

Część z nich jest natury ogólnej, część musi jednak być szczegółowa. W artykule opisałem najważniejsze zagadnienia związane z projektowaniem robotów mobilnych kroczących.

Skupiłem się tu na samym aparacie ruchu i na wynikających z przyjętych założeń możliwych rozwiązaniach technicznych. Klasyfikacja robotów kroczących może być różna, w zależności od dobranego kryterium.

Niektóre z kryteriów są ze sobą ściśle powiązane, np. ilość nóg z możliwymi rodzajami chodu. Przyjrzyjmy się zatem powyższym klasyfikacjom.

Wzorce ruchu

Wzorcami ruchu dla robotów kroczących są zazwyczaj zwierzęta, mówimy wtedy o wzorcach biologicznych. Zaczęło się to od obserwacji i próby naśladowania chodu różnych stworzeń. Poniższy rysunek przedstawia typowe ułożenie nóg owada, gada oraz ssaka.

Typowe ułożenie nóg zwierząt [1]: a) gada, b)owada, c) ssaka

Rys. 1. Typowe ułożenie nóg zwierząt [1]: a) gada, b)owada, c) ssaka

Z rysunku wynika jedna bardzo ważna rzecz – wysokość środka ciężkości.

Rodzaje nóg

Kolejną sprawą, wynikającą ze wzorca biologicznego, jest rodzaj nóg. Robot może mieć wszystkie nogi jednakowe, może mieć pary różnych nóg (pod względem długości i/lub kształtu). Wiąże się to z wykonaniem, ale także z możliwymi rodzajami ruchu.

Łatwiej - i zazwyczaj taniej - jest wykonać robota o jednakowych nogach. Kolejna sprawa, ostatnia w tym zagadnieniu – ułożenie nóg względem korpusu. Tutaj znów mamy kilka możliwości – nogi rozłożone symetrycznie wokół okręgu, wzorowane na pająku (rys. 2a), nogi rozłożone po dwóch stronach robota, wzorowane np. na krabie (rys. 2b),  nogi umieszczone pod korpusem – jak u ssaka.

Rodzaj stabilności

Kolejnym kryterium jest rodzaj stabilności. Wiąże się to nierozerwalnie z ilością nóg. Informacje z tej części artykułu będą nam potrzebne przy omawianiu kolejnego zagadnienia. Rozróżniamy następujące rodzaje: chód stabilny statycznie, chód stabilny dynamicznie, chód quasi-statycznie stabilny.

Chód stabilny statycznie

Chód stabilny statycznie to taki, w którym robota można zatrzymać w dowolnym momencie i nie straci on przy tym równowagi. Klasycznym przykładem tego rodzaju ruchu jest chód trójpodporowy robotów sześcionożnych.

Chód dynamicznie stabilny

Przeciwieństwem tego rodzaju ruchu jest chód dynamicznie stabilny. W tym przypadku tylko w niektórych momentach ruchu robot może zostać zatrzymany, w pozostałych stabilność chodu jest utrzymywana dzięki dynamice ruchu. Zatrzymanie w takiej chwili będzie skutkowało wywróceniem się robota. Przykładem może być galop konia.

Chód quasi-statycznie stabilny

Ostatnim rodzajem jest chód quasi-statycznie stabilny – w tym przypadku, w przeciwieństwie do pozostałych, stabilność chodu zapewnia konstrukcja nogi. Przykładem jest chód bipedów o dużych i ciężkich stopach, w których stabilność poruszania się jest zapewniona przez „wahadło” – noga przemieszczana równoważy wychylenie tułowia.

Ilość nóg robota kroczącego

W tym przypadku zakładamy dowolną ilość nóg. Ich minimalna ilość może wynosić zero – w tym przypadku będą to np. roboty wężopodobne, pełzające. My jednak, mówiąc o pedipulatorach (robotach kroczących), myślimy o robotach o pewnej ilości nóg – jedna, dwie, cztery, sześć i więcej.

Robot jednonożny

W przypadku robota jednonożnego możemy mówić tylko o jednym rodzaju chodu – skakaniu. Jest to dynamiczny rodzaj ruchu – tylko dzięki dużej mocy napędów, bardzo szybkiemu układowi sterowania i czujnikom oraz skomplikowanemu algorytmowi robot w trakcie ruchu nie przewraca się.

Rys. 3. Przykłady monopedów – robotów jednonożnych [4].

Roboty dwunożne

Bipedy – roboty dwunożne, cechują się chodem stabilnym dynamicznie, zazwyczaj na ugiętych nogach. Wzorcem biologicznym takich robotów jest przeważnie człowiek. Roboty te poruszają się, balansując na ugiętych nogach.

Rys. 4. Przykłady bipedów, rys. a) biped o dużych stopach.

Mogą poruszać się także ruchem quasi-stabilnie statycznym. W tym wypadku konstrukcja nogi – a konkretnie duża stopa - umożliwia rozłożenie sił na dużej powierzchni, pod którą mieści się także środek ciężkości robota. Dodatkowo, relatywnie duża masa pojedynczej nogi umożliwia balansowanie ciałem podczas ruchu i zapewnia przeciwwagę dla tułowia.

Roboty czworonożne

Quadropedy – roboty o czterech nogach. W tym przypadku wzorcem biologicznym są zazwyczaj ssaki lub gady. Roboty te potrafią poruszać się zarówno chodem dynamicznie stabilnym (galop) oraz stabilnym statycznie (przemieszczanie jednej nogi na raz). Roboty sześcionożne mogą poruszać się zarówno chodem stabilnym statycznie jak i dynamicznie.

W związku z tym, algorytm ruchu jest najłatwiejszy do zaprogramowania ze wszystkich wymienionych grup, jedyną trudność może stanowić duża liczba stopni swobody.

Roboty wielonożne

Jest jeszcze grupa robotów wielonożnych, o ilości nóg większej niż sześć. W takim rozwiązaniu (o ile musimy sterować każdą nogą osobno) komplikuje nam się układ sterowania. Roboty te poruszają się chodem stabilnym statycznie. Maksymalną liczbę możliwych chodów określa wzór podany w 1968 r. przez McGee:

Gdzie:
k – ilość nóg,
N – ilość możliwych rodzajów chodu,
! – oznacza silnię (podaję dla młodszych adeptów robotyki, mogących nie znać tej funkcji matematycznej – dodatkowe wyjaśnienie na końcu tekstu*).

Rodzaj chodu

Ostatnim z wymienionych kryteriów jest rodzaj chodu. Powyższy wzór podaje maksymalną ilość możliwych chodów, jednak nie każdy robot może poruszać się wszystkimi wyliczonymi sposobami. Ograniczenie to wynika z zastosowanych napędów, wybranego aparatu ruchu i jego ograniczeń oraz ograniczeń układu sterowania – zwłaszcza jego szybkości.

Jeżeli napęd nie posiada dużej rezerwy mocy oraz dynamiki, wtedy robot może poruszać się wyłącznie chodem stabilnym statycznie. Konstrukcja nóg oraz powiązań mechanicznych między określonymi nogami (lub stopniami swobody pojedynczej nogi) również ogranicza ilość możliwych chodów. Liczba ta może być ograniczona nawet do jednego rodzaju.

Bardzo popularnym i prostym do zrealizowania jest ruch falowy. Określona tutaj sekwencja przestawień nóg jest zapętlona. Chody takie można przedstawiać za pomocą diagramów chodu. Przykładowe diagramy zostały przedstawione na poniższym rysunku. Faza przenoszenia nogi nazywa się fazą protrakcji, natomiast okres, w którym noga ma kontakt z podłożem nazywa się fazą refrakcji. Chód ten nazywa się także chodem periodycznym.

Rys. 5. Przykładowe diagramy chodu dla robota czworo- i sześcionożnego [1].

Chody takie mają zastosowanie na prostych, płaskich powierzchniach. Ich zaletą jest prostota realizacji. Kolejnym rodzajem jest chód swobodny – freestyle. W tym przypadku decyzja, która noga ma być przestawiona oraz gdzie ma stanąć, jest podejmowana na bieżąco. Chód taki wymaga skomplikowanego algorytmu sterowania, wyposażenia nóg w czujniki oraz szybkiego układu sterowania. Jego zaletą jest bardzo szeroki zakres zastosowań – nadaje się do użycia w skomplikowanym terenie.

Ostatnim rodzajem chodu jest ruch za przewodnikiem (ang. follow the leader). Noga następna jest kładziona w miejscu, w którym umieszczona była wcześniej noga poprzednia. Problem miejsca położenia nogi dotyczy tylko nóg pierwszych. Ma on zastosowanie podobne do ruchu swobodnego.

Projektowanie robota

Posiadając już pewną wiedzę ogólną możemy przystąpić do bardziej szczegółowych rozważań. Projektując robota musimy wybrać konkretny napęd:

  • silniki elektryczne
  • siłowniki pneumatyczne
  • siłowniki hydrauliczne

Każdy z nich ma swoje wady i zalety. W robotach mobilnych (zwłaszcza amatorskich) najczęściej wykorzystywanym napędem są silniki elektryczne – silniki DC lub serwomechanizmy. Są one bardzo proste w sterowaniu, a wystarczającym źródłem zasilania jest bateria. Roboty w nie wyposażone mogą być autonomiczne.

Kolejna sprawa to nogi – ich kształt, długość, układ członów, ilość stopni swobody.

Elementem wspólnym tych dwóch zagadnień jest ilość napędów w stosunku do ilości nóg. W najprostszym przypadku – robota sześcionożnego - możemy zastosować od dwóch do osiemnastu napędów. Dwa napędy wiążą się z największym ograniczeniem ilości możliwych chodów oraz sporą liczbą powiązań mechanicznych między nogami. Natomiast w drugim przypadku mamy 3 napędy na nogę – z punktu widzenia robotyki takie rozwiązanie jest optymalne. 

Przykłady robotów sześcionożnych o dwóch, trzech i osiemnastu stopniach swobody są przedstawione na rysunku 6. Rysunek 2a przedstawia robota sześcionożnego o dwunastu stopniach swobody, czyli o dwóch stopniach swobody na nogę – 2DoF/noga (DoFDegree of Freedom – stopnie swobody).

Rys. 6. Przykłady konstrukcji napędów robotów sześcionożnych: 
a) robot o dwóch stopniach swobody [12],
b) robot o trzech stopniach swobody [9],
c) robot o osiemnastu  stopniach swobody (3 DoF/noga) [10],
d) robot o jednym stopniu swobody - konstrukcja nóg [8],
e) robot o jednym stopniu swobody - mechanizm przeniesienia napędu [13],
f) robot o jednym stopniu swobody - trajektoria chodu [14].

Rysunek 6a przedstawia robota o dwóch stopniach swobody. Powiązania mechaniczne między nogami po każdej stronie robota umożliwiają poruszanie się do przodu oraz skręcanie. Układ sterowania takiego robota jest podobny do układu sterowania robota kołowego z dwoma niezależnie sterowanymi kołami.

Robot o takiej konstrukcji nóg może poruszać się tylko jednym rodzajem chodu. Na rys. 6b widać konstrukcję robota o trzech stopniach swobody. W tym przypadku środkowa para nóg zapewnia balans robota, dzięki czemu dwie pozostałe nogi po jednej stronie są podniesione do góry – są w fazie protrakcji. Przechył w drugim kierunku powoduje zamianę stron. Jak widać na tym rysunku, nogi zewnętrzne po obydwu stronach są sztywno połączone cięgnami. Również tutaj możliwy jest tylko jeden rodzaj ruchu, jest on jednak trochę bardziej skomplikowany niż w poprzednim przypadku.

Ostatnim przykładem jest robot o wielu stopniach swobody na nogę (rys. 2a oraz rys. 6c). Takie rozwiązanie powoduje, że można niezależnie sterować podniesieniem oraz przemieszczeniem poziomym każdej nogi.

W przypadku 2 DoF/nogę (rys. 2a), jeden napęd odpowiada za ruch w pionie, a drugi za ruch w poziomie. Różnica między robotem 2 DoF/nogę, a 3 DoF/nogę polega na tym, że w drugim przypadku możliwy jest ruch w bok (jak u kraba). W pierwszym zaś ruch postępowy może odbywać się tylko do przodu lub tyłu. W zależności od zapasu energetycznego napędów rozwiązanie takie umożliwia realizację chodu statycznego (przy niewielkim zapasie mocy) oraz chodu dynamicznego (przy dużym zapasie mocy).

Na rysunkach 6 d-f widać roboty o jednym stopniu swobody. Konstrukcja nóg jest identyczna jak u robota o dwóch stopniach swobody. Różnica tkwi w budowie układu przeniesienia napędu i polega na zastąpieniu jednego silnika sprzęgłem, zwanym wolnobiegiem, przenoszącym obroty tylko w jedną stronę.

Rozwiązanie takie ogranicza możliwe ruchy do chodu w przód oraz zakręcania w jedną stronę (rys. 6.f). (Fragment o robocie z 1 DoF dodano dzięki użytkownikowi Michau).

Rozmieszczenie nóg

Również rozmieszczenie nóg robota na korpusie jest ważną sprawą. Aby robot się nie przewracał, musimy pamiętać o położeniu środka ciężkości oraz fakcie jego przemieszczania podczas ruchu nóg. Jest to bardzo istotne.

Wielokąt podparcia jest to wielokąt, którego wierzchołkami są punkty, w których nogi aktualnie mają kontakt z podłożem. Figura ta zmienia się w każdym momencie ruchu. Np. dla robota czworonożnego o symetrycznie rozłożonych nogach, kiedy wszystkie stykają się z podłożem, wielokątem podparcia jest prostokąt lub kwadrat; jeżeli jedna noga jest podniesiona - wielokąt podparcia staje się trójkątem.

Projektując robota, który będzie poruszał się ruchem stabilnym statycznie, należy tak umiejscowić środek ciężkości, aby nigdy nie wyszedł poza wielokąt podparcia. W celu zwiększenia stabilności i eliminacji wpływu wszystkich dodatkowych efektów dynamicznych (takich jak sam fakt przemieszczania nogi), stosuje się dodatkowy margines bezpieczeństwa. Polega to na konstrukcji nóg i korpusu, w której środek ciężkości nie zbliża się do boków wielokąta podparcia.

Minimalną odległość miedzy najbliższym bokiem aktualnego wielokąta podparcia, a środkiem ciężkości nazywa się zapasem stabilności statycznej. Rysunek 7 przedstawia przykładową sekwencję wielokątów podparcia podczas ruchu trójpodporowego robota czworonożnego. Na rysunku tym zaznaczony jest także środek ciężkości robota.

Rys. 7. Wielokąty podparcia przykładowego chodu robota czteronożnego [1].

Rys. 7. Wielokąty podparcia przykładowego chodu robota czworonożnego [1].

Pojęcia wykrok i zakrok wiążą się z ułożeniem nogi względem tułowia robota. Sumą wykroku i zakroku jest krok. Jest to zaprezentowane na rysunku 8.

Rys. 8.Długość kroku oraz jego składniki – wykrok i zakrok [1].

Rys. 8. Długość kroku oraz jego składniki – wykrok i zakrok [1].

Diagramy chodu

Na koniec chciałbym jeszcze wrócić do zagadnień diagramu chodu. Dla robotów, które mogą poruszać się tylko jednym rodzajem chodu nie ma z tym problemu. Jednak przy projektowaniu algorytmu chodu robotów o dużej liczbie DoF/nogę można czasem zapomnieć o kilku ważnych sprawach.

Problem ten przedstawię, bazując na rysunku 9. Istotną różnicą między dwiema przedstawionymi możliwościami jest dodatkowe puste pole w okresie chodu, widoczne na rys. 9b. W tym momencie wszystkie nogi są postawione na ziemi i następuje wypchnięcie tułowia w przód o całą długość kroku. Na rys. 9a, podczas fazy protrakcji jednej nogi, pozostałe wykonują ruch w tył o 1/5 długości kroku. Algorytm z rys b) jest o wiele łatwiejszy do zaimplementowania niż algorytm z rys. a.

Rys. 9. Dwie możliwe realizacje najwolniejszego chodu robota sześcionożnego.

Rys. 9. Dwie możliwe realizacje najwolniejszego chodu robota sześcionożnego.

Układy sterowania to osobny problem. Prosty ruch nawet robotów o wielu stopniach swobody oraz obsługa kilku prostych czujników odległości może być zaimplementowana w mikrokontrolerach ośmiobitowych. Napisanie programu w językach typu BASIC (bascom, BASIC stamp, BASIC micro) również nie stanowi większego problemu dla średnio doświadczonego programisty.

Podsumowanie

W artykule przedstawiono zagadnienia związane z robotami kroczącymi, najczęściej stosowane rozwiązania, dotyczące realizacji chodu oraz opisano przykładowe diagramy chodu. Opis wszystkich możliwych konstrukcji nóg oraz sposobów realizacji chodu byłby niemożliwy z powodu rozległości tematu.

Mam nadzieję, że zaprezentowany materiał był interesujący. Zapraszam do pogłębiania wiedzy z dziedziny robotyki, do wymyślania i konstruowania swoich własnych robotów kroczących. Konstrukcja takiego robota daje dużo śmiechu, gdy błędnie zaprogramowany robot wykonuje jakieś bliżej nieokreślone ruchy. Daje także dużo satysfakcji i dumy, kiedy całość działa jak należy.

Na zakończenie ostatni rysunek przedstawiający chyba jedno z najprostszych rozwiązań robota sześcionożnego z dwoma silnikami. Nogi obracają się wokół własnej osi jak koła. Podobne rozwiązania stosuje się w robotach poruszających się na lądzie i na wodzie.

Rys. 10. Przykład nietypowego rozwiązania układu napędowego [11].

Rys. 10. Przykład nietypowego rozwiązania układu napędowego [11].

Bibliografia

[1] T. Zielińska: Maszyny kroczące. PWN Warszawa 2003.
[2] http://blog.makezine.com/archive/2008/03/mechanicle_tentacle.html
[3] http://www.mindcreators.com/ResearchOutline.htm
[4] http://robot2.vsb.cz/elekskripta/servisni_roboty/interest131221.htm
[5] http://commons.wikimedia.org/wiki/File:Biped_walking_robot_model_human2.png
[6] http://www.roboworld.com.sg/roboshop/product_list.aspx?Category=Legged+Robot
[7] www.wikipedia.pl
[8] http://www.shinyshiny.tv/2007/08/bandais_hexbug.html
[9] www.robotshop.us/Images/rblyn28_on_exapod.jpg
[10] www.lynxmotion.com
[11] http://kodlab.seas.upenn.edu/RHex/ResearchRHex
[12] http://mikron123.blogspot.com/
[13] http://express.howstuffworks.com/hex-bug-autopsy.htm
[14] http://appliedinspirations.com/appliedcontent/Projects/Hexbug/Proj-HexBug1.html

n! – silnia jest to iloczyn wszystkich liczb od 2 do n.
Przykład:
6! = 2∙3∙4∙5∙6 = 720.
Dla robota sześcionożnego wynik wzoru McGee wynosi:
(2∙6-1)! = 11! = 39916800 możliwych chodów.

chód, hexapod, ktoczący, noga, robot, stabilność

Trwa ładowanie komentarzy...