Aracılığıyla paylaş


Ara Raptiyeleri

Çözülmesi gereken sorunlar

Ölçeklendirme hatası

Hologramlar gerçek dünya özellikleriyle hizalamaya yönelik geleneksel uzamsal çapa yaklaşımı küçük ölçekte çok işe yarasa da, ölçek bir metreden fazlasını kapsayacak şekilde büyüdükçe zorlanır.

Kafa izleme alanında ölçek hatası, uzamsal bir tutturucu sanal nesnenin yalnızca birkaç metre uzunluğunda, gerçek bir özellikle mükemmel bir şekilde hizalanmış bir ucunu tutsa bile, diğer ucun ilgili gerçek dünya özelliğiyle yanlış hizalanmış olma olasılığının yüksek olduğu anlamına gelir. Bu yanlış hizalamanın nedeni, baş izlenen alandan geçen mesafenin fiziksel alandan geçen uzaklıktan +-10% hata sınırıyla farklı olma eğiliminde olmasıdır. Gerçek hata genellikle daha azdır (birçok ortam ve cihaz özelliğine bağlıdır), ancak genellikle önemli olur ve projenin ölçeği büyüdükçe sınır olmadan büyür.

Başka bir şekilde ifade edin, HoloLens takan bir kullanıcı gerçek dünyada 10 metre yürüyorsa, baş izleyici tarafından bildirildiği gibi sanal alanda kat edilen mesafe 9 ila 11 metre arasında olacaktır. Kullanıcı 50 metrede yürüyorsa hata +-5 metreye kadar büyür. Kullanıcı ne kadar çok yürürse hata o kadar artar.

Bu nedenle, bir uç noktası gerçek uzayda bir bant ölçüsünün sıfır ucuna mükemmel bir şekilde hizalanmış 10 metrelik bir ışın (modelleme alanında), diğer ucu 9 ile 11 metre arasında bir yerde bant ölçüsüne kayıtlı olacaktır.

Aynı nedenlerden dolayı, her dünya uzamsal tutturucular kullanılarak kilitlenen birden çok nesne, sanal alanda gerçek uzaydan farklı mesafeler olacaktır.

Rastgele koordinat sistemi

Başka bir endişe daha var. HoloLens'teki Unity koordinat sistemi belirsiz. Yalnızca uygulamanın başındaki baş pozunu temel alır.

Bu rastgelelik birçok görev için bir sorun değildir. Amaç, odanın uzamsal eşlemesine bir ışın yerleştirmek ve isabet konumuna bir Hologram yerleştirmekse, isabet konumunun sayısal değerleri önemsizdir.

Benzer şekilde, kullanıcının çevresinde UX öğeleri açılırken, bir UX öğesini yerleştirmek için mutlak koordinatlar önemli değildir, yalnızca kullanıcıya göre koordinatlar.

Ancak, daha ilgili senaryolar öngörülemeyen koordinat sistemi tarafından karmaşık olabilir. Kullanıcının masaüstü veya ofis odasının tamamı gibi büyük bir nesne koleksiyonunu fiziksel alanla sabit bir ilişkiyle sanal alana yüklemek, modelleme alanı nesnelerini kafa tabanlı koordinat çerçevesiyle hizalamak için bazı telafi dönüşümü gerektirir.

Bu dengeleme genellikle tüm nesneleri tek bir Unity dönüşümüne bağlayarak ve sanal nesneleri gerçek dünyayla uyumlu bir şekilde konumlandırmak ve yönlendirmek için bu tek dönüşümü ayarlayarak yapılır.

Buna eşdeğer olarak, kamerayı yeniden hizalamak için kameranın hiyerarşisindeki tek bir dönüşüm kullanılabilir, böylece kullanıcı gerçek bir dünya referans noktası gördüğünde, istenen modelleme koordinatlarına sahip bir sanal nesne bu özellikte yer paylaşımlı olarak görünür.

Çözüm

Alan Sabitleme özelliği bu sorunların ikisini de aynı anda giderir. Bunu, Hem Dünya Kilitleme Araçları küresel alanının dünya kilitli doğasından hem de bu alanın rastgeleliğinden yararlanarak yapar.

Unity alanını gerçek dünyayla hizalama

