Talaan ng mga Nilalaman:

Ang paglalagay ng mga AR Object sa GPS Coordinates sa Augmented Reality: 8 Hakbang (na may Mga Larawan)
Ang paglalagay ng mga AR Object sa GPS Coordinates sa Augmented Reality: 8 Hakbang (na may Mga Larawan)

Video: Ang paglalagay ng mga AR Object sa GPS Coordinates sa Augmented Reality: 8 Hakbang (na may Mga Larawan)

Video: Ang paglalagay ng mga AR Object sa GPS Coordinates sa Augmented Reality: 8 Hakbang (na may Mga Larawan)
Video: Стеки технологий – информатика для руководителей бизнеса 2016 2024, Hulyo
Anonim
Ang paglalagay ng mga AR Object sa GPS Coordinates sa Augmented Reality
Ang paglalagay ng mga AR Object sa GPS Coordinates sa Augmented Reality

Ang nagtuturo na ito ay magtutungo sa paggawa ng isang mobile app para sa paglalagay ng mga AR object sa mga coordinate ng GPS gamit ang ARkit at ARCore gamit ang Unity3D. Dadalhin kita sa pamamagitan ng pagse-set up ng isang proyekto na ginawa ko gamit ang Mapbox na nagpapahintulot sa amin na i-tag ang mga mensahe sa mga partikular na lokasyon ng GPS at isulat ang mga ito sa isang database ng GameSpark.

Ang lahat ng software at proyekto na gagamitin namin dito ay libre.

I-download ang Unity 3D dito kung mayroon ka nito:

unity3d.com/

Hakbang 1: Mga hadlang…

Mga hadlang…
Mga hadlang…

Kaya't hindi ito ang pinakamadaling app na gagawin sa kasalukuyang mga limitasyon ng mobile GPS at mobile compass.

Upang maging matapat ang mga bagay ay nagpapakita kung saan dapat sila marahil tungkol sa 50% ng oras. Kaya't ang mga resulta ay hindi maganda, ngunit nagiging mas tumpak ang mga ito kung papalapit ka sa mga bagay.

Alinmang paraan, sa palagay ko ang isang mas mahusay na paraan sa GPS batay sa AR sa puntong ito ay gumagamit ng isang mapa tulad ng ginagawa ng pokemon go at kapag malapit ka sa isang bagay na bubukas ang camera at makikita mo lamang ang bagay na iyon sa harap mo mismo. Sa hinaharap nais kong gumawa ng isang buong tutorial sa isang mas simpleng pagpapatupad na tulad nito.

Alinmang paraan ginamit ko ang Mapbox dati at alam kong mayroon silang isang klase ng conversion na may mga pag-andar para sa pag-convert ng mga coordinate ng GPS sa mga coordinate ng Unity world. Naisip ko na maaari lamang akong pumasa sa ilang mga coordinate ng GPS at lilitaw ang mga ito kung saan ko gusto ang mga ito. Hindi gumana.

Ang mga bagay ay nagpapakita ng wastong kaugnay sa bawat isa ngunit wala sila sa tamang lugar. Kaya't nagsaliksik ako at nalaman na ang aking Unity Camera ay kinakailangang nakahanay sa totoong hilaga upang ang mga bagay ay magpakita sa tamang lugar.

Ang problema ay ang compass sa iyong telepono ay hindi kailanman ganap na tumpak.

Hakbang 2: Stupid Compass

Stupid Compass
Stupid Compass
Stupid Compass
Stupid Compass

Ang pangunahing problema ay kapag ang iyong paglalagay ng mga bagay na malayo sa camera, kung ang ideya ng iyong telepono ng tunay na hilaga ay naka-off kahit ilang degree, ang mga bagay sa di kalayuan ay lilitaw na napakalayo.

Halos sumuko ako sa pakikipagsapalaran na ito ngunit sinabi sa akin ng isang kaibigan ang tungkol sa proyektong GitHub na ito:

github.com/mapbox/mapbox-ar-unity

Ito ay isang pagtatangka na gawin ang "scale ng mundo" AR mula sa Mapbox kung saan ang mga bagay ay naka-angkla sa mga coordinate ng GPS upang ang mga karanasan sa Augmented Reality ay maaaring gumana sa labas ng mahabang distansya sa halip na sa loob lamang ng isang maliit na silid sa iyong bahay.

