SORU
2 Aralık 2013, PAZARTESİ


Üçgenlere iBeacons için örnek

Birden fazla iBeacons bir 'kaba' kapalı konumu. yapmak için kullanma imkanı araştırıyorum Bu uygulama bir tür 'müze' ayarı, ve olur daha kolay yapabilmek için bir ızgara şeklinde olan yerler için farklı nesneleri daha sonra tek tek işaretleri (gerçi o olmayabilir de imkansız).

Örnekler, deneyimler, birden fazla yer işaretleri içine Üçgen çizmek için kullanarak, ya da yolda kendim yazmak için yardımcı olmak için bazı mantık var mı?

CEVAP
7 Ocak 2014, Salı


Bazı deneyler hassas bir pozisyon üç işaretleri kullanarak yapıyordum.

Trilateration sonuçları

Ne yazık ki, sonuçlar kalite açısından çok hayal kırıklığı. Ağırlıklı olarak iki konu vardı:

  1. İçinde olmayan kontrollü ortamlarda, nerede bulacağını metaller ve diğer nesneleri etkileyen sinyal alınan sinyal gücü fenerleri değişiklikleri çok sık görünen o ki imkansız olsun hata aralığı 5 metre aşağıda.
  2. Kullanıcı alıcı cihaz işleme şekline bağlı olarak, okuma bir çok şey de değişebilir. Eğer kullanıcı bluetooth anteni üzerine elini koyar, sonra algoritma düşük sinyalleri olarak girdi sağlayacak ve böylece işaretleri cihazdan çok uzak olması gerekiyor. this image Bluetooth tam yerini anten görüyoruz.

Olası çözümler

Aktif olarak benden aşağı gitmeye cesareti olan bir Apple Mühendisi ile konuştuktan sonra bu yol, şu anda kullanmaya daha fazla meyilli hissediyorum seçeneği kaba kuvvet. Denemek için kurulmuş bir işaret her X metre (X olmak en fazla hata tolere sistemi) böylece yolda bu işaretleri kılavuz konumunu verilen bir cihaz tarafından hesaplanarak hangi beacon üzerinde kılavuz, en yakın cihaz ve varsayarsak, cihazın üzerinde aynı pozisyonda.

Trilateration algoritması

Ancak, bütünlüğü uğruna, trilateration algoritması temel işlevi aşağıda paylaşıyorum. Paragraf 3 ("Üç mesafeleri bilinen") *3.*

- (CGPoint)getCoordinateWithBeaconA:(CGPoint)a beaconB:(CGPoint)b beaconC:(CGPoint)c distanceA:(CGFloat)dA distanceB:(CGFloat)dB distanceC:(CGFloat)dC {
    CGFloat W, Z, x, y, y2;
    W = dA*dA - dB*dB - a.x*a.x - a.y*a.y   b.x*b.x   b.y*b.y;
    Z = dB*dB - dC*dC - b.x*b.x - b.y*b.y   c.x*c.x   c.y*c.y;

    x = (W*(c.y-b.y) - Z*(b.y-a.y)) / (2 * ((b.x-a.x)*(c.y-b.y) - (c.x-b.x)*(b.y-a.y)));
    y = (W - 2*x*(b.x-a.x)) / (2*(b.y-a.y));
    //y2 is a second measure of y to mitigate errors
    y2 = (Z - 2*x*(c.x-b.x)) / (2*(c.y-b.y));

    y = (y   y2) / 2;
    return CGPointMake(x, y);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autocar

    Autocar

    11 Mart 2006
  • Elefant Traks

    Elefant Trak

    5 HAZİRAN 2007
  • superemposed

    superemposed

    25 Aralık 2007