Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Slim Indoor Navigatie Robot Kit voor Arduino Projecten

Onderdelen en benodigdheden

Smart Motor Robot Car Batterijdoos Chassis Kit DIY Snelheidsencoder voor Arduino×1
oblu - een opensource IMU voor indoor voetgangersnavigatie×1
Solderloos Breadboard Half Size×1
Male/Female Jumper Draden×1
Condensator 1000 µF×2
Texas Instruments Dual H-Bridge motordrivers L293D×1
Arduino Mega 2560×1
AA 2800 Ni-MH Herlaadbaar×1

Nodige tools en machines

  • Solderbout (standaard)

Apps en online diensten

  • Arduino IDE
  • Xoblu

Over dit project

Ons verhaal

Dit project gaat erom de robot te laten bewegen over een vooraf gedefinieerd pad met precisie, zonder gebruik te maken van GPS, WiFi of Bluetooth voor positionering, noch van een kaart of gebouwplattegrond. De robot tekent zijn daadwerkelijke pad (op schaal) in realtime. Bluetooth kan als vervanging van een draad dienen voor het doorgeven van realtime locatie-informatie.

Slim Indoor Navigatie Robot Kit voor Arduino Projecten

De achtergrond

We zochten een robuuste oplossing voor indoor navigatie van onze Arduino-gebaseerde robot. Bij het kiezen van de juiste bewegingsoplossing keken we ook naar Oblu (een opensource IMU). De lage kosten en opensource aard maakten het een veelbelovende kandidaat. Het lastige was dat Oblu's opensource programma geschikt is voor voetgemonteerde indoor Pedestrian Dead Reckoning (PDR) of voetgangersnavigatie. Oblu's PDR-prestaties indoor als voetgemonteerde IMU zijn indrukwekkend. Een groot voordeel was de gratis Android-app (Xoblu) voor realtime positietracking. Maar we wisten niet zeker hoe we het bestaande voetgangersnavigatie-algoritme, gebaseerd op het menselijk loopmodel, konden gebruiken.

Oblu's interne berekeningen zijn gebaseerd op menselijk lopen. Oblu geeft de verplaatsing tussen twee opeenvolgende stappen en de richtingsverandering uit. Wanneer de voet de grond raakt, is de snelheid van de zool nul, d.w.z. de zool stil. Op deze manier detecteert Oblu 'stappen' en corrigeert het interne fouten. Deze frequente correctie resulteert in geweldige tracking-prestaties. Hier zit de uitdaging: wat als onze robot op dezelfde manier loopt - bewegen, stoppen, bewegen, stoppen...

We kozen voor Oblu en in geen tijd konden we onze robot en het trackingsysteem samenstellen. De rest van het verhaal is in de volgende video...

Hoe het werkt

De robot beweegt over een voorgeprogrammeerd pad en stuurt (via Bluetooth) zijn daadwerkelijke bewegingsinformatie naar een telefoon voor realtime tracking.

De Arduino is voorgeprogrammeerd met het pad en Oblu wordt gebruikt voor het waarnemen van de robotbeweging. Oblu stuurt bewegingsinformatie naar de Arduino op regelmatige intervallen. Op basis daarvan stuurt de Arduino de wielen om de robot het vooraf gedefinieerde pad te laten volgen.

Slim Indoor Navigatie Robot Kit voor Arduino Projecten

Het robotpad is geprogrammeerd als een reeks rechte lijnsegmenten. Elk lijnsegment wordt gedefinieerd door zijn lengte en oriëntatie ten opzichte van het vorige. De robotbeweging wordt discreet gehouden, d.w.z. het beweegt in een rechte lijn, maar in kleinere segmenten (laten we 'stappen' noemen voor de eenvoud). Aan het einde van elke stap stuurt Oblu de staplengte en de mate van afwijking (richtingsverandering) van de rechte lijn naar de Arduino. De Arduino corrigeert de uitlijning van de robot bij elke stap bij ontvangst van deze informatie, als er afwijking is van de vooraf gedefinieerde rechte lijn.

Volgens het programma moet de robot altijd in een rechte lijn bewegen. Het kan echter afwijken en onder een bepaalde hoek of scheef lopen door non-idealiteiten zoals oneffen oppervlak, massa-onbalans in de robotmontage, architecturale of elektrische onbalans in DC-motoren of de willekeurige oriëntatie van het vrije voorwiel. Een stap zetten... je kop corrigeren... vooruitgaan. De robot beweegt ook achteruit als het verder reist dan de geprogrammeerde lengte van dat specifieke lijnsegment.

De volgende staplengte hangt af van de resterende afstand die voor dat specifieke rechte lijnsegment moet worden afgelegd. De robot maakt grote stappen wanneer de af te leggen afstand groter is en kleinere stappen dicht bij de bestemming (d.w.z. einde van elk rechte lijnsegment).

IMU Oblu stuurt data naar Arduino en telefoon (via Bluetooth) tegelijkertijd. Xoblu (de Android-app) voert eenvoudige berekeningen uit om het pad te construeren op basis van de ontvangen bewegingsinformatie, wat gebruikt wordt voor realtime tracking op de telefoon. (Padconstructie met Xoblu is hieronder geïllustreerd.)

Slim Indoor Navigatie Robot Kit voor Arduino Projecten

Kortom: Oblu waarnemt beweging en communiceert bewegingsinformatie naar Arduino en telefoon op regelmatige intervallen. Op basis van het geprogrammeerde pad en de bewegingsinformatie (verzonden door Oblu) stuurt de Arduino de wielbewegingen. De robotbeweging wordt NIET op afstand bestuurd, behalve voor start/stop-commando's.

Padmodellering

De robot kon het best bestuurd worden als het alleen in rechte lijnsegmenten loopt. Daarom moet het pad eerst gemodelleerd worden als een reeks rechte lijnsegmenten. De onderstaande afbeeldingen bevatten een paar voorbeeldpaden en hun weergave in termen van verplaatsing en oriëntatie. Zo wordt het pad in de Arduino geprogrammeerd.

Slim Indoor Navigatie Robot Kit voor Arduino Projecten
Slim Indoor Navigatie Robot Kit voor Arduino Projecten

Op dezelfde manier kan elk pad dat een reeks rechte lijnsegmenten is, gedefinieerd en geprogrammeerd worden in de Arduino.

Schakelingmontage

Raadpleeg de hardware-sectie voor de elektrische verbindingen tussen Arduino, Oblu, motordriver en batterijpakket.

Communicatieprotocol:

  1. Stap 1: Xoblu stuurt START-commando naar Oblu
  2. Stap 2: Oblu bevestigt ontvangst door passende ACK naar Xoblu te sturen
  3. Stap 3: Oblu stuurt DATApakket met verplaatsing en oriëntatie-informatie voor elke stap, bij elke stap, naar Xoblu. (stap = wanneer nul-beweging of stilstand wordt gedetecteerd)
  4. Stap 4: Xoblu bevestigt ontvangst van laatste DATApakket door passende ACK naar Oblu. (Cyclus van stappen 3 en 4 herhaalt zich tot Xoblu STOP stuurt. Bij ontvangst van STOP-commando voert Oblu Stap 5 uit)
  5. Stap 5: STOP - (i) Verwerking in Oblu stoppen (ii) Alle uitgangen in Oblu stoppen

Raadpleeg Oblu's Application Note voor details over START, ACK, DATA en STOP.

Hoe Oblu IMU werkt (optioneel)

Enkele referenties over Oblu's overzicht en basisprincipe van een voetgemonteerde PDR-sensor:

  • De beschikbare broncode van Oblu is gericht op voetgemonteerde navigatie en daarvoor geoptimaliseerd. De onderstaande video dekt het basisprincipe.
  • Hier zijn een paar eenvoudige artikelen over voetgemonteerde PDR-sensors: 1. Track my steps, 2. Continue tracking my steps.
  • Je kunt dit document raadplegen voor details over voetgangers dead reckoning met voetsensors.
  • Volgende video voor overzicht van Oblu.

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

Deel je feedback, suggesties en laat reacties achter.

Beste wensen!

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

Code

Arduino-gebaseerde robot

De robot beweegt over een voorgeprogrammeerd pad en stuurt zijn huidige coördinaten naar een telefoon voor realtime tracking.
GitHub Repository

Schema's

Slim Indoor Navigatie Robot Kit voor Arduino Projecten

Productieproces

  1. Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
  2. Simple Pi Robot – Bouw een 2-WD Autonome Rover met Raspberry Pi
  3. Servo-gestuurde obstakelvermijdende robot: Bouw met Arduino & HC-SR04
  4. Joy Robot: Een Slimme Robot Aangedreven door Arduino en ESP8266
  5. Bouw Een Autonome Lijnvolgende Robot Met Arduino UNO
  6. Bouw een Stemgecontroleerde Robot met Arduino Nano
  7. PiBot: De Arduino-aangedreven pianorobot voor precisiemuziek
  8. Uitgebreide Arduino Trainingskit met Mega 2560, Sensoren, Motoren en Custom PCB
  9. Bouw een Autonome Thuisassistent Robot: Complete Onderdelenlijst & Opzetgids
  10. Slim Temperatuurmonitoring Systeem voor Scholen: Nauwkeurig, Real-time en Beveiligd
  11. DIY Handgebaren-gestuurde Arduino Robotarm – Stap‑voor‑Stap Bouwhandleiding