Gumagamit ang kanilang proyekto ng mga delta ng AR Position at mga Delta ng Posisyon ng GPS upang makalkula ang isang anggulo na ang offset mula sa AR camera hanggang sa totoong hilaga. Kaya karaniwang kumuha ng isang pagbabasa ng GPS kapag sinimulan ng gumagamit ang app at maglakad sila sa isang tuwid na linya at kumuha ng isa pang pagbabasa ng GPS. Pagkatapos sa dalawang puntong ito maaari mong sabihin kung aling direksyon ang paglalakad ng taong iyon (sa pag-aakalang ang kanilang camera ay nakaturo sa direksyon na kanilang nilalakaran). Nalaman nila na ito ay mas tumpak kaysa sa paggamit ng compass sa telepono.

Ang iba pang isyu na sinubukan nilang malutas ay ang naaanod na may ARkit. Ang pagsubaybay ay ok sa loob ng isang maliit na silid ngunit kung ang iyong labas ay naglalakad nang malayo sa mga AR na bagay ay nauwi sa layo mula sa kung saan sila dapat.

Hakbang 3: Panghuli isang Solusyon

Panghuli isang Solusyon!
Panghuli isang Solusyon!

Kaya't ang proyekto sa Mapbox na ito ay nag-aalok ng isang paraan upang makakuha ng isang maaasahang direksyon na nakaharap na may kaugnayan sa tunay na hilaga kaya't ang natira ay ilagay lamang ang mga bagay sa mundo.

Natapos ko ang pagpapalawak ng halimbawang ito nang kaunti upang ma-tag ko ang isang text message sa isang partikular na lokasyon ng GPS at pagkatapos ay isulat ang impormasyong iyon sa isang database ng GameSpark. Iyon ang ipapakita ko sa iyo kung paano gamitin.

Ang problema lamang sa proyektong ito ay upang makakuha ng isang mahusay na pagkakahanay bago ito magamit.

Ang ibig kong sabihin sa pamamagitan ng pagkakahanay ay dahil gumagamit ang Mapbox ng mga deltayong posisyon upang makalkula ang heading, noong una mong buksan ang app at dapat mong tiyakin na ang isang ground plane ay napansin at pagkatapos ay lumakad sa isang tuwid na linya nang ilang sandali hanggang sa makalkula ang isang tamang pagkakahanay.

Sa ganitong kahulugan ang UX ay isa pang sagabal ngunit sa mga pagpapahusay ng proyekto ay nagbibigay sila ng isang halimbawa ng paglalagay ng mga cube pababa sa harap ng gumagamit upang maglakad upang matiyak ang isang mahusay na pagkakahanay.

Kaya't ngayong alam mo ang mga limitasyon ng proyektong ito hayaan mo akong ipakita sa iyo kung paano ito gamitin upang makapaglaro ang mga tao. Sa huli ay kakailanganin mong lumikha ng isang mapbox account at isang gamespark account na kapwa libre. Gumamit ako ng mga gamespark para lamang makatipid ako ng mga coordinate ng GPS sa isang lugar dahil sa panahon ng pagsubok ay i-restart mo at muling itatayo ang app nang madalas.

Gayundin, dapat itong gumana sa parehong ARkit at ARcore ngunit mayroon lamang akong isang iPhone sa ngayon upang iyon lamang ang masubukan ko.

Hakbang 4: Hinahayaan Maging Gumagana ang App

Hinahayaan Magtrabaho ang App!
Hinahayaan Magtrabaho ang App!

Ang mga unang bagay ay unang na-download ang proyektong ito mula sa GitHub:

I-save ang file sa iyong desktop at buksan ito sa Unity.

Pumunta sa file, bumuo ng mga setting, at ilipat ang iyong platform sa alinman sa Android o IOS.

Pumunta ngayon sa Mapbox.com at lumikha ng isang account kung wala ka pa.

Grab ang iyong API key at bumalik sa Unity, i-click ang tab na Mapbox sa itaas, at i-click ang configure. I-paste sa iyong API key doon.

Lumikha ngayon ng isang account sa GameSparks.com at i-click ang pindutan sa kanang tuktok upang lumikha ng isang bagong app.

Tawagan ito kung ano ang gusto mo at kopyahin ang iyong API key at lihim ng app. Bumalik sa Unity at hanapin ang tab na GameSpark sa itaas. Mag-click sa configure at i-paste ang iyong mga kredensyal doon din.

Hakbang 5: I-configure ang Mga GameSpark

I-configure ang Mga GameSpark
I-configure ang Mga GameSpark

Ngayon bago gagana ang app, kailangan naming i-configure ang aming database.

Gumagamit ang GameSpark ng noSQL kaya kailangan muna naming lumikha ng isang koleksyon at idagdag ang mga kaganapan na ginagamit ng aming app upang mabasa, magsulat, at magtanggal mula sa server.

Lumikha muna ng isang bagong koleksyon sa website ng GameSpark at tawagan ito kung ano ang gusto mo.

Ngayon kailangan naming lumikha ng 3 mga kaganapan.

Ang unang bagay na kailangang gawin ng app ay isulat ang object ng mensahe sa database.

Ang isang mensahe ay may latitude, longitude, at pagkatapos ang teksto ng mensahe.

Kaya pumunta sa configurator at magdagdag ng isang bagong kaganapan. Gawin ang maikling code na "SAVE_GEO_MESSAGE".

Ilagay ang anumang nais mo para sa pangalan at paglalarawan.

Idagdag ang maikling code para sa 3 mga katangian:

"LAT" "LON"

"TEXT"

Itakda ang bawat uri ng data sa string at itakda ang default na halaga sa 0. Gawin ang default na uri ng pagsasama-sama ng bawat isa sa "ginamit sa script."

Hakbang 6: Idagdag ang Pangwakas na Kaganapan…

Idagdag ang Pangwakas na Kaganapan…
Idagdag ang Pangwakas na Kaganapan…

Kailangan ding i-load ng app ang lahat ng mga mensahe mula sa database at basahin ang mga ito sa Unity kapag nagsimula ang app upang mailagay namin ang isang AR message na nakaimbak sa database.

Lumikha ng isa pang kaganapan at tawagan itong "LOAD_MESSAGE"

Ang kaganapang ito ay hindi nangangailangan ng anumang mga katangian. Muli ilagay ang anumang nais mo para sa pangalan at paglalarawan.

Gawin ang parehong bagay para sa isa pang kaganapan at tawagan itong "TANGGALIN_MESSAGES"

Kahit na ito ay hindi nangangailangan ng anumang mga katangian alinman.

Ngayon ang pangwakas na bagay na kailangan nating gawin ay magdagdag ng ilang "cloud code" o server side code na tatawagan kapag nagsimula ang bawat kaganapan mula sa aming app.

Hakbang 7: Idagdag ang Cloud Code

Sa GameSpark pumunta sa configurator at cloud code.

Kailangan naming magdagdag ng isang script sa bawat kaganapan na ngayon lang namin nagawa.

Sa kaganapan ng LOAD_MESSAGE idagdag ang code na ito at i-save ito:

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

var cursor = messageData.find ();

var allMessages = ;

habang (cursor.hasNext ()) {

var obj = cursor.next ();

tanggalin (obj ["_id"]);

allMessages.push (obj);

}

Spark.setScriptData ("all_Messages", allMessages); // ibalik ang lahat ng data

Sa kaganapan sa REMOVE_MESSAGES idagdag ang code na ito:

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

messageData.remove ({});

Panghuli sa kaganapan SAVE_MESSAGES idagdag ito:

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 (kasalukuyangMessage);

Hakbang 8: Tapos Na Tayo

TAPOS NA KAMI!
TAPOS NA KAMI!

Gumagamit ang proyektong ito ng natatanging ID ng iyong aparato upang patunayan sa server ng GameSpark upang makabalik ka na sa Pagkakaisa at mag-click sa pag-play, at dapat mong makita sa console na "napatunayan ng aparato …"

Pumunta ngayon sa file, itayo ang mga setting, at i-click ang build. Kung hindi ka pa nakakagawa ng isang app para sa Android o IOS maaaring kailanganin mong mag-set up ng isang development account sa alinman sa Google o Apple.

Kapag ang app ay nasa iyong telepono kailangan mo munang tiyakin na ang ARKit o ARCore ay nakakita ng isang ground plan. Ngayon i-click ang pindutan ng pag-log sa kaliwang sulok sa ibaba. Maglakad pasulong ng ilang mga hakbang at makikita mo ang "compute alignment" na lumitaw sa asul na ilaw. Ngayon ang mga pindutan ng UI ay dapat na lumitaw at kung ang anumang mga mensahe ay nai-load sa iyong database sila ay mailagay sa mundo.

Upang mai-tag ang isang bagong mensahe ng GPS AR sa isang lugar na lumakad sa lokasyon na nais mong maging mensahe at i-click ang icon ng mensahe sa kanang tuktok ng screen. Mag-type sa anumang mensahe na gusto mo at mag-click sa pindutan ng pin!

Inirerekumendang: