Sadržaj:
- Korak 1: Prepreke …
- Korak 2: Glupi kompas
- Korak 3: Konačno rješenje
- Korak 4: Omogućimo da aplikacija radi
- Korak 5: Konfigurirajte GameSparks
- Korak 6: Dodajte završne događaje…
- Korak 7: Dodajte kôd oblaka
- Korak 8: GOTOVI SMO
Video: Postavljanje AR objekata na GPS koordinate u proširenoj stvarnosti: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Ova instrukcija će preći na izradu mobilne aplikacije za postavljanje AR objekata na GPS koordinate s ARkit -om i ARCore -om koristeći Unity3D. Provest ću vas kroz postavljanje projekta koji sam napravio pomoću Mapbox -a koji nam omogućuje označavanje poruka na određenim GPS lokacijama i njihovo pisanje u bazu podataka GameSparks.
Sav softver i projekti koje ćemo ovdje koristiti su besplatni.
Preuzmite Unity 3D ovdje ako ga već nemate:
unity3d.com/
Korak 1: Prepreke …
Dakle, ovo nije najlakša aplikacija s trenutnim ograničenjima mobilnog GPS -a i mobilnog kompasa.
Iskreno, objekti se pojavljuju tamo gdje bi trebali biti otprilike 50% vremena. Dakle, rezultati nisu sjajni, ali postaju sve precizniji što se više približavate objektima.
U svakom slučaju, mislim da bi bolji način za AR zasnovan na GPS -u u ovom trenutku bio korištenje karte kao što to radi pokemon go, a kad se približite objektu, kamera se otvara i vidite samo taj objekt ispred sebe. U budućnosti bih želio napraviti potpuni vodič o jednostavnijoj implementaciji poput ove.
U svakom slučaju, ranije sam koristio Mapbox i znam da imaju klasu konverzije koja ima funkcije za pretvaranje GPS koordinata u Unity koordinate svijeta. Mislio sam da mogu samo unijeti neke GPS koordinate i one će se pojaviti tamo gdje ih želim. Nije uspjelo.
Objekti se međusobno ispravno prikazuju, ali nikada nisu bili na pravom mjestu. Pa sam malo istražio i otkrio da je moja Unity kamera potrebno poravnati sa pravim sjeverom kako bi se objekti prikazali na pravom mjestu.
Problem je u tome što kompas u vašem telefonu nikada nije potpuno tačan.
Korak 2: Glupi kompas
Glavni problem je kada postavljate objekte daleko od kamere, ako vam predodžba o pravom sjeveru na telefonima padne čak i za nekoliko stupnjeva, objekti u daljini će se pojaviti vrlo daleko.
Skoro sam odustao od ovog poduhvata, ali prijatelj mi je rekao za ovaj GitHub projekt:
github.com/mapbox/mapbox-ar-unity
Ovo je pokušaj izvođenja AR -a "svjetske razmjere" iz Mapbox -a gdje su objekti usidreni na GPS koordinate tako da iskustva proširene stvarnosti mogu raditi vani na velikim udaljenostima umjesto samo u maloj prostoriji u vašoj kući.
Njihov projekt koristi AR pozicije delte i GPS GPS delte za izračunavanje kuta koji je pomak od AR kamere prema pravom sjeveru. Dakle, u osnovi uzmite jedno očitanje GPS -a kada korisnik pokrene aplikaciju i neka hodaju ravnom linijom i ponovo čitaju GPS. Zatim pomoću ove dvije točke možete odrediti u kojem je smjeru ta osoba hodala (pod pretpostavkom da je kamera usmjerena u smjeru u kojem hodaju). Otkrili su da je to točnije od korištenja kompasa na telefonu.
Drugi problem koji pokušavaju riješiti je drift s ARkitom. Praćenje je u redu u maloj prostoriji, ali kad van hodate na velike udaljenosti AR objekti završavaju daleko od mjesta na kojem bi trebali biti.
Korak 3: Konačno rješenje
Stoga je ovaj Mapbox projekt ponudio način da se dobije pouzdan smjer okretanja u odnosu na pravi sjever, pa je preostalo samo postaviti objekte u svijet.
Na kraju sam malo proširio ovaj primjer kako bih mogao označiti tekstualnu poruku na određenoj GPS lokaciji, a zatim zapisati te podatke u bazu podataka GameSparksa. To ću vam pokazati kako se koristi.
Jedini problem s ovim projektom je taj što morate dobro uskladiti da biste ga mogli koristiti.
Pod poravnanjem želim reći da budući da Mapbox koristi delte položaja za izračunavanje zaglavlja, kada prvi put otvorite aplikaciju i morate se pobrinuti da se otkrije zemljana ravnina, a zatim neko vrijeme hodati ravno, dok se ne izračuna pravilno poravnanje.
U tom smislu UX je još jedna prepreka, ali u poboljšanjima projekta daju primjer postavljanja kockica ispred korisnika kroz koje se prolazi kako bi se osiguralo dobro poravnanje.
Sada kada znate ograničenja ovog projekta, dopustite mi da vam pokažem kako ga koristiti kako bi se momci mogli igrati. Na kraju ćete morati stvoriti račun za kartički okvir i račun za parke igara, a oba su besplatna. Koristio sam igre za igre samo da bih negdje mogao spremiti GPS koordinate jer ćete se tijekom testiranja često ponovno pokretati i obnavljati aplikaciju.
Također, ovo bi trebalo raditi i s ARkitom i s ARcore -om, ali trenutno imam samo iPhone, tako da je to bilo sve što sam mogao testirati.
Korak 4: Omogućimo da aplikacija radi
Najprije preuzmite ovaj projekt s GitHub -a:
Spremite datoteku na radnu površinu i otvorite je u programu Unity.
Idite na datoteku, napravite postavke i prebacite svoju platformu na Android ili IOS.
Sada idite na Mapbox.com i kreirajte račun ako ga već nemate.
Uzmite svoj API ključ i vratite se na Unity, kliknite karticu Mapbox pri vrhu i kliknite konfiguriraj. Tamo zalijepite svoj API ključ.
Sada stvorite račun na GameSparks.com i kliknite gumb u gornjem desnom kutu za kreiranje nove aplikacije.
Nazovite to kako god želite i kopirajte svoj API ključ i tajnu aplikacije. Vratite se na Unity i pronađite karticu GameSparks pri vrhu. Kliknite na Konfiguracija i zalijepite svoje vjerodajnice tamo.
Korak 5: Konfigurirajte GameSparks
Prije nego što aplikacija počne funkcionirati, moramo konfigurirati našu bazu podataka.
GameSparks koristi noSQL pa prvo moramo stvoriti zbirku i dodati događaje koje naša aplikacija koristi za čitanje, pisanje i brisanje s poslužitelja.
Prvo stvorite novu kolekciju na web stranici GameSparks i nazovite je kako god želite.
Sada moramo stvoriti 3 događaja.
Prva stvar koju aplikacija mora učiniti je zapisati objekt poruke u bazu podataka.
Poruka ima geografsku širinu, dužinu, a zatim i tekst poruke.
Zato idite na konfigurator i dodajte novi događaj. Napravite kratki kôd "SAVE_GEO_MESSAGE".
Unesite ime i opis šta god želite.
Dodajte kratki kôd za 3 atributa:
"LAT" "LON"
"TEKST"
Postavite svaki tip podataka na niz i postavite zadanu vrijednost na 0. Postavite zadanu vrstu agregacije svakog na "koristi se u skripti".
Korak 6: Dodajte završne događaje…
Aplikacija također mora učitati sve poruke iz baze podataka i pročitati ih u Unityju kada se aplikacija pokrene, tako da možemo postaviti AR poruke koje su pohranjene u bazi podataka.
Kreirajte drugi događaj i nazovite ga "LOAD_MESSAGE"
Ovaj događaj ne treba nikakve atribute. Opet stavite sve što želite za ime i opis.
Učinite isto za drugi događaj i nazovite ga "REMOVE_MESSAGES"
Ni ovo ne zahtijeva nikakve atribute.
Sada posljednja stvar koju trebamo učiniti je dodati neki "cloud kod" ili kod poslužitelja koji se poziva pri pokretanju svakog događaja iz naše aplikacije.
Korak 7: Dodajte kôd oblaka
U GameSparksu idite na konfigurator i kod u oblaku.
Moramo dodati skriptu svakom događaju koji smo upravo napravili.
U događaj LOAD_MESSAGE dodajte ovaj kôd i spremite ga:
var messageData = Spark.runtimeCollection ("GeoMessage");
var kursor = messageData.find ();
var allMessages = ;
while (kursor.hasNext ()) {
var obj = cursor.next ();
delete (obj ["_id"]);
allMessages.push (obj);
}
Spark.setScriptData ("all_Messages", allMessages); // vraća sve podatke
U događaj REMOVE_MESSAGES dodajte ovaj kôd:
var messageData = Spark.runtimeCollection ("GeoMessage");
messageData.remove ({});
Na kraju u događaju SAVE_MESSAGES dodajte ovo:
var geoMessageList = Spark.runtimeCollection ("GeoMessage");
var messageLat = Spark.getData (). LAT;
var messageLon = Spark.getData (). LON;
var messageText = Spark.getData (). TEXT;
var currentMessage = {
"messLat": messageLat,
"messLon": messageLon,
"messText": messageText,
};
geoMessageList.insert (currentMessage);
Korak 8: GOTOVI SMO
Ovaj projekt koristi jedinstveni ID vašeg uređaja za autentifikaciju s GameSparks poslužiteljem, tako da se sada možete vratiti na Unity i kliknuti play, a na konzoli biste trebali vidjeti "uređaj je autentificiran …"
Sada idite na datoteku, postavite postavke i kliknite na izgradnju. Ako nikada niste napravili aplikaciju za Android ili IOS, možda ćete morati postaviti razvojni račun s Googleom ili Appleom.
Nakon što je aplikacija na vašem telefonu, morate se prvo uvjeriti da ARKit ili ARCore detektira ravninu tla. Sada kliknite gumb za logovanje u donjem lijevom kutu. Idite nekoliko koraka naprijed i vidjet ćete da se "izračunato poravnanje" pojavljuje svijetlo plavo. Sada bi se trebali pojaviti gumbi korisničkog sučelja i ako se bilo koja poruka učita u vašu bazu podataka, bit će postavljene u svijet.
Da biste negdje označili novu GPS AR poruku, idite do lokacije na kojoj želite da poruka bude i kliknite ikonu poruke u gornjem desnom kutu zaslona. Upišite koju god poruku želite i kliknite na pin dugme!
Preporučuje se:
Ojačajte pamćenje Palatom uma proširene stvarnosti: 8 koraka
Ojačajte svoje pamćenje palačom uma s proširenom stvarnošću: Upotrebu palata uma, poput Sherlocka Holmesa, prvaci pamćenja koristili su da se prisjete mnogih informacija, poput redoslijeda karata u promiješanom špilu. Palača uma ili metoda lokusa je tehnika pamćenja u kojoj su vizualne mnemotehnike
GlobalARgallery - Galerija globalne proširene stvarnosti: 16 koraka
#GlobalARgallery - Galerija globalne proširene stvarnosti: #GlobalARgallery prilika je za škole (i druge) da se asinhrono povežu širom svijeta i razmjene iskustva, umjetnička djela, priče, vremenske linije, izložbe, prezentacije i sve ostalo što možete zamisliti. Sve se to pojavljuje u A
Odbijte nazad! Igra virtualne stvarnosti pomoću Arduina i akromerometra: 9 koraka
Odbijte nazad! Igra Virtual Reality pomoću Arduina i Acclerometra: U ovom vodiču ćemo kreirati igru Virtual Reality koristeći Arduino i Acclerometer
Zagonetka proširene stvarnosti: 11 koraka
Puzzle s proširenom stvarnošću: Slagalice su jednostavno divne. Postoje zagonetke svih vrsta, tipična slagalica, labirint s žetonima, pa čak i video igre ovog žanra (na primjer, Captain Toad). Zagonetke zahtijevaju od igrača da osmisli strategiju rješavanja problema
Izlog proizvoda proširene stvarnosti (TfCD): 11 koraka (sa slikama)
Izlog proizvoda proširene stvarnosti (TfCD): Prodaja proizvoda tokom leta postaje sve popularnija u današnje vrijeme. Međutim, prva i gotovo jedina informacija koju putnik (mogući kupac) vidi u avionu je štampana brošura. Ovo uputstvo će pokazati način inoviranja u airpu