Która firma jest obecnie na topie w robotyce? Boston dynamics czy jakieś inne chińskie, japońskie firmy w tym obecnie przodują?
W jakich językach programowania pisze się software do tych robotów czy jest to głównie python, a rdzeniem jest c++.
Czy tak jak w serialu westworld może tam być zwykły javascript odpowiedzialny za oprogramowanie ai?
Widziałem takie małe roboty programowane w javascript. Wyszedł jakiś figure 02, unitree g1 konkurencja dla optimusa gen 3.
Myślałem że ten atlas jest najlepszy ale jak widać konkurencja nie śpi i przyspieszyła.
Jest jeszcze coś godne pokazania?
Robotyka rodzaje robotów
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
- Rejestracja: dni
- Ostatnio: dni
- Postów: 358
Python/C++/C, głównie masz odwrotną kinematykę, kinematykę, algorytmy automatyki typu PID controller, filter kalmana, który łatwo i w pythonie i w C++ zapiszesz, ale zwykle chcesz to mieć jakoś sprawniej to albo masz embedded mikrokontroler lub robisz analogowy odpowiednik wtedy masz czasu rzeczywistego gdyż jak w mikrokontrolerze przykładowo całkujesz czy różniczkujesz to masz odstępy np. co jakiś tick zegara uC, a jak masz analogowy to masz praktycznie rzeczywisty układ, ale roboty jest znacznie więcej i trudniej potem układ zmienić jeśli źle rezystory i kondenstaory dobierzesz.
Ja jak robiłem cnc robota to tam są jeszcze dodatkowe rzeczy jak kalibracja, czyli bardzo dokładne zmierzenie wymiarów i położenia robota, żeby zkalibrować parametry w celu bardziej dokładnego określenia jego pozycji, a także mechanicznie też musisz umożliwić daną precyzję, jakie silniki zastosujesz czy brushless czy krokowe, te pierwsze mają większą moc i mniej energii zużywają, ale musisz dać jakieś przekładnie redukujące cycloid driver, gear box itp.
W javascript też pewnie możesz pisać, ale Python/C++/C się łatwo przenikają, łatwo to wszystko łączyć i do matmy dla obliczeń na tensorach w pythonie jest pełno udogodnienia do programowania na karcie graficznej czy cpu, używając vektorowych instrukcji.
Używając javascript mógłbyś wysyłać komendy po jakimś protokole np. do serwera, czy bluetooth, uart cokolwiek instrukcje jakie ma ruchy dane silniki wykonywać robot, czy czynności np. otwarcie dłoni, jeśli by to był servo lub jest zjawisko elektryczne gdzie materiał się przyczepia, takie macki, akurat zapomniałem jak to się nazywa.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
Na tym filmie unitree g1 jest pokazane że ten robot jest podłączony do ai serwerowni i za pomocą uczenia maszynowego uczy się ruchów metodą prób i błędów wykorzystując zgromadzone dane. Jest tam pokazane tysiące wirtualnych robotów jak ćwiczą naukę walki kijem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 358
Ja używałem reinforcement learningu do uczenia automatyki kontroli i taki pid kontroler jest znacznie lepszy, lepiej do każdego silnika brushless dać pid controller, który będzie kontrolował położenie, a model AI agenta co najwyżej będzie mówił jaki chciałby położenie osiągnąć i podawał jako błąd do kontrolera.
Sterowałby gdzie iść co robić, a ruchy kończymami by były sterowane przez silnik kontrolowany układem kontrolnym typu PID controller, taki najprostszy w budowie ale bardzo skuteczny i używałem go wiele razy nigdy nie zawodzi nawet jakbyś lutownice sobie zrobił żeby ci zamierzoną temperaturę ładnie trzymało.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
Jak w tym serialu missions roboty i ai były programowane w golangu. Ale czy obecnie ktoś pisze ai i programuje roboty w go, google ma takie oprogramowanie?
Wstaje jak ten nowy atlas, zapewne zainspirowali się tym filmem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 358
Da się w golangu, ja programowałem tak, że w C++ pisałem kod do microkontrolera, który kontrolował wszystkie silniki, a odwrotną kinematykę obliczałem w pythonie na tensorach i wysyłałem do robota instrukcje jakimi trajektorami ma się poruszać.
Jak obliczysz odwrotną kinematykę dla punktu, to musisz jeszcze obliczyć dla prostej, ja wyznaczyłem w 3 wymiarach wektorową reprezentację prostej punktA-punkB * t, mając prostą minimalizowałem błąd opuszczenia ręki robota poza tą prostą, da się też zredukować ilość wymiarów, gdyż torso i wrist jest stały to z 6 można nawet do 3 wymiarów, wtedy jest mniej obliczeń, następnie trzeba uwzględnić ograniczenia, constraints gdyż np. ręka może zrobić ruch np. tylko 90 stopni itp czy 180, nie można brać wszystkiego czyli 360, chyba że taki masz model co umożliwia, musisz uwzględnić ogarniczenia i kolizje ręki z własną ręką.
Jęzky nie ma znaczenia, matematykę możesz nawet na kartce papieru obliczyć.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
Od czego to zależy że te algorytmy nie są w stanie jeszcze wykonywać takich płynnych ruchów jak w filmie Ja robot? Kiedy to może nastąpić aby była taka płynność w ruchach jak u człowieka?
Jest to wina oprogramowania czy tych silniczków elektrycznych i siłowników wspomagających ruchy kończyn, czyli kwestie hardware?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2420
W Europie top to ABB (Szwajcarskie) i KUKA (Niemieckie). Są też małe startupy tu i tam, kiedyś sie rekrutowałem do startupu NoMagic.
Poważne roboty to:
- ROS (Robot Operating System) - nakładka na Linux'a, taki framework do pisania robotów. System sterowania składa się z node'ów (coś ala aktorzy w Akka) które wymianiają ze sobą informację. Dostajesz na wejściu wsparcie do czujników oraz algorytmy sterowania. Jeśli nie wiesz co to sterowanik PID to czas się dowiedzieć.
- C++, Python to sobie można w domu zrobić robocik follow the line. Prawdziwe roboty to często real time lub near real time. Oprócz C++ i Embedded C, jest też sporo sterowników PLC które mają różne dziwne środowiska i systemy programowania (takie przemysłowe komputerki).
- Polecam dobre wprowadzenie (z dużą ilością obrazków): https://link.springer.com/book/10.1007/978-981-16-0804-9
Ostatnio liznąłem nieco temat, w kontekście autonomicznych samochodów. Generalnie wiem że nic nie wiem....
- Rejestracja: dni
- Ostatnio: dni
- Postów: 358
Zależy jakie tam są silniki czy co steruje ruchem, brushless motors to one pędzą 1000 obrotów na minutę czy więcej/mniej, masz redukcję + kontroler, który kręci bardzo szybko w jedną i drugą stronę i silnik utrzymuje ciężar w miejscu, jest to pewnie trochę inne niż to jak ludzki mięsień pracuje czyli jest skurcz, ale jest to skuteczne.
Na pewno jak jakieś może siłowniki czy jakieś inne urządzenia do kontrolowania ruchu wybiorą, żeby i mało energii zużywały, były lekkie i miały dużą siłę i szybkość.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2420
PS. Co do programowania robotów to najprostsza i najbardziej intuicyjna metoda to z angielska Teach pendant
Bardzo łatwo zrobić to z arduino. Trzeba najpierw poprzerabaić RC Servo - dolutować kabelek to środkowej nóżki potencjometru servo tak żeby móc czytać w Arduino pozycje servo.
Potem składamy servo w robota, ustawiamy "ramię" tak jak trzeba i zapisujemy pozycje servo w pamieci Arduino. Potem wykonujemy kolejny krok ruchu i znów zapisujemy itd....
Potem możemy odtworzyć to sekwencję ruchów. Jest to najbardziej intuicyjny sposób programowania i nie trzeba liczyć macierzy żeby rozwiązać "inverse kinematics" ale ma swoje ograniczenia (tylko preprogramowane ruchy).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
@99xmarcin nie wiem czy to akurat w tym filmie ale gdy kamera była kierowana na laptop, to zatrzymywałem obraz i podpatrywałem w jakim języku programowania je kodzą i był to dość często python.
Azjaci mają jakąś obsesję aby ich roboty wyglądały jak ludzie, a na zachodzie odwrotnie lubią metal. Przypomina to film robocop 3 gdzie w ameryce były roboty metaliczne, a te japońskie wyglądały jak humanoidalne androidy.
Do terminatora, paco jeszcze trochę brakuje.