Πίνακας περιεχομένων:

Τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS σε επαυξημένη πραγματικότητα: 8 βήματα (με εικόνες)
Τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS σε επαυξημένη πραγματικότητα: 8 βήματα (με εικόνες)

Βίντεο: Τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS σε επαυξημένη πραγματικότητα: 8 βήματα (με εικόνες)

Βίντεο: Τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS σε επαυξημένη πραγματικότητα: 8 βήματα (με εικόνες)
Βίντεο: Φορητό GPS Tracker για ηλικιωμένους,παιδιά,κατοικίδια! Amber/Silver Alerts ΤΕΛΟΣ! 2024, Ιούλιος
Anonim
Τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS σε επαυξημένη πραγματικότητα
Τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS σε επαυξημένη πραγματικότητα

Αυτό το διδακτικό θα πάει πέρα από την κατασκευή μιας εφαρμογής για κινητά για την τοποθέτηση αντικειμένων AR σε συντεταγμένες GPS με ARkit και ARCore χρησιμοποιώντας Unity3D. Θα σας καθοδηγήσω στη δημιουργία ενός έργου που έκανα χρησιμοποιώντας το Mapbox που μας επιτρέπει να επισημάνουμε μηνύματα σε συγκεκριμένες τοποθεσίες GPS και να τα γράψουμε σε μια βάση δεδομένων GameSparks.

Όλο το λογισμικό και τα έργα που θα χρησιμοποιήσουμε εδώ είναι δωρεάν.

Κατεβάστε το Unity 3D εδώ αν δεν το έχετε ήδη:

unity3d.com/

Βήμα 1: Εμπόδια…

Εμπόδια…
Εμπόδια…

Επομένως, αυτή δεν είναι η πιο εύκολη εφαρμογή που μπορείτε να κάνετε με τους τρέχοντες περιορισμούς του GPS για κινητά και της πυξίδας.

Για να είμαι ειλικρινής, τα αντικείμενα εμφανίζονται εκεί που υποτίθεται ότι ίσως περίπου το 50% του χρόνου. Έτσι, τα αποτελέσματα δεν είναι υπέροχα, αλλά γίνονται πιο ακριβή όσο πλησιάζετε στα αντικείμενα.

Είτε έτσι είτε αλλιώς, νομίζω ότι ένας καλύτερος τρόπος για να βασιστείτε στο GPS σε αυτό το σημείο θα ήταν να χρησιμοποιήσετε έναν χάρτη όπως το pokemon go και όταν πλησιάσετε σε ένα αντικείμενο η κάμερα ανοίγει και βλέπετε μόνο αυτό το αντικείμενο ακριβώς μπροστά σας. Στο μέλλον θα ήθελα να κάνω ένα πλήρες σεμινάριο για μια πιο απλή εφαρμογή όπως αυτή.

Είτε έτσι είτε αλλιώς έχω χρησιμοποιήσει το Mapbox στο παρελθόν και ξέρω ότι έχουν μια κλάση μετατροπής που έχει λειτουργίες για τη μετατροπή συντεταγμένων GPS σε συντεταγμένες Unity world. Νόμιζα ότι θα μπορούσα απλώς να περάσω σε μερικές συντεταγμένες GPS και θα εμφανίζονταν εκεί που τις ήθελα. Δεν λειτούργησε.

Τα αντικείμενα εμφανίζονται σωστά μεταξύ τους, αλλά δεν ήταν ποτέ στη σωστή θέση. Έκανα λοιπόν κάποια έρευνα και διαπίστωσα ότι η Unity Camera μου έπρεπε να ευθυγραμμιστεί με τον πραγματικό βορρά για να εμφανιστούν τα αντικείμενα στη σωστή θέση.

Το πρόβλημα είναι ότι η πυξίδα στο τηλέφωνό σας δεν είναι ποτέ απόλυτα ακριβής.

Βήμα 2: Ηλίθια πυξίδα

Ηλίθια Πυξίδα
Ηλίθια Πυξίδα
Ηλίθια Πυξίδα
Ηλίθια Πυξίδα

Το κύριο πρόβλημα είναι όταν τοποθετείτε αντικείμενα μακριά από την κάμερα, εάν η ιδέα του τηλεφώνου σας για τον πραγματικό βορρά είναι απενεργοποιημένη έστω και μερικές μοίρες, τα αντικείμενα σε απόσταση θα φαίνονται πολύ μακριά.

Σχεδόν εγκατέλειψα αυτό το εγχείρημα, αλλά ένας φίλος μου είπε για αυτό το έργο GitHub:

github.com/mapbox/mapbox-ar-unity

Αυτή είναι μια προσπάθεια να κάνετε AR "παγκόσμιας κλίμακας" από το Mapbox όπου τα αντικείμενα είναι αγκυροβολημένα σε συντεταγμένες GPS, έτσι ώστε οι εμπειρίες της Επαυξημένης Πραγματικότητας να μπορούν να λειτουργήσουν έξω σε μεγάλες αποστάσεις αντί για ένα μικρό δωμάτιο στο σπίτι σας.

Το έργο τους χρησιμοποιεί δέλτα θέσης AR και δέλτα θέσης GPS για να υπολογίσει μια γωνία που αντισταθμίζεται από την κάμερα AR στον πραγματικό βορρά. Ουσιαστικά, πάρτε μια ανάγνωση GPS όταν ο χρήστης ξεκινήσει την εφαρμογή και ζητήστε τον να περπατήσει σε ευθεία γραμμή και να λάβει άλλη ανάγνωση GPS. Στη συνέχεια, με αυτά τα δύο σημεία μπορείτε να πείτε σε ποια κατεύθυνση περπατούσε αυτό το άτομο (υποθέτοντας ότι η κάμερά του δείχνει προς την κατεύθυνση που περπατά). Διαπίστωσαν ότι αυτό ήταν πιο ακριβές από τη χρήση της πυξίδας στο τηλέφωνο.

Το άλλο ζήτημα που προσπαθούν να λύσουν είναι το drift με το ARkit. Η παρακολούθηση είναι εντάξει μέσα σε ένα μικρό δωμάτιο, αλλά όταν περπατάτε έξω σε μεγάλες αποστάσεις αντικείμενα AR καταλήγουν να απομακρύνονται από εκεί που υποτίθεται ότι είναι.

Βήμα 3: Επιτέλους μια λύση

Επιτέλους Λύση!
Επιτέλους Λύση!

Έτσι, αυτό το έργο του Mapbox προσέφερε έναν τρόπο για να αποκτήσετε μια αξιόπιστη κατεύθυνση προς την πλευρά του πραγματικού βορρά, οπότε το μόνο που έμεινε ήταν να τοποθετήσετε τα αντικείμενα στον κόσμο.

Κατέληξα να επεκτείνω λίγο αυτό το παράδειγμα, ώστε να μπορώ να προσθέσω ετικέτα σε ένα μήνυμα κειμένου σε μια συγκεκριμένη τοποθεσία GPS και στη συνέχεια να γράψω αυτές τις πληροφορίες σε μια βάση δεδομένων GameSparks. Αυτό είναι που θα σας δείξω πώς να το χρησιμοποιήσετε.

Το μόνο πρόβλημα με αυτό το έργο είναι ότι πρέπει να έχετε μια καλή ευθυγράμμιση πριν μπορέσει να χρησιμοποιηθεί.

Αυτό που εννοώ με την ευθυγράμμιση είναι ότι δεδομένου ότι το Mapbox χρησιμοποιεί δέλτα θέσης για τον υπολογισμό της επικεφαλίδας, όταν ανοίγετε για πρώτη φορά την εφαρμογή και πρέπει να βεβαιωθείτε ότι ανιχνεύεται ένα επίπεδο εδάφους και στη συνέχεια να περπατήσετε σε μια ευθεία γραμμή για λίγο μέχρι να υπολογιστεί η σωστή ευθυγράμμιση.

Με αυτή την έννοια, το UX είναι ένα άλλο εμπόδιο, αλλά στις βελτιώσεις του έργου δίνουν ένα παράδειγμα τοποθέτησης κύβων μπροστά από τον χρήστη για να διασφαλίσει μια καλή ευθυγράμμιση.

