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

Robot voor supercoole indoornavigatie

Componenten en benodigdheden

Smart Motor Robot Car Battery Box Chassis Kit DIY Speed ​​Encoder voor Arduino
× 1
oblu - een opensource IMU voor indoor voetgangersnavigatie
× 1
Soldeerloze breadboard halve grootte
× 1
Mannelijke/Vrouwelijke doorverbindingsdraden
× 1
Condensator 1000 µF
× 2
Texas Instruments Dual H-Bridge motordrivers L293D
× 1
Arduino Mega 2560
× 1
AA 2800 Ni-MH oplaadbaar
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE
Xoblu

Over dit project

Ons verhaal :

Het project gaat erom de robot met precisie in een vooraf gedefinieerd pad te laten bewegen, zonder gebruik te maken van GPS of WiFi of Bluetooth voor positionering, zelfs geen kaart of plattegrond van het gebouw. En teken het werkelijke pad (naar de schaal), in realtime. De bluetooth kan worden gebruikt als vervanging van draad, voor het verzenden van realtime locatie-informatie.

Het achtergrondverhaal:

We waren op zoek naar een robuuste oplossing voor binnennavigatie van onze op Arduino gebaseerde robot. Bij het kiezen van de juiste bewegingsdetectie-oplossing voor deze toepassing, hebben we ook Oblu (een opensource IMU) overwogen. De lage kosten en het open source karakter maakten het een waarschijnlijke kandidaat. Het lastige hier was dat het opensource-programma van oblu geschikt is voor foot-mounted indoor Pedestrian Dead Reckoning (PDR) of Pedestrian Navigation, in eenvoudige bewoordingen. Oblu's PDR-prestaties binnenshuis als een op de voet gemonteerde IMU zijn behoorlijk indrukwekkend. Een groot pluspunt was de gratis Android-app (Xoblu) voor het realtime volgen van posities. We wisten echter niet zeker hoe we gebruik moesten maken van het bestaande voetgangersnavigatie-algoritme dat is gebaseerd op het menselijk loopmodel.

De interne berekeningen van Oblu zijn gebaseerd op het lopen van mensen. Oblu geeft verplaatsing tussen twee opeenvolgende stappen en verandering in koers. Wanneer de voet de grond raakt, is de snelheid van de zool nul, d.w.z. de zool staat stil. Op deze manier detecteert Oblu 'stappen' en corrigeert enkele interne fouten. En deze frequente correctie van fouten resulteert in geweldige trackingprestaties. Dus hier ligt de vangst. Wat als onze robot ook op dezelfde manier loopt - bewegen, stoppen, bewegen, stoppen..

We kozen voor Oblu en in een mum van tijd konden we onze robot en het volgsysteem in elkaar zetten. De rest van het verhaal staat in de volgende video...

Hoe werkt het:

De robot beweegt zich in een voorgeprogrammeerd pad en verzendt (via bluetooth) zijn daadwerkelijke bewegingsinformatie naar een telefoon voor realtime tracking.

Arduino is voorgeprogrammeerd met pad en oblu wordt gebruikt voor het detecteren van de beweging van de robot. oblu verzendt met regelmatige tussenpozen bewegingsinformatie naar Arduino. Op basis daarvan bestuurt Arduino de bewegingen van de wielen om de robot het vooraf gedefinieerde pad te laten volgen.

Het pad van de robot is geprogrammeerd als een set rechte lijnsegmenten. Elk lijnsegment wordt gedefinieerd door zijn lengte en oriëntatie ten opzichte van het vorige. De beweging van de robot wordt discreet gehouden, d.w.z. hij beweegt in een rechte lijn, maar in kleinere segmenten (laten we het voor de eenvoud 'stappen' noemen). Aan het einde van elke stap verzendt oblu de staplengte en mate van afwijking (verandering in oriëntatie) van rechte lijn naar Arduino. Arduino corrigeert de uitlijning van de robot bij elke stap bij het ontvangen van dergelijke informatie, als het een afwijking van de vooraf gedefinieerde rechte lijn vindt.

Volgens het programma moet de robot altijd in een rechte lijn bewegen. Het kan echter afwijken van een rechte lijn en kan in een bepaalde hoek of een scheef pad lopen vanwege niet-idealiteiten zoals een oneffen oppervlak, massa-onbalans in robotassemblage, architecturale of elektrische onbalans in gelijkstroommotoren of de willekeurige oriëntatie van het voorste vrijlopende wiel. Zet één stap... corrigeer je koers... ga vooruit. De robot beweegt ook achteruit als hij meer aflegt dan de geprogrammeerde lengte van dat specifieke lijnsegment.

