Skip to Content
中心となる概念中心となる概念

コアコンセプト: 時空を巡る旅

Tracelet のバックグラウンド位置情報エンジンがどのように動作するかを真に理解するには、単純な「GPS に ping を送信するタイマー」という考えを放棄する必要があります。代わりに、ユーザー (配達ドライバーのサラ) の 1 日を追跡してみましょう。その過程で、Tracelet のインテリジェントなアルゴリズム (何を) が現実世界の問題 (なぜどこ) をどのように解決するかを正確に見ていきます。


シナリオ 1: 朝の通勤中

検討した概念: 動き検出、適応サンプリング、弾力性

問題

サラは目を覚まし、準備をして家を出ます。彼女の睡眠中に携帯電話の GPS が 10 メートル間隔でポーリングを続けていたら、勤務を開始する前にバッテリーが切れてしまいます。彼女が車に乗って高速道路に入ると、10 メートル間隔は頻度が多すぎてデータベースを圧倒してしまいますが、頻度が低すぎると、彼女のルートは建物を突き抜ける直線のように見えます。

Tracelet がそれを解決する方法

  1. STATIONARY 状態 (motion.stopTimeout) サラが眠っている間、彼女の携帯電話の加速度計は動きを検出しませんでした。 5 分後 (デフォルトの stopTimeout)、Tracelet は積極的に GPS 無線の電源を完全にオフにし、STATIONARY 状態に入りました。彼女のバッテリーの消耗は 0% 近くまで低下しました。彼女が外出しようと携帯電話を手に取った瞬間、加速度センサーが即座にトレイレットさんを目覚めさせました。

  2. 適応モード (geo.enableAdaptiveMode) Sarah が車に向かって歩くとき、Tracelet は 10 メートルのベースライン distanceFilter を使用します。ただし、時速 65 マイルで高速道路に合流すると、enableAdaptiveMode が高速を検出し、distanceFilter を自動的に最大 50 メートルまたは 100 メートルに調整します。

なぜですか? 高速走行では、直線上に多くの地面を走行することになるからです。高速道路に直線を引くのに 100 点は必要ありません。

  1. 弾性乗数 (geo.elasticityMultiplier) このパラメータは、高速時に距離フィルターが *どの程度積極的に * 伸びるかを制御します。彼女が果てしなく続く砂漠の高速道路を走る長距離トラックの運転手である場合は、elasticityMultiplier2.0 に設定してフィルターをさらに拡張し、バッテリーをさらに節約することができます。

シナリオ 2: 地下鉄トンネル

検討した概念: 推測航法、カルマン フィルタリング、走行距離計の精度

問題

サラはダウンタウンに届ける荷物を持っています。彼女は車を駐車し、地下鉄に乗って 3 駅ほど行きました。地下にいる間、彼女は GPS 信号を完全に失います。通常の位置トラッカーでは、地下鉄の入口から出口まで直線を描くことになり、給与計算のために計算された合計距離が台無しになってしまいます。

Tracelet がそれを解決する方法

  1. 推測航法 (geo.enableDeadReckoning) GPS 信号がゼロ (deadReckoningActivationDelay で設定) が 10 秒続くと、Tracelet は GPS が拒否された環境にいることに気づきます。推測航法エンジンを起動し、加速度計、ジャイロスコープ、コンパスからのデータを融合し、最後にわかった速度と方位に基づいてトンネルを通過する経路を推測します。

  2. 走行距離計の精度しきい値 (geo.filter.odometerAccuracyThreshold) 彼女が地下鉄を出ると、GPS 信号が高層ビルの周りで反射し、150 メートルの精度で「曖昧な」位置情報が得られます。彼女の odometerAccuracyThreshold50 メーターに設定されているため、Tracelet はポイントを記録しますが、その距離を総走行距離計に加算することを 拒否 し、不正確な「GPS バウンス」距離に対して報酬が支払われないようにするためです。


シナリオ 3: オフィスのデスク

検討した概念: バッテリー バジェット エンジン、ジオフェンス プロキシ

問題

サラは大規模な企業キャンパスに到着し、荷物を届けるのに 45 分間社内を歩き回ります。 GPS 信号が弱く、バッテリーが消耗し始めています。

Tracelet がそれを解決する方法

  1. バッテリーの予算 (android.batteryBudgetPerHour) batteryBudgetPerHour または 2.0% を使用して Tracelet を構成しました。 Tracelet さんは、建物内の信号が弱いため、バッテリーが 1 時間あたり 3.5% の割合で消耗していることに気づきました。エンジンは自動的に desiredAccuracyhigh から medium に低下させ、distanceFilter を増加させて、バッテリーの消耗を強制的に 2.0% の予算未満に戻します。

  2. 近接による無制限のジオフェンス 企業のキャンパスには 500 の個別の配信ゾーン (ジオフェンス) があります。 iOS と Android ではどちらも、ジオフェンスの数が 20 または 100 にネイティブに制限されています。 Tracelet は、geofenceProximityRadius 内で最も近いジオフェンスのみを登録することで、このハードウェア制限を回避します。サラがキャンパス内を歩くと、Tracelet はジオフェンスを OS ハードウェアにシームレスにロードおよびアンロードし、無限のジオフェンスを可能にします。