Pytanie Gdzie zacząć od programowania dla robotyki? [Zamknięte]


Ok, więc interesowałem się robotyką przez jakiś czas i miałem na myśli projekt. Budowa małego zdalnie sterowanego pojazdu-robota / bezzałogowego robota samochodowego. Mam nadzieję, że dzięki możliwości odczytu danych z urządzeń sensorycznych (GPS, termometr itp.) I zapisaniu danych do jakiegoś urządzenia. Pomysł (y) był przez jakiś czas na backburner, aż po prostu przeczytać następujące artykuł.

Moje pytanie jest takie. Gdzie powinienem zacząć. Nie mam absolutnie żadnego doświadczenia w tym innym niż kilka wyszukiwań w Google i mój pomysł na projekt. Chciałbym pobawić się z programowaniem płyt mikrokontrolera. Znam niektóre języki Java .NET i trochę C.

Jakąkolwiek pomoc, od czego zacząć?

Jak projektujesz robota, jakie kroki przechodzisz od początku do końca.

Dzięki.


31
2017-07-30 13:59


pochodzenie


Brakuje kluczowych informacji: 1) Jaki jest twój budżet? 2) czy jesteś bardziej zainteresowany niskopoziomowymi lub wysokopoziomowymi aspektami tworzenia robota (np. Budowanie i programowanie własnych sterowników silnikowych w porównaniu do robienia rzeczy na wysokim poziomie, takich jak ZATRZASNĄĆ)? 3) w jakim kształcie są twoje umiejętności w zakresie elektroniki? - Staffan
1) do 500 USD, ale id woli zacząć tańsze. 2) jestem zainteresowany stroną o niskim poziomie rzeczy, ale na pewno chciałbym spróbować programowania na wysokim i niskim poziomie 3) id powiedzieć nowicjuszowi umiejętności elektronicznych - Julio


Odpowiedzi:


Jeśli jesteś zainteresowany stroną programowania, możesz zacząć od czegoś podobnego LEGO MINDSTORMS. Jeśli bardziej interesuje Cię strona elektroniki, możesz sprawdzić niektóre z nich Paralaksa i Sklep robotów.

Znajdziesz tu mieszankę języków i platform, więc naprawdę wybierz swoje ulubione języki i znajdź coś w swoim przedziale cenowym. Robotyka może być bardzo zabawna (i bardzo czasochłonna).

BTW, możesz zrobić całkiem fajnego robota z tylko samochodem RC i PODSTAWOWY Stempel. A jeśli masz Port równoległy na komputerze można podłączyć komputer do samochodu RC, aby uzyskać jeszcze więcej mocy.


12
2017-07-30 14:17



Nie przepadał za zestawami Parallax. Nie są zbyt elastyczne w stosunku do samego robota (w przeciwieństwie do programowania). - Joel
Niektóre z nich mogą nie być zbyt elastyczne, ale są dobrym narzędziem do nauki. - Matthew Whited
To, co lubię w Lego Mindstorms, to to, że jest proste (podstawa "przeciągnij i upuść" i możliwość dodawania innych języków, takich jak Java), tanio rozszerzalne poza podstawowy zestaw (tylko podstawowy zestaw lego) i przyjemne w użyciu. - TheLQ


Lego Mindstorms to zaskakująco solidny system, który pozwala skupić się bardziej na tym, co naprawdę chcesz osiągnąć. Istnieją systemy, które pozwolą Ci programować w czymś innym niż wizualny język, który jest dołączony do zestawu, który preferowałem.

Lub możesz otrzymać zestaw startowy od DRAŻNIĆ, który będzie zawierał mikrokontroler PIC lub Cortex wraz z systemem programowania. Zestaw VEX jest jak zestaw Erector z mózgiem i silnikami. :-)


8
2017-07-30 14:18



Użyłem vex i jego okropnego systemu do programowania przeciwko. - TheLQ


The Arduino jest bardzo popularna platforma wśród hobbystów. Jest to w zasadzie programowalna płyta z kilkoma wejściami i wyjściami. Gorąco polecam zaczynać od niego ze względu na łatwość użycia i dużą wspierać społeczność.

Arduino to elektronika typu open source   platforma prototypowa oparta na   elastyczny, łatwy w użyciu sprzęt i   oprogramowanie. Jest przeznaczony dla artystów,   projektanci, hobbystki i wszyscy   zainteresowany tworzeniem interaktywnych   obiekty lub środowiska

Kilka osób stworzyło samouczki dotyczące budowania robotów z Arduino jako kontrolerem. Ten jest całkiem fajny.


5
2017-07-30 21:35





Robocode to gra symulacyjna robotyki, ale jest to dobre miejsce na rozpoczęcie pracy programisty Java.

Mogę również polecić książki Linux Robotics: Programowanie bardziej inteligentnych robotów i Robot budowlany Bonanza za naprawdę dobre przewodniki od początku do końca dotyczące budowy i programowania robotów.

Myke Predko ma również dobrą książkę o nazwie Programowanie kontrolerów robotów.


3
2017-07-30 14:07





Microsoft ma Robotocs Developer Studio.


2
2017-07-30 14:04





Niewielka konfiguracja do zainstalowania, ale powinno to dać ci wiele informacji na temat tego, czego chcesz się nauczyć, i zaoferować autentyczną praktykę czytania senatorów robotów, interakcji ze środowiskiem itp.

http://playerstage.sourceforge.net/

Oferują one środowisko Java Framework (oddzielne od oficjalnego obsługiwanego Framework), które ma własną dokumentację Sun Java.

http://sourceforge.net/projects/java-player/files/


2
2017-07-30 14:13





Biorąc pod uwagę, że chcesz zdalnie sterowany pojazd zdolny do poruszania się, będziesz oczywiście potrzebował jakiegoś silnika. Zakładam, że będzie napęd różnicowy lokomocja, ponieważ jest najprostsza w budowie i bardzo łatwa do kontrolowania.

Najprostszą opcją jest uzyskanie pary nieprzerwanych serf hobbistycznych. Są tanie (10 USD i więcej) i łatwe do przejechania przez PWM (cykl roboczy kontroluje prędkość). Jeśli chcesz go trochę przyspieszyć, możesz uzyskać parę silników prądu stałego i enkoderów. Będziesz potrzebował dodatkowego obwodu, aby je napędzić, ale możesz kupić to gotowe.

Jeśli nie chcesz, aby był na uwięzi, będziesz potrzebował baterii i jakiegoś radia na pokładzie. Jeśli nie masz nic przeciwko zrobieniu wszystkiego od zera WiFi jest najprostszym rozwiązaniem, moim zdaniem, ponieważ nie potrzebujesz dodatkowego sprzętu na komputerze, którego używasz; Zwykle ogranicza to twoje "komputerowe" i opcje oprogramowania (będziesz chciał uruchomić np. Linuksa).

Będziesz chciał MCU / board, który ma:

  • PWM, do napędzania waszych serwomotorów / silników
  • A / D, jeśli masz czujniki analogowe
  • Wiązka cyfrowych I / O dla czegokolwiek
  • Wbudowane WiFi lub sposób na połączenie karty WiFi (USB, mini-PCI)
  • SPI / I2C i UART dla różnych urządzeń peryferyjnych

Posiadanie sygnałów hosta USB ma dodatkową zaletę, że można łatwo podłączyć tanie aparaty.

Coś jak Roboard pasuje do rachunku (sprzedają również kartę wifi mini-PCI). Ma mnóstwo mocy obliczeniowej (w przeciwieństwie do wielu prostszych płyt, ma FPU!), Ma wiele opcji łączności, w tym USB, i jest wyposażony w bibliotekę przestrzeni użytkownika do sterowania urządzeniami peryferyjnymi. (Zastrzeżenie: sam tego nie przetestowałem).

Nie jest to najtańszy sprzęt, jaki można uzyskać, ale powinien on mieć miejsce na wzrost, jeśli chcesz wypróbować bardziej intensywne części robotyki (takie jak SLAM, wizja komputerowa i planowanie ruchu). Z drugiej strony nie musisz budować dla niego programisty / debuggera.

Jeśli wolisz zacząć od prostego, otrzymasz tańszą deskę podobną do tej Arduino wspomniany już ktoś może być lepszym rozwiązaniem. Korzystając z symulatora dobrze jest przetestować aspekty oprogramowania przed inwestowaniem w sprzęt.

Od czego zacząć od strony oprogramowania zależy od tego, co Cię interesuje.


2
2017-07-31 14:54



Powinienem także dodać, że C ++ jest dość dominujący w (akademickiej) społeczności robotyków, więc możesz lub nie chcesz się z nim lepiej zapoznać. - Staffan


Dodam głos na roboty LEGO tylko po to, aby zacząć, ale jak się masz jako programista? Jeśli chcesz się włamać na własną rękę, możesz załadować LeJOS na "klocek" LEGO (będziesz wiedział, że to znaczy, gdy się go obejrzysz) i uruchamiać na twoim komputerze własne programy Java, które będą oddziaływać / kontrolować LEGO robot bezpośrednio.

Ponadto, jeśli jesteś programistą, możesz chcieć spojrzeć na projekt Open Source (High Level Logic - HLL). Kod nie osiągnął jeszcze wersji 1.0, ale w prototypie znalazło się demo robotyki, a LEGO z LeJOS czekają na skrzydłach.

Roboty LEGO Mindstorms NXT (leJOS) - (Dynamiczna grafika w artykule działa poprawnie tylko w Firefoksie.) http://highlevellogic.blogspot.com/2010/10/lego-mindstorms-nxt-robots-lejos.html


1
2017-11-18 11:30



Dzięki za odpowiedź Roger. Java jest czymś, co używam regularnie, więc przyjrzę się temu. - Julio


Jeśli chcesz zrobić to dobrze i rozwijać umiejętności, które będą Ci dobrze służyły w branży robotyki, polecam spróbować ROS. ROS, "System operacyjny robotów" w rzeczywistości nie jest systemem operacyjnym (w rzeczywistości jest powszechnie uruchamiany w systemie Ubuntu). Jest to system komunikacji między procesami, zestaw narzędzi do kompilacji i debugowania oraz niesamowicie duża biblioteka doskonałych sterowników i algorytmów.

Aby rozpocząć bez fizycznego robota, możesz zacząć od dowolnego z symulowanych robotów w symulatorze Gazebo. Umożliwi to rozpoczęcie prac nad algorytmem i bez dużych nakładów czasu lub pieniędzy. Samouczki i przewodniki dla początkujących można znaleźć na stronie ros.org.

Powodzenia!


1
2018-04-21 04:41



Dokumentacja i wsparcie dla OS poza Ubuntu jest absolutnie straszne. Kiedy w końcu udało nam się skompilować plik projektu dla nas w systemie Windows, dla mnie i dla drugiego programisty wyglądało to jak greckie. stackoverflow.com/questions/18194359/... - FlavorScape
Masz całkowitą rację. ROS jest (bezwstydnie) zorientowany na systemy oparte na systemie Linux, w szczególności na Ubuntu. Zakładają, że jeśli zamierzasz korzystać z innej platformy, jesteś w stanie i chcesz "zapłacić piperowi", że tak powiem. Nie jest optymalna, ale taka właśnie jest. - Bradley Powers
Nie rozumiem, dlaczego nie użyłoby LLVM do kompilacji, lub pomyślałbyś, że przynajmniej wersja Java / Groovy zostanie udokumentowana i działa bez połowy połączeń w instalacji zepsutej. Mam na myśli C'mon, Java. To nie jest jak jego stwardnienie rozsiane. - FlavorScape