De volgende paslengte hangt af van de resterende afstand die moet worden afgelegd van dat specifieke rechte lijnsegment. De robot neemt grote passen wanneer de af te leggen afstand groter is en neemt kleinere passen in de buurt van de bestemming (d.w.z. het einde van elk recht lijnsegment).

IMU Oblu verzendt tegelijkertijd gegevens naar Arduino en telefoon (via bluetooth). Xoblu (de Android-app) voert een eenvoudige berekening uit om het pad te construeren op basis van de bewegingsinformatie die is ontvangen van de robot, die wordt gebruikt voor realtime tracking op de telefoon. (De constructie van een pad met Xoblu wordt hieronder geïllustreerd.)

Samengevat, Oblu detecteert beweging en communiceert met regelmatige tussenpozen bewegingsinformatie naar Arduino en telefoon. Op basis van het geprogrammeerde pad en de bewegingsinformatie (verzonden door oblu), bestuurt Arduino de bewegingen van de wielen. De beweging van de robot wordt NIET op afstand bestuurd, behalve voor start/stop-commando's.

Padmodellering:

De robot kan het beste worden bestuurd als hij alleen in rechte lijnsegmenten loopt. Daarom moet het pad eerst worden gemodelleerd als een set rechte lijnsegmenten. Onderstaande afbeeldingen bevatten een aantal voorbeeldpaden en hun representaties in termen van verplaatsing en oriëntatie. Zo is het pad in Arduino geprogrammeerd.

Evenzo kan elk pad dat een reeks rechte lijnsegmenten is, worden gedefinieerd en geprogrammeerd in Arduino.

Circuitmontage:

Raadpleeg de H/W-sectie voor elektrische verbindingen tussen Arduino, oblu, motordriver en batterijpakket.

  • Communicatieprotocol:

Stap 1 :Xoblu stuurt het START-commando naar oblu

Stap 2 :oblu bevestigt het ontvangen van de opdracht door de juiste ACK naar Xoblu te sturen

Stap 3 :oblu stuurt DATA-pakket met informatie over verplaatsing en oriëntatie voor elke stap, bij elke stap, naar Xoblu. (stap =telkens wanneer nulbeweging wordt gedetecteerd of stilstand wordt gedetecteerd).

Stap 4 :Xoblu bevestigt de ontvangst van het laatste DATA-pakket door de juiste ACK naar oblu te sturen. (Cyclus van stappen 3 en 4 wordt herhaald totdat Xoblu STOP verzendt. Bij ontvangst van het STOP-commando voert oblu stap 5 uit)

Stap 5 :STOP - (i) Stop verwerking in oblu (ii) Stop alle outputs in oblu

Raadpleeg de toepassingsnota van oblu voor details over START, ACK, DATA en STOP

Hoe werkt Oblu IMU (optioneel) :

Enkele referenties over Oblu's overzicht en basisprincipe van de werking van op de voet gemonteerde PDR-sensoren:

--> De beschikbare broncode van oblu is gericht op navigatie op de voet. En voor dat doel is het het beste geoptimaliseerd. Onderstaande video behandelt het basisprincipe van de werking:

--> Hier zijn een paar eenvoudige artikelen over PDR-sensoren op de voet:

1. Volg mijn stappen

2. Blijf mijn stappen volgen

--> U kunt dit document raadplegen voor details over gegist bestek voor voetgangers met behulp van voetsensoren.

--> Volgende video voor een overzicht van Oblu:

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

Deel alstublieft uw feedback, suggesties en laat opmerkingen achter.

Beste wensen!

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

Code

op Arduino gebaseerde robot
De robot beweegt in een voorgeprogrammeerd pad en verzendt zijn huidige coördinaten naar een telefoon voor realtime tracking.https://github.com/vijkumsha/oblu_Robot

Schema's


Productieproces

  1. Raspberry Pi-robot bestuurd via Bluetooth
  2. Simple Pi Robot
  3. Obstakels vermijden robot met servomotor
  4. Joy Robot (Robô Da Alegria)
  5. Lijnvolger Robot
  6. Spraakgestuurde robot
  7. Arduino-gestuurde pianorobot:PiBot
  8. Arduino-trainingsplatform
  9. Autonome Home Assistant-robot
  10. SMART temperatuurbewaking voor scholen
  11. DIY Arduino-robotarm – bestuurd door handgebaren