見通しは不可欠
直接の見通しがきわめて重要であるというテーマは、これまでにも何度か取り上げてきました:
- 屋内測位技術のレビュー(PDF)
屋内測位システムは、必ずモバイルビーコンと担当の固定ビーコンの間に見通しを確保して構築してください。
見通しが最も重要な要件である理由
直接の見通しという要件は、GPSと同じように考えてください。GPSトラッカーからGPS衛星が直接見えなければ、トラッキングはできません。それだけのことです。
実際には、状況がさらに複雑なことがよくあります。モバイルビーコンと固定ビーコンの間に直接の見通しがないとします。それでも、たとえば隣の壁や角、反射物からの強い反射によって、反射やエコーのような間接的な経路での見通しがあり、2つの経路の長さの差が大きくない場合があります。このような場合、直接の見通しがないこと、固定ビーコンとモバイルビーコンの間の測定距離が誤っていること、座標が不正確であることといった問題を、測位システムが検出するのは非常に難しいか、不可能です。
この問題に対する唯一の合理的な解決策は、最初から適切にシステムを設計し、モバイルビーコンとそれを担当する固定ビーコンの間に見通しを確保することです。そうすれば、そもそも問題が発生しないので、複雑で確実性のない方法で問題と戦う必要はありません。
基盤となる物理と技術について、もう一度
高精度測位システムは、飛行時間とマルチラテレーションの手法を用いています:
- GPS – 4機以上の衛星からの電波(1.1〜1.6GHz)の飛行時間。原子時計による時刻同期
- UWB – 電波(3〜10GHz)の飛行時間。時刻同期は無線またはEthernet経由、あるいは同期不要
- Marvelmind屋内「GPS」 – 超音波の飛行時間。ライセンス不要のISMバンド(主に868/915MHz)の無線による時刻同期
RSSIベースのシステム
BLE、WiFi、ZigBee、LoRaなど、電波の信号強度(RSSI)に依存するその他の技術は、屋内環境ではマルチパスの影響でRSSIが大きく変動するため、原理的に高精度にはなり得ません。非常に高度なアルゴリズムを用いて初めて、ある程度位置を求めることができます。しかし、RSSIを測定してそこから距離を計算するという基本的な物理原理のため、性能は飛行時間ベースのシステムよりはるかに劣ります。飛行時間ベースのシステムは、変動が大きすぎる信号強度には依存しないからです。
三角測量ベースのシステム
三角測量ベースのシステムは、三辺測量ベースのシステムとは異なります。
三角測量とは、3本の線の交点に基づく位置決定手法です。角度を正確に知る必要がありますが、距離を知る必要はありません。もちろん、線を引く起点となる点の座標は既知でなければなりません。
現在の実務では、こうしたシステムは一般にレーザースキャン方式です。
ある程度は、間に基線を設けたカメラで移動体の位置を計算する光学式システムも三角測量システムの一種です。ちなみに、私たちの両眼視、つまり目は、典型的な「2点からの角度測量」システムです。
三角測量システムは、特にレーザー技術に基づき、反射マーカー間に適切な基線がある場合には、比較的高精度になり得ます。しかし、その測位精度は距離に依存します。一方、三辺測量ベースのシステムでは、一般にその依存は小さくなります。簡単に言えば、三角測量システムは、近距離で、カメラ間または反射マーカー間に好ましい基線がある場合には非常に良く位置を測定できますが、距離が離れると精度が著しく低下します。
三辺測量ベースのシステムに比べて三角測量ベースのシステムの精度が相対的に低い理由は単純です。私たちは、時間ほど精密には角度を測定できないからです。
カメラを用いる光学式システムでは、カメラの解像度が制約になります。そのため、次の要素の間で選択を迫られます:
- コスト
- 画素解像度は、角度精度と位置精度に直接影響します。画素解像度が高いほど角度分解能は高くなりますが、光感度は下がり(画素が小さくなるため)、更新レートも下がります(レイテンシが増えます)
- 角度ビーム幅は、同じエリアをカバーするのに必要なカメラの台数に影響します。ビーム角が狭い、つまりズームが大きいほど角度分解能は向上しますが、同じエリアをカバーするのにより多くのカメラが必要になり、さらに悪いことに、カメラ間でデータを照合する複雑さが大幅に増します。結果としてコストが高くなります
では、なぜ直接の見通しが不可欠なのでしょうか?
前提1:
三辺測量ベースのシステムは、信号(電波、光、超音波)の飛行時間を使って距離を測定します。距離を直接測っているわけではありません。時間を測っているのです。理由は単純で、時間なら非常に精密に、必要ならピコ秒単位まで測定できるからです。ナノ秒なら十分扱いやすく、マイクロ秒ならきわめて容易です。
そのため、時間差が期待される精度に影響しないよう、原子時計や同期されたクロックなどの精密なクロックが必要です。
たとえば、電波や光を用いるシステムで 10cm の精度を達成したい場合:
- 1e-1/3e8=0.3 (ns) – かなり厳しい要件です。それでも実現は可能です
超音波を用いるシステムで、さらに高い 1cm の精度を達成したい場合:
- 1e-2/340=30 (us) – 非常に緩い要件です。つまり、十分に精密なクロックを作るのは、電磁波ベースのシステム(電波や光)より超音波ベースのシステムのほうが約100万倍容易です
前提2:
三辺測量ベースのシステムは、伝搬速度が a) 既知であり、b) 伝搬経路全体で一定であることを前提としています。この2つの前提があるからこそ、時間を非常に精密に測定し、それに正確に分かっている伝搬速度(光速または音速)を掛けることができるのです。
そしてこれこそが、見通し外の最大の問題です。見通しがない場合、信号(たとえばUWBの電波)は、コンクリート、湿った木材、ガラスなど、特性が不明な材料の中を伝搬します。しかし、これらの材料中の伝搬速度(電波の速度)は、真空中や空気中の電波の速度とは異なるのです!その差は大きくなることもあり、たとえば電波の速度が真空中の2〜3分の1になることもあります。つまり、電波は1 nsの間に真空中では30 cm進みますが、そのような材料中では10〜15 cmしか進みません。そのため、真空中の速度を前提とするシステムは、距離を2〜3倍も過大に見積もってしまいます。非常に大きな差です!
問題はさらに深刻です。こうした遅延を考慮して補正するのは技術的に非常に難しいため、私たちはこれを考慮に入れることができません。可能ではあるものの、私たちの知る限り、実際に行っている企業はありません。さらに悪いことに、実際の材料の特性、つまりその中での電波の速度は、実験室条件下でさえ十分には分かっていません。現実の状況では、材料の厚さや種類、伝搬方向、その結果として信号が通過する厚さなどは分かりません。
したがって、 唯一の現実的な解決策は、固定ビーコンとモバイルビーコンの間に見通しを確保してシステムを構築し、問題そのものを回避することです。
見通し外の屋内測位システムは存在しない
見通し外の状況でモバイルビーコンの位置を求めることは、物理的に不可能です。ここでいう「見通し外」は「可視光にとっての見通し外」、つまり人間にはモバイルビーコンが見えないがシステムには見えている、という意味で読むべきです。この但し書き付きであれば、NLOSシステムは存在し得ます。たとえばUWBです。しかしそれは、UWBの電波にとっては見通しがある状態なのです。
UWBを単純にNLOSシステムと呼ぶと、UWB信号を透過するのは実験室の薄い壁だけだとエンドユーザーが気づいたとき、苦い失望を招きます。現実のコンクリートやレンガの壁は距離測定に大きな誤差を生じさせるため、実際にはトラッキングシステムの信頼性はきわめて低くなります。
推奨され、実際に機能する唯一の解決策は、高精度な測位・トラッキングシステムを、常に見通しの要件を念頭に置いて構築することです。
P.S. 人体でさえ、UWBにとっては見通し外を生じさせます。UWBのモバイルビーコン(タグ)は、肩やヘルメットの上、最悪の場合でも手首に装着することをおすすめします。胸ポケットには入れないでください。背後から来るUWB信号が体で遮られ、性能が大きく低下します。
見通し外(NLOS)の問題
高精度屋内測位システムに直接の見通しが不可欠であることは、もう明らかでしょう。とはいえ、直接の見通しがない場合(NLOSの状況)にほかに何がうまくいかなくなるのかを補足しておきます。
近くの反射壁とNLOSの組み合わせ
前述のとおり、見通し外(NLOS)の状況では、システムがそうした事象を検出してその測定値を除外するように設計・調整されている場合もあれば、少なくとも結果が信頼できないことをユーザーやシステムの他の要素に警告できる場合もあります。別の方法で距離や位置を計算したり、計算を調整したりするアルゴリズムを使うこともできます。少なくとも、何らかの対処は可能です。複雑で保証もありませんが、それでも何もしないよりはましです。
このような警告や除外は、見通しがある場合の想定距離と測定距離の差が十分に大きいときには、かなりうまく機能します。何かがおかしいと判断し、ユーザーに警告するか測定値を完全に除外するのに十分な信頼できるデータが、システムにあるからです。
測定距離と想定距離の差が小さい場合、システムは次のどれかを選ばなければなりません:a) 単に測定精度の悪い距離である、b) NLOSであり除外すべきである、c) 移動体が予想外の急な動きをしただけで、距離は正しい。多くの仮定を置く必要があるため選択は難しく、誤検出と見逃しの間には常にトレードオフがあります。
繰り返しますが、この問題に対する唯一の確実な解決策は、問題をそもそも抱えないことです。つまり、NLOSそのものを避け、見通しのある状態でのみシステムを構築することです。
静止または低速の移動体では、NLOSはさらに厄介
NLOSがあっても、対象物が比較的速く動いていれば、いくつかの手法で予想位置を予測できます。その予測に基づいて、外挿したり誤った測定値を除外したりできます。
NLOSのある高速移動体では、距離が飛びます。距離が飛ぶという事実と、移動体に関する事前知識(フォークリフトは飛び跳ねない)を組み合わせれば、誤った距離を比較的簡単に除外できます。
しかし、対象物が静止しているか低速で動いている場合、システムは測定ごとのばらつきがわずかな測定距離を繰り返し返します。つまり、飛びがありません。距離の標準偏差は小さく、信頼できるように見えます。しかし、繰り返し得られる測定値が不正確で、信頼すべきでない場合があります。そしてそれを検出するのは簡単ではありません。そのため、他の情報源(センサーフュージョンなど)がなければ、ユーザーに警告したり、誤った静止時の測定値を除外したりするのは困難です。システムは一貫して、自信を持って、移動体を誤った場所に位置付けてしまいます。
低い更新レート
更新レートが高ければレイテンシは低く、1秒あたりの測定回数も多くなります。そのため、いくつかの測定値を蓄積して判断し、不良な測定値を除外する、あるいはすべて不良と判断してすべて除外することができ、それでもレイテンシを比較的低く保てます。
更新レートが高いと消費電力も大きくなります。消費電力を抑えるには更新レートを下げます。すると、レイテンシを許容できないほど大きくしない限り、システムはもはや同じようにはデータを蓄積したり除外したりできません。
最悪のケース:低い更新レートと高速の移動体
低い更新レートで高速の移動体を扱うシナリオは、良好な見通し条件下でさえ複雑です。対象物が曲がったりループしたりすることがあるからです。しかも、更新レートが低いと、ループや方向転換が位置更新の合間に起きるため、それに気づくことができません。
NLOSがあり、誤った測定値を正しい測定値から見分けて除外しようとする場合、この課題はほぼ不可能になります。対象物が方向転換やループを伴って動くと、見通しがある状態でもトラッキングは混沌として見えるからです。NLOSがあると、動きの混沌にNLOSによる混沌がさらに加わります。パターンも軌跡もなくなり、高度な追加手法を用いても、トラッキングはまったく不可能になります。
こうした問題すべてに対する唯一の現実的な解決策は、モバイルビーコンと、30m以内にある2台以上の固定ビーコン(2Dの場合)または3台以上の固定ビーコン(3Dの場合)との間に見通しを確保することです。
見通し外の問題を解決する方法
固定ビーコンを適切に配置する
次に従ってください:配置マニュアルに沿って固定ビーコンを適切に配置し、最小限のビーコン数で確実なカバレッジを確保してください。
何が何を見通しているのかを明確に理解する
見通しとは何でしょうか?何と何の間の見通しでしょうか?固定ビーコンとモバイルビーコンの間です。では…固定ビーコンのどの部分と、モバイルビーコンのどの部分の間でしょうか?
実は、答えはそれほど単純ではありません:
固定Super-Beaconがビーコンのマップを自動構築するとき、各ビーコンはタイミングによって固定ビーコンとしてもモバイルビーコンとしても動作します
わかりにくいものの、かなりよくある問題の一つが、ある固定ビーコンが別の固定ビーコンの後ろに位置している場合に起こります。両方を壁に取り付けていても、壁面ぴったりではなく、壁からの距離が異なっている場合です。
Super-Beaconが固定ビーコンのマップを構築する際には、たとえばあるタイムスロットでは一方のビーコンがモバイル、もう一方が固定として動作し、別のタイムスロットでは役割が入れ替わります。そのため、このプロセス中は両者の間に直接の見通しが必要です。
ビーコンを壁に横並びで設置しただけでも、マイクの感度特性(指向性)のため、条件はすでに厳しくなります。これについては詳しい動画をご覧ください。
しかし、一方のビーコンが列より奥に引っ込んでいると、そのビーコンから隣のビーコンへの角度がマイナスになり、NLOSの状況が発生します!確かに、ビーコンの本体同士は互いに「見えて」います。しかし、マイクはトランスデューサーを検出できません。つまり、明らかにNLOSの状況です。
解決策:
- このような状況を避ける
- 超音波送信器がマイクの後ろにならないよう、ビーコンを互いに少し内側へ向ける
- 距離や座標を手動で入力する
設置環境に明らかなNLOSの状況がある場合、たとえば部屋の中央に柱があり、柱の影によって柱の裏側にいるロボットがNLOSになる場合は、完全に重なり合うサブマップを作成してください:
- 左側の壁に固定ビーコンを2台設置し、部屋全体をカバーするサービスゾーンを構築します
- 残りの2台のビーコンを反対側の壁に設置して別のサービスゾーンを構築し、サービスゾーンが完全に重なり合うようにします
両方向からカバレッジが確保されるため、モバイルビーコンからは常に2組のビーコン、少なくとも1組のビーコンが見え、いずれか一方または両方のサブマップで高い信頼性でトラッキングできます。
IAで異なる超音波周波数(たとえば19+25 kHzと31+37 kHz)を選択した場合、システムは同じタイムスロット内、つまり位置更新のたびに、左右両方のサブマップから位置データを取得します。
同じ超音波周波数(たとえば25+31kHzと25+31kHz)を選択した場合は、TDMA=2、つまり2つのタイムスロットを選択する必要があります。1つ目のタイムスロットでは、左側のサブマップを使って位置を決定します。2つ目のタイムスロットでは、右側のサブマップを使います。
見通しがあれば良好なトラッキングが得られますが、それを提供するサブマップはタイムスロットごとに異なります。
一方のサブマップからNLOSになると、そのタイムスロットの間はトラッキングできなくなりますが、もう一方のタイムスロットでは再開して通常に戻ります。実質的には、位置更新レートを手動で1/2に下げたのと同じになります。
これは良好な場合の話です。しかし、左側のサブマップでは(NLOSによる誤りであるにもかかわらず)もっともらしいトラッキングに見え、右側のサブマップでは見通しがあって正しくトラッキングしている、という状況もあり得ます。厳しい状況では、軌跡が分かれることがあります。つまり、異なるタイムスロットに対応する左右のサブマップで位置が異なってしまいます。実際にはかなりまれな状況ですが、起こり得ます。通常は、どちらが正しいかを判断して誤ったほうを除外するために、他の情報源が用いられます。
障害物となり得るものがさらに多い場合は、同じ考え方を3つ以上の完全に重なり合うサブマップに拡張できます。ただし、更新レートが犠牲になる可能性があることを忘れないでください。利用できる超音波周波数がすぐに足りなくなるおそれがあるためです。さらには安定性が犠牲になることもあります。モバイルビーコンの位置についての「意見」が多くなりすぎ、それらが食い違うと、システムにとって選択が特に難しくなるからです
参照:完全に重なり合うサブマップの例。
NLOSの状況は、固定ビーコン側でも、モバイルビーコン側でも、その両方でも解決できます
NLOSが起こり得る厳しい条件下で、固定ビーコンとモバイルビーコンの間の見通しを補う方法には、固定ビーコン側の追加対策(たとえば完全に重なり合うサブマップ)、モバイルビーコン側の対策、またはその両方があることを、明確に理解しておく必要があります。
モバイルビーコン側でできることは?
Marvelmind Jacketなど、いくつかの解決策があります。Jacketには、片方の肩にMini-RX、もう片方の肩に追加のマイクがあります。何のためでしょうか?人の頭によるNLOSに対処するためです。頭の左側に設置された固定ビーコンからの信号が、頭に遮られて右肩のMini-RXに届かないとします。その場合でも、左側の追加マイクが信号を受信し、しかも右肩のMini-RXに届く、遮られている可能性のある信号よりも早く受信します。こうしてNLOSは完全に解消されます。両方のマイク(外部マイクとMini-RXのマイク)が信号を受信するか、少なくともどちらか一方が受信するからです。
同じ解決策はMarvelmind Badgeにも採用されています。Badgeには、首の左側と右側に1組ずつ、計2組のマイクがあります。マイクが首に近いと、「空」の大部分、つまり固定ビーコンへの見通しが遮られるため、大きな問題になります。しかし、マイクを首から少し離して配置し、2組のマイクを使うという特別な工夫で、この問題を解決しています。
モバイルビーコン側のNLOS対策について、詳しくはこちら:
FAQ
いいえ。これは担当する固定ビーコンに対する要件です。各サブマップには、1D、2D、3Dのサブマップに応じて1〜4台の固定ビーコンがあります。したがって、モバイルビーコンは、各サブマップで担当する固定ビーコンに対して直接の見通しが必要です。他のサブマップの固定ビーコンに対しては、見通しがなくても問題ありません。
いいえ、必須ではありません。たとえば、固定ビーコン間の距離や座標を手動で入力することもできます。もちろん、この構成ではSuper-Beaconは距離を自動で測定できず、固定ビーコンのマップも自動では構築されません。さらに、固定ビーコンが距離を自動で測定していないこと、そしてシステムにはたまたま正しく見えても実際には誤っている距離が生じていないことを確認する必要があります。
ただし、サブマップの担当固定ビーコンから、そのサブマップのサービスエリア内にあるモバイルビーコンへの見通しが確保されている限り、固定ビーコン同士の直接の見通しは必須ではありません。
はい、生じさせます。人体は、超音波にとって明らかに見通しを遮るものです。ビーコンが人の前にあり、固定ビーコンがその人の背後に配置されていて、人が超音波の影を作る場合、それは明らかな見通し外の状態です。
さらに、たとえばMini-RXや他のビーコンのアンテナが人体に近いと、ビーコンとモデム間の通信チャネルで無線信号強度が約10dB低下することも覚えておいてください。通常は、超音波の見通しのほうがはるかに重要で、超音波のNLOSはトラッキング不能や位置の飛びにつながるため、無線はそれほど制約要因になりません。しかし、離れた場所に設置されたビーコンでは、人体がモデムとビーコン間の無線接続を遮ることがあります。その結果、超音波のNLOSではなく、モデムとビーコン間の同期、テレメトリー、測定データが欠けることによって、トラッキングができなくなります。