Τώρα, λοιπόν, που γνωρίζετε τους περιορισμούς αυτού του έργου, επιτρέψτε μου να σας δείξω πώς να το χρησιμοποιήσετε, ώστε τα παιδιά να μπορούν να παίξουν. Τελικά θα χρειαστεί να δημιουργήσετε έναν λογαριασμό mapbox και έναν λογαριασμό παιχνιδιών και οι δύο είναι δωρεάν. Χρησιμοποίησα παιχνίδια για να μπορώ να αποθηκεύσω κάπου τις συντεταγμένες GPS επειδή κατά τη διάρκεια των δοκιμών θα επανεκκινήσετε και θα ξαναφτιάξετε την εφαρμογή αρκετά συχνά.

Επίσης, αυτό θα πρέπει να λειτουργεί τόσο με το ARkit όσο και με το ARcore, αλλά έχω μόνο ένα iPhone αυτή τη στιγμή, έτσι ήταν το μόνο που μπορούσα να δοκιμάσω.

Βήμα 4: Αφήστε την εφαρμογή να λειτουργήσει

Αφήστε την εφαρμογή να λειτουργήσει!
Αφήστε την εφαρμογή να λειτουργήσει!

Πρώτα πράγματα κατεβάστε πρώτα αυτό το έργο από το GitHub:

Αποθηκεύστε το αρχείο στην επιφάνεια εργασίας σας και ανοίξτε το στο Unity.

Μεταβείτε στο αρχείο, δημιουργήστε ρυθμίσεις και αλλάξτε την πλατφόρμα σας είτε σε Android είτε σε IOS.

Τώρα πηγαίνετε στο Mapbox.com και δημιουργήστε έναν λογαριασμό αν δεν τον έχετε ήδη.

Πιάστε το κλειδί API και επιστρέψτε στην ενότητα, κάντε κλικ στην καρτέλα Mapbox στο επάνω μέρος και κάντε κλικ στη διαμόρφωση. Επικολλήστε εκεί το κλειδί API.

Τώρα δημιουργήστε έναν λογαριασμό στο GameSparks.com και κάντε κλικ στο κουμπί επάνω δεξιά για να δημιουργήσετε μια νέα εφαρμογή.

Ονομάστε το όπως θέλετε και αντιγράψτε το κλειδί API και το μυστικό της εφαρμογής σας. Επιστρέψτε στην Unity και βρείτε την καρτέλα GameSparks στο επάνω μέρος. Κάντε κλικ στη διαμόρφωση και επικολλήστε τα διαπιστευτήριά σας επίσης εκεί.

Βήμα 5: Διαμόρφωση GameSparks

Διαμορφώστε τα GameSparks
Διαμορφώστε τα GameSparks

Τώρα, προτού λειτουργήσει η εφαρμογή, πρέπει να διαμορφώσουμε τη βάση δεδομένων μας.

Το GameSparks χρησιμοποιεί noSQL, οπότε πρέπει πρώτα να δημιουργήσουμε μια συλλογή και να προσθέσουμε τα συμβάντα που χρησιμοποιεί η εφαρμογή μας για να διαβάζει, να γράφει και να διαγράφει από το διακομιστή.

Δημιουργήστε πρώτα μια νέα συλλογή στον ιστότοπο GameSparks και ονομάστε την όπως θέλετε.

Τώρα πρέπει να δημιουργήσουμε 3 συμβάντα.

Το πρώτο πράγμα που πρέπει να κάνει η εφαρμογή είναι να γράψει αντικείμενο μηνύματος στη βάση δεδομένων.

Ένα μήνυμα έχει γεωγραφικό πλάτος, γεωγραφικό μήκος και, στη συνέχεια, το κείμενο του μηνύματος.

Πηγαίνετε λοιπόν στο configurator και προσθέστε ένα νέο συμβάν. Δημιουργήστε τον σύντομο κωδικό "SAVE_GEO_MESSAGE".

Βάλτε ό, τι θέλετε για το όνομα και την περιγραφή.

Προσθέστε τον σύντομο κώδικα για 3 χαρακτηριστικά:

"LAT" "LON"

"ΚΕΙΜΕΝΟ"

Ορίστε κάθε τύπο δεδομένων σε συμβολοσειρά και ορίστε την προεπιλεγμένη τιμή στο 0. Κάντε τον προεπιλεγμένο τύπο συνάθροισης καθενός σε "χρησιμοποιείται στο σενάριο".

Βήμα 6: Προσθέστε τα Τελικά Συμβάντα…

