INHOUDSOPGAWE:

EyeRobot - die Robotic White Cane: 10 stappe (met foto's)
EyeRobot - die Robotic White Cane: 10 stappe (met foto's)

Video: EyeRobot - die Robotic White Cane: 10 stappe (met foto's)

Video: EyeRobot - die Robotic White Cane: 10 stappe (met foto's)
Video: Top 10 AI Robots In 2023 | Advanced AI Robots in the World | Artificial Intelligence | Simplilearn 2024, November
Anonim
EyeRobot - die Robotic White Cane
EyeRobot - die Robotic White Cane

Abstract: Met die iRobot Roomba Create het ek 'n toestel met die naam eyeRobot prototipe. Dit sal blinde en gesiggestremde gebruikers deur rommelige en bevolkte omgewings lei deur die Roomba as basis te gebruik om met die eenvoud van die tradisionele wit kierie te trou met die instinkte van 'n sienende hond. Die gebruiker dui sy/haar gewenste beweging aan deur intuïtief aan te druk en die handvatsel te draai. Die robot neem hierdie inligting op en vind 'n duidelike pad in 'n gang of oor 'n kamer en gebruik sonar om die gebruiker in 'n geskikte rigting om statiese en dinamiese hindernisse te stuur. Die gebruiker volg dan agter die robot terwyl hy die gebruiker in die gewenste rigting lei deur die merkbare krag wat deur die handvatsel gevoel word. Hierdie robot -opsie verg min opleiding: druk om te gaan, trek om te stop, draai om te draai. Die versiendheid wat die afstandmeters bied, is soortgelyk aan 'n hond wat sien en is 'n aansienlike voordeel bo die konstante toets en fout wat die gebruik van die wit kierie aandui. Tog bied eyeRobot steeds 'n baie goedkoper alternatief as gidshonde, wat meer as $ 12 000 kos en slegs 5 jaar lank nuttig is, terwyl die prototipe vir minder as $ 400 gebou is. Dit is ook 'n relatief eenvoudige masjien wat 'n paar goedkoop sensors, verskillende potensiometers, hardeware en natuurlik 'n Roomba Create benodig.

Stap 1: Videodemonstrasie

Videodemonstrasie
Videodemonstrasie

Hoë kwaliteit weergawe

Stap 2: Oorsig van die operasie

Oorsig van die operasie
Oorsig van die operasie

Gebruikersbeheer: die werking van eyeRobot is so intuïtief moontlik ontwerp om opleiding aansienlik te verminder of uit te skakel. Om die beweging te begin, moet die gebruiker eenvoudig vorentoe loop, 'n lineêre sensor aan die onderkant van die stok sal hierdie beweging opneem en die robot vorentoe begin beweeg. Deur hierdie lineêre sensor te gebruik, kan die robot sy snelheid dan ooreenstem met die gewenste snelheid van die gebruiker. eyeRobot beweeg so vinnig as wat die gebruiker wil gaan. Om aan te dui dat 'n draai gewens word, moet die gebruiker eenvoudig die handvatsel draai, en as 'n draai moontlik is, reageer die robot dienooreenkomstig.

Robotnavigasie: As u in die oop ruimte reis, sal eyeRobot probeer om 'n reguit pad te hou, enige hindernis op te spoor wat die gebruiker kan belemmer en die gebruiker om die voorwerp te lei en terug te keer na die oorspronklike pad. In die praktyk kan die gebruiker natuurlik agter die robot aanloop met min bewuste nadenke. Om deur 'n gang te navigeer, moet die gebruiker probeer om die robot in een van die mure aan weerskante te druk, nadat hy 'n muur gekry het, sal die robot dit begin volg, die gebruiker in die gang. As 'n kruising bereik word, voel die gebruiker dat die robot begin draai, en kan hy deur die handvatsel te draai, besluit of hy die nuwe uitloop wil afdraai of op 'n reguit pad wil gaan. Op hierdie manier is die robot baie soos die wit kierie, die gebruiker kan die omgewing met die robot voel en hierdie inligting gebruik vir globale navigasie.

Stap 3: Range Sensors

Range Sensors
Range Sensors

Ultrasonics: Die eyeRobot bevat 4 ultrasoniese afstandmeters (MaxSonar EZ1). Die ultrasoniese sensors is in 'n boog aan die voorkant van die robot geplaas om inligting te verskaf oor voorwerpe voor en aan die kante van die robot. Hulle lig die robot in oor die reikwydte van die voorwerp en help hom om 'n oop roete om die voorwerp te vind en terug te keer na die oorspronklike pad.

IR -afstandsmeters: Die eyeRobot het ook twee IR -sensors (GP2Y0A02YK). Die IR -afstandmeters is geposisioneer om 90 grade na regs en links uit te wys om die robot in die muur te help. Hulle kan die robot ook waarsku oor voorwerpe wat te naby aan die sye is waarop die gebruiker kan loop.

Stap 4: Cane Position Sensors

Rietposisiesensors
Rietposisiesensors

Lineêre sensor: sodat die eyeRobot sy spoed kan pas by die van die gebruiker, kan die eyeRobot agterkom of die gebruiker sy voorwaartse beweging druk of vertraag. Dit word bereik deur die basis van die kierie langs 'n baan te skuif, aangesien 'n potensiometer die posisie van die kierie waarneem. Die eyeRobot gebruik hierdie insette om die snelheid van die robot te reguleer. Die idee van die eyeRobot wat deur 'n lineêre sensor by die snelheid van die gebruiker aanpas, is eintlik geïnspireer deur die familie grassnyer. Die basis van die kierie is verbind met 'n geleidingsblok wat langs 'n spoor beweeg. Aan die geleidingsblok is 'n skuifpotentiometer wat die posisie van die geleidingsblok lees en dit aan die verwerker rapporteer. Om die stok relatief tot die robot te laat draai, loop daar 'n staaf deur 'n blok hout wat 'n roterende laer vorm. Hierdie laer word dan aan 'n skarnier vasgemaak sodat die stok kan aanpas by die hoogte van die gebruiker.

Draai -sensor: Met die draai -sensor kan die gebruiker aan die handvatsel draai om die robot te draai. 'N Potensiometer word aan die einde van die houtas vasgemaak en die knop word in die boonste gedeelte van die handvatsel geplaas en vasgeplak. Die drade loop deur die plug en voer die draai -inligting in die verwerker.

Stap 5: verwerker

Verwerker
Verwerker

Verwerker: Die robot word beheer deur 'n Zbasic ZX-24a wat op 'n Robodyssey Advanced moederbord II sit. Die verwerker is gekies vir sy snelheid, gebruiksgemak, bekostigbare koste en 8 analoog insette. Dit is gekoppel aan 'n groot prototipe broodbord om vinnige en maklike veranderinge moontlik te maak. Alle krag vir die robot kom van die kragtoevoer op die moederbord. Die Zbasic kommunikeer met die roomba deur die laai -hawe en het volle beheer oor die Roomba se sensors en motors.

Stap 6: Kodeoorsig

Kode Oorsig
Kode Oorsig

Vermyding van hindernisse: Om hindernis te vermy, gebruik die eyeRobot 'n metode waar voorwerpe naby die robot 'n virtuele krag op die robot uitoefen en dit van die voorwerp af wegbeweeg. Met ander woorde, voorwerpe stoot die robot weg van hulself. In my implementering is die virtuele krag wat deur 'n voorwerp uitgeoefen word, omgekeerd eweredig aan afstand in kwadraat, sodat die krag van die stoot toeneem namate die voorwerp nader kom en 'n nie -lineêre reaksiekurwe ontstaan: PushForce = ResponseMagnitudeConstant/Distance2Die druk van elke sensor word bymekaargetel; sensors aan die linkerkant druk regs, en omgekeerd, om 'n vektor te kry vir die reis van die robot. Wielsnelhede word dan verander sodat die robot na hierdie vektor draai. Om te verseker dat voorwerpe wat voor die robot dood is, geen "geen reaksie" toon nie (omdat die kragte aan beide kante balanseer), stoot voorwerpe na die dooie front die robot na die meer oop kant toe. As die robot by die voorwerp verby is, gebruik hy die Roomba se encoders om die verandering reg te stel en terug te keer na die oorspronklike vektor.

Muurvolging: Die beginsel van muurvolging is om die gewenste afstand en parallelle hoek met 'n muur te handhaaf. Probleme ontstaan wanneer die robot relatief tot die muur gedraai word omdat die enkele sensor nuttelose meetmetings lewer. Bereikmetings word net so beïnvloed deur die hoek van die robot na die muur as die werklike afstand tot die muur. Om die hoek te bepaal en hierdie veranderlike uit te skakel, moet die robot twee verwysingspunte hê wat vergelyk kan word om die robot se hoek te kry. Omdat die eyeRobot slegs 'n IR -afstandsmeter aan die een kant het, moet die afstand van die afstandmeter mettertyd vergelyk word terwyl die robot beweeg. Dit bepaal dan sy hoek uit die verskil tussen die twee metings terwyl die robot langs die muur beweeg. Dit gebruik dan hierdie inligting om die verkeerde posisionering reg te stel. Die robot gaan in die volgmodus wanneer dit 'n sekere tyd lank 'n muur langs hom het en verlaat dit wanneer daar 'n hindernis in sy pad is, wat dit van sy baan af druk, of as die gebruiker die draaigreep gebruik om die robot weg van die muur.

Stap 7: Onderdele lys

Onderdele lys
Onderdele lys

Onderdele benodig: 1x) Roomba create1x) Groot vel akriel2x) Sharp GP2Y0A02YK IR afstandsmeter4x) Maxsonar EZ1 ultrasoniese afstandsmeters1x) ZX-24a mikroprosessor1x) Robodyssey Advanced moederbord II1x) Skyfie potentiometer1x) Enkel draai potentiometer1x) Lineêre peilbord)) Lineaire peilbord)) Lineaire peilbord)) Lineaire peilbord) Skarniere, pluge, skroewe, moere, hakies en drade

Stap 8: Motivering en verbetering

Motivering en verbetering
Motivering en verbetering

Motivering: Hierdie robot is ontwerp om die duidelike gaping tussen die bekwame maar duur gidshond en die goedkoop, maar beperkte wit riet te vul. In die ontwikkeling van 'n bemarkbare en meer bekwame Robotic White Cane, was die Roomba Create die perfekte voertuig om 'n vinnige prototipe te ontwerp om te sien of die konsep werk. Boonop bied die pryse ekonomiese steun vir die aansienlike koste van die bou van 'n vaardiger robot.

Verbetering: die hoeveelheid wat ek geleer het om hierdie robot te bou, was aansienlik, en hier sal ek probeer uiteensit wat ek geleer het terwyl ek verder probeer om 'n tweede generasie robot te bou: 1) Vermyding van hindernisse - ek het baie geleer oor hindernis in real -time vermyding. By die bou van hierdie robot het ek deur twee heeltemal verskillende hindernis -vermydingskodes gegaan, begin met die oorspronklike voorwerpkragidee, dan na die beginsel om die mees oop vektor te vind en te soek en dan terug te keer na die voorwerpkragidee met die belangrikste besef dat die objektereaksie nie-lineêr moet wees. In die toekoms sal ek my fout regstel om nie aanlyn navorsing te doen oor voorheen gebruikte metodes voordat ek met my projek begin nie. sensors - Aan die begin van hierdie projek het ek gedink dat my enigste opsie vir 'n lineêre sensor was om 'n skuifpot en 'n soort lineêre laer te gebruik. Ek besef nou dat 'n baie eenvoudiger opsie sou gewees het om die bokant van die staaf eenvoudig aan 'n joystick vas te maak, sodat die stok vorentoe gestoot word, ook die joystick vorentoe sou stoot. Boonop kan 'n eenvoudige universele las die draai van die stok omskakel in die draai -as van baie moderne joysticks. Hierdie implementering sou baie eenvoudiger gewees het as die wat ek tans gebruik. 'N Robot wat passief rol, benodig geen motors en 'n kleiner battery nie en is dus ligter. Boonop benodig hierdie stelsel geen lineêre sensor om die druk van die gebruikers op te spoor nie; die robot rol eenvoudig teen die gebruikersnelheid. Die robot kan gedraai word deur die wiele soos 'n motor te stuur, en as die gebruiker gestop moet word, kan remme bygevoeg word. Vir die volgende generasie eyeRobot sal ek beslis 'n heel ander benadering gebruik. verskillende verwysingspunte te bereik. Twee sensors met 'n afstand tussen hulle sou die muurvolgorde aansienlik vereenvoudig. 5) Meer sensors - Alhoewel dit meer geld sou kos, was dit moeilik om hierdie robot te kodeer met so min vensters buite die verwerker. Dit sou die navigasiekode baie kragtiger gemaak het met 'n meer volledige sonar -reeks (maar natuurlik kos sensors geld, wat ek destyds nie gehad het nie).

Stap 9: Gevolgtrekking

Afsluiting
Afsluiting

Gevolgtrekking: Die iRobot was 'n ideale prototipe -platform om te eksperimenteer met die konsep van 'n Robotic White Cane. Uit die resultate van hierdie prototipe blyk dit dat 'n soortgelyke robot inderdaad lewensvatbaar is. Ek hoop om 'n tweede generasie robot te ontwikkel uit die lesse wat ek geleer het uit die gebruik van die Roomba Create. In toekomstige weergawes van eyeRobot stel ek my voor dat 'n toestel meer kan doen as om net 'n persoon in 'n gang te lei, eerder 'n robot wat in die hande van blindes gesit kan word vir gebruik in die alledaagse lewe. Met hierdie robot sou die gebruiker eenvoudig hul bestemming spreek en die robot sou hulle daarheen lei sonder dat die gebruiker dit bewustelik moes doen. Hierdie robot sou lig en kompak genoeg wees om maklik met trappe op te dra en in 'n kas weggesteek te word. Hierdie robot kan, behalwe die plaaslike, ook wêreldwye navigasie doen, en die gebruiker van begin tot bestemming kan begelei sonder vooraf kennis of ervaring van die gebruikers. Hierdie vermoë sou selfs verder gaan as die gidshond, met GPS en meer gevorderde sensors sodat blindes die wêreld vrylik kan navigeer, Nathaniel Barshay, (ingevoer deur Stephen Barshay) (spesiale dank aan Jack Hitt vir die Roomba Create)

Stap 10: Konstruksie en kode

Konstruksie en kode
Konstruksie en kode

'N Paar vreemde woorde oor die konstruksie: die dek gemaak van 'n stuk akriel in 'n sirkel met 'n opening aan die agterkant om toegang tot elektronika moontlik te maak, en word dan in die bevestigingsgate langs die laaibak vasgeskroef. Die prototipe bord word in die skroefgat aan die onderkant van die baai vasgeskroef. Die Zbasic is gemonteer met 'n L -houer met dieselfde skroewe as die dek. Elke sonar word in 'n stuk akriel vasgeskroef, wat weer aan 'n L -hakie vasgemaak word (die L -hakies word 10 grade teruggebuig om 'n beter beeld te gee). Die baan vir die lineêre sensor word regs in die dek vasgeskroef en die skuifpot is gemonteer met L -hakies daarby. 'N Meer tegniese beskrywing van die konstruksie van die lineêre sensor en stuurstang kan in stap 4 gevind word.

Kode: Ek het die volledige weergawe van die robotkode aangeheg. In die loop van 'n uur het ek probeer om dit skoon te maak van die drie of vier generasies kode wat in die lêer was, dit moet maklik genoeg wees om nou te volg. As u die ZBasic IDE het, moet dit maklik wees om dit te sien, indien nie, gebruik die notaboek wat begin met die lêer main.bas en deur die ander.bas -lêers.

Aanbeveel: