サブマップとハンドオーバーゾーン:屋内マップの拡張 | Marvelmind
サブマップの構築と管理:この動画の内容
Marvelmindの包括的なサブマップ戦略で、拡張可能な屋内測位マップを構築するための基礎を身につけましょう。サブマップ、サービスゾーン、ハンドオーバーゾーンとは何かを理解し、「サブマップあたり最大4台」のルールに沿った最適なビーコン配置を学び、重なり合うサブマップを使って障害物に対処する実践的な手法を習得できます。このガイドは、複数のサブマップを使った導入を成功に導きます。対象:自律型の屋内ロボット、ドローン、フォークリフト追跡システム。
文字起こし
Marvelmindの包括的なサブマップ戦略で、拡張可能な屋内測位マップを構築するための基礎を身につけましょう。サブマップ、サービスゾーン、ハンドオーバーゾーンとは何かを理解し、「サブマップあたり最大4台」のルールに沿った最適なビーコン配置を学び、重なり合うサブマップを使って障害物に対処する実践的な手法を習得できます。このガイドは、複数のサブマップを使った導入を成功に導きます。対象:自律型の屋内ロボット、ドローン、フォークリフト追跡システム。
0:00 皆さん、こんにちは。今日は、サブマップ、サービスゾーン、ハンドオーバーゾーンについてお話しします。複数のサブマップからなる大きなマップを構築されるお客様がますます増えているので、その基礎を取り上げたいと思います。詳しい情報は、当社の操作マニュアルや配置マニュアルに掲載しています。サブマップの作り方を紹介する動画も、すでにかなりの数を撮影しています。ですが、まずは基礎から始めましょう。サブマップとは何か。ハンドオーバーゾーンとは何か。サービスゾーンとは何か。それぞれ何なのでしょうか。今日は、普段お答えしているQ&Aをまとめたメモを用意しましたので、一つずつ取り上げていきます。では、そもそもマップとは何でしょうか。マップはサブマップで構成されています。サブマップは小さなセルで、必要なら1台のビーコンだけで構成することもできますし、1台か2台のビーコンでも構いません。さらに2台、3台、それ以上と増やし、1つのサブマップに最大4台の固定ビーコンを入れることができます。このサブマップはセル、つまり携帯電話網のセルのようなものです。
1:00 大きなマップを作りたい場合は、サブマップを追加していきます。たとえば、このサブマップがこのエリアをカバーし、別のサブマップがこのエリアをカバーします。そこにビーコンが2台追加され、さらに別のサブマップがこのエリアをカバーする、という具合です。デフォルトでは、各サブマップにはサービスエリア、私たちの呼び方ではサービスゾーンがあります。デフォルトのサービスゾーンは、そこから、つまり最も遠いビーコンから30メートルの範囲です。たとえば、
1:58 このような3Dサブマップの場合、デフォルトのサービスゾーンは、このビーコンから最大30メートル、このビーコンからも最大30メートル、このビーコンからも、というようになります。つまり、各ビーコンを中心とする半径30メートルの範囲がすべて重なり合ったものになります。ですから、サブマップの形はこんな感じ、こう、こうなります。デフォルトでは、見栄えは良くないかもしれませんが、これがデフォルトです。これが最適だとは限りません。たとえば、このエリアに別のビーコンがあって、このエリアにはすでにビーコンがあるので、このビーコンにはこのエリアを担当させたくない、ということもあるからです。そのため、各サブマップの
2:57 サービスゾーンを指定する必要があるのです。たとえば、ここ、ここ、ここ、ここにビーコンがあって、「このサブマップのサービスゾーンはここにする」と決めます。このように、各サブマップにサービスゾーンを定義します。要するに、サブマップに「ここを担当しなさい」と指示するゾーンです。つまり、ここがあなたの担当エリアです、ということです。ナビゲーションシステムの立場で言えば、「このエリアでは、何よりも、というより全面的に、あなたたちビーコンを信頼する」ということです。そして、たとえばこれは、同じビーコンにさらに2台を加えて構成した別のサブマップです。つまり、これらのビーコンはこのサブマップにもこのサブマップにも属していて、「君たちにはこのエリアをサービスゾーンとして任せる。このエリアでは君たちだけを信頼する」と指定するわけです。
3:56 そしてこのエリアでは、君も、君も信頼する。これがハンドオーバーゾーンになります。ハンドオーバーゾーンとは、前のサブマップとこのサブマップの両方のサービスゾーンが担当しているゾーンで、スムーズなハンドオーバーのために必要です。つまり、モバイルビーコンがここからこのゾーンまで移動する間は、このサービスゾーン、つまりこのサブマップだけが担当します。この区間では、こちらとこちらの両方が担当してよいことになっています。そしてシステムが判断を下し、データを組み合わせるか、引き続きこちらを最も信頼するか、あるいはこちらをより信頼するかを決めます。ハンドオーバーにはいくつかの種類がありますが、いずれの場合もスムーズなハンドオーバーになります。このゾーン、つまりハンドオーバーゾーンでは、モバイルビーコンが2つのサブマップ、このサブマップとこのサブマップによって追跡されるからです。
4:54 そして、ハンドオーバーゾーンは、指定しなくても必ず存在します。いずれにしてもサービスゾーンはあるので、システムが自動的に設定するからです。ただ、明示的に指定したほうがずっと良い場合があります。明示的に指定しないと、システムはゾーンを大きく取り、こちらも大きくなって、サブマップ同士が大きく重なり合ってしまいます。すると、システムはどちらを使えばよいのかわかりません。正しいほうを選ぼうとはしますが、最適なものを選ぶとは限りません。たとえば、このビーコンはこのエリアから非常に遠いのですが、このエリアはまだ30メートル以内に入っています。このエリアは、こちらのビーコンに担当してもらうのが理想です。ずっと近く、ずっと条件が良いからです。ところが、システムはこのビーコンで担当しようとするかもしれません。なぜでしょうか。単に、サービスゾーンもハンドオーバーゾーンも指定していないからです。ですから、ぜひ指定してください。
5:54 ビーコンの台数について。先ほども触れたように、1Dサブマップ、たとえばトンネルの場合は、サブマップあたり固定ビーコン1台だけでも構いません。2Dサブマップでは、サブマップあたり最大2台の固定ビーコンです。3Dサブマップでは、1台、2台、3台、または4台です。1つのサブマップに4台を超える固定ビーコンを入れることはできません。それ以上の固定ビーコンがある場合は、別のサブマップを作ってください。これは意図的な制限です。3Dには4台で十分だからです。実際、それだけですでに3台+冗長1台の構成になっています。では、冗長性について話しましょう。たとえば、障害物の問題、そしてその対処法に直面することはよくあります。障害物に対処する簡単で効果的な方法は、冗長性です。では、どうするのでしょうか。
6:54 基本的には、「これが2Dマップで、サービスゾーンはここ」と決めます。そして、これを壁に取り付けます。こちらの方向を向いているので、実際にはこのように設置します。そして、これがこの2Dのサービスゾーンです。ところが、ここに柱があったり、別の柱やそれに類するものがあったりします。そうなると、このエリアに影ができてしまいます。これは問題でしょうか。はい、問題になります。このエリアではトラッキングが途切れる可能性があるからです。どう対処すればよいでしょうか。実はとても簡単です。もう1つサブマップを作ります。これも2Dサブマップで、このサブマップのサービスゾーンをまったく同じ範囲に、ただし向きはこちらの方向で指定します。また、どの方向から
7:51 担当するかを示す矢印があることにも注目してください。こちらにもあります。つまり、完全に重なり合う2つのサブマップができることになります。このサブマップはこちらの方向から、このサブマップはこちらの方向から担当します。この場合、何が起こるでしょうか。正しい信号を選ぶアルゴリズムはたくさんあるので、システムはどちらのサブマップを使うかを自動的に選びます。このゾーンにいるときは、座標に基づいて選びます。さらに、過去の履歴データや信号の品質データにも基づいて選びます。そして、こちらの方向から得られるデータを使います。それで問題ありません。つまり、ここにいるときはこのサブマップが担当し、ここ、つまり柱の影にいるときは、こちらが担当します。これが全体的な考え方です。完全に重なり合うサブマップを使うのです。
8:48 障害物がある場合に担当させるためです。3台+冗長1台の構成では、これがすでに自動的に行われます。3Dの三辺測量に必要なビーコンは3台だけですが、4台あれば三角形が複数でき、システムが自動的に最適なものを選ぶからです。常に最適なものを選ぶとは限りません。ここではまだある程度の工夫が必要ですが、それでもシステムは最適なものを選ぼうとします。ちょっとしたヒントです。ご覧のとおり、ビーコンはある程度の広がりを持たせて、平面上に配置しています。たとえば、このように並べて3Dサブマップを作ることはできません。立体的な広がりがないからです。この場合、実際には直線しかありません。ビーコンは4台ありますが、固定ビーコンをこのように並べても3Dサブマップは作れません。平面上に配置する必要があります。「ビーコンを異なる高さに設置できますか」という質問をよくいただきます。はい、できます。
9:48 どの固定ビーコンでも高さを変えて構いませんが、必ずそのビーコンの高さを入力してください。つまり、すべてのビーコンが同じ天井に付いている必要はありません。異なる高さでも構いませんが、高さは必ず入力してください。特に、ビーコンが同一平面上になく、1台だけ高さが異なる場合はなおさらです。同一平面上にある場合は省略できることもありますが、その場合はZに一定の誤差が生じます。ほかには何があるでしょうか。現在、最大250台のビーコンと最大250のサブマップに対応しています。つまり、たとえば250の小さなサブマップからなるマップを作ることができ、各サブマップは最大30メートルです。つまり30メートル×250です。ご覧のように、巨大なトンネルや非常に大きな倉庫もカバーできます。これで十分です。
10:45 立体的な広がりが必要です。サブマップにビーコンが2台なら、自動的に2Dになります。特別な2Dモードなどに切り替える必要はなく、自動的に2Dになります。ビーコンが3台以上、つまり3台か4台なら、自動的に3Dになります。ただし、Dashboardには専用のチェックボックスがあり、3台や4台のビーコンを2Dモードに切り替えることもできますが、これはやや上級者向けです。ですから通常は、2Dならビーコン2台にするか、完全に重なり合うサブマップで2台+2台にするほうがずっと良いです。「ビーコンを増やせば精度は上がりますか」という質問をよくいただきます。いいえ、精度は上がりません。カバー範囲が十分であれば、ビーコン2台でも3台や4台と同程度の精度が得られるからです。実際、多くの場合、3台や4台では
11:44 かえって精度が悪くなることもあります。いわば「少数派の報告」や「少数意見」が混ざってしまうからです。十分な台数があれば、それで良いのです。それよりも役立つのは冗長性、言い換えれば障害物に対する耐性です。先ほども言ったように、ビーコン2台のほうが4台よりも遮られやすいのは確かです。ただし、ここで言うのは1つのサブマップに4台ではなく、重なり合う別々のサブマップに2台+2台という構成です。ですから、障害物がある場合は、ビーコン4台ではなく2台+2台を使ってください。特殊なケースもあります。2Dサブマップ、トンネル用の1Dサブマップ。トンネルにも対応しています。立体的な空間がある場合、たとえばコプターが飛んでいる場合は3Dサブマップです。さらに特殊なケースもあります。それは
12:42 垂直サブマップです。たとえば、トンネル、いや失礼、トンネルではなく倉庫があって、倉庫の中に非常に狭い通路があるとします。そういう場合、構築するのが不便だったり、少しコストがかかりすぎたりすることがよくあります。これが棚、これが棚です。たとえば高さ12メートル、ここは3メートルしかないとします。このY方向でどこにいるかは、多くの場合問題になりません。重要なのはX方向の位置と、Z方向の位置です。そこで、非常に狭い角度で3Dサブマップを構築する代わりに(これについては専用の動画があるので、YouTubeチャンネルをご覧ください)、2Dサブマップを構築すると便利な場合があります。ただし、それはX-Yサブマップではなく
13:42 X-Zサブマップ、いわゆる垂直サブマップになります。これについては説明資料もあります。つまり、こうした構成も可能です。この場合に限らず、便利なことがあります。たとえば、壁があって、何かが飛んでいる場合です。Xは必要ありません。実際には3Dにすることもできますが、その場合はいわば垂直の3Dになります。こう考えてください。水平のX-Yではなく、垂直、つまり横からです。ピラミッドを90度回転させても、XYZのトラッキングは引き続き可能です。さまざまな理由から、そのほうが便利な場合もあります。それは、お客様のアーキテクチャ次第です。さて、サービスゾーンについてです。先ほど言ったように、サービスゾーンは重要です。サービスゾーンは
14:39 必ず存在します。指定してもしなくても、存在するのです。単に、サービスゾーンを明示的に定義しないと大きなマップを構築できないことがよくあります。定義しなければシステムが代わりに設定しますが、最適になるとは限らないからです。よくあるケースはこうです。広いエリアがあり、2Dでカバーしたい。どう構築するか。たとえば、幅15メートル、長さ200メートルほどのオフィスがあるとします。ビーコンを、たとえば最大20メートルの区間に設置します。この場合、最大距離は30メートル未満に収まり、それがこのサブマップのサービスゾーンになります。
15:38 次の20メートルには別のサービスゾーン、さらに別のサービスゾーン、というように続けていきます。先ほど言ったように、サブマップは最大250、サービスゾーンも最大250まで作れます。次にハンドオーバーゾーンについてです。どのくらいの大きさにすべきでしょうか。目安は1メートルです。何もわからない、検討する時間もない、という場合は、1メートル程度にしておけば問題ありません。大きすぎず、小さすぎずです。では、この数字はどこから来るのでしょうか。2つの要素から決まります。1つは更新レート、つまり位置更新レート、もう1つは移動体の速度です。たとえば、移動体がこちらの方向から移動していて、
16:36 更新レートが8 Hzだとします。つまり、ハンドオーバーゾーンが1メートル、1メートルあれば、この1メートルの間に8回の位置更新が期待できます。これは十分な回数です。このエリアでは、このサービスゾーン、つまりこのサブマップと、このサブマップから8回担当されることになり、非常にスムーズなハンドオーバーになります。移動体がそれより速く、たとえば秒速2メートルで動いている場合、期待できる位置更新は4回だけです。それでも問題はありませんが、すでに8回より少なくなっています。さらに、たとえば更新レートが8 Hzではなく4 Hzしかない場合、位置更新は2回だけになり、これはもうぎりぎりです。少なくとも1回か2回、推奨される最低限は2回の位置更新が、サービス
17:36 …いえ、ハンドオーバーゾーンの中で必要だからです。そうでないと、ハンドオーバーがスムーズにいかず、ソフトハンドオーバーではなくハードハンドオーバーになるおそれがあります。なぜでしょうか。たとえば、何かが起きてこの1回を取りこぼすと、残りは1回だけになり、1回ではReal-Time Playerがスムーズにつなぐのに足りないことがあるからです。リスクは冒さないでください。つまり、位置更新レートが低い場合や、移動体が速い場合は、より大きなサービスゾーン、いや失礼、より幅の広いハンドオーバーゾーンにするとよいでしょう。ただし、それが最善とは限りません。先ほど言ったように、その場合、このビーコンがこの遠いエリアを担当しようとし、しかも正式に担当を任されてしまう可能性があるからです。このエリアは、こちらで担当したほうがずっと良いのにです。つまり、サービスゾーンやハンドオーバーゾーンは必要なだけの幅にし、それ以上広くしてはいけません。広げすぎると、やはりトラッキングが劣化するおそれがあるからです。それほど
18:33 大きくはないものの、劣化はします。さて、ほかのこと、もう少し複雑なことについても少し触れておきます。多くの方から質問をいただくので、取り上げておきましょう。同じ文脈で、TDMAとは何か、何のためにあるのか、という質問です。より複雑なサブマップ、失礼、より複雑なマップを構築するようになると、2つの問題が生じることがあります。最も注意すべきなのは、もちろん障害物です。障害物があると衛星、つまり固定ビーコンが見えなくなり、影の部分では正しくトラッキングできないことがあります。つまり、このエリアもこのエリアもトラッキングされません。
19:32 完全に重なり合うサブマップについてはすでにお話ししましたが、それを同じタイムスロットではなく、別々のタイムスロットで動作させることもできます。たとえば IAアーキテクチャ(Inverse Architecture)では、同時に発信して同時に担当しますが、NIA では、異なるタイムスロットで使うことを試せます。つまり、ある位置更新ではこちらの方向から担当し、次の位置更新ではこちらの方向から担当する、ということです。これによりロバスト性が高まります。システムが、誤っているのに確からしく見えるデータを、正しい可能性のあるデータと無理に組み合わせずに済むからです。こちらは誤ったデータなので、担当できません。たとえばここです。私たちにはそれがわかっていますが、システムにはまだわかりません。それでも、こちらの方向からの正しい可能性のあるデータと組み合わせようとします。システムはそれを試み、大半のケースではうまく組み合わせられますが、
20:31 必ずそうなるとは限りません。そういう場合は、TDMAモードを試してみてください。つまり、タイムスロット1ではこのサブマップが担当し、タイムスロット2ではこのサブマップが担当する、ということです。すると、得られるのはこれ、これ、これ、これ、そしてこのサブマップからのこれです。こちらはスキップされます。本来の位置ではなく、こことかここに出て、飛びが生じるからです。つまり、これも、これも、これも失われますが、こちらは常に正常です。そこでReal-Time Playerを適用すると、軌跡がスムーズになります。TDMAがこのサブマップに担当時間を割り当てたときに生じる、おかしな飛んだ位置を単純に取り除いてくれるからです。
21:28 完全に重なり合うサブマップのTDMAは、障害物がある場合に使います。つまり障害物対策ですが、それはTDMAの用途の1つにすぎません。TDMAのもう1つの用途は、IAアーキテクチャ(Inverse Architecture)向けのものです。これは NIAアーキテクチャ(Non-Inverse Architecture)ではなく、IAアーキテクチャで使います。ご存じのとおり、IAアーキテクチャで現在使える周波数は、19 kHz、25 kHz、31 kHz、37 kHz、45 kHzの5つだけです。大きなマップを構築すると、組み合わせはすぐに足りなくなります。特に、縦横に通路が走る複雑な倉庫などではそうです。すぐに選択肢がなくなり、それ以上大きなマップを構築できなくなります。そのため、一部の
22:26 サブマップを一方のタイムスロットに、ほかのサブマップを別のタイムスロットに移す必要があります。いわば、2つの異なる時間帯に分かれて「住む」わけです。このサブマップはこの時間に動作し、こちらのサブマップ群はこの時間に動作します。同時ではないものの共存できるので、好きなだけ大きなマップを構築できる自由が得られます。実質的に、マップのサイズは無制限です。ただし、その分だけ複雑さが増し、当然トレードオフもあります。TDMAなので、サービスされない時間が生じるからです。たとえば通常8 Hzで、TDMAのスロットが2つの場合、一方はこちらのスロットで、もう一方はあちらのスロットでしかサービスされないため、位置更新は4 Hzだけになります。つまり、位置更新レートの一部を失う代わりに、新たな次元が手に入るのです。
23:26 こうして、非常に大きなサブマップ、失礼、非常に大きなマップを構築できます。サブマップをいくつも構築でき、もう周波数の数に制限されないからです。最後に、構築方法についてひと言。これはすでに何度も取り上げてきましたが、かなり複雑なマップの話をしているので改めて言うと、全体の考え方はとてもシンプルです。単純なものから一つずつ構築し、そのサブマップで申し分のないトラッキングを達成してください。一つずつ具体的に説明しましょう。100個のサブマップからなる大きなマップを構築したいとします。まずサブマップを1つ構築し、サービスゾーンを定義し、そこで申し分のないトラッキングを達成したら、スリープさせます。本当にスリープさせてください。次にこちらのサブマップをウェイクアップし、サービスゾーンを指定して、このエリアで申し分のないトラッキングを達成します。
24:24 ほかのサブマップのことは考えないでください。気にせず、このサブマップを構築するだけです。それぞれ独立して申し分なく動作するサブマップが2つでき、サービスゾーンも定義できたら、ハンドオーバーゾーンに取りかかる準備が整います。実質的にハンドオーバーゾーンはすでにできていますが、このビーコン、このビーコン、そしてこのビーコンをウェイクアップします。ほかに100台のビーコンがあっても関係ありません。現在有効にしているのは3台だけです。ウェイクアップするのはこれらだけにして、それを使います。それぞれのサブマップはすでに構築済みなので、ここではスムーズなトラッキングが得られます。ただ、たとえばサブマップ同士の位置が完全には合っていないために、多少の飛びが出ることがあります。それを補正するには、サービスゾーンやハンドオーバーゾーンは複雑な形状でも作れるので、それらを調整したり移動したりします。距離が正しく測定されていなかった場合は、距離を少し調整することもあるでしょう。こちら側で申し分なくスムーズなハンドオーバーができるまで調整し、次は出ていく方向、つまり反対方向からも確認します。
25:24 そして、申し分なくスムーズなハンドオーバーができるまで、こうした調整を続けます。これで完了です。2つのサブマップができました。もう一度言いますが、それらをスリープさせ、次のサブマップを有効にして、そこで申し分のないトラッキングを達成し、その2つの間でスムーズなハンドオーバーができたら、もうそれらのことは忘れてかまいません。これを1つずつ、1つずつ、1つずつ繰り返します。まず単独のサブマップを1つずつ構築し、次にサブマップのペアを作り、こうして1つずつ追加しながら広げていきます。サブマップを飛ばしてはいけません。各サブマップで申し分のないトラッキングを事前に達成しないまま、すべてのビーコンを有効にして巨大なマップを構築しようとするのは絶対にやめてください。この手順に従えば、大きなマップの構築はとても簡単です。実質的には小さなサブマップを構築し、それらを調整して、ハンドオーバーがスムーズであることを確認するだけだからです。そうすれば、本当にとても簡単です。逆に、
26:22 すべてを一度に構築しようとすると、複雑すぎて苦労することになります。問題がなぜ、どこから生じているのかがわからなくなるからです。とにかく、それはやめてください。改めてまとめると、サブマップはビーコンの組み合わせです。サービスゾーンは各サブマップのプロパティで、そのサブマップがどこをサービスするかを指定します。ハンドオーバーゾーンは、隣接する2つのサービスゾーンの重なり部分です。ありがとうございました。
動画の内容
要点
- サブマップは個々の測位エリアであり、これらを組み合わせることで、自律システム向けに施設全体をカバーする屋内測位を実現します
- サービスゾーンはトラッキングの運用範囲を定め、ハンドオーバーゾーンはサブマップ間でのロボットのシームレスな移行を可能にします
- 最適なシステム性能とマップ管理の簡素化のため、1つのサブマップあたりのビーコンは最大4台にします
- 完全に重なり合うサブマップで障害物の影響をなくし、途切れないトラッキングを維持。対象はフォークリフトやモバイルロボット
- 倉庫自動化やドローン用途で正確な3D測位を行うには、ビーコンを一直線上に並べない配置が必須です
- 適切なサブマップ構成は、RTLS導入の信頼性と拡張性に直接影響します
対象:システムアーキテクト、大規模導入チーム
屋内測位システムを導入するロボットエンジニアや倉庫自動化の専門家は、サブマップの構成、サービスゾーンの管理、ハンドオーバーの仕組みを理解しておく必要があります。このガイドは、トラッキング精度と、マップ上のゾーン間でのロボットのシームレスな移行を維持しながら、大規模施設全体に測位カバレッジを拡張するという重要な課題を解決します。
FAQ
サブマップ構成とマルチゾーンカバレッジ
この技術ガイドでは、サブマップ、サービスゾーン、ハンドオーバーゾーンを使って、大規模施設全体に屋内測位システムを拡張するための基本的な構成を解説します。サブマップは個々の測位エリアで、これらを組み合わせることで施設全体をカバーします。サービスゾーンは、ロボットが正確なトラッキングを維持する運用範囲を定めます。ハンドオーバーゾーンは重要な重なり領域で、ロボットはここで位置の整合性を失うことなく、サブマップ間をシームレスに移行します。動画では、効率的なサブマップ設計のための「ビーコン最大4台」の原則を詳しく説明し、ビーコン設置における実務上の制約にも触れています。重要なポイントとして、物理的な障害物への対処法も取り上げます。完全に重なり合うサブマップによって死角をなくし、自律型ロボットやフォークリフトのトラッキングを途切れさせません。さらに、3D(XYZ)測位にはビーコンを一直線上に並べない配置が必要な理由も説明し、導入時のよくあるミスを防ぎます。これらの構成の考え方は、倉庫自動化、屋内ドローンのナビゲーション、自律型ロボットのフリート管理に直接応用でき、マルチゾーン施設全体で信頼性の高いRTLS(リアルタイム位置情報システム)の性能を実現します。
トピック
📍 プロジェクトに高精度な屋内測位が必要ですか?