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

Damian - Robot humanoidalny

bartods 06 Lis 2017 07:09 14436 46
  • #31
    bartods
    Poziom 16  
    Przepraszam myślałem że nikt się tym tematem nie interesuje. Kończę właśnie wystarczająco mocny uniwersalny sterownik silników (serwa), gdzie sterowanie odbywa się na trzy sposoby poprzez I2C, analogowo (jak serwa), oraz manualnie (poprzez potencjometr). Jak testy dobiegną końca opublikuję następną część. Samo pozycjonowanie nogi w stawie biodrowym to jakaś porażka, projekt zakłada 2 osie w jednym stawie i podczas gdy jeden silnik porusza nogą w osi X oddziałuje na oś Y która musi automatycznie korygować odchylenie nogi tak aby kąt odchylenia utrzymywał się na zadanej pozycji.
    Pozdrawiam

    .... Udało się zaprojektować nowy sterownik silników DC, sterownik pracuje w 2 trybach cyfrowym (sygnał serwo) i analogowym (ADC 0-5V).
    Sterownik posiada algorytm PID który rozszerza funkcje regulacji silnika. Dzięki sterownikowi bez problemu można przekształcić zwykły silnik DC w serwo.
    Poniżej krótkie filmy przedstawiające tryby pracy sterownika:
    sterowanie analogowe

    Link

    sterownie cyfrowe

    Link

    Niestety z braku czasu postęp w budowie robota trwa znacznie dłużej od założonego, jednak w tym roku w planie jest postawienie pierwszego kroku. Wszelkie części mechanizmu nóg udostępniam za darmo, Projekt nóg znajduje się na portalu thingiverse

    ......

    Po wielu niepowodzeniach i uszkodzonych częściach w końcu udało mi się uruchomić mechanizm nogi. Jedna noga może z łatwością podnieść całą wagę robota. Niestety, wciąż istnieją małe problemy ze sterownikiem i pozycjonowaniem. Jestem pewien, że problemem jest wewnętrzny oscylator mikroprocesora. Muszę zmienić mikroprocesor na taki, który ma więcej wyjść, aby można było użyć zewnętrznego oscylatora. Dodatkowo można będzie użyć wyjścia pomiaru prądu w VNH2SP30. Sterownik serwa jest kluczem do prawidłowego pozycjonowania nóg i pozbycia się niechcianych ruchów.

    Ale jak widać mechanizm nóg jest bardzo silny i szybki, myślę, że jest wystarczająco szybki do normalnego chodzenia.

    To są filmy nagrane podczas testu.

    Link


    Link


    Link


    Link
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Relpol przekaźniki
  • #32
    nobanmeplease
    Poziom 14  
    Tego się nie spodziewałem, widzę że potrzebne byłyby sensory na kończynach i mocnieszy komputer który śledziłby "szkielet" w czasie rzeczywistym i wydawał polecenia do silników DC :)
    Myślę o języku Octave, bo jest uniwersalny i służy do dość skomplikowanych symulacji na niemal dowolnej liczbie nodów obliczeniowych mpich lub mosix.
    https://www.gnu.org/software/octave/
  • Relpol przekaźniki
  • #33
    yogi009
    Poziom 42  
    Kurczę, dla zwykłego śmiertelnika wygląda to na ogrom pracy. Pełny szacunek za porwanie się na taki projekt.
  • #34
    bartods
    Poziom 16  
    Witam, dziś kończę soft i mam nadzieję że to już ostatnia wersja serwo drivera. Aby uprościć sobie trochę zadanie driver jest oparty o atmegę328P, a dokładnie arduino nano. Posiada on zewnętrzny oscylator 16Mhz i na razie trwają testy pod oscyloskopem. Muszę posprawdzać jak pracują timery zliczające czas impulsu sterującego serwa, jak dotychczas wszystko wygląda bardzo obiecująco. Dodatkowo sterownik dostanie w prezencie dodatkowe opcje jak pomiar prądu dla poszczególnych silników. Jeśli chodzi o mocny komputer to raczej starałem się rozłożyć to co jest możliwe na mniejsze jednostki obliczeniowe (mikroprocesory), powoli zaczynam tracić orientację ile już ich tam jest. Niestety pozycjonowanie nóg w czasie rzeczywistym i uwzględniając w to wręcz ogrom czynników zewnętrznych których można by wymieniać i wymieniać jest lekko mówiąc troszkę trudnawe.
    Yogi, jestem takim samym śmiertelnikiem jak każdy inny, nie zgadzam się z tym że trzeba od razu być Einstein-em. Oceniając siebie powiem krótko, jestem uparty do bólu, a każdy problem motywuje mnie jeszcze bardziej. To tyle i aż tyle. Podejrzewam i jestem niemal pewien że większość użytkowników tego portalu ma większą wiedzę na te tematy ode mnie, tylko boją się spróbować.
    Pozdrawiam
  • #35
    nobanmeplease
    Poziom 14  
    Jak skończysz to wkroczysz w ekstremalny obszar w którym będziesz musial poznać sieci neuronowe, jak i anatomię układu nerwowego by to dorównało robotowi Sophia a nawet go przerosło.
    Do tego będziesz musial poznać schematy podobnych projektów np. IBM Watson.
    Planuję zamówić Dell Poweredgdy R900 bo mam do niego 80gb ramu, do tego dojdą niezbędne karty graficzne, więc będę mógł Ci pomoc rozwijać sztuczną inteligencję gdyż ja też buduję humanoida :)
    Pozdrawiam!
  • #36
    bartods
    Poziom 16  
    Dobrze wiedzieć, na pewno skorzystam z porad. Jak na razie pracuję nad własnym algorytmem sztucznej inteligencji, niestety wszystkie systemy sztucznej inteligencji opierają się o schematy blokowe tworzonych baz danych w tym i Sophia. Tak naprawdę nie doszliśmy do sztucznej inteligencji a tylko do tworzenia iluzji robota rozumiejącego mowę i poprawnie odpowiadającego. Jak dotychczas wszystkie algorytmy są przewidywalne i ograniczone przez ich twórcę. Pracuję nad czymś innym niż dotychczasowe rozwiązania, nie wiem czy jestem na dobrej drodze do osiągnięcia celu. Chcę aby podstawa algorytmu tworzyła swój własny algorytm, bardziej nieprzewidywalny i opierający się na danych nie tylko składających się ze słów i odpowiedzi na nie ale też na doświadczeniach wzrokowych i dotykowych. Chciałbym unikać tzw. blockchain ze względu na ich przewidywalność. Zetknąłem się już z algorytmem który potrafi uczyć się mowy od przysłowiowego zera opierając się tylko na analizie z początku nieznanych mu znaków i powolnym uczeniu się słów a później całych zdań w tym ich coraz bardziej sensownej analizie nie pamiętam teraz dokładnie jego nazwy. Analizował on rozmowy na czacie i powoli uczył się tworzyć z nich poprawne słowa a później całe zdania. Z początku wszystko wydawało się chaotyczne i bez sensu, ale z czasem zaczęły wyłaniać się pierwsze słowa, a później całe składnie. Niestety im bardziej zagłębiam temat tym bardziej przestaję go rozumieć, tak samo jak algorytm im bardziej go rozwijam tym coraz bardziej zaczynam gubić się w jego poszczególnych rozgałęzieniach. Ilość danych jest tak duża że nie ma jak spojrzeć na całość, a analiza poszczególnych gałęzi nie daje obrazu całości.
    Jak dotychczas udało mi się opracować podstawę wyłapywania informacji z poszczególnych zdań oraz naukę wizualną, niestety połączenie tych dwóch algorytmów nie jest proste. Dochodzi tu czynnik zrozumienia co lub kto znajduje się w otoczeniu i jaki wpływ ma na aktualny temat.
    Sam zmysł dotyku jest jeszcze bardziej pogmatwany. Robot powinien uczyć się tego jak dany przedmiot oddziałuje na niego i odwrotnie. Jest to temat tak zawiły że niemal niemożliwy do zrealizowania. Nie chcę tworzyć puszki wykonującej przydzielone zadania, tylko coś co będzie mogło decydować czy i jak je wykonać.
    Pozdrawiam.

    Minęło trochę czasu i zostałem zmuszony do budowy ramy na której Damian będzie mógł bez większych przeszkód zacząć naukę chodzenia.
    Niestety poprzednia prowizoryczna rama przeszkadzała w poruszaniu nogami przez wystające kółka, dodatkowo środek ciężkości potrafił wysunąć się poza obszar kółek co mogło się skończyć małą katastrofą. W tzw. międzyczasie powstaje chyba już ósma wersja sterownika DIY serwa, poprzednia została ukończona i dość dobrze spełnia swoje zadania, lecz apetyt rośnie w miarę jedzenie i kolejna wersja jest już sterowana poprzez I2C. Dzięki temu transmisja danych przebiega dwukierunkowo, sterownik odbiera dane ustawia silnik w zadanej pozycji i przekazuje ją w czasie rzeczywistym wraz z innymi danymi. Dodatkowo dzięki uprzejmości Ray-a sterownik dostał podwójną pętle PID która steruje też prędkością obrotową w zależności od ustalonego punktu. Prace trwają również nad wysterowaniem stóp. Po wielu konsultacjach doszedłem do wniosku że w każdej ze stóp muszą znajdować się co najmniej 3 tensometry (tak naprawdę to więcej już ich tam nie zmieszczę, a to jeszcze nie wszystko co ma być w stopach).
    Damian - Robot humanoidalnyDamian - Robot humanoidalny
    Pozdrawiam.

    Kolejne poprawki kolejny projekt, niestety jak mogłem się już wcześniej domyślić stopa Damiana musi być przeprojektowana na nowo. Nowy projekt zakłada wewnętrzny mechanizm ślimakowy przechyłu bocznego stopy. Dodatkowo w stopie ze względu na dużą czułość układów HX711 na zakłócenia musiało znaleźć się dla nich miejsce tak aby przewody były możliwie jak najkrótsze. Aby zgrać to wszystko razem i skomunikować z jednym z głównych kontrolerów musiało znaleźć się miejsce także dla płytki NANO. Dodatkowo przednia część stopy zyskała swoje serwo oraz czujnik odległości. Reasumując stopa ma za zadanie też mierzyć odległość od podłogi, a po lekkim uniesieniu jej przedniej części serwomechanizmem odległość od przeszkód na podłodze (podczas chodu). Dzięki temu że stopa jest "świadoma" swojej odległości od podłoża można odpowiednio dostosować prędkość mechanizmu nogi do aktualnego położenia. Po ustawieniu stopy na podłodze środek ciężkości Damiana jest kontrolowany dzięki 3 tensometrom zamontowanym w głównej jej części. Korygowaniem środka ciężkości zajmuje się już (i to wydaje się być najtrudniejsze) reszta ciała, jakikolwiek ruch którejś z kończyn zmienia jego położenie. Nie jestem jak na razie pewien jak uwzględniać to w algorytmie lecz dzięki wielu małym jednostkom (mowa o mikrokontrolerach) najlogiczniejsze wydaje się automatyczne korygowanie przez każdą z nich. Obawiam się przy takim założeniu efektu echa, podczas gdy jeden moduł będzie korygował swoje nastawy kolejny moduł będzie robił to samo i tak w nieskończoność (z boku mogło by to wyglądać na atak padaczki u robota).
    Zaczynam oswajać się z myślą że stanę przed problemem którego nie będę mógł przejść i projekt mnie w końcu pokona (ale próbować warto).
    Damian - Robot humanoidalnyDamian - Robot humanoidalnyDamian - Robot humanoidalny
    Pozdrawiam
  • #37
    nobanmeplease
    Poziom 14  
    Szanuję zapał, moja konstrukcja już kilka miesięcy jest nieruszana, obecnie pracuję nad ręką, która została uspawana z nawiasów i garści nakrętek.
    Zostały z jednej strony wstawione gumowe linki (gdybym mógł to byłyby sprężyny).
    Zaś z drugiej są stalowe linki przeciągnięte przez przyspawane nakrętki.
    System ścięgien działa na takiej zasadzie że stalowe linki naprężają palce, a gumowe usztywniają do pierwotnej pozycji.
    Do sterowania zastosuję 5 silników od wkrętarki, które będą sterowane za pomocą mostka H sterowanego programowo.
    Teoretycznie ręka ma mieć tyle siły że będzie można na niej się podciągać :)
    Właśnie zastanawiam się czym można by osłonić palce, aby smar nie uciekałi, byłoby odporne na uszkodzenia i było w miarę miękie.
    Obecnie myślę o plastikowym peszlu do kabli, lecz może jest coś lepszego?

    Damian - Robot humanoidalny

    Damian - Robot humanoidalny

    Wracając do robota to teraz widzisz że potrzebna jest tutaj znacznie większa moc obliczeniowa, przez co pojedyńcza stacja robocza odpada :)
  • #38
    bartods
    Poziom 16  
    Czy silniki od wkrętarki będą służyły do sterowania palcami? Nie za mocne? Kolega widział mechanizm kolana sterowany tylko jednym silnikiem od wkrętarki, jest to w stanie podnieść dość spory ciężar. Czy ma kolega jakieś konkretne sterowanie silnikiem od wkrętarki? Sam mostek H tu nie wystarczy, bardzo trudne jest pozycjonowanie pracy silnika. Przy dość dużych prędkościach trzeba już bawić się w algorytmy PID lub algorytmy przewidujące położenie a następnie to wszystko zestroić do danego mechanizmu. Jest to masa pracy i droga przez mękę. Napisałem już osiem różnych wersji sterownika servo i przyznam szczerze że nie jestem do końca zadowolony z rezultatów choć działa to już w miarę stabilnie. Jeśli chodzi o jednostki sterujące to mniejsze zajmują się głównie dość prostymi obliczeniami lecz absorbującymi ich timery i przerwania dzięki temu jedna jednostka nie jest zmuszona do ciągłego sprawdzania 20-30 przerwań w czasie rzeczywistym. Główna jednostka zajmuje się jakby to ująć.... wyższymi celami. Pozdrawiam i życzę powodzenia
  • #40
    MONTR
    Poziom 13  
    Temat trochę zamilkł. Miał kolega czas na dalsze postępy w budowie?
    Myślę że nie tylko ja czekam na kolejne wpisy w tym temacie
  • #41
    maxipug
    Poziom 12  
    Damian - Robot humanoidalny

    A to mój Czesio, prace idą powoli, sam druk nie jest żle ale ceny serwomotorów troszke nadwyrężają budżet a żonie ciężko wytłumaczyć gdzie niknie pare stówek miesięcznie...

    Wracając do tematu w tym tygodniu ukoncze nareszcie wszystkie części drukowane
  • #42
    bartods
    Poziom 16  
    Jest! W końcu ktoś jeszcze wziął się za budowę robota InMoov. Szacunek, szkoda, że kolega skorzystał z oryginalnego brzucha i nóg, niestety te nogi nie będą mogły pracować. Gael parę miesięcy temu napisał, że nogi będą na razie tylko ozdobą, od kiedy zacząłem z nim wyścig na zaprojektowanie nóg. Serwa rzeczywiście nie są tanie i szczególnie te sterujące palcami lubią puścić dymka (uwaga na krzywki do każdego palca trzeba projektować indywidualnie i najlepsze są eliptyczne). U mnie niestety projekt się zatrzymał ze względu na budowę oraz kolejny powiązany z Damianem projekt. Jestem na etapie połączenia algorytmu nauki i sterowania domem poprzez Damiana coś na styl głównego komputera pokładowego jak w STAR TREK. Wszystko bezprzewodowo. Ma to być coś na kształt prawie inteligentnego domu (piszę prawie, bo algorytm to nie prawdziwa inteligencja). Niestety teraz wszystko nazywają inteligentnym, a w prawdzie są to urządzenia w których bez ingerencji człowieka i zaprogramowania schematów nic niezwykłego się nie wydarzy. Damian dzięki integracji z domownikami uczy się ich zachowań i przyzwyczajeń (kiedy jedzą, śpią, piją, co piją, jaką temperaturę w pokoju preferują etc.), algorytm domyślnie ma rozpoznawać domownika przewidywać jego zachowanie i proponować schematy.
    Jeszcze mnóstwo pracy, a mój plan zakłada może zbyt wiele, jednak chciałbym ukończyć projekt wraz z zakończeniem budowy domu tak, aby system ruszył wraz z jego odbiorem. Niestety kolejna platforma to kolejne problemy do rozwiązania, ale już teraz przynoszą ciekawe efekty. Jak na razie nie mogę zbyt dużo na ten temat mówić ani ujawnić algorytmów, bo projekt ma być finalnie projektem komercyjnym. Dostałem parę propozycji z zagranicznych firm, lecz chciałbym, aby był to produkt Polski i produkowany w kraju. Pozdrawiam i czekam, aż kolega ruszy ze swoim robotem. Jak idą prace z AIML?
  • #43
    Mi Studio
    Poziom 2  
    Cześć,
    Ja również wkręciłem się w projekt InMoov. Gratuluje rezultatów. Moje postępy w budowie są dużo mniejsze niż Wasze. Zapraszam do obejrzenia filmu na którym przedstawiam relację z budowy ręki. Jest on mniej techniczny niż Wasze filmy, ale sądzę że będzie dla Was ciekawy.

    Link

    Szkoda, że dopiero teraz znalazłem ten wątek.
  • #44
    maxipug
    Poziom 12  
    U mnie chwilowo postępy zatrzymały się.Montaż serw do ramion spowodowała ukręceniem zębatek, czekam na lepsza pogodę i wszystkie zębatki ślimakowe i elementy przekładni mam zamiar odlac z aluminium.
    Główny szkielet został wycięty z 10mm akrylu.
    Generalnie wszystkie słabe punkty które są w tej konstrukcji(a jest ich wiele) zosaną ulepszone przezemnie tego lata
    Co do nóg, wiem że to tylo ozdoba ale teraz mniej straszy syna mojen szwagierki, przedtem chłopak dosyć konkretnie się bał go
  • #45
    jasper2
    Poziom 10  
    Jak u was trwają prace. Ja nie dawno zacząłem drukować. Wydrukowałem już całą prawą i lewą rękę (łącznie z serwomechanizmami - zostały po modelach RC). Teraz drukuję głowę. Schodzi się z tym co nie miara. Drukuje z części oryginału. Jak dokończę głowę stanę przed dylematem czy drukować Bartosza czy oryginał. Co Wy byście polecili.
  • #46
    bartods
    Poziom 16  
    Mój projekt miednicy oraz nóg nie jest jeszcze finalnym projektem, aczkolwiek nogi są w pełni sprawne i sprawdzone przy podnoszeniu większych ciężarów. Jednak algorytm poruszania oraz pomysł z zastosowaniem w stopach Damiana czujników tensometrycznych wymaga dość dużego wysiłku w programowaniu tego algorytmu. Jest masa zmiennych jak nierówność podłoża, wyważenie konstrukcji biorąc pod uwagę położenie każdej części ,następnie to czy robot nie trzyma czegoś w ręku co mogło by spowodować zmianę środka ciężkości, czy jakiś czynnik zewnętrzny nie wpływa na wyważenie konstrukcji choćby powiew wiatru czy też człowiek który np. podaje dłoń etc. Jedna osoba raczej nie jest w stanie dopracować tego stricte do końca, potrzebny jest cały zespół, szybsze i bardziej stabilne środowisko programistyczne lub utworzenie go na nowo, aczkolwiek projekt otwiera na nowo oczy w kierunku projektowana oraz programowania. Niestety z powodu rozpoczęcia budowy domu projekt u mnie zszedł na dalszy plan dopóki nie ukończę budowy. Jak na razie tworzę cały system inteligentnego domu który będzie współpracował nie tylko ze znanymi środowiskami smart home ale też z Damianem. Już niedługo opublikuję na forum może niezbyt ambitny projekt ale dla mnie niezbędny przy budowie nowoczesnego domu rekuperacji sterowanej głosowo przez Damiana z własnym sterownikiem sterowanym także dotykowo oraz dodatkowo sterowanym bezprzewodowo. Wszystkie systemy obsługujące wentylacje domową zostały przeze mnie uwzględnione w sterowniku i nie kolidują ze sobą. Dodatkowo .... hmmm o tym powiem w publikacji. Pozdrawiam
  • #47
    nobanmeplease
    Poziom 14  
    Szanuję bardzo mocno za ambicje, jak zrobisz dom to chętnie Ci pomogę z tym problemem.
    Będzie trzeba stworzyć wirtualną wersję Damiana która będzie symulowała jego kinematykę według odczytów z czujników, dzięki czemu będzie szło po przez uczenie maszynowe nauczyć dobrze łazić.
    Do tego celu będzie potrzebny mocny komputer wykonany z serwera i kart graficznych o mocy kilkudziesięciu Teraflopsów (będzie potrzebne więcej ramu niż 32gb).

    Link