INHOUDSOPGAWE:
- Stap 1: Hekkies …
- Stap 2: Dom kompas
- Stap 3: Uiteindelik 'n oplossing
- Stap 4: laat die app werk
- Stap 5: Stel GameSparks op
- Stap 6: Voeg die finale geleenthede by …
- Stap 7: Voeg die wolkkode by
- Stap 8: ONS IS GEDOEN
Video: Plaas AR -voorwerpe by GPS -koördinate in Augmented Reality: 8 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Hierdie instruksies gaan oor om 'n mobiele app te maak om AR -voorwerpe op GPS -koördinate te plaas met ARkit en ARCore met behulp van Unity3D. Ek lei u deur die opstel van 'n projek wat ek gemaak het met behulp van Mapbox waarmee ons boodskappe op spesifieke GPS -plekke kan merk en dit na 'n GameSparks -databasis kan skryf.
Al die sagteware en projekte wat ons hier sal gebruik, is gratis.
Laai Unity 3D hier af as u dit nog nie het nie:
unity3d.com/
Stap 1: Hekkies …
Dit is dus nie die maklikste app om te maak met die huidige beperkings op mobiele GPS en mobiele kompas nie.
Om eerlik te wees, verskyn die voorwerpe waar dit ongeveer 50% van die tyd behoort te wees. Die resultate is dus nie wonderlik nie, maar hulle word wel akkurater namate u die voorwerpe nader.
Hoe dan ook, ek dink 'n beter manier om op GPS gebaseerde AR op hierdie punt te wees, is om 'n kaart te gebruik soos pokemon go doen, en as u naby 'n voorwerp kom, word die kamera oopgemaak en sien u slegs die voorwerp voor u. In die toekoms wil ek 'n volledige handleiding doen oor 'n eenvoudiger implementering soos hierdie.
Hoe dan ook, ek het al voorheen Mapbox gebruik en ek weet dat hulle 'n omskakelingsklas het wat funksies het om GPS -koördinate om te skakel na Unity -wêreldkoördinate. Ek het gedink ek kan net 'n paar GPS -koördinate deurgee, en dit sal verskyn waar ek dit wil hê. Het nie gewerk nie.
Die voorwerpe verskyn korrek ten opsigte van mekaar, maar hulle was nooit op die regte plek nie. Ek het dus 'n bietjie navorsing gedoen en gevind dat my Unity -kamera in lyn moet wees met die ware noorde sodat die voorwerpe op die regte plek kan verskyn.
Die probleem is dat die kompas in u telefoon nooit heeltemal akkuraat is nie.
Stap 2: Dom kompas
Die grootste probleem is wanneer u voorwerpe ver van die kamera af plaas, as u selfoon se idee van ware noord selfs 'n paar grade is, sal voorwerpe in die verte baie ver weg verskyn.
Ek het hierdie onderneming amper opgegee, maar 'n vriend het my vertel van hierdie GitHub -projek:
github.com/mapbox/mapbox-ar-unity
Dit is 'n poging om 'wêreldwye' AR te doen vanaf Mapbox, waar voorwerpe aan GPS -koördinate geanker is, sodat Augmented Reality -ervarings buite oor lang afstande buite kan werk in plaas van net in 'n klein kamer in u huis.
Hul projek gebruik AR Position deltas en GPS Position deltas om 'n hoek te bereken wat die offset is van die AR kamera na ware noord. Neem dus basies een GPS -lesing wanneer die gebruiker die app begin, en laat hulle in 'n reguit lyn loop en weer 'n GPS -lesing neem. Dan kan u met hierdie twee punte weet watter rigting daardie persoon gestap het (as hulle kamera in die rigting wys). Hulle het gevind dat dit meer akkuraat was as om die kompas op die telefoon te gebruik.
Die ander probleem wat hulle probeer oplos, is die wegdrywing met ARkit. Opsporing is goed in 'n klein kamer, maar as u buite lang afstande loop, dryf AR -voorwerpe ver weg van waar hulle veronderstel is om te wees.
Stap 3: Uiteindelik 'n oplossing
Hierdie Mapbox -projek bied dus 'n manier om 'n betroubare rigting in die rigting van die ware noorde te kry, en al wat oorgebly het, is om net die voorwerpe in die wêreld te plaas.
Uiteindelik het ek hierdie voorbeeld 'n bietjie uitgebrei, sodat ek 'n teksboodskap op 'n spesifieke GPS -plek kon merk en die inligting dan na 'n GameSparks -databasis kon skryf. Dit is wat ek jou gaan wys hoe om dit te gebruik.
Die enigste probleem met hierdie projek is dat u 'n goeie belyning moet kry voordat dit gebruik kan word.
Wat ek met belyning bedoel, is dat aangesien Mapbox posisie -delta's gebruik om die koers te bereken, as u die app eers oopmaak en moet seker maak dat 'n grondvlak opgespoor word en dan 'n rukkie in 'n reguit lyn loop totdat 'n behoorlike belyning bereken is.
In hierdie sin is UX nog 'n struikelblok, maar in die verbeterings van die projek gee hulle 'n voorbeeld van die plaas van kubusse voor die gebruiker om deur te loop om 'n goeie belyning te verseker.
Noudat u die beperkings van hierdie projek ken, laat ek u wys hoe u dit kan gebruik, sodat ouens kan speel. U moet uiteindelik 'n mapbox -rekening en 'n speletjiesparks -rekening skep, wat albei gratis is. Ek het speletjiesparke gebruik net sodat ek êrens GPS -koördinate kon stoor, want tydens die toets begin u die app gereeld en herbou.
Dit behoort ook met ARkit en ARcore te werk, maar ek het op die oomblik slegs 'n iPhone, sodat ek dit net kon toets.
Stap 4: laat die app werk
Laai hierdie projek eers van GitHub af:
Stoor die lêer op u lessenaar en maak dit oop in Unity.
Gaan na die lêer, bou instellings en skakel u platform oor na Android of IOS.
Gaan nou na Mapbox.com en skep 'n rekening as u nog nie een het nie.
Gryp u API -sleutel en gaan terug na Unity, klik op die Mapbox -oortjie bo -aan en klik op configure. Plak u API -sleutel daar in.
Skep nou 'n rekening op GameSparks.com en klik op die knoppie regs bo om 'n nuwe app te skep.
Noem dit net soos u wil en kopieer u API -sleutel en appgeheim. Gaan terug na Unity en vind die oortjie GameSparks bo -aan. Klik op configure en plak u geloofsbriewe ook daarin.
Stap 5: Stel GameSparks op
Nou voordat die app werk, moet ons ons databasis opstel.
GameSparks gebruik noSQL, dus moet ons eers 'n versameling skep en die gebeurtenisse byvoeg wat ons app gebruik om te lees, te skryf en te verwyder van die bediener.
Skep eers 'n nuwe versameling op die GameSparks -webwerf en noem dit wat u wil.
Nou moet ons 3 geleenthede skep.
Die eerste ding wat die app moet doen, is om 'n boodskapvoorwerp in die databasis te skryf.
'N Boodskap het 'n breedtegraad, lengtegraad en dan die teks van die boodskap.
Gaan dus na die konfigurator en voeg 'n nuwe geleentheid by. Maak die kort kode "SAVE_GEO_MESSAGE".
Plaas wat u wil vir die naam en beskrywing.
Voeg die kort kode vir 3 eienskappe by:
"LAT" "LON"
"TEKS"
Stel elke datatipe op string en stel die standaardwaarde op 0. Stel die standaard aggregatietipe van elkeen op "used in script".
Stap 6: Voeg die finale geleenthede by …
Die app moet ook al die boodskappe van die databasis laai en in Unity lees wanneer die app begin, sodat ons 'n AR -boodskap kan plaas wat in die databasis gestoor is.
Skep 'n ander geleentheid en noem dit "LOAD_MESSAGE"
Hierdie gebeurtenis benodig geen kenmerke nie. Sit weer wat u wil vir die naam en beskrywing.
Doen dieselfde vir 'n ander geleentheid en noem dit "REMOVE_MESSAGES"
Dit het selfs geen eienskappe nodig nie.
Die laaste ding wat ons moet doen, is om 'n "wolkkode" of 'n bedienerkantkode by te voeg wat gebel word wanneer elke gebeurtenis vanaf ons app begin.
Stap 7: Voeg die wolkkode by
Gaan in GameSparks na die konfigurator en wolkkode.
Ons moet 'n skrif by elke gebeurtenis wat ons pas gemaak het, byvoeg.
Voeg hierdie kode by die LOAD_MESSAGE -gebeurtenis en stoor dit:
var messageData = Spark.runtimeCollection ("GeoMessage");
var cursor = messageData.find ();
var allMessages = ;
terwyl (cursor.hasNext ()) {
var obj = cursor.next ();
delete (obj ["_id"]);
allMessages.push (obj);
}
Spark.setScriptData ("all_Messages", allMessages); // stuur alle data terug
Voeg hierdie kode by die REMOVE_MESSAGES -gebeurtenis:
var messageData = Spark.runtimeCollection ("GeoMessage");
messageData.remove ({});
Voeg laastens in die SAVE_MESSAGES -geleentheid hierdie by:
var geoMessageList = Spark.runtimeCollection ("GeoMessage");
var messageLat = Spark.getData (). LAT;
var messageLon = Spark.getData (). LON;
var messageText = Spark.getData (). TEKS;
var currentMessage = {
"messLat": messageLat,
"messLon": messageLon,
"messText": messageText,
};
geoMessageList.insert (currentMessage);
Stap 8: ONS IS GEDOEN
Hierdie projek gebruik die unieke ID van u toestel om met die GameSparks -bediener geverifieer te word, sodat u nou terug kan gaan na Unity en op speel kan klik, en u moet 'toestel geverifieer' in die konsole sien
Gaan nou na die lêer, bou instellings en klik op bou. As u nog nooit 'n app vir Android of IOS gemaak het nie, moet u moontlik 'n ontwikkelingsrekening by Google of Apple opstel.
Sodra die app op u telefoon is, moet u eers seker maak dat ARKit of ARCore 'n grondvlak opspoor. Klik nou op die logknoppie in die onderste linkerhoek. Loop 'n paar treë vorentoe en u sal 'berekende belyning' in ligblou sien opkom. Nou moet die UI -knoppies verskyn, en as boodskappe in u databasis gelaai word, word dit in die wêreld geplaas.
Om 'n nuwe GPS AR -boodskap iewers te merk, loop na die plek waar u die boodskap wil hê en klik op die boodskapikoon regs bo op die skerm. Tik die boodskap in wat u wil hê en klik op die speldknoppie!
Aanbeveel:
Versterk u geheue met 'n Augmented Reality Mind Palace: 8 stappe
Versterk u geheue met 'n Augmented Reality Mind Palace: Die gebruik van breinpaleise, soos in Sherlock Holmes, is deur geheue -kampioene gebruik om baie inligting te herroep, soos die volgorde van die kaarte in 'n geskommelde dek. Die breinpaleis of loci -metode is 'n geheuetegniek waar visuele mnemonieke
Augmented Reality (AR) vir Dragonboard410c of Dragonboard820c met behulp van OpenCV en Python 3.5: 4 -stappe
Augmented Reality (AR) vir Dragonboard410c of Dragonboard820c Met behulp van OpenCV en Python 3.5: Hierdie instruksies beskryf hoe u OpenCV, Python 3.5 en afhanklikhede vir Python 3.5 kan installeer om die augmented reality -toepassing uit te voer
Arduino Glass - Open Source Augmented Reality Headset: 9 stappe (met foto's)
Arduino Glass - Open Source Augmented Reality Headset: Het u al ooit daaraan gedink om 'n augmented reality headset te koop? Was u ook verbaas oor die moontlikheid van 'n vergrote werklikheid en met 'n gebroke hart na die prys gekyk? Ja, ek ook! Maar dit het my nie daardeur gestuit nie. Ek het my moed opgebou en in plaas daarvan
CityCoaster - Bou u eie Augmented Reality Coaster vir u onderneming (TfCD): 6 stappe (met foto's)
CityCoaster - Bou u eie Augmented Reality Coaster vir u onderneming (TfCD): 'n stad onder u beker! CityCoaster is 'n projek wat dink oor 'n produk vir die lughawe in Rotterdam, wat die identiteit van die stad kan uitdruk, en die kliënte van die sitkamer met 'n groter werklikheid kan vermaak. In 'n omgewing soos 'n
Augmented Reality Product Showcase (TfCD): 11 stappe (met foto's)
Augmented Reality Product Showcase (TfCD): Die verkoop van produkte tydens vlug word deesdae al hoe gewilder. Die eerste en byna enigste inligting wat die passasier (moontlike koper) op die vliegtuig sien, is egter 'n gedrukte brosjure. Hierdie instruksies wys 'n manier om te innoveer op airp