Përmbajtje:

Vendosja e objekteve AR në koordinatat GPS në realitet të shtuar: 8 hapa (me fotografi)
Vendosja e objekteve AR në koordinatat GPS në realitet të shtuar: 8 hapa (me fotografi)

Video: Vendosja e objekteve AR në koordinatat GPS në realitet të shtuar: 8 hapa (me fotografi)

Video: Vendosja e objekteve AR në koordinatat GPS në realitet të shtuar: 8 hapa (me fotografi)
Video: Tesla Motors: Радиолокационные Механика Разъяснения! Автопилот / автономный радар 2024, Korrik
Anonim
Vendosja e objekteve AR në Koordinatat GPS në Realitetin e Shtuar
Vendosja e objekteve AR në Koordinatat GPS në Realitetin e Shtuar

Ky udhëzues do të kalojë duke bërë një aplikacion celular për vendosjen e objekteve AR në koordinatat GPS me ARkit dhe ARCore duke përdorur Unity3D. Unë do t'ju tregoj përmes krijimit të një projekti që kam bërë duke përdorur Mapbox që na lejon të etiketojmë mesazhe në vende të veçanta GPS dhe t'i shkruajmë ato në një bazë të dhënash GameSparks.

Të gjithë programet kompjuterike dhe projektet që do të përdorim këtu janë falas.

Shkarkoni Unity 3D këtu nëse nuk e keni tashmë:

unity3d.com/

Hapi 1: Pengesat…

Pengesat…
Pengesat…

Pra, ky nuk është aplikacioni më i lehtë për tu bërë me kufizimet aktuale të GPS celular dhe busullës mobile.

Për të qenë i sinqertë, objektet shfaqen aty ku supozohet se mund të jenë rreth 50% të kohës. Pra, rezultatet nuk janë të mëdha, por ato bëhen më të sakta sa më shumë që i afroheni objekteve.

Sido që të jetë, unë mendoj se një mënyrë më e mirë për GPS të bazuar në AR në këtë pikë do të ishte përdorimi i një harte si pokemon go dhe kur i afroheni një objekti kamera hapet dhe shihni vetëm atë objekt para jush. Në të ardhmen do të doja të bëja një mësim të plotë mbi një zbatim më të thjeshtë si ai.

Sido që të jetë, unë kam përdorur Mapbox më parë dhe e di që ata kanë një klasë konvertimi që ka funksione për konvertimin e koordinatave GPS në koordinatat e Unitetit botëror. Mendova se mund të kaloja vetëm në disa koordinata GPS dhe ato do të shfaqeshin aty ku i doja. Nuk funksionoi.

Objektet shfaqen saktë në lidhje me njëri -tjetrin, por ato kurrë nuk ishin në vendin e duhur. Kështu që unë bëra disa kërkime dhe zbulova se Kamera ime e Unitetit duhej të rreshtohej me veriun e vërtetë në mënyrë që objektet të shfaqeshin në vendin e duhur.

Problemi është se busulla në telefonin tuaj nuk është kurrë plotësisht e saktë.

Hapi 2: busull budalla

Busull budallai
Busull budallai
Busull budallai
Busull budallai

Problemi kryesor është kur vendosni objekte larg kamerës, nëse ideja e telefonit tuaj për veriun e vërtetë është e fikur edhe disa gradë, objektet në distancë do të shfaqen shumë larg.

Unë pothuajse hoqa dorë nga kjo sipërmarrje, por një mik më tha për këtë projekt GitHub:

github.com/mapbox/mapbox-ar-unity

Kjo është një përpjekje për të bërë AR "në shkallë botërore" nga Mapbox ku objektet janë të ankoruara në koordinatat GPS në mënyrë që përvojat e Realitetit të Shtuar të mund të punojnë jashtë në distanca të gjata në vend që të futen vetëm brenda një dhome të vogël në shtëpinë tuaj.

Projekti i tyre përdor deltat e Pozicionit AR dhe deltat e Pozicionit GPS për të llogaritur një kënd që është kompensuar nga kamera AR në veriun e vërtetë. Pra, në thelb merrni një lexim GPS kur përdoruesi fillon aplikacionin dhe bëni që ata të ecin në një vijë të drejtë dhe të marrin një lexim tjetër GPS. Pastaj me këto dy pika mund të tregoni se në cilin drejtim po ecte ai person (duke supozuar se kamera e tyre po tregon drejtimin që po ecën). Ata zbuluan se kjo ishte më e saktë sesa përdorimi i busullës në telefon.

Çështja tjetër që ata përpiqen të zgjidhin është lëvizja me ARkit. Ndjekja është në rregull brenda një dhome të vogël, por kur ecni jashtë në distanca të gjata objektet AR përfundojnë duke u larguar larg nga vendi ku supozohet të jenë.

Hapi 3: Më në fund një zgjidhje

Më në fund një zgjidhje!
Më në fund një zgjidhje!

Pra, ky projekt Mapbox ofroi një mënyrë për të marrë një drejtim të besueshëm përballë veriut të vërtetë, kështu që gjithçka që mbeti ishte vetëm vendosja e objekteve në botë.

Përfundova duke e zgjeruar pak këtë shembull në mënyrë që të mund të etiketoja një mesazh me tekst në një vendndodhje të veçantë GPS dhe pastaj ta shkruaja atë informacion në një bazë të dhënash GameSparks. Kjo është ajo që unë do t'ju tregoj se si ta përdorni.

Problemi i vetëm me këtë projekt është se ju duhet të merrni një shtrirje të mirë para se të mund të përdoret.

Ajo që dua të them me shtrirjen është se meqenëse Mapbox përdor deltat e pozicionit për të llogaritur titullin, kur së pari hapni aplikacionin dhe duhet të siguroheni që një aeroplan tokësor të zbulohet dhe pastaj të ecni në një vijë të drejtë për një kohë derisa të llogaritet një shtrirje e duhur.

Në këtë kuptim, UX është një pengesë tjetër, por në përmirësimet e projektit ato japin një shembull të vendosjes së kubave para përdoruesit për të ecur për të siguruar një shtrirje të mirë.

Tani që i dini kufizimet e këtij projekti, më lejoni t'ju tregoj se si ta përdorni në mënyrë që djemtë të mund të luajnë përreth. Në fund do t'ju duhet të krijoni një llogari të kutisë së kartës dhe një llogari të lojërave të dyja të cilat janë falas. Kam përdorur parqe lojërash vetëm për të ruajtur diku koordinatat GPS sepse gjatë testimit do të rinisni dhe rindërtoni aplikacionin mjaft shpesh.

Gjithashtu, kjo duhet të funksionojë si me ARkit ashtu edhe me ARcore, por unë kam vetëm një iPhone për momentin, kështu që ishte gjithçka që mund të testoja.

Hapi 4: Lejoni që Aplikacioni të funksionojë

Lejoni që Aplikacioni të funksionojë!
Lejoni që Aplikacioni të funksionojë!

Gjërat e para shkarkoni së pari këtë projekt nga GitHub:

Ruani skedarin në desktopin tuaj dhe hapeni atë në Unity.

Shkoni te skedari, krijoni cilësimet dhe kaloni platformën tuaj në Android ose IOS.

Tani shkoni te Mapbox.com dhe krijoni një llogari nëse nuk e keni tashmë.

Merrni çelësin tuaj API dhe kthehuni te Uniteti, klikoni në skedën Mapbox në krye dhe klikoni në konfigurimin. Ngjitni çelësin tuaj API atje.

Tani krijoni një llogari në GameSparks.com dhe klikoni butonin në të djathtën e sipërme për të krijuar një aplikacion të ri.

Quajeni atë çfarë të doni dhe kopjoni çelësin tuaj API dhe sekretin e aplikacionit. Kthehuni te Uniteti dhe gjeni skedën GameSparks në krye. Klikoni në konfiguroni dhe ngjisni kredencialet tuaja gjithashtu atje.

Hapi 5: Konfiguroni GameSparks

Konfiguro GameSparks
Konfiguro GameSparks

Tani para se të funksionojë aplikacioni, duhet të konfigurojmë bazën e të dhënave tona.

GameSparks përdor noSQL kështu që ne së pari duhet të krijojmë një koleksion dhe të shtojmë ngjarjet që aplikacioni ynë përdor për të lexuar, shkruar dhe fshirë nga serveri.

Fillimisht krijoni një koleksion të ri në faqen e internetit të GameSparks dhe quajeni si të doni.

Tani na duhet të krijojmë 3 ngjarje.

Gjëja e parë që duhet të bëjë aplikacioni është të shkruajë objekt mesazhi në bazën e të dhënave.

Një mesazh ka një gjerësi, gjatësi gjeografike dhe më pas tekstin e mesazhit.

Pra, shkoni te konfiguruesi dhe shtoni një ngjarje të re. Bëni kodin e shkurtër "SAVE_GEO_MESSAGE".

Vendosni gjithçka që dëshironi për emrin dhe përshkrimin.

Shtoni kodin e shkurtër për 3 atribute:

"VONE" "LON"

"TEXT"

Vendosni çdo lloj të dhëne në varg dhe vendosni vlerën e paracaktuar në 0. Bëni llojin e paracaktuar të grumbullimit të secilit në "të përdorur në skript".

Hapi 6: Shtoni Ngjarjet Finale…

Shtoni ngjarjet përfundimtare…
Shtoni ngjarjet përfundimtare…

Aplikacioni gjithashtu duhet të ngarkojë të gjitha mesazhet nga baza e të dhënave dhe t'i lexojë ato në Unity kur të fillojë aplikacioni, në mënyrë që të vendosim një mesazh AR të ruajtur në bazën e të dhënave.

Krijoni një ngjarje tjetër dhe quajeni "LOAD_MESSAGE"

Kjo ngjarje nuk ka nevojë për ndonjë atribut. Përsëri vendosni çfarë të doni për emrin dhe përshkrimin.

Bëni të njëjtën gjë për një ngjarje tjetër dhe quajeni "REMOVE_MESSAGES"

Kjo madje nuk ka nevojë për ndonjë atribut.

Tani gjëja e fundit që duhet të bëjmë është të shtojmë një "kod cloud" ose kod anësor të serverit që thirret kur çdo ngjarje fillon nga aplikacioni ynë.

Hapi 7: Shtoni Kodin Cloud

Në GameSparks shkoni te konfiguruesi dhe kodi cloud.

Ne duhet të shtojmë një skenar në secilën ngjarje që sapo kemi bërë.

Në ngjarjen LOAD_MESSAGE shtoni këtë kod dhe ruajeni:

var messageData = Spark.runtimeCollection ("GeoMessage");

var kursori = messageData.find ();

var allMessages = ;

ndërsa (kursori.hasNext ()) {

var obj = cursor.next ();

fshini (obj ["_id"]);

allMessages.push (obj);

}

Spark.setScriptData ("all_Messages", allMessages); // ktheni të gjitha të dhënat

Në ngjarjen REMOVE_MESSAGES shtoni këtë kod:

var messageData = Spark.runtimeCollection ("GeoMessage");

messageData.fshi ({});

Më në fund në ngjarjen SAVE_MESSAGES shtoni këtë:

var geoMessageList = Spark.runtimeCollection ("GeoMessage");

var messageLat = Spark.getData (). LAT;

var messageLon = Shkëndija.getData (). LON;

var messageText = Shkëndija.getData (). TEXT;

var currentMessage = {

"messLat": messageLat,

"messLon": messageLon,

"messText": messageText,

};

geoMessageList.insert (currentMessage);

Hapi 8: Jemi PARATITUR

NE KEMI MBARUAR!
NE KEMI MBARUAR!

Ky projekt përdor ID -në unike të pajisjes tuaj për t'u vërtetuar me serverin GameSparks, kështu që tani mund të ktheheni te Unity dhe të klikoni play, dhe duhet të shihni në tastierë "pajisjen e vërtetuar …"

Tani shkoni te skedari, krijoni cilësimet dhe klikoni në ndërtim. Nëse nuk keni bërë kurrë një aplikacion për Android ose IOS, mund t'ju duhet të krijoni një llogari zhvillimi ose në Google ose Apple.

Pasi të jetë aplikacioni në telefonin tuaj, së pari duhet të siguroheni që ARKit ose ARCore të zbulojë një aeroplan tokësor. Tani klikoni butonin e regjistrit në këndin e poshtëm të majtë. Ecni përpara disa hapa dhe do të shihni "shtrirjen e llogaritur" të dalë në blu të lehta. Tani butonat UI duhet të shfaqen dhe nëse ndonjë mesazh ngarkohet në bazën tuaj të të dhënave ata do të vendosen në botë.

Për të etiketuar një mesazh të ri GPS AR diku shkoni në vendin ku dëshironi të jetë mesazhi dhe klikoni ikonën e mesazhit në pjesën e sipërme të djathtë të ekranit. Shkruani çdo mesazh që dëshironi dhe klikoni butonin pin!

Recommended: