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?
10
Odpowiedzi:
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.
źródło
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.
źródło
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.
źródło