Elektroda.pl
Elektroda.pl
X
Filament
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

LittleFrog - robot kroczący z systemem stabilizacji

GODsaveTHEcat 24 Paź 2010 16:11 5328 27
  • #1 24 Paź 2010 16:11
    GODsaveTHEcat
    Poziom 11  

    Witam. Mam w planach budowę 4 nożnego robota kroczącego z trzema stopniami swobody na nogę. Pod uwagę biorę "standardową" owadzią konfiguracje lub taką zastosowaną w robocie LittleDog. Układ kontroli byłby oparty na ArduinoMini lub ewentualnie na dwóch gdyby zabrakło mi miejsca. Ma być to mały robot oparty na 12gramowych serwach wiec zależy mi na wadze.

    Jednym z założeń mojego projektu jest zastosowanie stabilizacji żyroskopem. W zależności od kosztów planuje dwu lub jedno osiową (przechył na boki, przechył do przodu i do tyłu). Najłatwiejszy dostęp mam do żyroskopów modelarskich jednak nie wiem czy spełnią moje one moje oczekiwania. Chciałbym mianowicie odczytywać z nich kąt przechyłu i na jego podstawie obliczać odpowiednią poprawkę tak by robot cały czas był mniej więcej poziomo.

    Innym moim problemem jest odczyt rzeczywistego położenia serwa. We wcześniejszym projekcie używałem modyfikowanych serw (bez elektroniki sam silnik i potencjometr) z których bezpośrednio odczytywałem położenia. Teraz chciałbym uniknąć modyfikowania serw i zastanawiam się w jaki sposób mógłbym odczytywać ich położenie (mógłbym wyprowadzić kabelki od potencjometrów i z nich odczytywać położenie jednak to wymagałoby aż 12 wejść analogowych na same serwa a Arduino posiada jedynie 8).

    To było na tyle z dotychczasowych problemów. Jeśli ktoś byłby zainteresowany sporządziłem wstępne modele komputerowe obu konfiguracji i mogę udostępnić screeny.
    Pozdrawiam i z góry dziękuję za każdą odpowiedź.


    PS: Nie, nie jestem aż tak szalony by myśleć ze zbuduję klona LittleDoga, po prostu taka konfiguracja nóg wydaje mi się sensowna.

    0 27
  • Filament
  • #2 24 Paź 2010 19:11
    MirekCz
    Poziom 35  

    1. Żyroskop nie zapewni Tobie "stałej" informacji o przechyle a jedynie poda jaka jest różnica w czasie (jak szybko robot się obraca). Do tego żyroskopy MEMS mają bardzo małą dokładność
    Jak interesuje Ciebie aktualny przechył, a robot nie przesuwa się za szybko to możesz użyć akcelerometru. W chwili spoczynku jedyne działające na nie przyśpieszenie to siła grawitacji - czyli dokładnie wiesz w jakiej pozycji leży akcelerometr wobec ziemi. Niestety przy szybkich ruchach akcelerometr nie poda Tobie dokładnego przechyłu, bo na jego wyjściu jest suma przyśpieszenia grawitacyjnego i ruchu.

    Idealna byłaby fuzia akcelerometr+źyroskop, ale to jest skomplikowane i drogie. Polecam zdecydowanie akcelerometry. Możesz u mnie kupić zarówno same kostki jak i moduły (dla Ciebie dobry byłby ADXL335 lub ADXL345 jak wolisz cyfrowe wyjście).

    2. Do odczytu większej ilości wejść analogowych możesz wykorzystać zewnętrzne przetworniki ADC (np mcp3208). Inny sposób to układ, który tak samo jak wewnętrzne ADC pozwala podać jeden z kilku sygnałów analogowych na pin procesora.

    Linki:
    MCP3208 - http://robodudes.com/search.php?orderby=position&orderway=desc&search_query=mcp3208
    Akcelerometry - http://robodudes.com/10-akcelerometry

    1
  • #3 24 Paź 2010 19:59
    Pittt
    Poziom 30  

    MirekCz napisał:
    Niestety przy szybkich ruchach akcelerometr nie poda Tobie dokładnego przechyłu, bo na jego wyjściu jest suma przyśpieszenia grawitacyjnego i ruchu.


    Znając kierunki wektorów x, y i z akcelerometru względem konstrukcji robota, analizując je i ich wypadkowe, można określić położenie robota względem "ziemi" jak również przeciw działać zakłóceniom równowagi. Acz łatwe to faktycznie nie będzie.

    0
  • #4 24 Paź 2010 20:27
    MirekCz
    Poziom 35  

    Pittt napisał:
    MirekCz napisał:
    Niestety przy szybkich ruchach akcelerometr nie poda Tobie dokładnego przechyłu, bo na jego wyjściu jest suma przyśpieszenia grawitacyjnego i ruchu.


    Znając kierunki wektorów x, y i z akcelerometru względem konstrukcji robota, analizując je i ich wypadkowe, można określić położenie robota względem "ziemi" jak również przeciw działać zakłóceniom równowagi. Acz łatwe to faktycznie nie będzie.


    Przy robocie w ruchu? Opracuj precyzyjny algorytm to dostaniesz nobla ;-)
    Jak robot nie przyspiesza to akcelerometr poda pięknie przechył. W innym wypadku będzie to tylko zgadywanka.

    0
  • #5 24 Paź 2010 21:49
    GODsaveTHEcat
    Poziom 11  

    Innymi słowy porywam sie z motyką na słońce. Nie wiem czy dobrze sobie to wyobrażam ale znając odczyt z akcelerometru będę mógł nie tyle wyliczyć położenie robota co dobrać odpowiednią reakcję tak by się nie przewrócił (im większa "wartość przewracająca" tym silniejszą muszę reakcje zastosować np. przykurczyć nogi). Dobrze rozumiem?
    Następnym problematycznym zagadnieniem są czujniki nacisku na "stopach", najchętniej wykorzystałbym foliowe czujniki rezystancyjne ale są drogie (36zł za sztukę). Rozwiązanie minimalistyczne to odpowiednio zabezpieczona krańcówka, bardziej skomplikowane rozwiązanie to potencjometr suwakowy ze sprężynką z długopisu.

    Trochę popracowałem nad modelem w komputerze na razie wygląda to tak
    LittleFrog - robot kroczący z systemem stabilizacji
    nie ma jeszcze "głowy" na czujnik ultradźwiękowy.

    PS.Zaczynam się martwić o to czy serwa będą dość mocne, mam zamiar użyć micro serw z metalowymi zębatkami o momencie 2,2kg*cm. Sama elektronika (serwa, UBEC, akumulator) to już ok.260g a nie mam jeszcze policzonej płytki i części konstrukcyjnej. Będzie dobrze jak robot się zmieści w 500-600g. Dlatego nogi są stosunkowo krótkie by moment działający na serwomechanizmy był jak najmniejszy.

    0
  • Filament
  • #6 24 Paź 2010 22:31
    MirekCz
    Poziom 35  

    Akcelerometr nie poda Tobie z dużą dokładnością drogi jaką przebyłeś jak robot się będzie stale przechylał lewo/prawo/przód/tył. Lepszą estymację drogi dostaniesz licząc kroki. Do tego mógłbyś dołożyć kompas (droga zabawka) i wiesz w którą stronę te kroki robisz ;)

    Potencjometr ze sprężynką... brzmi raczej jak źródło wielu problemów. Użyj krańcówek jak chcesz iść po kosztach. Skoro to Twoja pierwsza konstrukcja trzymaj się pewnych rozwiązań i postaraj się zrobić coś działającego. Na ulepszenia / lepszą wersję przyjdzie czas później. Doświadczenie z budowy pierwszego robota zaprocentuje.

    0
  • #7 24 Paź 2010 22:38
    McRancor
    VIP Zasłużony dla elektroda

    Poczytaj na początek trochę:

    http://www.konar.ict.pwr.wroc.pl/module.php?op=download&id=5
    robot mrówa, balansujący i praca magisterska o czujnikach inercyjnych na początek.

    Kombinujesz może i dobrze, ale to będzie działać tylko w teorii. Akcelerometry nie nadają się do pomiaru drogi, żyroskopy to nie inklinometry, Atmega nie policzy tego co trzeba w rozsądnym czasie, a te serwomechanizmy spalą się, a nie utrzymają robocika niestety.

    Wybacz brutalność, ale już trochę naoglądałem sie prób stworzenia robota kroczącego i nie chcę żebyś kolejny raz popełniał te same błędy co inni - zrobienie takiego robota w warunkach amatorskich jest praktycznie niemożliwe w takim zakresie jak planujesz.

    0
  • #8 24 Paź 2010 22:50
    Pittt
    Poziom 30  

    MirekCz napisał:
    Przy robocie w ruchu? Opracuj precyzyjny algorytm to dostaniesz nobla ;-)
    Jak robot nie przyspiesza to akcelerometr poda pięknie przechył. W innym wypadku będzie to tylko zgadywanka.

    Nie przesadzaj, przecież to nie będzie baletnica.

    0
  • #9 24 Paź 2010 23:53
    GODsaveTHEcat
    Poziom 11  

    Chmm utwierdziła się teza ze jest to mój pierwszy robot. Otóż nie, tą frajdę mam już za sobą. Mam już analogowego robota na podstawie starej zabawki na zdalne sterowanie oraz prostego chodziaka na 2 serwa (w wersji analogowej B.E.A.M (Not so dummy walker) oraz ze sterowaniem na Arduino (starałem się by ta wersja symulowała ciekawe zachowania poprzedniej). Niezbyt to bogaty dorobek ale zawsze coś :-)

    Czegoś tu nie rozumiem, do czego potrzebny mi pomiar drogi i kompas? Nie chce by robot szedł w jakimś specyficznym kierunku i nie interesuje mnie jaki dystans przebędzie. Chodzi mi o to by się nie wywracał kiedy wejdzie na przeszkodę. Dajmy że robot zacznie się przechylać w prawo, akcelerometr (lub inny czujnik) to wykrywa i podkurczają się nogi po lewej stronie (czy też odchylają się odpowiednio serwa przechyłu (te pierwsze)).

    Pnie McRancor a no w jakim zakresie ja planuje? Bo na razie to tylko że chciałbym jakoś stabilizować robota. Jak pisałem szaleńcem nie jestem, dobrze zdaję sobie sprawę że do zbudowania tak mobilnej maszynki jak na filmie (to chyba przez ten link ma mnie pan za niepoprawnego optymistę marzyciela) nie mam ani wiedzy, ani materiałów, ani nawet wyobraźni. Ta konfiguracja nóg wydała mi się po prostu o dziwo łatwiejsza do zastosowania stabilizacji (łatwiej mi było sobie wyobrazić stabilizacje z takimi nogami niż z owadzimi).
    A żeby rozwiać wszelkie wątpliwości jaki to ja mam zakres w planach to podam założenia
    -robot ma chodzić stabilnie do przodu i do tyłu
    -wejść na przeszkodę wysokości 3-4cm bez wywrotki
    -omijać większe przeszkody (ma skręcać)
    -wykrywać zaklinowanie się nogi (monitorowanie rzeczywistego położenia serwa)
    -podążać za światłem (stare ale zawsze daje to jakiś sens istnienia robaczkowi)

    większość tych założeń spełniał mój poprzedni chodziak choć z tą wywrotką było różnie bo nie miał żadnej stabilizacji (i strasznie pokracznie się poruszał), a przeszkody wykrywał wąsami (też nie zawsze działało ale był na tyle "uparty" że w końcu jakoś wychodził z opresji).
    Bardzo dziękuje za materiały z pewnością się z nimi zapoznam :-)

    Wracając do tematu siła serw również mnie martwi, widziałem hexapody na mikro-serwa (18serw) ale nie jestem pewien czy są 4 nożne w wersji mikro. Co do Atmegi to nie mam pojęcia czy będzie w stanie to obliczyć (zawsze mogę dodać drugą albo kupić inny mikro kontroler np Atom BasicPro) ale to wyjdzie dopiero "w praniu" i nic na to nie poradzę.

    PS. Cieszy mnie takie zainteresowanie tematem i jeszcze raz dziękuję za wszystkie odpowiedzi.

    0
  • #10 25 Paź 2010 00:39
    MirekCz
    Poziom 35  

    Trochę źle zrozumiałem Twoje intencję.
    Do tego co planujesz potrzebujesz inklinometru (lub akcelerometru z odrobina kodu). Odczytasz z tego sensora przybliżony przechył robota i będziesz mógł uniknąć wywrotki. Do tego nie potrzebujesz skomplikowanych obliczeń.

    Przy tylu serwach najlepiej żeby jeden mikrokontroler sterował serwami, a drugi zarządzał ogólnie robotem (sprawdzał czujniki, przeprowadzał analizę sytuacji i ustalał kolejną pozycję serw, ew. komunikował się z użytkownikiem). Zastosowanie dwóch mikrokontrolerów pozwoli Tobie też w łatwy sposób przeskoczyć problem braku wejść ADC, chociaż słabo widzę tyle kabli w tak małym robocie.

    Przy większych serwach mógłbyś zastosować coś w stylu openservo - własna płytka sterująca każdym serwem z odczytem pozycji i komunikacją rs232 lub podobną. Dużo roboty, ale można uzyskać dużo lepsze sterowanie niż standardowo występuje to w serwie.

    0
  • #11 25 Paź 2010 18:15
    McRancor
    VIP Zasłużony dla elektroda

    Na forum nikt nikomu na Pan nie mówi ;) Wszyscy życzymy Ci jak najlepiej, dlatego takie zainteresowanie i masa krytyki - błędy im wcześniej wyeliminowane tym tańsze ;)

    Potrzebujesz przeliczać kinematykę prostą i odwrotną, bo podkurczenie trzeba uwzględnić w trakcie ruchu nóg, a nie tylko kiedy robot stoi. Bez tego robot będzie ześlizgiwał się z przeszkód, a nie na nie wchodził.

    Przechył w ruchu może określić para akcelerometr + żyroskop, z filtracją kalmana. Przechył z samego akcelerometru można oszacować jedynie kiedy robot jest nieruchomy, a poziom chcesz regulować więc nie jest to za bardzo możliwe - sama stabilizacja kiedy robot stoi nic nie da - kiedy robot się wywraca nie stoi ;) Inklinometr też załatwiłby sprawę, ale nie są to czujniki tanie.

    0
  • #12 25 Paź 2010 19:17
    GODsaveTHEcat
    Poziom 11  

    Lepiej dwa razy pomyśleć niż potem poprawiać :-)

    Nnie umiałem znaleźć inklinometru (do zakupu), ale z tego co wstępnie wyszukałem to są one dość duże i powolne? (1 odczyt na sekundę?).
    W poprzednim robocie miałem bardzo prosty sposób na wchodzenie na przeszkody. Nogi nie chodziły według czasu ale według położenia. Jeśli nie udało się wykonać kroku w danym czasie (noga nie osiągnęła zadanego położenia) to te ostatnie położenie zostawało zapisane jako nowe maksymalne (to znaczy środek ruchu zmieniał się ustawicznie, oczywiście program dążył do tego by powrócić do pierwotnego stanu). Stabilność robota uzyskiwałem przez odpowiedni kształt nóg (potem przekombinowałem i robot stracił swoje magiczne właściwości).

    Myślę czy by nie można zastosować podobnego systemu tutaj + czujnik dotyku. Dzięki temu robot mógłby "wyczuć" że noga dotknęła już podłoża i nie potrzeba już większego wychylenia nogi (lub na odwrót zostało osiągnięte odpowiednie wychylenie ale nie dotknął ziemi). Byłoby to przydatne gdyby np. nogi po jednej stronie weszły na np. książkę a nogi po drugiej szły dalej po podłodze. Taki prymitywny system mógłby odciążyć trochę układ stabilizacji. Chyba standardowe owadzie nogi lepiej pasowałyby do takiego systemu (zastanawiam się nad tym czy nie lepiej zamiast dobrego układu stabilizacji, tak opracować robota by mógł w łatwy sposób się odwrócić). Tak czy owak muszę poduczyć jeśli chodzi o akcelerometry i żyroskopy.

    Wracając do temu serw, zakup większych serw już byłby dość dużym obciążeniem dla mojego portfela nie mówiąc o wymianie płytek. Przyznam że zamierzam się zaopatrzyć w elektronikę (częściowo) w chinach (chyba nie zrobię zbytniej reklamy jak dodam że w sklepie hobbyking w którym już kilkakrotnie się zaopatrywałem). Dziwi mnie ze w tak wielu robotach stosuje się serwa Hiteca, ja jakoś nie mam dobrego mniemania o tej marce (miałem takie serwa w modelu i wcale nie były żywotniejsze od o wiele tańszych chińczyków). Mógłby ktoś polecić jakieś serwomechanizmy?

    PS: Czy są jakieś programy symulacyjne do których mógłbym wprowadzić model robota i obliczyć kinematykę? Na razie stosuje RoboWorks do tworzenia modelu i zorientowaniu się jak będzie wyglądał zakres ruchu itp ale tam nie mogę zadać żądanej pozycji i zobaczyć jak program powygina nogi.

    0
  • #13 26 Paź 2010 13:28
    McRancor
    VIP Zasłużony dla elektroda

    Jeżeli stosujesz serwomechanizm modelarski to nie masz żadnej informacji o położeniu nogi. Szacowanie położenia na podstawie czasu nie jest dobrym pomysłem, strasznie to zawodne.

    Dobre serwa hitec są na prawdę dobre. Odpowiednio dobrane są niezniszczalne, jak choćby legendarne już w świecie helików HS-65MG. Czy HS-9xxMG które zrobiły swego czasu furorę jako napęd robotów minisumo. Problem jak sam zauważyłeś - dobre serwo kosztuje i to jest kwota trzycyfrowa za sztukę, nawet turnigy ma w ofercie porządne serwa, ale ich koszt też jest dużo większy niż budżet przeciętnego projektu.

    Na tanich serwach, jak choćby CS929MG nie ma co podchodzić do tematu, bo te serwa się najzwyklej w świecie spalą pod takim obciążeniem.

    0
  • #14 26 Paź 2010 16:19
    GODsaveTHEcat
    Poziom 11  

    Właśnie dla tego potrzebuję po jednym wejściu analogowym na serwo. Wyciągnę dodatkowy kabelek od potencjometru w serwie i odczytując napięcie będę znał rzeczywiste położenie serwa. Martwisz mnie mówiąc o tych serwach, miałem nadzieje że uda się upolować coś (może topornego i powolnego ale) w miarę wytrzymałego. Muszę się poważnie zastanowić nad tym ile mogę wydać na ten projekt i jak "porządnie" chce go wykonać.
    W między czasie wymyśliłem alternatywne system stabilizacji, oparty na foliowych czujnikach nacisku. Gdybym zastosował owadzią konfigurację nóg i algorytm chodu w którym 3 nogi zawsze mają kontakt z podłożem mógłbym ustalić czy robot jest stabilny odczytując nacisk wywierany przez każdą nogę.

    0
  • #15 26 Paź 2010 22:47
    McRancor
    VIP Zasłużony dla elektroda

    Robot znowu musiałby być całkowicie nieruchomy = to nie zadziała.

    Musisz mieć system który powie Ci o odchyleniu robota w trakcie trwania ruchu, czyli musi być niewrażliwy na przyśpieszenia działające na konstrukcje.

    Serwa modelarskie nie są stworzone do pracy pod ciągłym obciążeniem, rozsądne wydaje się w takim przypadku zastosowanie przekładni samohamownych.

    0
  • #16 26 Paź 2010 23:49
    GODsaveTHEcat
    Poziom 11  

    A cóż to są przekładnie samohamowne (coś mi świta ze ślimak jest chyba samohamowny)? Zdaję sobie sprawę iż żywotność robota nie będzie zbyt imponująca ale to przecież nie sprzęt użytkowy. Ma dożyć końca testów (pisanie programu etc.) i kilku pokazów dla ciekawskich. Myślałem o bardzo prostych amortyzatorach na nogi które by trochę zredukowały siły działające na serwomechanizmy (2 rurki węglowe wchodzące do siebie teleskopowo i jakaś sprężynka lub gąbka). Niezbyt to wyszukane ale nie mam lepszego pomysłu.
    Algorytm z podnoszeniem tylko jednej nogi na raz jest dość powolny, mam 3 punkty podparcia więc robot mógłby tak balansować by się nie wywrócić. Jeśli za całkowitą wagę robot będzie brał sumę z wszystkich czujników nacisku i będzie dążył by np. nacisk po prawej stronie robota i po lewej był ten sam (niezależnie czy są to 2 podpory na jednej stronie czy tylko 1) to przy powolnym chodzie powinno się to jako tako sprawdzać. Głowy sobie za to uciąć nie dam bo nie mam z tym doświadczenia praktycznego, ale przecież konstrukcja robota już będzie zapewniać jako taką stabilność (nie zbuduję czegoś wysokiego i wąskiego a raczej szerokiego i niskiego).

    PS. Przy cenie serwomechanizmu 6$ za sztukę mogę zaryzykować że po pewnym czasie będę je musiał wymienić. Zastanawiam się nawet nad najtańszymi HXT900 za 3$(przy tak tanich serwach można by rozważyć hexapoda), na pewno nie pociągną długo ale za to ich wymiana nie będzie tak bolesna dla kieszeni. W tej skali i tej cenie nie ma chyba odpowiedniego dla robotyki substytutu serwomechanizmów.

    0
  • #17 27 Paź 2010 15:21
    McRancor
    VIP Zasłużony dla elektroda

    Przekładnia samohamowna to taka która przenosi ruch w jedną stronę, ślimakowa to właśnie coś tego typu, przy czym zarówno obrotowa, jak i liniowa będą idealne. Jednak skoro chcesz pakować tam tanie serwa - Twoja wola, ja mam sumienie czyste ;)

    Policz jaką różnicę nacisku spowoduje przechył, sprawdź jaką uzyskasz dokładność i powtarzalność pomiarów. A w ruchu to nie zadziała i tak z tego samego powodu z jakiego nie zadziała akcelerometr - zapominasz że nie tylko grawitacja działa na takiego robota.

    Amortyzatory z włókna węglowego? Brzmi jak kawałek ferrari. Same sprężyny wystarczą. Ale wyeliminujesz tylko siłę skręcającą działającą na wał. siły ścinające dalej będą łamać obudowę i tryby.

    0
  • #18 27 Paź 2010 22:32
    GODsaveTHEcat
    Poziom 11  

    Hehe jakoś mi się tak z węglem powiedziało bo trochę się nim bawiłem w modelach :-) Chodziło mi o budowę ostatniego modułu nogi tego który się styka z ziemia (nie jak w mrówce gdzie jest sprężynka przy pierwszym serwomechanizmie) wystarczyłyby dwie rurki jedna która wchodzi w drugą, zakleić końce i między nie włożyć sprężynkę, przeciągnąć sznurek z pętelką żeby noga nie wypadała i tyle. Innymi słowy amortyzowana stopa (tak przy okazji wydaje mi się że to zmniejszy siłę ścinającą a nie skręcającą działajacą na wał serwa).

    Wracając do serwomechanizmów, to sądziłem iż masz na myśli trwałość silnika i elektroniki bo przecież zębatki planuje metalowe (na razie myślę o micro serwach Corona 939MG z 2,7kg*cm). Z modelarskiego doświadczenia (skromnych doświadczeń) częściej mi wysiadały serwa z powodu elektroniki i silników niż połamanych trybów (chyba ze było to efektem zjechanych już zębatek). Choć jak głębiej pomyśleć czym mniejsze siły działają na zębatki tym silnik mniej się męczy.

    Jako że nie mam żadnych doświadczeń w zdobywaniu (czy też budowaniu?) napędów chce się zapytać wprost co ty byś zastosował na moim miejscu? (Powiedziałeś przekładnie samohamowną ale gdzie takie coś zdobyć, chodzi ci o cały napęd czy dołożenie przekładni do serwa itd.?)
    Zacząłem powoli przeglądać materiały które mi poleciłeś. Bardzo podoba mi się wykonanie mrówki, aczkolwiek kilka spraw załatwiłbym (przynajmniej wyobrażam sobie) prościej. Teraz już przynajmniej na pewno wiem ze jeden Arduino nie da sobie rady z obliczeniem i odczytaniem tego wszystkiego w zadowalającym czasie.

    [Edit]: Właśnie znalazłem stronkę z rozebranym serwem MG939 LittleFrog - robot kroczący z systemem stabilizacji niestety nie jest w "pełni metalowe". Jedyne w pełni metalowe serwa w rozsądnej cenie jakie znalazłem to TowerPro MG996R LittleFrog - robot kroczący z systemem stabilizacji czyli nowsza(słabsza?) generacje 995 zastosowanych w "mrówce", przy okazji znalazłem też i 995 tyle ze w wersji z hexatronixs (HX12K) są nieco tańsze wiec byłby dobre gdybym chciał wymieniać elektronikę z serw. To już oczywiście serwa standard czyli robot urośnie ale to raczej dobrze zważywszy na to że będzie więcej miejsca na układy sterowania.
    [Edit2]: Znalazłem również troche informacji o ArduImu (teoretycznie do zastosowań lotniczych), oparty jest właśnie na parze akcelerometr + żyroskop dokładnie jak mówiłeś. Cieszy mnie to bo nie będę musiał odkrywać ameryki pisząc program na Arduino.

    0
  • #19 29 Paź 2010 09:25
    McRancor
    VIP Zasłużony dla elektroda

    Jakbym znowu miał zajmować się takim robotem to zrobiłbym to na napędach liniowych. Mogłoby to być przerobione na liniowe serwo, albo jakieś DIY oparte o napędzaną ślimacznicę przesuwającą karetkę. Przeguby obrotowe są poddawane działaniu bardzo dużych momentów i "trzymanie" nogi za pomocą silnika elektrycznego jest moim zdaniem złym pomysłem. Prędzej czy później to musi się zużyć.

    Te serwa o których piszesz bywają bardzo kiepskiej jakości, pękają w nich obudowy itd. Jeśli chcesz robić na nich to kup z zapasem.

    Piszesz że w Twoim modelarskim doświadczeniu trybów nie zniszczyłeś. A ja przy jednym twardym lądowaniu helikiem połamałem wszystkie 3 na tarczy na raz ;) (takie nonamowe plastykowe niebieskie 9g) Teraz latam (za dużo powiedziane) na małych metalowych turnigy (to samo co te metalowe corony) i można walić w ziemię aż miło, a tryby mają kompletny uśmiech.

    ArduImu wygląda ciekawie, ale tam jest tylko jednoosiowe gyro! Potrzebne są co najmniej dwie osie gyro + 3 akcelerometru

    0
  • #20 29 Paź 2010 22:53
    GODsaveTHEcat
    Poziom 11  

    Nie tyle co nie połamałem zębatek (bo to się zdarzało, szczególnie na serwach Conrad), co po prostu więcej serw umarło mi z powodu silników i elektroniki (np. cały komplet Hitecków Hs55 mi tak padł w pierwszym modelu).

    Chwilę mi zajęło żeby zrozumieć o co ci chodziło z tymi przekładniami samohamownymi, ale teraz już jest to dla mnie jasne. Rozwiązanie idealne... gdyby było dostępne. Kłopot w tym, że zbudowanie 12 napędów z przekładnią ślimakową i odczytem położenia jest raczej ponad moje możliwość techniczne jak i finansowe. Koszt budowy jednego takiego napędu wyniósłby mnie pewnie coś koło 40-50zł(przekładnia, silnik, ośki, łożyska, potencjometr i żeby było wystarczająco dokładnie musiałbym zamówić wycinane komputerowo części na obudowę), a przecież ma być ich co najmniej 12.
    Jedyne co mogę zrobić to bardzo uważać na wagę i tak zaprojektować nogi by maksymalnie odciążały serwomechanizmy (amortyzatory, sprężyny i „oś” z tyłu serwa).

    Myślę, że skoro troszeczkę już mi się rozjaśniło w związku z tym na co się porywam to trzeba unormować kilka spraw. Po pierwsze jaka skala będzie odpowiednia. Do tego muszę się dowiedzieć ile sprzętu będzie zamontowanego na robocie.

    Napęd:
    -12 serwomechanizmów na nogi (mimo wszystko na nic innego mnie nie stać)
    - 1 serwomechanizm na głowę

    Czujniki:
    -4 cyfrowe czujniki dotyku na "stopach" (krańcówki)
    -sonar LV-MaxSonar-EZ1 (zamontowany na "głowie")
    - 5DOF IMU LPR550AL/ADXL345 (3 osiowy cyfrowy akcelerometr i 2 osiowy analogowy żyroskop)
    - czujniki położenia czyli po prostu potencjometry w serwach

    Łącznie 13 wyjść i 7 wejść cyfrowych oraz 16 wejść analogowych. Trochę dużo...

    Sterownik:
    Jeden Arduino nie da rady potrzebne są co najmniej dwa (Jeden Arduino Mini(Atmega168) i jeden Mini Pro (Atmega328)). Mini ma 8 wejść analogowych oraz mniej pamięci, dodam do niego 8 kanałowy przetwornik ADC i będzie odczytywał wartości z potencjometrów i czujników analogowych. Zobaczymy czy będzie też dostatecznie szybki żeby wykonywać jakieś wstępne obliczenia. Zdobyte dane wyśle przez port szeregowy do ProMini. ProMini będzie miał trochę więcej roboty będzie odczytywał wartości cyfrowe i odbierał dane z Mini, żeby tego było mało będzie musiał generować chód na podstawie danych z czujników. Jeśli to przekroczy możliwości dwóch mikro kontrolerów to dodam trzeci.

    Zasilanie:
    -akumulator Litowo Polimerowy (7,4V chyba wystarczy? Pojemność zależna od skali)
    -UBEC 8A (chwilowo15A) zapewni sporo prądu dla serwomechanizmów, zastanawiam siec czy dla mniejszych serw nie wystarczyłoby 5A(7,5A)? Który byłby po prostu lżejszy
    -liniowe stabilizatory napięcia 5V i 3,3V dla mikrokontrolerów i czujników

    Sporo sprzętu, jednak w większości to drobnica. Myślę że pozostanę przy micro serwach, te Corony kosztują 6$ więc koszty nie będą aż tak duże (kupie trochę na zapas). Motywujące dla mnie jest to, że ktoś już użył aż 19 micro serw w malutkim robocie i się jakoś pomieścił. µBug nie jest jednak idealnym wzorcem dla mnie bo to hexapod, a jego konstrukcja raczej nie oszczędza serwom wysiłku.

    Na razie to by było na tyle (i tak się rozpisałem, a dużo z tego nie wynika), do następnego posta postaram się dołączyć jakiś wstępny model komputerowy robota.

    0
  • #21 30 Paź 2010 20:48
    krdln
    Poziom 12  

    Zastanawiałem się, czy zamiast czujników dotyku nie można by wykorzystać serw sterujących ruchem góra-dół, korzystając z tego że do zwykłej zmiany pozycji serwa (kiedy noga jest w powietrzu) jest potrzebna mniejsza siła niż wtedy gdy serwo stoi w miejscu i musi utrzymać kilkaset gram ciężaru.

    Można by podpiąć się pod pin sterujący obrotem do dołu w serwie, następnie w jakiś sposób to wygładzić, aby na wyjściu otrzymać napięcie proporcjonalne do momentu siły, jakiego używa silnik. Jeśli chciałbyś mieć na wyjściu 1/0 to można dać komparator porównujący z jakąś doświadczalnie ustaloną wartością.

    Od strony kosztów to rozwiązanie jest bardzo tanie, na jedną nogę wystarczy kilka oporników, kondensator i do tego np. wzmacniacz operacyjny. Czyli 2zł/nogę. Przekłamań raczej nie powinno być, chyba, że masz zamiar robić bardzo szybko machać tymi nogami. Poza tym myślę, że rozwiązanie jest warte sprawdzenia, skoro i tak już grzebiesz w serwach.

    Jeśli palnąłem jakąś głupotę, przepraszam.

    0
  • #22 30 Paź 2010 21:08
    lord_blaha
    Poziom 33  

    Jeżeli czujnikiem dotyku ma być wg zamysłu Autora krańcówka, to patrząc pod względem ekonomicznym bardziej się opłaca (w wersji najprostszej- microswitch-30gr/ szt) i mniej komplikuje całość. A zasada KISS (Keep It Simple, Stupid) w robotyce sprawdza się zawsze :)

    0
  • #23 30 Paź 2010 21:46
    GODsaveTHEcat
    Poziom 11  

    Trzeba by było monitorować obciążenie co najmniej dwóch serwomechanizmów na nogę czyli łącznie 8, mimo że to tylko kilka elementów to zajęłoby to sporo miejsca (nie mam sprzętu ani umiejętności do lutowania SMD). W innych okolicznościach można by to zastosować do opracowania algorytmu chodu "przyjaznego" serwom. Niestety na razie i tak jest już sporo do obliczenia i pomieszczenia w tym robocie.
    Podoba mi się zasada KISS :D

    0
  • #24 05 Lis 2010 19:56
    GODsaveTHEcat
    Poziom 11  

    Przepraszam że tak odgrzewam temat, ale szkoda mi było zakładać nowego.
    Trochę sprawę przemyślałem i sądzę, że w przypadku projektu o tak dużym stopniu skomplikowania (przynajmniej dla mnie) najlepiej będzie zacząć od stworzenia porządnego modelu komputerowego i symulacji. Na razie wybieram między dwoma symulatorami anyKode Marilou oraz Microsoft Robotic Simulator. "Marilou" wydaje mi się trochę łatwiejszy w obsłudze i ogólnie wygląda atrakcyjniej ale nie jestem pewien czy zdołam się zmieścić w ograniczeniach darmowej wersji dla hobbystów. MRS za to nie ma ograniczeń jednak jest o wiele trudniejszy w obsłudze z powodu DSS (system zdecentralizowany). Mówiąc szczerze w MRS nie udało mi się zrobić jeszcze nic, a Marilou już kilka rzeczy mi wyszło. (Dodatkowo umiejętność tworzenia takich symulacji na pewno mi się kiedyś przyda.)

    Z trochę innej beczki. Zastanawiam się nad tym czy nie można by trochę oszukać z programem dla robota. Jednym z problemów o których mnie ostrzegaliście jest czas potrzebny na obliczenie tego wszystkiego. Arduino może nie dać rady dlatego pomyślałem czy by nie można tego obejść poprzez komunikacje bezprzewodową ze zwykłym komputerem PC. Myślę tu o o module Wi Fi, robot wysyłałby surowe czy też wstępnie przetworzone odczyty czujników do komputera gdzie byłby one o wiele szybciej przetworze niż na Arduino, w odpowiedzi robot dostawałby gotowe rozkazy. To goły koncept i nie wiem czy zdałby egzamin, tzn czy byłby szybszy od obliczania wszystkiego "na miejscu" dlatego chciałbym się zapytać czy to w ogóle ma sens?

    0
  • #25 05 Lis 2010 22:49
    McRancor
    VIP Zasłużony dla elektroda

    Ma sens, na pewno wymiana programu i komplikowanie obliczeń nie będzie problemem :) Tylko przemyślałbym to całe WiFi jeszcze raz. Szczerze mówiąc ja bym wsadził tam BT - prostsze i tańsze.

    Co do modelowania - bardzo dobry krok. Ja niestety w czasie studiów nie zdążyłem opanować nic takiego, a teraz to już... ;)

    0
  • #26 19 Lut 2011 21:50
    GODsaveTHEcat
    Poziom 11  

    Witam. Znowu odgrzewam kotleta. Gdyby zawitał tutaj Pan moderator to prosiłbym o zmianę tematu na coś w rodzaju "LittleFrog - robot kroczący z systemem stabilizacji" ponieważ wszelkie zagadnienia z tego projektu chcę zawrzeć w jednym temacie.

    Na razie leci do mnie nunchuck i motion plus do konsolki wii z których mam nadzieje wyciągnę trochę czujników. Ostatnio dużo czasu spędziłem nad rozgryzaniem kinematyki. Jakoś się to udało i mam gotowe wzory dzięki którym mogę wyznaczyć współrzędne "stopy" na bazie katów i stałych wymiarów nogi. Jednak odwrócić tych wzorów już ni potrafię. Na moim poziome matematyki nie umiem wykorzystać informacji z wykładów o odwróconej kinematyce jakie znalazłem na internecie. Dlatego wpadłem na jakże nie elegancki i toporny pomysł: "Olać kinematykę odwrotną, zrobię olbrzymią tabelę"
    Chodzi o to że zrobiłem kompletną rozpiskę (w exelu) wszystkich możliwych kombinacji kątów na 3 stopniach swobody i współrzędnych stopy jakie dadzą. Z dokładnością 2 stopni, zakaldając że serwo ma zakres 90 stopni to wychodzi ponad 97 tysięcy, z dokładnością do 3 stopni około 27 tysięcy. Dodatkowo w tej "bazie danych" znalazła się suma współrzędnych (X+Y+Z) do każdej kombinacji. Jak to miałoby działać?
    Robot oblicza jakie współrzędne nogi potrzebuje, wysyła zapytanie przez bluetooth do komputera, komputer przeszukuje bazę danych:
    Krok 1 sumuj podane współrzędne XYZ
    Krok 2 wyszukuje 9 kombinacji dających sumę współrzędnych najbliższą tej zadanej
    Krok 3 odrzuca trzy kombinacje które mają kąt alfa najdalszy od obecnego kąta na pierwszym stopniu swobody
    Krok 4 odrzuca trzy kombinacje które mają kąt beta najdalszy od obecnego kąta na drugim stopniu swobody
    Krok 5 wybiera jedną kombinację której kąt delta jest jak najbliższy obecnemu kątowi na trzecim stopniu swobody
    Potem tę kombinację kątów wysyła z powrotem do robota.
    Pytanie poste czy jest szansa na rozsądnie szybkie znalezienie potrzebnej kombinacji z ok. 100 lub chociaż 30 tys. zapisanych? Innymi słowy czy ten pomysł ma sens?

    PS: Jeśli są chętni to mogę zamieścić wspomniane wzory wraz z rysunkami, niestety na razie mam je tylko w formie "kalkulatora współrzędnych" w exelu, i musiałbym je przepisać.

    0
  • #27 19 Lut 2011 22:43
    McRancor
    VIP Zasłużony dla elektroda

    Edytuj sam pierwszy post i zmień temat :)

    Nie wiem czy to dobry pomysł z olewaniem odwrotnej, bo niepotrzebnej roboty sobie narobisz, żeby w efekcie Amerykę na nowo odkryć! Radzę spojrzeć jak to robili inni, jak przeliczali wzorki i powinieneś coś swojego zrobić - przecież te same wzorki możesz wykorzystać, a pierwszy kinematyki dla kroczka nie liczysz.. (zajrzyj jeszcze raz do pracy magisterskiej o mrówie!).

    To co próbujesz zrobić to nic innego jak sporządzanie wielkiej tabeli wartości zamiast jednego wzorka...

    0
  • #28 19 Lut 2011 23:27
    GODsaveTHEcat
    Poziom 11  

    Kiedyś tak było, ale teraz nie mogę zmienić tematu w pierwszym poście. Można tyko zmienić tekst postu. Nigdy nie miałem styczności z macierzami :( może dlatego tak ciężko mi to obliczyć.

    edit: Załączam moje wypociny w PDFie. Wkradła się mała pomyłka, punkt P powinien być przy tej samej nodze co punkt K.

    edit2: wracając na chwilę do tematu napędów samohamownych znalazłem ciekawe gotowe przekładnie ślimakowe firmy DOBROL z kardanem i bez kardana. Nie wiem do czego normalnie się ich używa(chyba coś z oknami) ale wyglądają ciekawie i są tanie jak barszcz. Może dałoby się coś z nich zrobić (połączyć z serwem albo zbudować na ich bazie własny napęd).
    Dodaję odnośnik do obrazka
    LittleFrog - robot kroczący z systemem stabilizacji
    i wymiary:
    Wysokość: 2,0cm
    grubość: 0,8-1,4cm
    szerokość: 5,0-6,8cm

    edit3: nie będę śmiecił na forum dlatego tylko edit :) te przekładnie to mechanizmy do żaluzji. Bardzo łatwo można połączyć taką przekładnie z silnikiem przy użyciu prop saver'u (odsyłam do google jeśli ktoś nie kojarzy). Udało mi się dorwać dwa typy: z kardanem o przełożeniu 8:1 i wersję do żaluzji drewnianych (z drucikiem zamiast kardana) o przełożeniu 10:1. Niestety nawet łącząc dwie przekładnie łącznie 80:1 wyniki miałem mizerne, mogłem spokojnie zatrzymać ośkę palcami (w przypadku serwa to jest prawie niemożliwie), dodatkowo ślimacznica jest zrobiona z miękkiego plastiku a w miejscu trzyma ją obudowa o którą ociera. Myślę że te mechanizmy mogą się przydać do jakichś robotów jeżdżących, ale z pewnością nie do kroczących.

    0
    Załączniki: