Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Roboter für supercoole Indoor-Navigation

Komponenten und Verbrauchsmaterialien

Smart Motor Robot Autobatterie Box Chassis Kit DIY Geschwindigkeits-Encoder für Arduino
× 1
oblu - eine Open-Source-IMU für die Fußgängernavigation in Innenräumen
× 1
Lötbares Breadboard Half Size
× 1
Überbrückungsdrähte männlich/weiblich
× 1
Kondensator 1000 µF
× 2
Doppelte H-Brücken-Motortreiber von Texas Instruments L293D
× 1
Arduino Mega 2560
× 1
AA 2800 Ni-MH wiederaufladbar
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

Arduino-IDE
Xoblu

Über dieses Projekt

Unsere Geschichte :

Bei dem Projekt geht es darum, den Roboter präzise auf einer vordefinierten Bahn zu bewegen, ohne GPS oder WLAN oder Bluetooth zur Positionsbestimmung zu verwenden, nicht einmal Karte oder Gebäudeplan. Und zeichnen Sie seinen tatsächlichen Weg (auf die Skala) in Echtzeit. Bluetooth kann als Ersatz für Kabel verwendet werden, um Echtzeit-Standortinformationen zu übertragen.

Die Hintergrundgeschichte:

Wir waren auf der Suche nach einer robusten Lösung für die Indoor-Navigation unseres Arduino-basierten Roboters. Bei der Auswahl der richtigen Bewegungssensorlösung für diese Anwendung haben wir auch Oblu (eine Open-Source-IMU) in Betracht gezogen. Seine geringen Kosten und sein Open-Source-Charakter machten es zu einem wahrscheinlichen Kandidaten. Der knifflige Teil dabei war, dass sich das Open-Source-Programm von oblu in einfachen Worten für das fußmontierte Indoor-Pedestrian Dead Reckoning (PDR) oder die Fußgängernavigation eignet. Die PDR-Leistung von Oblu in Innenräumen als fußmontierte IMU ist ziemlich beeindruckend. Ein großer Pluspunkt war die kostenlose Android-App (Xoblu) für die Echtzeit-Positionsverfolgung. Wir waren uns jedoch nicht sicher, wie wir den bestehenden Fußgängernavigationsalgorithmus verwenden sollten, der auf dem menschlichen Gehmodell basiert.

Die internen Berechnungen von Oblu basieren auf menschlichem Gehen. Oblu gibt die Verschiebung zwischen zwei aufeinanderfolgenden Schritten und die Änderung des Kurses aus. Wenn der Fuß den Boden berührt, ist die Sohlengeschwindigkeit Null, d. h. die Sohle steht still. Auf diese Weise erkennt Oblu 'Schritte' und korrigiert einige interne Fehler. Und diese häufige Fehlerkorrektur führt zu einer großartigen Tracking-Performance. Hier liegt also der Haken. Was ist, wenn unser Roboter auch auf die gleiche Weise läuft - bewegen, anhalten, bewegen, anhalten..

Wir haben uns für Oblu entschieden und konnten unseren Roboter und das Trackingsystem im Handumdrehen zusammenbauen. Der Rest der Geschichte ist im folgenden Video...

Wie funktioniert es:

Der Roboter bewegt sich auf einer vorprogrammierten Bahn und überträgt (über Bluetooth) seine tatsächlichen Bewegungsinformationen zur Echtzeitverfolgung an ein Telefon.

Arduino ist mit Pfad vorprogrammiert und oblu wird zum Erfassen der Roboterbewegung verwendet. oblu überträgt in regelmäßigen Abständen Bewegungsinformationen an Arduino. Auf dieser Grundlage steuert Arduino die Bewegungen der Räder, damit der Roboter dem vordefinierten Pfad folgen kann.

Die Bahn des Roboters wird als Satz gerader Liniensegmente programmiert. Jedes Liniensegment wird durch seine Länge und Ausrichtung in Bezug auf das vorherige definiert. Die Bewegung des Roboters ist diskret, d. h. er bewegt sich geradlinig, aber in kleineren Segmenten (der Einfachheit halber nennen wir „Schritte“). Am Ende jedes Schrittes überträgt oblu die Schrittlänge und das Ausmaß der Abweichung (Orientierungsänderung) von der geraden Linie an Arduino. Arduino korrigiert die Ausrichtung des Roboters bei jedem Schritt beim Empfang solcher Informationen, wenn eine Abweichung von der vordefinierten Geraden festgestellt wird.

Der Roboter soll sich laut Programm immer geradlinig bewegen. Es kann jedoch von der geraden Linie abweichen und aufgrund von Nichtidealitäten wie unebener Oberfläche, Massenunwucht bei der Robotermontage, architektonischer oder elektrischer Unwucht bei Gleichstrommotoren oder der zufälligen Ausrichtung des vorderen Freilaufrads in einem bestimmten Winkel oder schrägen Weg gehen. Machen Sie einen Schritt... korrigieren Sie Ihren Kurs... gehen Sie vorwärts. Der Roboter bewegt sich auch rückwärts, wenn er mehr als die programmierte Länge dieses bestimmten Liniensegments zurücklegt.

