Jakie języki komputerowe powinniśmy znać w robotyce?

Najlepsza odpowiedź

Najprostszą odpowiedzią byłoby C ++ i Python .

Wszystkie projekty robotyki, nad którymi pracowałem, działają na jednej z tych platform, w taki czy inny sposób. Byłaby to jednak niepełna odpowiedź bez pokazania rzeczywistego obrazu tego, co dzieje się w robotyce.

System operacyjny:

  • C ++ i Python są zdecydowanie językami programowania, których używasz na końcu. Jednak kody większości robotów w dzisiejszych czasach znajdują się w systemie operacyjnym o nazwie ROS (Robot Operating System). ROS zapewnia elegancką architekturę oprogramowania ułatwiającą sterowanie robotami i planowanie. Istnieją różne programy węzłowe, które piszesz, które mogą publikować pewne informacje, które mogą być używane przez inne węzły mieszkające w ROS . Na przykład węzeł lokalizacyjny, który szacuje położenie drona w świecie 3D, opublikowałby te informacje do wykorzystania przez inne węzły. Węzeł planowania trajektorii może następnie subskrybować te węzły, aby uzyskać te dane do oceny następnej ścieżki dla drona. Każdy z tych węzłów to proste kody C ++ lub Python .

Programowanie do badań robotyki:

  • Symulacja : Prawie wszystkie rygorystyczne symulacje i testy w fazie badań są wykonywane jako pierwsze w MATLAB , zanim zostanie przekonwertowany na kod C ++ lub Python . Wynika to z eleganckich narzędzi do wizualizacji i przydatnych, wstępnie napisanych funkcji, które oferuje platforma. Kody MATLAB można również zintegrować z kodami ROS .

Programowanie do rozpoznawania wizualnego:

  • Modele uczenia maszynowego : jeśli robot korzysta z jakiegoś rodzaju uczenia maszynowego lub technik uczenia głębokiego, najpierw jest szkolony za pomocą platform takich jak Tensorflow, Keras, PyTorch itp., a następnie modele są przenoszone do ROS jako węzeł. Na przykład dron poszukiwawczo-ratowniczy używałby modelu wykrywania ludzi jako węzła ROS , który subskrybuje węzeł nieprzetworzonego obrazu z kamery i publikuje wszystkie wykrywanie ludzi.
  • Przetwarzanie obrazu : OpenCV to powszechnie używane narzędzie do przetwarzania obrazów, być zintegrowane z C ++ lub Pythonem wewnątrz ROS . Na przykład robot piłkarski potrzebowałby tego modułu do wykrywania wszystkich kolorowych piłek na obrazie.

Programowanie sprzętu do robotyki:

  • Programowanie sprzętu : dla poziomu sprzętu FPGA programowanie, używany jest verilog lub VHDL .
  • Oprogramowanie układowe lub mikrokontrolery : AVR programowanie dla ATMEGA chipy są szeroko stosowane, jeśli chcesz mieć bardziej wydajną i wyrafinowaną kontrolę nad sprzętem. Łatwiejszą opcją jest użycie mikrokontrolera Arduino , który wykorzystuje opakowanie wokół języka C . Programowanie w Arduino do obsługi serwomotoru lub sterowania sterownikiem silnika jest dość proste.
  • Komputery jednopłytkowe : Jeśli potrzebujesz więcej pamięci i mocy obliczeniowej niż te zapewniane przez Arduino lub Atmega , wybierz Raspberry Pi lub Beagle Board . Oba obsługują Ubuntu na pokładzie z Pythonem lub C ++ w ROS , ułatwiając Ci życie!

Na koniec wszystko sprowadza się do Pythona, C ++ i MATLABa na platformie ROS . ROS właśnie podbił dziedzinę robotyki tak bardzo, że większość nowych, fajnych narzędzi do programowania robotyki rodzi się jako ROS pakietów.

Odpowiedź

Może stworzona przeze mnie mapa drogowa pomoże Ci w nauce robotyki. Widzę, że często zadaje się to pytanie.

Mapa drogowa ma 4 poziomy, a każdy poziom koncentruje się na 4 podstawowych koncepcjach.

Poziom rozgrzewki

  1. Dowiedz się kodowanie: zacznij przyswajać co najmniej jeden przydatny język programowania . Arduino IDE jest dobre.Python jest świetny. C / C ++ będzie fantastyczny. Moja sugestia to Python . Jest ku temu kilka powodów, a w dalszej części mapy drogowej zobaczysz, dlaczego.
  2. Naucz się elektroniki: zacznij tworzyć podstawowe elektroniczne obwodów . Może to być tak proste, jak zapalenie diody LED. Następnie zapal kolejne diody. Zrób prosty sygnał drogowy. Zastosuj przełączniki. Poznaj teoretyczne koncepcje dotyczące działania napięcia, prądu, rezystorów, tranzystorów, obwodów szeregowych i równoległych. Poznaj także czujniki i serwomotory!
  3. Naucz się podstaw montażu: Jako dzieci uwielbialiśmy robić zabawki i budować. Zrób to samo tutaj. Naucz się tworzyć podstawowe konstrukcje z drewna, akrylu, włókien lub plastiku.
  4. Zintegruj z mikrokontrolerem: ze znajomością powyższego koncepcje, powinieneś spróbować je przetestować na podstawowym mikrokontrolerze. W końcu chcesz, aby Twój obwód „reagował”. Najpopularniejszym wyborem wśród hobbystów i początkujących jest Arduino . Arduino naprawdę uprościło proces kodowania i wdrażania podstawowych układów reakcyjnych.

(Zasoby: YouTube, Khan Academy, Code, Coursera, Udemy)

Poziom początkujący

  1. Naucz się programowania obiektowego: jest ważny nie tylko kod w robotyce, ale także jak dobrze kodować . Programowanie obiektowe (OOP) to olbrzymia siła potrzebna do rozwoju i wcześniej możesz to zrobić, tym bardziej będziesz wdzięczny sobie w przyszłości. OOP nie dotyczy wyłącznie języka Python. Jednak w Pythonie można je łatwo zaimplementować i przećwiczyć. Dzięki OOP dowiesz się o klasach, metodach, dziedziczeniu itp. I jest to doskonała technika pisania funkcjonalnych, modułowych i wydajnych kodów.
  2. Nauka fizyka, prawdopodobieństwo i algebra liniowa: W miarę, jak dorastasz od niemowlęcia-robota do nastolatka, ważne jest, aby wiedzieć, jak o robotyce pisze się, czyta i jak mówią inni w społeczności. Ten język robotyki w dużym stopniu wykorzystuje fizykę, prawdopodobieństwo i algebrę liniową. Tak, możesz nie lubić tych przedmiotów w szkole lub na uniwersytecie, ale zaufaj mi, że potrzebujesz ich, jeśli jesteś poważnie podchodzi do robotyki. Nie możesz robić widzenia komputerowego bez wiedzy o macierzach. Nie możesz zaplanować ścieżki bez znajomości fizyki. Nie możesz korzystać ze sztucznej inteligencji ani uczenia maszynowego, nie wiedząc o prawdopodobieństwie.
  3. Bardziej zaangażowane umiejętności obsługi komputera: Co mam przez to na myśli? Wielu nowicjuszy w robotyce jest zaskoczonych (ja też!), Że muszą nauczyć się tego nowego, wyglądającego na kosmitę systemu operacyjnego, który ma gdzieś pingwina. Mowa o systemie operacyjnym Linux . Osoby, które chcą zagłębić się w robotykę, muszą koniecznie zapoznać się z Linuksem. Wiele bibliotek, pakietów i oprogramowania opracowanego dla robotyki jest dystrybuowanych bardzo łatwo i wydajnie w środowiskach Linux. Popularny wybór systemu operacyjnego Linux: Ubuntu
  4. Systemy wbudowane: teraz, gdy masz lepszą wiedzę na temat kodowania, obwodów elektrycznych, koncepcji teoretycznych i znajomości Linuksa, musimy je wdrożyć na mniejszym komputerze niż nasz laptop. Więc idź dalej i wypróbuj poziom rozgrzewki wraz z powyższymi koncepcjami na minikomputerze takie jak Raspberry Pi lub BeagleBone. Podłącz czujniki, serwomechanizmy i kamerę do jednego z tych min-komputerów i napisz kod do wykrywania, przenoszenia i wykrywania rzeczy!

(Zasoby: YouTube, Khan Academy, Code, Coursera, MIT OCW)

Poziom średniozaawansowany

  1. Opracuj podstawy teoretyczne: Tutaj, w zależności od jaki obszar robotyki Cię interesuje, musisz dowiedzieć się więcej o teorii, która się za tym kryje. Dowiedz się o manipulacji ramionami robota (kinematyka i sterowanie), percepcji (widzenie komputerowe, algebra liniowa , macierze), uczenie maszynowe / sztuczna inteligencja (prawdopodobieństwo, statystyki, matematyka). Czy widzisz, jak niektóre z poprzednich koncepcji mają fundamentalne znaczenie dla tych podstawowych obszarów robotyki?
  2. Użyj zaawansowanych bibliotek: Teraz musisz zaimplementować maszynę uczenie się i / lub algorytmy widzenia komputerowego na twoim robocie. W końcu robot powinien widzieć, myśleć i uczyć się, prawda?W Pythonie istnieją niesamowite biblioteki napisane do implementacji algorytmów uczenia maszynowego i wizji komputerowej, np. tensor flow i OpenCV. Podobnie, wiele sztucznej inteligencji można również ćwiczyć w Pythonie. Oczywiście możesz zrobić to samo w C / C ++. Jednak staram się zachować tutaj spójność.
  3. Zapoznaj się z ROS: Dzięki znajomości wszystkich powyższych Oprogramowanie pośrednie, którego należy się nauczyć, to Robot Operating System (ROS). Na początku może to być trochę trudne. Jednak ROS otwiera Ci drzwi do testowania zaawansowanych algorytmów i symulacji na robotach, których nawet nie masz! Chcesz latać quadkopterem? A może autonomicznie nawiguj robotem na mapie? Co powiesz na to, aby ramię przemysłowe podniosło przedmiot? Możesz to zrobić w ROS poprzez środowisko symulacyjne o nazwie Gazebo.
  4. Więcej CAD: Możesz być zainteresowany rozwojem i projektowaniem złożonych robotów. Zacznij się uczyć oprogramowania do projektowania 3D , takiego jak Blender lub SolidWorks, aby móc projektować własne roboty.

Poziom eksperta

  1. Ucz się i rozwijaj: każda wymieniona powyżej koncepcja ma swoje zalety bez końca, a aby zostać ekspertem w dziedzinie robotyki, będziesz musiał poświęcić czas i kontynuować naukę. Zrozumiesz, że musisz nauczyć się więcej klasyfikatorów lub modeli, aby lepiej wykrywać obiekty / obrazy. Możesz też potrzebować więcej informacji na temat algorytmów sterowania w celu optymalizacji rozwiązań.
  2. Więcej oprogramowania / sprzętu: W zależności od obszaru zainteresowań i specjalizacji, będziesz robić coraz więcej kodowania, rozwoju algorytmicznego, ROS i / lub projektowania robotów.

Na koniec zdecydowanie nie jestem ekspertem i dlatego nie mogę wiele do tego dodać . Mogę powiedzieć na pewno, że nawet nie wiem, czego nie wiem. Ważną rzeczą do zapamiętania jest: zacznij i bądź konsekwentny =)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *