Jeffrey Cross
Jeffrey Cross

Anfänger-Robotik: Verstehen, wie einfache Sensoren funktionieren

Damit ein Roboter wirklich als Roboter gelten kann, muss er in der Lage sein, seine Umgebung zu erfassen und zu beeinflussen. Aus diesem Grund sind Sensoren für die Robotik so wichtig, und für jeden angehenden Robotiker ist es wichtig zu wissen, wie ein Roboter intelligent gemacht werden kann. Ich habe vor kurzem einen Kickstarter auf den Markt gebracht, und wir geben mit jedem Kit, das wir verkaufen, tatsächlich kostenlose Sensoren aus.

In diesem Skill Builder werde ich Sie durch eine Roboteroperation namens sense> think> act führen. Dieser Vorgang ist in der Robotik weit verbreitet und eignet sich hervorragend, um die Programmierung eines Roboters zu verstehen. Lass uns eintauchen in ...

Einen Sensor auswählen

Es gibt so viele Sensoren, wie physische Dinge zu erkennen sind, aber verwenden wir den Ultraschall-Distanzsensor HC-SR04, da er billig, einfach und in der Robotik weit verbreitet ist (er hat auch eine sehr praktische Arduino-Bibliothek).

Das Robotermodell definieren

Dieser Sensor kann Entfernungen erkennen. Beginnen wir also mit einem einfachen Roboter, der Kollisionen verhindert. Dieser Roboter kann sich vorwärts und rückwärts bewegen und vor Ort in beide Richtungen drehen. Auf der Vorderseite des Roboters befindet sich der Abstandssensor. Nun, da wir unseren Roboter definiert haben, schauen wir uns an, wie er sich verhalten soll.

Was ist Sinn, Denken, Handeln?

Sense, Think, Act ist eine Entscheidungsschleife, mit der viele Roboterprobleme gelöst werden können, und sie ist bemerkenswert einfach. In diesem Fall muss der Roboter erkennen, ob sich Hindernisse davor befinden. Es muss dann darüber nachdenken, ob es voranschreiten kann oder ob es umkehren oder umkehren soll, woraufhin es auf diese Entscheidung reagieren wird. Dieselbe Logik kann auf jeden Roboter angewendet werden, wobei jeder Sensor für nahezu jedes Verhalten geeignet ist.

Um daraus tatsächlich Code zu machen, den wir zur Steuerung des Roboters schreiben können, müssen wir genauer sein. Erstellen wir ein einfaches Verhalten für den Roboter wie folgt…

  1. Der Roboter erkennt, ob sich ein Hindernis weniger als 3 cm vor ihm befindet.
  2. Wenn es kein Hindernis gibt, bewegt es sich vorwärts.
  3. Wenn es ein Hindernis gibt, bewegt es sich rückwärts.

Dies kann sehr einfach in Code übersetzt werden. Es ist jedoch möglich, dass der Roboter "hängen bleibt", wenn er eine Wand erreicht. Es würde sich vorwärts bewegen, bis es die Wand erkannt hat, dann rückwärts, bis es nicht klappt, dann wieder vorwärts und so weiter. Ändern wir das Verhalten auf folgende Weise.

  1. Der Roboter erkennt, ob sich ein Hindernis weniger als 3 cm vor ihm befindet.
  2. Wenn es kein Hindernis gibt, bewegt es sich vorwärts.
  3. Wenn ein Hindernis vorhanden ist, biegt es links ab und geht dann zurück zu Schritt 1.

Dies wird solange fortgesetzt, bis der Roboter eine Richtung findet, die keine Wand innerhalb von 3 cm hat.

Jetzt haben wir ein Gefühl, denken, handeln Modell, das unserem Roboter helfen könnte, Hindernisse zu vermeiden. Es ist kein besonders ausgeklügeltes Modell, und wir könnten viel Komplexität hinzufügen, um die Vermeidung von Hindernissen zu verbessern.

Selbst mit einem einfachen Roboter können sehr komplexe Sinnesmodelle so konzipiert werden, dass sie sehr intelligentes Verhalten erzeugen. Das ist das Wesentliche der Robotik - die Smarts in der Software!

Unser aktuelles Verhalten ist etwas ineffizient, da der Roboter dreimal nach links drehen muss, nur um nach rechts zu drehen. Lassen Sie uns unser Verhalten auf folgende Weise ändern, als vierten Schritt, um die drei oben genannten Schritte zu befolgen:

4. Wenn ein Hindernis vorhanden ist, biegt es nach links ab und geht zurück zu Schritt 1.

  1. Der Roboter erkennt, ob sich ein Hindernis weniger als 3 cm vor ihm befindet.
  2. Wenn es kein Hindernis gibt, bewegt es sich vorwärts.
  3. Wenn es ein Hindernis gibt, wendet es sich nach links und erkennt erneut.
  4. Wenn kein Hindernis vorhanden ist, bewegt es sich vorwärts und die Schleife wird zurückgesetzt.
  5. Wenn es ein Hindernis gibt, dreht es sich nach rechts und spürt erneut.
  6. Wenn kein Hindernis vorhanden ist, bewegt es sich vorwärts und die Schleife wird zurückgesetzt.
  7. Wenn sich ein Hindernis befindet, dreht der Roboter weiter nach rechts, bis kein Hindernis mehr vorhanden ist.

Jetzt überprüft unser Roboter beide Richtungen, um festzustellen, ob eine Wand vorhanden ist. Dies bedeutet, dass sich der Roboter effizienter bewegen kann. Beachten Sie, dass selbst einfaches Verhalten immer komplexer wird, um es zu veranschaulichen. Wenn wir jedoch dieses Verhalten als eine Reihe von Sense-, Think- und Act-Schleifen betrachten, wird es viel einfacher zu verstehen!

Und da hast du es. Wir haben einen sehr einfachen Fall von Sense, Think, Act-Verhalten genommen und in ein Programm zur Vermeidung von Hindernissen umgesetzt. Es wäre eine sehr einfache Aufgabe, dieses Verhalten in Code umzusetzen und mit Robotik zu spielen! Natürlich können Sie weitere Abstandssensoren und sogar verschiedene Sensortypen hinzufügen, um das Verhalten noch weiter zu verbessern. Denken Sie daran, es in Sense, Think, Act zu unterteilen, und Sie können damit umgehen. Und wenn Sie nach einem Roboterkit suchen, das Tonnen von Sensoren enthält, besuchen Sie unseren Kickstarter!

Aktie

Leave A Comment