Προσθέστε τα τελικά γεγονότα…
Προσθέστε τα τελικά γεγονότα…

Η εφαρμογή πρέπει επίσης να φορτώσει όλα τα μηνύματα από τη βάση δεδομένων και να τα διαβάσει στην Unity όταν ξεκινήσει η εφαρμογή, ώστε να μπορούμε να τοποθετήσουμε ένα μήνυμα AR που είναι αποθηκευμένο στη βάση δεδομένων.

Δημιουργήστε ένα άλλο συμβάν και ονομάστε το "LOAD_MESSAGE"

Αυτό το συμβάν δεν χρειάζεται χαρακτηριστικά. Βάλτε πάλι ό, τι θέλετε για το όνομα και την περιγραφή.

Κάντε το ίδιο πράγμα για μια άλλη εκδήλωση και ονομάστε την "REMOVE_MESSAGES"

Αυτό ούτε καν χρειάζεται χαρακτηριστικά.

Τώρα το τελευταίο πράγμα που πρέπει να κάνουμε είναι να προσθέσουμε κάποιον "κώδικα cloud" ή κώδικα διακομιστή που καλείται όταν ξεκινά κάθε συμβάν από την εφαρμογή μας.

Βήμα 7: Προσθέστε τον Κώδικα Cloud

Στο GameSparks, μεταβείτε στον διαμορφωτή και τον κωδικό cloud.

Πρέπει να προσθέσουμε ένα σενάριο σε κάθε γεγονός που μόλις κάναμε.

Στο συμβάν LOAD_MESSAGE προσθέστε αυτόν τον κωδικό και αποθηκεύστε τον:

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

var cursor = messageData.find ();

var allMessages = ;

while (cursor.hasNext ()) {

var obj = cursor.next ();

διαγραφή (obj ["_id"]);

allMessages.push (obj);

}

Spark.setScriptData ("all_Messages", allMessages); // επιστροφή όλων των δεδομένων

Στο συμβάν REMOVE_MESSAGES προσθέστε αυτόν τον κωδικό:

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

messageData.remove ({});

Τέλος στο συμβάν SAVE_MESSAGES προσθέστε αυτό:

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

Βήμα 8: ΤΕΛΕΙΩΣΑΜΕ

ΕΜΕΙΣ ΤΕΛΕΙΩΣΑΜΕ!
ΕΜΕΙΣ ΤΕΛΕΙΩΣΑΜΕ!

Αυτό το έργο χρησιμοποιεί το μοναδικό αναγνωριστικό της συσκευής σας για έλεγχο ταυτότητας με τον διακομιστή GameSparks, ώστε να μπορείτε τώρα να επιστρέψετε στην Unity και να κάνετε κλικ στην αναπαραγωγή και θα πρέπει να δείτε στην κονσόλα "έλεγχο ταυτότητας συσκευής …"

Τώρα πηγαίνετε στο αρχείο, δημιουργήστε τις ρυθμίσεις και κάντε κλικ στο build. Εάν δεν έχετε κάνει ποτέ μια εφαρμογή για Android ή IOS, ίσως χρειαστεί να δημιουργήσετε έναν λογαριασμό ανάπτυξης είτε στην Google είτε στην Apple.

Μόλις η εφαρμογή είναι στο τηλέφωνό σας, πρέπει πρώτα να βεβαιωθείτε ότι το ARKit ή το ARCore ανιχνεύει ένα επίπεδο εδάφους. Τώρα κάντε κλικ στο κουμπί καταγραφής στην κάτω αριστερή γωνία. Περπατήστε μερικά βήματα μπροστά και θα δείτε την "υπολογισμένη ευθυγράμμιση" να εμφανίζεται με γαλάζιο χρώμα. Τώρα πρέπει να εμφανιστούν τα κουμπιά UI και εάν φορτωθούν μηνύματα στη βάση δεδομένων σας, θα τοποθετηθούν στον κόσμο.

Για να επισημάνετε ένα νέο μήνυμα GPS AR κάπου περπατήστε στη θέση που θέλετε να είναι το μήνυμα και κάντε κλικ στο εικονίδιο του μηνύματος στην επάνω δεξιά γωνία της οθόνης. Πληκτρολογήστε όποιο μήνυμα θέλετε και κάντε κλικ στο κουμπί pin!

Συνιστάται: