2009-09-04 5 views
7

Pracuję nad lokalizowaniem urządzenia iPhone w przestrzeni 3D.Jak wykrywać wysokość iPhone'a (do wykorzystania w grze rozszerzonej rzeczywistości)?

Potrafię wykorzystać długość/długość do wykrycia fizycznej lokalizacji, mogę użyć magnetometru, aby obliczyć kierunek, w którym się znajdują, i być może będę mógł użyć przyspieszeniomierza, aby zorientować się, w jaki sposób urządzenie jest zorientowane, ale ja nie może znaleźć sposobu na podniesienie wysokości urządzenia z podłogi.

W szczególności muszę wiedzieć, czy użytkownik przykuca, czy podnosi rękę w kierunku sufitu (inaczej około 2 metry/6 stóp).

Zamieściłem bardziej szczegółowy opis tego, co próbuję zrobić na moim blogu: http://pushplay.net/blog_detail.php?id=36

chciałbym jakieś sugestie co do sposobu nawet fałszywy tego rodzaju informacji. Naprawdę chcę tego rodzaju interaktywności i ruchu, które wymagałyby schylania się i podskakiwania, w przeciwieństwie do sytuacji, w której ktoś mógłby usiąść wygodnie i podnieść telefon - sposób, w jaki ludzie mogą "oszukiwać" grę z Wii ...

+0

Nie GPS daje wysokość? Myślałem, że tak (Edit): mam na myśli podniesienie ... Myślałem, że GPS zwróci dane elewacji –

+1

problem, myślę, że będzie w określaniu, gdzie jest "podłoga". Jeśli użytkownik znajduje się w Denver, jego podłoga znajduje się około 5200 stóp od poziomu morza! –

+0

nie będzie można uzyskać lokalizacji z jakąkolwiek użyteczną dokładnością. Może można coś naśladować za pomocą funkcji rozpoznawania funkcji/śledzenia funkcji, ale to jest trudny problem (tm) – hop

Odpowiedz

7

Najbliższy Widzę, że docierasz do tego, czego szukasz, używając akcelerometru/magnetometru jako inercyjnego trackera. Musisz skalibrować początkową pozycję użytkownika podczas uruchamiania do pozycji "podstawowej", a następnie nieprzerwanie próbować czujników na wątku tła, aby zbudować model ruchu. This post mówi o zwiększeniu domyślnej częstotliwości próbkowania funkcji przyspieszeniomierza, dzięki czemu można uzyskać bardzo drobny obraz ruchów użytkownika.

nie jestem pewien, że to rozwiąże swoje zaniepokojenie ludzi po prostu Wędkarstwo urządzenia do produkcji pożądanego działania, ale trzeba będzie znaleźć równowagę między byciem zbyt restrykcyjne w interpretacji ruchów i pozwala na różnice w ruchu

+0

To właśnie tu się teraz kręci, chyba że znajdę lepsze (w porządku, w porządku, łatwiejsze) rozwiązanie ...: -) Nie byłam też pewna, czy będzie to sprzeczne z tym, jak zmierzyłem kąt telefonu ... wiele zmiennych do śledzenia! –

+0

ha ha tak, słyszę cię. Nie powinno to kolidować z twoimi pomiarami kątów, ponieważ mierzysz (delta) x, (delta) y i (delta) z, aby zbudować swoją mapę ruchu. Na przykład, jeśli użytkownik musi narysować anemometr (znak nieskończoności), mapa jest zbudowana na podstawie porównania punktów próbkowanych w czasie z logicznym "punktem początkowym" i czasem. –

+0

dobry komentarz. Rozwiązywano mój problem ... Dziękuję – Saad

0

Nie jestem dokładnie zaznajomiony z iphone. Ale może wymagać dodatku sprzętowego. (które prawdopodobnie nie chcesz zrobić). Po zastanowieniu się nad tym jedynym sposobem, w jaki wiem, za pomocą światła lub bardziej specyficznego lasera. Strzelasz laserem na podłogę i rejestrujesz czas potrzebny na powrót. Właściwie to nie ma wiele wspólnego ze sprzętem i jestem pewien, że iPhone ma połączenia z urządzeniami peryferyjnymi. O ile osmeone nie może mnie pokonać, mówię, że nie można tego zrobić za pomocą obrazu.

1

CoreLocation rzeczy daje elewacji aswell jako szer/długo, więc można potencjalnie wykorzystywać że chociaż istnieją pewne istotne problemy z tym:

  • nie będzie działać dobrze w pomieszczeniu (nie problem dla Sat Nav , jest problem z grami)
  • Twoi użytkownicy będą musieli "skalibrować" (prawdopodobnie umieszczając telefon na podłodze) każdą lokalizację, której używają!
  • W rzeczywistości, musisz zacząć przechowywać listę "wcześniej skalibrowanych lokalizacji" ... które mogą się bardzo różnić w jednym domu (np. Wiele pokoi i pięter). Może przeszkodzić w grze.
  • Nie może być używany do przenoszenia transportu (tranes, samoloty, samochody ... nawet do chodzenia), ponieważ elewacja zmienia się tak często.

Dlatego też pomyślałem, że użycie przyspieszeniomierza jako wskaźnika wysokości jest znacznie korzystniejszą drogą niż określenie bezwzględnej wysokości.

Powiązane problemy