Die nächste Schrittlänge hängt von der verbleibenden zurückzulegenden Strecke dieses bestimmten geraden Liniensegments ab. Der Roboter macht große Schritte, wenn die zurückzulegende Entfernung größer ist, und macht kleinere Schritte in der Nähe des Ziels (d. h. am Ende jedes geraden Liniensegments).

IMU Oblu überträgt Daten gleichzeitig an Arduino und Telefon (über Bluetooth). Xoblu (die Android-App) führt eine einfache Berechnung durch, um den Pfad basierend auf den vom Roboter empfangenen Bewegungsinformationen zu konstruieren, die für die Echtzeitverfolgung auf dem Telefon verwendet werden. (Die Pfadkonstruktion mit Xoblu ist unten dargestellt.)

Zusammenfassend lässt sich sagen, dass Oblu Bewegungen wahrnimmt und in regelmäßigen Abständen Bewegungsinformationen an Arduino und Telefon übermittelt. Basierend auf dem programmierten Pfad und den Bewegungsinformationen (von oblu gesendet) steuert Arduino die Bewegungen der Räder. Die Bewegung des Roboters wird NICHT ferngesteuert, außer für Start-/Stoppbefehle.

Pfadmodellierung :

Der Roboter lässt sich am besten steuern, wenn er nur in geraden Liniensegmenten läuft. Daher muss der Pfad zunächst als Satz von geraden Liniensegmenten modelliert werden. Die folgenden Bilder enthalten einige Beispielpfade und deren Darstellungen in Bezug auf Verschiebung und Orientierung. So wird der Pfad in Arduino programmiert.

Ebenso kann jeder Pfad, der aus geraden Liniensegmenten besteht, in Arduino definiert und programmiert werden.

Schaltungsbaugruppe:

Siehe Abschnitt H/W für elektrische Verbindungen zwischen Arduino, Oblu, Motortreiber und Akku.

  • Kommunikationsprotokoll:

Schritt 1 :Xoblu sendet START-Befehl an oblu

Schritt 2 :oblu bestätigt den empfangenen Befehl durch Senden einer entsprechenden ACK an Xoblu

Schritt 3 :oblu sendet ein DATA-Paket mit Informationen zu Verschiebung und Orientierung für jeden Schritt bei jedem Schritt an Xoblu. (Schritt =immer wenn eine Nullbewegung oder ein Stillstand erkannt wird).

Schritt 4 :Xoblu bestätigt den Empfang des letzten DATA-Pakets durch Senden einer entsprechenden ACK an oblu. (Der Zyklus der Schritte 3 und 4 wird wiederholt, bis Xoblu STOP sendet. Beim Empfang des STOP-Befehls führt oblu Schritt 5 aus.)

Schritt 5 :STOP - (i) Stoppe die Verarbeitung in oblu (ii) Stoppe alle Ausgaben in oblu

Einzelheiten zu START, ACK, DATA und STOP entnehmen Sie bitte der Anwendungsnotiz von oblu

Wie funktioniert Oblu IMU (optional) :

Präsentation einiger Referenzen zu Oblus Übersicht und grundlegendem Funktionsprinzip eines fußmontierten PDR-Sensors:

--> Der verfügbare Quellcode von oblu ist auf die fußgestützte Navigation ausgerichtet. Und dafür ist es am besten optimiert. Das folgende Video behandelt das grundlegende Funktionsprinzip:

--> Hier sind ein paar einfache Artikel über fußmontierte PDR-Sensoren:

1. Meine Schritte verfolgen

2. Meine Schritte weiterhin verfolgen

--> In diesem Dokument finden Sie Details zur Fußgänger-Koppelnavigation mit Fußsensoren.

--> Folgendes Video für einen Überblick über Oblu:

----------------

Bitte teilen Sie Ihr Feedback, Ihre Vorschläge und hinterlassen Sie Kommentare.

Beste Grüße!

----------------

Code

Arduino-basierter Roboter
Der Roboter bewegt sich auf einer vorprogrammierten Bahn und überträgt seine aktuellen Koordinaten zur Echtzeitverfolgung an ein Telefon.https://github.com/vijkumsha/oblu_Robot

Schaltpläne


Herstellungsprozess

  1. Raspberry Pi Roboter über Bluetooth gesteuert
  2. Einfacher Pi-Roboter
  3. Hindernisse vermeiden Roboter mit Servomotor
  4. Joy Robot (Robô Da Alegria)
  5. Linienfolger-Roboter
  6. Sprachgesteuerter Roboter
  7. Arduino-gesteuerter Klavierroboter:PiBot
  8. Arduino-Schulungsplattform
  9. Autonomer Heimassistent-Roboter
  10. SMART-Temperaturüberwachung für Schulen