Çekirdeğindeki World Locking Tools, kararlı bir dünya kilitli koordinat sistemi sağlar. Gerçek bir dünya özelliğiyle kaydedilmiş World Locked Space'e yerleştirilen bir sanal nesne, zaman içinde bu gerçek dünya özelliğine kayıtlı kalacaktır.

Ancak bu hedefe uyan sonsuz sayıda boşluk vardır. Aslında, dünya kilitli bir alan verilip rastgele herhangi bir konum ve döndürme ile dönüştürülmesi eşit derecede geçerli bir dünya kilitli alan oluşturur.

Space Pin özelliği, dünya kilitleme dönüşümünün belirsiz doğasını kaldıran başka bir kısıtlama uygular.

Bu kısıtlama, Space Pin'in "yakınında" olduğunda, bu Space Pin'in dünya kilitli alanda verdiği pozun, modelleme alanında Space Pin'in pozuyla aynı olmasıdır.

Unity sahnesinde genel koordinatları (0, 0, 1) modellenmiş bir küp düşünün. Sahne HoloLens'e yüklendiğinde, küp ilk baş pozunun 1 metre önünde görünür. İlk baş poza bağlı olarak, fiziksel odada herhangi bir yerde olabilir.

Uzay Pin'i, bu küpü odadaki gerçek bir özelliğe, örneğin belirli bir masa köşesine kilitlemeye olanak tanır. Küpü uzamsal bir tutturucuyla kilitlemenin aksine, Boşluk Raptiyesi Unity alanının tamamını, küpü masa köşesiyle hizalı olacak şekilde taşır. Bu nedenle, örneğin Unity'deki küple ilgili olarak modellenen diğer masaüstü öğeleri gerçek masaüstünde düzgün bir şekilde dağıtılır.

Ölçek hatasını giderme

Tek bir Boşluk Pini, sanal koordinat ile gerçek dünya arasındaki ilişkinin belirsizliğini ortadan kaldırsa da ölçeklendirme hatasını gidermez.

Yani, kaynağı fiziksel bir dünyaya hizalı bir konuma ve yönlendirmeye taşımış olsa da, gerçek dünyada 10 metre yürümek, kullanıcıyı sanal alanda yalnızca 9 metre hareket ettirebilir.

Bunun için, çözümün tamamını birden çok Ara Raptiyesi sağlar. Kullanıcı belirli bir Space Pin'in yakınındayken, dünya bu Space Pin'e göre hizalanır. Diğer Boşluk Pinleri yanlış hizalanır, ancak daha uzaktır, bu genellikle kabul edilebilir ve genellikle algılanamaz olur.

Kullanıcı Boşluk Pinleri arasında hareket ettikçe, düzgün ilişkilendirme, belirli bir alanda ölçeklendirme hatasını en aza indirir. Uzay Pinlerinin referans noktası olarak yeterli yoğunluğuyla, gerçek dünya ve sanal özelliklerin yanlış hizalanması baş izleyici hatasının sırasına indirgendi.

Gerekli Alan Pinlerinin yoğunluğu hem izleme kalitesine hem de uygulamanın Çevre desteği duyarlık gereksinimlerine bağlıdır ancak buradaki bazı sayılar beklentilerin ayarlanmasına yardımcı olabilir. İzlenen yeterli aydınlatma ve görünür özelliklere sahip bir ofis ortamında, Boşluk Raptiyeleri arasındaki 10 metre aralığı, 10 metreden fazla 10-20 cm'lik birikme hatasını milimetre hatalarına (uç noktalarda maksimum hata l.t. 0,5 cm, 0,0 cm hata) azaltır.

Kalıcılık

Space Pin özelliği, World Locking Tools'un kalıcılığının geri kalanıyla birlikte çalışır. Hem kaydetmeyi ve betikten yüklemeyi çağırmaya yönelik el ile çağrılar hem de oturum başına otomatik kaydetme ve yükleme bayrakları vardır.

Etkinleştirildiğinde, World Locking Tools Manager'da Otomatik Kaydet/Otomatik Yükle özelliği, sanal dünyanın gerçek dünyaya tam uzamsal hizalamasının sonraki oturumlarda geri yüklenmesine olanak sağlar.

Uygulamada kalıcılık, fiziksel ortamın yeterli bir taramasını ve bu fiziksel ortamın Unity'nin modelleme koordinat alanıyla hizalamasını sağlamak için tek veya az sayıda ön oturumun kullanılabilmesi anlamına gelir. Daha sonra sonraki oturumlar, daha fazla kullanıcı eylemi gerekmeden sanal ortamı gerçek dünyayla doğru şekilde hizalanmış şekilde yükler.

İlişkilendirme ve tahmin etme

İlişkilendirme ve tahmin, doğrudan ölçüm yapılmamış veri değerlerini tahmin etmeye yönelik tekniklerdir. Şimdiye kadar açıklandığı gibi boşluk raptiyeleri, ölçümlerin yapıldığı konumlardır. Sanal koordinatlar istenen koordinatlardır ve fiziksel koordinatlar bu sanal koordinatların görünmesini istediğimiz ölçülen koordinatlardır.

Sistem, aşağıda açıklandığı gibi ilişkilendirme gerçekleştirir, ancak tahmin gerçekleştirmez. Genel olarak, ilişkilendirme tahminden daha güvenli ve daha kararlıdır. Sağlanan parçalı doğrusal ilişkilendirme çoğu uygulamanın ihtiyaçlarını karşılayacaktır. Tahmin daha az güvenlidir ve ideal uygulaması genellikle uygulama düzeyinde bilgi gerektirir. Bu nedenle, uygulamanın aşağıda açıklandığı gibi tahminleri işlemesi için bırakılır.

Uygulama ekstrapolasyon pinleri eklemeden, pin sınırlarının dışında boşluk yalnızca en yakın sınırdaki değerle sabitlenir. A ve B olmak üzere yalnızca iki raptiye varsa, kullanıcı A'dan B'ye geçtiğinde sabitleme, A ile B (ilişkilendirme) tarafından belirtilen hizalama arasında karışıyor. Ancak kullanıcı B'yi geçtiğinde sabitleme tam olarak B (sabit uzantı) tarafından belirtilene kilitler.

Enterpolasyon

Pinler arasındaki 2B bölgede uzamsal yerelleştirme doğrusal olarak ilişkilendirilmiş. Boşluk raptiyeleri doğru yerleştirilirse ve izleme hatası bölgeye eşit olarak dağıtılırsa, boşluk raptiyeleri arasında uygulanan düzeltme tam olarak doğru olacaktır.

Burada eşit hata dağılımı varsayımının tam olarak doğru olmadığı vurgulanmalıdır. Ancak, yaklaşık olarak doğrusal model mükemmel düzeltme sonuçları sağlar.

Ekstrapolasyon

Sistem, dışbükey uzay pinlerinin dışbükey gövdesi dışında sabit değer uzantısı kullanarak yerleşik bir tahmin hizmeti sağlamaz. Bu yaklaşık değer, uygulama tarafından sağlanan alan raptiyeleri dışında bir ölçek hatası olmadığını varsaymaya eşdeğerdir.

Ancak, uygulama hata dağılımı hakkında bilgi sahibiyse veya bir tahminden memnunsa, çevresine daha fazla alan raptiyesi ekleyerek istenen herhangi bir tahmin oluşturabilir.

Tahmin örneği

4 metre uzunluğunda kenarlara sahip bir kareye yerleştirilmiş dört boşluk raptiyeli bir sahne düşünün.

Şimdi, kullanıcının hareket edeceği gerçek alanın 12 metre x 12 metre olduğunu ve alanın merkezini çevreleyen dört raptiyeye karşılık gelen fiziksel işaretçilerin olduğunu düşünelim.

Uygulama sabit bir hata tahmininden memnunsa, 12x12m alanın tamamında kapsam sağlamak için dört veya daha fazla alan raptiyesi eklemek için gereken tüm bilgilere sahiptir.

4x4 karenin köşelerindeki raptiyeleri ne, NW, SW ve SE ana yönlerine göre etiketleyeceğiz. Ayrıca her bir noktadaki sanal konumları virtualNE vb. ve her bir noktadaki fiziksel konumları fizikselNE vb. etiketleyeceğiz.

Dört boşluk raptiyesi

