Samodzielny (lub mogący być) symulator robotyki

13

Jestem inżynierem oprogramowania, który zgłosi się jako organizacja non-profit, która wprowadza młode dziewczyny do technologii. Ostatnio rozmawialiśmy o metodach wprowadzania tych dzieci w świat robotyki i jestem ciekawy, jakie mamy opcje tanich opcji.

Jednym bardzo atrakcyjnym pomysłem byłoby posiadanie symulatora online lub (bardziej preferowanego) samodzielnego symulatora offline, z którym możemy budować i programować proste roboty. Być może nic więcej niż przeciąganie komponentów razem, a następnie programowanie interakcji między nimi.

Jakie rozwiązania istnieją, z których mogę skorzystać w naszym zasięgu?

Sampson
źródło
Z mojego doświadczenia wynika, że ​​niedziałający robot o przeciętnym wyglądzie zyskuje o wiele więcej uwagi (jako robot) niż pełnoprawny fajnie wyglądający robot w symulatorze. Dopóki nie jest to prawdą, równie dobrze może to być gra komputerowa lub kreskówka dla wszystkich dzieci.
Shahbaz
Potrzebujemy symulatora, aby dziewczęta mogły nauczyć się pojęć programistycznych i wykorzystać je. Symulator nie musi być ładny - może być niczym więcej niż surowymi geometrycznymi kształtami. Kod jest najważniejszy.
Sampson,

Odpowiedzi:

7

Stage i Gazebo są odpowiednio symulatorami 2D i 3D typu open source. Są tworzone i obsługiwane przez projekt Player . Są bardzo łatwe w użyciu i mają wiele gotowych map i robotów. W zależności od doświadczenia odbiorców może być konieczne wykonanie ciężkiego podnoszenia (tj. Budowanie plików konfiguracyjnych i głównych klas).

Mają też kilka dodatkowych korzyści. Po pierwsze, o ile tworzysz główny kod sterujący jako wtyczki odtwarzacza, można je łatwo dostosować do prawdziwych robotów. Po drugie, istnieje już wiele wtyczek zbudowanych do pracy z prawdziwym sprzętem. Po trzecie, pracują z ROS .

DaemonMaker
źródło
4

Być może jest to trochę drogie (75 CHF), ale wciąż sugeruję Colobota . To miłe, niemal podobne do gry środowisko, w którym roboty muszą pomagać ludziom w tworzeniu bazy kosmicznej. Roboty są programowane przez dzieci podczas wykonywania coraz bardziej złożonych zadań. Program uczy podstaw programowania w zorientowany na cel, zabawny sposób.

riki
źródło
3

Robotyka firmy Microsoft jest BEZPŁATNA i zawiera symulator . Nie jest to najłatwiejsze środowisko na świecie, ale JEST ono solidne i odpowiednie dla prawdziwej robotyki. Myślę, że przy pewnym zaangażowaniu nauczyciela, aby przygotować rzeczy wcześniej, może to być przydatne. Istnieje pakiet „symulatorów” dla LEGO, Neato i niektórych innych robotów, które można zaprogramować w języku C # lub wizualnym języku przeciągania i upuszczania.

Ponownie myślę, że wymagałoby to trochę pracy z góry, aby ułatwić młodym ludziom korzystanie, ale nie byłoby to takie trudne i byłoby to moje podejście, biorąc pod uwagę twoje wymagania. Powiedziałbym, że jeśli chodzi o złożoność, to (Windows) vs. środowisko Linux z Gazebo / ROS, środowisko Windows byłoby nieco mniej skomplikowane, chociaż mam nadzieję, że większość z nich zostanie ukryta podczas prac przygotowawczych.

Kolczasty 3
źródło
2

RobotC ma dostępny symulator , chociaż oba są produktami za pewną opłatą . Są jednak bardzo nastawione na młodszych studentów i edukację. Byłaby to najłatwiejsza i najbardziej odpowiednia trasa, jeśli koszty nie są czynnikiem blokującym ( około 100 USD na licencję dla jednego użytkownika, 300 USD dla 6 użytkowników, 600 USD dla 30 użytkowników ).

Jeśli kupisz wersję studencką ROBOTC za MINDSTORMS NXT LEGO, cena może wynosić 49 USD za każdą lub 40 USD (ponad 20 licencji)

Kolczasty 3
źródło
2

V-Rep (Virtual Robot Experimentation Platform) wydaje się dość szeroka w rodzajach symulacji, które może wykonać. Jest bezpłatny dla celów edukacyjnych i oferuje szeroki zakres narzędzi. Możesz obejrzeć ten film na YouTube, aby zobaczyć wersję demonstracyjną.

Shahbaz
źródło
1

Może nie jest to pełny symulator robotyki, ale używamy 3D CAD, Autodesk Inventor, całkiem sporo do symulacji. Zwykle interfejs CAD jest podobny do tego, co chcemy, aby był dla sprzętu. W ten sposób możemy wykorzystać model CAD jako wirtualny prototyp do:

  • Wczesne wykrywanie błędów projektowych. Zderzenia, niewystarczający skok itp.
  • Przydał się także do znajdowania kompensacji błędów, takich jak błędy wyrównania. Za pomocą CAD możemy modelować różne błędy jeden po drugim i testować nasze kompensacje. Wygodne jest wprowadzanie dużych błędów ze znanym znakiem.
  • CAD udziela również odpowiedzi na takie rzeczy, jak momenty bezwładności.
  • Używamy również modelu CAD do generowania programu dla sprzętu.
Johan Larsson
źródło
Popraw mnie, jeśli się mylę, ale CAD bardzo koncentruje się na poprawnym modelowaniu sprzętu i fizyki, a tym bardziej na programowaniu robota. OP jest zainteresowany nauczaniem programowania, a nie inżynierii, więc myślę, że system CAD nie rozwiązuje jego problemu
ThomasH
@ThomasH mieliśmy pewne sukcesy w programowaniu do interfejsu CAD i w ten sposób mogliśmy dużo rozwinąć. Czy powinienem usunąć?
Johan Larsson
1
Nie trzeba usuwać. To nie jest zła odpowiedź tylko dlatego, że uważam, że nie jest to idealne dopasowanie do OP. Głosowanie zwykle napędza najbardziej odpowiednią odpowiedź na szczyt, a OP zaakceptuje tę, która najbardziej pomogła. Ale twoje może nadal być interesujące dla kogoś z podobnym problemem, z którym się spotyka to pytanie
ThomasH
1

Może chcesz sprawdzić „ MindRover ”. Teraz jest stara i trudniejsza do znalezienia, ponieważ oryginalna strona internetowa jest nieczynna, ale nadal można ją znaleźć w serwisie eBay lub Amazon . Chociaż zorientowana na grę / misję, wymagała wybrania z palety komponentów robota, umieszczenia ich na podwoziu, a następnie połączenia ich ze sobą. To była naprawdę dobra robota dla gry i może być wykorzystana do odkrywania prostych lub częściowo zaawansowanych koncepcji. Niektóre zrzuty ekranu tutaj: http://images.google.com/images?q=mindrover .

Jeśli szukasz czegoś poważniejszego z możliwościami w świecie rzeczywistym, możesz wypróbować FlowStone for Education . Nie korzystałem z niego, ale wierzę, że jest to wizualne środowisko programistyczne idealnie nadające się do pracy z robotyką.

Na koniec , choć nie oprogramowanie ani symulacja, ostatnio natknąłem się na komentarz reddit autorstwa phblj dotyczący techniki wprowadzania programowania i pomyślałem, że to naprawdę dobre (i szczególnie przystosowalne do programowania robotyki). Zacytować:

Świetny przykład komputerów, które zrobiłem z dziećmi: jedno dziecko musiało być „programem” i dawało instrukcje, jak zrobić masło orzechowe i galaretkę, ale nie mogły obserwować moich działań. Byłem komputerem i dokładnie przestrzegałem instrukcji. Wynikła z tego wesołość. (Nie zdejmując pokrywki z orzeszków ziemnych, nie wyciągając chleba z pudełka, w którym go miałem). Po minucie podeszło inne dziecko i spróbowało. Posunęli się trochę dalej, ale wciąż szarpali się. „Połóż masło orzechowe na chlebie” spowodowało, że słoik siedział na bochenku itp. Zajęło to kilku dzieci, ale w końcu je dostaliśmy. Jeśli masz asystenta, poproś go, aby napisał instrukcje, tak jak powiedziano, tworząc „program”.

Możesz więc uzyskać wyjaśnienia, ale tak naprawdę utknęło w tym, że każde z nich było „mądrzejsze niż komputer”. Ale komputery były bardzo, bardzo szybkie w przestrzeganiu instrukcji. Musieli więc użyć swojego smarta, szybkości komputera i ... programowania!

kaliatech
źródło