Welche Computersprachen müssen wir für die Robotik kennen?

Beste Antwort

Die einfachste Antwort wäre C ++ und Python .

Alle Robotikprojekte, mit denen ich gearbeitet habe, laufen auf einer dieser Plattformen auf die eine oder andere Weise. Dies wäre jedoch eine unvollständige Antwort, ohne Ihnen das tatsächliche Bild der Robotik zu zeigen.

Betriebssystem:

  • C ++ und Python sind definitiv die Programmiersprache, die Sie am Ende verwenden. Die Codes für die meisten Roboter befinden sich heutzutage jedoch in einem Betriebssystem namens ROS (Robot Operating System). ROS bietet eine elegante Softwarearchitektur für eine einfachere Steuerung und Planung von Robotern. Es gibt diese verschiedenen Knotenprogramme, die Sie schreiben und die bestimmte Informationen veröffentlichen können, die von anderen Knoten verwendet werden können, die in ROS leben. Beispielsweise würde der Lokalisierungsknoten, der die Position einer Drohne in der 3D-Welt schätzt, diese Informationen veröffentlichen, damit andere Knoten sie verwenden können. Ein Trajektorienplanerknoten kann diese Knoten dann abonnieren, um diese Daten zur Auswertung des nächsten Pfades für die Drohne zu erhalten. Jeder dieser Knoten ist ein einfacher C ++ – oder Python -Code.

Programmierung für die Robotikforschung:

  • Simulation : Fast alle strengen Simulationen und Tests in der Forschungsphase werden zuerst durchgeführt auf MATLAB , bevor es in einen C ++ – oder Python -Code konvertiert wird. Dies liegt an den eleganten Visualisierungstools und den praktischen vorab geschriebenen Funktionen, die die Plattform bietet. MATLAB -Codes können auch in ROS integriert werden.

Programmierung für die visuelle Wahrnehmung:

  • Modelle für maschinelles Lernen : Wenn der Roboter irgendeine Art von maschinellem Lernen oder Deep-Learning-Techniken verwendet, werden sie zuerst mit Plattformen wie Tensorflow, Keras, PyTorch usw. und dann mit den trainierten trainiert Modelle werden als Knoten an ROS übertragen. Beispielsweise würde eine Such- und Rettungsdrohne ein menschliches Erkennungsmodell als ROS -Knoten verwenden, der den Rohkamerabildknoten abonniert und die gesamte menschliche Erkennung veröffentlicht.
  • Bildverarbeitung : OpenCV ist ein weit verbreitetes Bildverarbeitungswerkzeug, das dies kann in C ++ oder Python in ROS integriert werden. Ein Fußballroboter würde dieses Modul beispielsweise benötigen, um alle farbigen Bälle auf dem Bild zu erkennen.

Programmierung für Robotik-Hardware:

  • Hardwareprogrammierung : Für Hardwareebene FPGA Beim Programmieren wird verilog oder VHDL verwendet.
  • Firmware oder Mikrocontroller : AVR -Programmierung für ATMEGA Chips werden häufig verwendet, wenn Sie eine effizientere und ausgefeiltere Steuerung der Hardware wünschen. Eine einfachere Option ist die Verwendung des Arduino -Mikrocontrollers, der einen Wrapper um die C-Sprache verwendet. In Arduino ist es ganz einfach, einen Servomotor zu betreiben oder einen Motortreiber zu steuern.
  • Einplatinencomputer : Wenn Sie mehr benötigen Speicher- und Verarbeitungsleistung als die von Arduino oder Atmega bereitgestellte, wählen Sie Raspberry Pi oder Beagle Board . Beide unterstützen Ubuntu an Bord mit Python oder C ++ in ROS , was Ihnen das Leben erleichtert!

Am Ende läuft alles auf Python, C ++ und MATLAB in einer ROS-Plattform hinaus. ROS hat gerade das Robotikfeld so sehr erobert, dass die meisten coolen neuen Robotik-Programmierwerkzeuge als ROS geboren wurden -Pakete.

Antwort

Vielleicht hilft Ihnen die von mir erstellte Roadmap auf Ihrem Weg zum Erlernen der Robotik. Ich sehe, dass diese Frage häufig gestellt wird.

Die Roadmap hat 4 Ebenen und jede Ebene konzentriert sich auf 4 Kernkonzepte.

Aufwärmstufe

  1. Lernen Codierung: Nehmen Sie mindestens eine handliche Programmiersprache in die Hand. Arduino IDE ist gut.Python ist großartig. C / C ++ wird fantastisch sein. Mein Vorschlag wäre Python . Dafür gibt es mehrere Gründe. Später in der Roadmap werden Sie sehen, warum.
  2. Elektronik lernen: Beginnen Sie mit dem Aufbau einer grundlegenden elektronischen Schaltungen . Es kann so einfach sein wie das Aufleuchten einer LED. Als nächstes leuchten weitere LEDs. Machen Sie eine einfache Verkehrsampel. Schalter implementieren. Lernen Sie die theoretischen Ideen hinter der Funktionsweise von Spannung, Strom, Widerständen, Transistoren, Serien- und Parallelschaltungen kennen. Entdecken Sie auch Sensoren und Servomotoren!
  3. Lernen Sie die grundlegende Montage: Als Kinder liebten wir es, Spielzeug herzustellen und Dinge zu bauen. Mach das gleiche hier. Erfahren Sie, wie Sie einige grundlegende Strukturen aus Holz, Acryl, Faser oder Kunststoff herstellen.
  4. In Mikrocontroller integrieren: Mit Kenntnis der oben genannten Konzepte sollten Sie versuchen, sie auf einem grundlegenden Mikrocontroller zu testen. Schließlich möchten Sie, dass Ihre Schaltung „reagiert“. Die beliebteste Wahl unter Hobbyisten und Anfängern ist Arduino . Arduino hat den Prozess der Codierung und Implementierung grundlegender reaktionärer Schaltkreise wirklich vereinfacht.

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

Anfängerlevel

  1. Objektorientierte Programmierung lernen: Es ist nicht nur wichtig, in der Robotik zu codieren, sondern auch wie man gut codiert . Objektorientiertes Programmieren (OOP) ist ein enormer Wachstumsschub. Je früher Sie dies tun können, desto mehr werden Sie sich in Zukunft bedanken. OOP ist nicht exklusiv für Python. In Python können Sie diese jedoch einfach implementieren und üben. In OOP lernen Sie Klassen, Methoden, Vererbung usw. kennen. Dies ist eine hervorragende Technik zum Schreiben von funktionalen, modularen und effizienten Codes.
  2. Lernen Physik, Wahrscheinlichkeit und lineare Algebra: Wenn Sie vom Säuglingsroboter zum Jugendlichen heranwachsen, ist es wichtig, dass Sie auch wissen, wie Robotik von anderen in der Community geschrieben, gelesen und gesprochen wird. Diese Robotiksprache verwendet in hohem Maße Physik, Wahrscheinlichkeit und lineare Algebra. Ja, Sie mögen diese Fächer in der Schule oder Universität möglicherweise nicht, aber vertrauen Sie mir, dass Sie sie brauchen, wenn Sie es sind ernsthaft über Robotik. Sie können Computer Vision nicht ausführen, ohne über Matrizen Bescheid zu wissen. Sie können keine Pfadplanung durchführen, ohne etwas über Physik zu wissen. Sie können keine künstliche Intelligenz oder maschinelles Lernen durchführen, ohne die Wahrscheinlichkeit zu kennen.
  3. Umfassendere Computerkenntnisse: Was meine ich damit? Viele Neulinge in der Robotik sind ratlos (ich auch!), Dass sie dieses neue außerirdisch aussehende Betriebssystem lernen müssen, neben dem sich irgendwo ein Pinguin befindet. Ich spreche über das Betriebssystem Linux . Für jemanden, der tiefer in die Robotik einsteigen möchte, ist es unerlässlich, sich mit Linux vertraut zu machen. Viele für die Robotik entwickelte Bibliotheken, Pakete und Software werden in Linux-Umgebungen sehr einfach und effizient verteilt. Beliebte Linux-Betriebssystemauswahl: Ubuntu
  4. Eingebettete Systeme: Nun das Sie haben bessere Kenntnisse in Codierung, Schaltkreisen, theoretischen Konzepten und der Vertrautheit mit Linux entwickelt. Wir müssen diese auf einem kleineren Computer als unserem Laptop implementieren. Probieren Sie also Aufwärmstufe -Konzepte zusammen mit den oben genannten -Konzepten auf einem Mini-Computer aus wie Raspberry Pi oder der BeagleBone. Schließen Sie einige Sensoren, Servos und eine Kamera an einen dieser Minicomputer an und schreiben Sie Code, um Dinge zu erfassen, zu bewegen und zu erkennen!

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

Mittelstufe

  1. Entwickeln Sie theoretische Grundlagen: Hier abhängig von Für welchen Bereich der Robotik Sie sich interessieren, müssen Sie mehr über die Theorie dahinter erfahren. Erfahren Sie mehr über Roboterarmmanipulation (Kinematik und Steuerung), Wahrnehmung (Computer Vision, lineare Algebra) , Matrizen), maschinelles Lernen / künstliche Intelligenz (Wahrscheinlichkeit, Statistik, Mathematik). Sehen Sie, wie grundlegend einige der vorherigen Konzepte für diese Kernbereiche der Robotik sind?
  2. Verwenden Sie erweiterte Bibliotheken: Jetzt müssen Sie die Maschine implementieren Lern- und / oder Computer-Vision-Algorithmen auf Ihrem Roboter. Schließlich sollte der Roboter sehen, denken und lernen können, oder?Unter Python gibt es erstaunliche Bibliotheken , die für die Implementierung von Algorithmen für maschinelles Lernen und Computer Vision geschrieben wurden, z. Tensor Flow und OpenCV. In ähnlicher Weise kann auch auf Python viel KI geübt werden. Natürlich können Sie dasselbe in C / C ++ tun. Ich versuche jedoch, es hier konsistent zu halten.
  3. Machen Sie sich mit ROS vertraut: Mit dem Wissen über all das oben Genannte ein ausgezeichnetes Middleware, die man lernen sollte, ist das Roboterbetriebssystem (ROS). Es kann etwas schwierig sein, es zuerst zu lernen. ROS öffnet jedoch Ihre Türen, um fortschrittliche Algorithmen und Simulationen an Robotern zu testen, die Sie noch nicht einmal haben! Willst du einen Quadcopter fliegen? Oder einen Roboter autonom in einer Karte navigieren? Wie wäre es, wenn ein Industriearm ein Objekt aufnimmt? Sie können dies in ROS über die Simulationsumgebung Gazebo tun.
  4. Mehr CAD: Möglicherweise möchten Sie komplexe Roboter entwickeln und entwerfen. Lernen Sie 3D-Konstruktionssoftware wie Blender oder SolidWorks, damit Sie Ihre eigenen Roboter entwerfen können.

Expertenstufe

  1. Lernen und wachsen Sie weiter: Jedes der oben genannten Konzepte ist aufgrund seiner eigenen Tugend endlos. Um ein Experte für Robotik zu werden, müssen Sie Zeit investieren und weiter lernen. Sie werden feststellen, dass Sie mehr Klassifikatoren oder Modelle lernen müssen, um Objekte / Bilder besser erkennen zu können. Oder Sie müssen möglicherweise mehr über Steuerungsalgorithmen erfahren, um Ihre Lösungen zu optimieren.
  2. Weitere Software / Hardware: Abhängig von Ihrem Interessengebiet und Spezialisierung, Sie werden immer mehr Codierung, algorithmische Entwicklung, ROS und / oder Roboterdesign betreiben.

Schließlich bin ich definitiv kein Experte und kann daher nicht viel hinzufügen . Was ich mit Sicherheit sagen kann, ist, dass ich selbst nicht weiß, was ich nicht weiß. Eine wichtige Sache, an die Sie sich erinnern sollten, ist: Starten Sie und seien Sie konsistent =)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.