Bir strateji, dışNE, outerNW, outerSW ve outerSE olmak üzere dört kardinal nokta daha ekleyerek iç kareyi çevreleyen 12 metre x 12 metre kare oluşturan dış kardinal noktaları eklemektir. Bunların her birinin sanal ve fiziksel konumlarını hesaplamak kolaydır. Örneğin outerNE alınıyor:

virtualOuterNE = virtualNE + (virtualNE - virtualSW);
physicalOuterNE = physicalNE + (physicalNE - virtualSW);

Sekiz boşluk raptiyesi

20x20 metrelik bir tahmin alanı oluşturmak yalnızca uygulanan deltanın ölçeğini değiştirir:

scale = (outerSize - innerSize) / innerSize / 2;
virtualOuterNE = virtualNE + (virtualNE - virtualSW) * scale;
physicalOuterNE = physicalNE + (physicalNE - virtualSW) * scale;

20 m'lik bir outerSize ve 4 m'lik innerSize ile ölçek 2 olacaktır.

Alternatif bir strateji, aşağıda gösterildiği gibi köşelere ek olarak sekiz puan daha eklemek olabilir. Mevcut pin konumlarından yeni pin konumlarını hesaplama işlemi tam olarak yukarıdaki gibidir. Daha fazla pin eklenmesinin genellikle kararlılığı artırdığı doğru olsa da doğruluğu mutlaka geliştirmediği konusunda dikkatli olun.

On iki boşluk raptiyesi

Sahnenin bir alt kümesini hizalama

Şimdiye kadarki tartışma, WorldLockingManager.GetInstance() tarafından sahip olunan ve yönetilen global AlignmentManager ile ilgili. Daha önce açıklandığı gibi, bu, küresel Unity koordinat alanının tamamını stratejik başvuru noktalarındaki fiziksel özelliklere sabitler.

Ancak, sahnenin bir alt kümesine aynı kavramın uygulandığı zamanlar vardır.

Örneğin, iki otomobil için ek açıklamaların yüklendiği bir senaryo düşünün. farklı bayilerin düzenine göre farklılık gösterebileceğinden, iki fiziksel otomobilin tam yerleşimi önceden bilinmemektedir. Ancak, fiziksel araçlardan biri dağıtıldıktan sonra, bu dağıtım pozuyla ilgili tüm bileşen parçalarının konumları bilinir.

Bu senaryoda Space Pin'leri, her bir aracın sanal şasisini ve ek açıklamalarını bağımsız olarak sabitlemek için kullanılabilir. Araçların her birinin tüm sanal temsili Unity'de ayarlanabilir ve çalışma zamanında fiziksel araca eşlenebilir. Bu hizalama, MRTK UX kullanılarak el ile veya QR kodları ya da başka bir strateji kullanılarak otomatikleştirilebilir. Sanal ve fiziksel başvuru noktaları arasındaki yazışma verilerinin nasıl belirlendiğine bakılmaksızın, Boşluk Pinleri API'si aracılığıyla WLT'ye beslendikten sonra WLT, sanal ve fiziksel nesneleri algısal olarak iyileştirilmiş bir şekilde hizalı tutar.

Genel koordinat alanını hizalama durumunda hizalama, Ayarlama düğümünü (genellikle kameranın üst öğesinin üst öğesi) düzenleyerek gerçekleşir. Bu düğüm WLT'nin kullanımı için ayrılmış olarak kabul edilmelidir. Bu dönüşümle yapılan diğer tüm kurcalamalar tanımsız davranışa neden olur.

Benzer şekilde, bir alt ağacı hizalarken hizalamanın hizalanacak alt ağacın (alt) kökünde bir dönüşüme sahip olması gerekir. Bu dönüşümle yapılan herhangi bir dış kurcalama tanımsız davranışa neden olur.

Bağımsız alanlar sabitlenmeden önce, genel alan sabitlendiğinden bunlar da sürüklenecektir. Ancak, bağımsız bir alan sabitlendikten sonra fiziksel dünyaya sabitlenmiş olarak kabul edilir ve bu nedenle küresel alanın fiziksel dünyaya sabitlendiği sonraki değişiklikler onu etkilemez.

Ayrıca bkz.

Ayrıca bkz.