Quadruped Learning Simulator


10

Obecnie buduję robota z czterema nogami ( poczwórnie ), 3 DOF (stopnie swobody) i zasugerowano tutaj , że używam symulatora do nauki na komputerze, a następnie przesyłam algorytmy do robota. Używam Arduino Uno do robota i jakiego oprogramowania mogę użyć do symulacji uczenia się, a następnie móc przesłać na tablicę Arduino?


Czy użyjesz istniejącego robota, czy sam go zaprojektujesz i zbudujesz?
DaemonMaker,

1
Zbudowałem robota już od zera :)
Jordan

Odpowiedzi:


3

Altana to dobre narzędzie do tego, co chcesz robić. Ponieważ używasz niestandardowego robota, musisz zbudować model do użycia z symulatora. Udało im się uczynić to tak łatwym, ale dla kwadratu mogę sobie wyobrazić, że zajmie to trochę czasu.

Altanka jest również miła, ponieważ dobrze współpracuje z ROS, co oznacza, że ​​jeśli zbudujesz, możesz zbudować program do sterowania robotem i wysyłać polecenia do symulowanego robota za pośrednictwem integracji lub do prawdziwego robota za pośrednictwem rosserial . Uwaga: jeśli nie korzystałeś z żadnego z tych narzędzi, opracowanie rozwiązania zajmie trochę czasu.


1
Rzuciłem okiem na niektóre kroki, aby zainstalować to i wygląda to na długi proces i jestem bardzo obeznany z większością tego, i używam Maca, który nie wydaje się zbytnio wspierany. +1 za wiarygodne rozwiązanie, ale być może będę musiał szukać dalej
Jordan

Alternatywą byłoby zbudowanie własnego symulatora z czymś takim jak OpenGL. Złożoność tego zależy od kinematyki twojego robota i od tego, czy będziesz symulował dynamikę.
DaemonMaker,

2

Nie obejmowałoby to symulacji robota, ale biblioteka uczenia maszynowego OpenCV może być przydatna do oceny algorytmów uczenia się i parametrów szkolenia do pobrania do robota.

Obejmuje implementację sieci neuronowej, która może być szczególnie interesująca dla tego problemu.

OpenCv jest również standardową biblioteką i prawdopodobnie dobrze się zintegruje z innym symulatorem samego robota.


Czy to naprawdę zadziała? Czy biblioteka OpenCV ML zmieści się na Arduino?
DaemonMaker,

1
Cóż, nie, ale można go użyć do szkolenia parametrów algorytmu uczenia się na Arduino.
WildCrustacean

To dla mnie skomplikowane, jestem tylko w szkole średniej i liczyłem na znacznie łatwiejszą i przyjazną alternatywę. Być może program, który pozwala mi zaprojektować wirtualnego robota podobnego do mojego, a następnie wyświetla pozycje dla każdej nogi, które mogę po prostu skopiować i wkleić (zasadniczo) do kodu mojego projektu
Jordan

W takim przypadku może warto również przyjrzeć się temu pytaniu: robotics.stackexchange.com/questions/697/... Robotyka jest jednak skomplikowana, a robotyka z uczeniem maszynowym nie jest wyjątkiem. Jeśli poważnie podchodzisz do robotyki w przyszłości, nie byłoby złym pomysłem nauczyć się czegoś takiego jak OpenCV
WildCrustacean

1
Nie myśl też, że coś jest zbyt trudne do skomplikowania tylko dlatego, że jesteś w szkole średniej. Istnieje wiele miejsc (w tym ta strona), w których można znaleźć pomoc, jeśli utkniesz.
WildCrustacean,

2

Niedawno otwarty symulator V-REP może zaspokoić Twoje potrzeby. Uważam, że jest bardziej dostępny niż Gazebo i może działać w systemach Windows, OSX i Linux. Ich samouczki są dość proste. Istnieje mnóstwo różnych sposobów programowego komunikowania się z nim (w tym z ROS). Wygląda na to, że istnieje nawet samouczek dotyczący tworzenia heksapodu , który prawdopodobnie można wykorzystać jako punkt wyjścia, jeśli nie ma on jeszcze poczwórnego przykładu. Niestety, uważam, że symulator jest bezpośrednio związany z renderowaniem interfejsu użytkownika, co moim zdaniem niekoniecznie ma miejsce w przypadku Gazebo.

Tak więc twój program musiałby użyć jednego z wielu sposobów łączenia się z V-REP, a następnie wprowadzić wydajność określonego chodu, określonego na podstawie czujnika z V-REP, do algorytmu uczenia maszynowego (być może coś z OpenCV jako @WildCrustacean wspomniany). Będziesz musiał wymyślić tłumaczenie z opisu chodu używanego przez symulowanego robota na coś, co służy do sterowania rzeczywistymi silnikami w twoim Arduino.

Z drugiej strony możesz stworzyć własny symulator przy użyciu istniejącego silnika fizyki, renderując go za pomocą biblioteki graficznej. W tym celu można użyć odpowiednio Bullet i OGRE, jeśli lubisz C ++. Istnieje wiele innych dla innych języków programowania.

Chciałbym również przyjrzeć się, w jaki sposób naukowcy pracujący nad generowaniem chodu wykonują swoje symulacje. Może istnieć dedykowany projekt open source.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.