Azure Spatial Anchors でのアンカーのリレーションシップとウェイファインディングAnchor relationships and way-finding in Azure Spatial Anchors

アンカーのリレーションシップを使用すると、空間内に接続されたアンカーを作成してから、次のような質問をすることができます。By using anchor relationships, you can create connected anchors in a space and then ask questions like these:

  • 近くにアンカーはありますか?Are there anchors nearby?
  • それはどれくらい離れていますか?How far away are they?


接続されたアンカーは、次のような場合に使用できます。You could use connected anchors in cases like these:

  • ある作業員が、製造業の工場内のさまざまな場所に行くことが必要な仕事を完了する必要があります。A worker needs to complete a task that involves visiting various locations in an industrial factory. 工場の各場所には空間アンカーがあります。The factory has spatial anchors at each location. HoloLens またはモバイル アプリは、作業員をある場所から次の場所に案内するのに役立ちます。A HoloLens or mobile app helps guide the worker from one location to the next. このアプリはまず近くの空間アンカーをたずね、次に作業員を次の場所に案内します。The app first asks for the nearby spatial anchors and then guides the worker to the next location. アプリは、次の場所への大まかな方向と距離を視覚的に示します。The app visually shows the general direction and distance to the next location.

  • 博物館がパブリック表示に空間アンカーを作成します。A museum creates spatial anchors at public displays. これらのアンカーはまとめて、博物館の基本的なパブリック表示の 1 時間の見学を形成します。Together, these anchors form a one-hour tour of the museum's essential public displays. パブリック表示で、訪問者は自分のモバイル デバイス上の博物館の複合現実アプリを開くことができます。At a public display, visitors can open the museum's mixed reality app on their mobile device. 次に、訪問者は電話のカメラをその空間の回りに向けて、見学通路上の他のパブリック表示への大まかな方向と距離を表示します。Then they point their phone camera around the space to see the general direction and distance to the other public displays on the tour. ユーザーがパブリック表示の方に歩いて行くと、アプリは大まかな方向と距離を更新してユーザーを案内します。As a user walks toward a public display, the app updates the general direction and distance to help guide the user.

ウェイファインディングを設定するSet up way-finding

アンカー間の視線方向と距離を使用して案内を提供するアプリは、ウェイファインディングを使用しています。An app that uses line-of-sight direction and distance between anchors to provide guidance is using way-finding. ウェイファインディングは、道案内ナビゲーションとは異なります。Way-finding is different from turn-by-turn navigation. 道案内ナビゲーションでは、ユーザーは壁の回りを、ドアを通って、さらにフロア間を案内されます。In turn-by-turn navigation, users are guided around walls, through doors, and between floors. ウェイファインディングでは、ユーザーは目的地の大まかな方向に関するヒントが与えられます。With way-finding, the user gets hints about the general direction of the destination. ただし、その空間の推測または知識も、ユーザーが目的地への構造を通って移動するのに役立ちます。But inference or knowledge of the space also helps the user navigate through the structure to the destination.

ウェイファインディング エクスペリエンスを構築するには、まずそのエクスペリエンス用に空間を準備し、ユーザーが操作するアプリを開発します。To build a way-finding experience, first prepare a space for the experience and develop an app that users will interact with. その概念的な手順を次に示します。These are the conceptual steps:

  1. 空間を計画する: 空間内のどの場所をウェイファインディング エクスペリエンスの一部にするかを決定します。Plan the space: Decide which locations within the space will be part of the way-finding experience. このシナリオでは、工場の監督者または博物館の見学コーディネーターが、ウェイファインディング エクスペリエンスにどの場所を含めるかを決定する可能性があります。In our scenarios, the factory supervisor or the museum tour coordinator might decide which locations to include in the way-finding experience.

  2. アンカーを接続する: 選択された場所に行って空間アンカーを作成します。Connect anchors: Visit the chosen locations to create spatial anchors. これは、エンドユーザー アプリの管理者モードか、または完全に別のアプリで行うことができます。You can do this in an admin mode of the end-user app or in a different app entirely. 各アンカーを他のアンカーに接続するか、または関連付けます。You'll connect or relate each anchor to the others. サービスがこれらの関係を保持します。The service maintains these relationships.

  3. エンドユーザー エクスペリエンスを開始する: ユーザーがアプリを実行して、選択された場所のいずれかに存在する可能性があるアンカーを見つけます。Start the end-user experience: Users run the app to locate an anchor, which can be in any of the chosen locations. ユーザーがエクスペリエンスを開始できる場所は、全体的な設計で決定するようにしてください。Your overall design should determine the locations where users can enter the experience.

  4. 近くのアンカーを見つける: ユーザーがアンカーを見つけたら、アプリは近くのアンカーを要求できます。Find nearby anchors: After the user finds an anchor, the app can request nearby anchors. この手順では、そのデバイスとこれらのアンカーの間のポーズが返されます。This procedure returns a pose between the device and these anchors.

  5. ユーザーを案内する: このアプリは、これらの各アンカーへのポーズを使用して、ユーザーの大まかな方向と距離に関する案内を提供できます。Guide the user: The app can use the pose to each of these anchors to give guidance about the user's general direction and distance. たとえば、次の図に示すように、アプリに組み込まれたカメラに目的地である可能性のある各場所を表すアイコンや矢印を表示することが考えられます。For example, the camera feed in the app might show an icon and arrow to represent each potential destination, as the following image shows.

  6. 案内を改良する: ユーザーが歩いて行くと、アプリは、そのデバイスと目的地アンカーの間の新しいポーズを定期的に計算できます。Refine the guidance: As the user walks, the app can periodically calculate a new pose between the device and the destination anchor. このアプリは、ユーザーが目的地に到着するのに役立つ案内のヒントを引き続き改良します。The app continues to refine the guidance hints that help the user arrive at the destination.


アンカーを接続するConnect anchors

ウェイファインディング エクスペリエンスを構築するには、まず選択された場所にアンカーを配置する必要があります。To build a way-finding experience, you first need to place the anchors in the chosen locations. このセクションでは、アプリの管理者が既にこの作業を完了していることを前提にしています。In this section, we'll assume the app's admin has already finished this work.

1 つのセッションでアンカーを接続するConnect anchors in a single session

アンカーを接続するには:To connect anchors:

  1. 最初の場所に歩いて行き、CloudSpatialAnchorSession を使用してアンカー A を作成します。Walk to the first location and create Anchor A by using a CloudSpatialAnchorSession.
  2. 2 番目の場所に歩いて行きます。Walk to the second location. 基になる MR/AR プラットフォームがその移動を追跡します。The underlying MR/AR platform tracks the movement.
  3. 同じ CloudSpatialAnchorSession を使用してアンカー B を作成します。Create Anchor B by using the same CloudSpatialAnchorSession. アンカー A と B が接続されました。Anchors A and B are now connected. Spatial Anchors サービスがこの関係を保持します。The Spatial Anchors service maintains this relationship.
  4. 残りのアンカーに対して、この手順を続行します。Continue the procedure for the remaining anchors.

複数のセッションでアンカーを接続するConnect anchors in multiple sessions

複数のセッションを使用して空間アンカーを接続できます。You can connect spatial anchors over multiple sessions. この方法を使用すると、いくつかのアンカーを一度に作成および接続してから、後でさらに多くのアンカーを作成および接続できます。Using this method, you can create and connect some anchors at one time and then later create and connect more anchors.

複数のセッションを使用してアンカーを接続するには:To connect anchors over multiple sessions:

  1. このアプリは、いくつかのアンカーを 1 つの CloudSpatialAnchorSession で作成します。The app creates some anchors in one CloudSpatialAnchorSession.
  2. 別の時間に、アプリは新しい CloudSpatialAnchorSession を使用して、これらのアンカーのいずれか (たとえば、アンカー A) を見つけます。At a different time, the app locates one of these anchors (for example, Anchor A) by using a new CloudSpatialAnchorSession.
  3. 新しい場所に歩いて行きます。Walk to a new location. 基になる複合現実または拡張現実プラットフォームがその移動を追跡します。The underlying mixed-reality or augmented-reality platform tracks the movement.
  4. 同じ CloudSpatialAnchorSession を使用してアンカー C を作成します。Create Anchor C by using the same CloudSpatialAnchorSession. アンカー A、B、および C が接続されました。Anchors A, B, and C are now connected. Spatial Anchors サービスがこの関係を保持します。The Spatial Anchors service maintains this relationship.

後でさらに多くのアンカーやセッションに対して、この手順を続行できます。You can continue this procedure for more anchors and more sessions over time.

アンカーの接続を検証するVerify anchor connections

このアプリは、近くのアンカーへのクエリを発行することによって、2 つのアンカーが接続されていることを検証できます。The app can verify that two anchors are connected by issuing a query for nearby anchors. そのクエリの結果にターゲットのアンカーが含まれている場合は、アンカーの接続が検証されました。When the query's result contains the target anchor, the anchor connection is verified. アンカーが接続されていない場合、アプリは再度その接続を試みることができます。If the anchors aren't connected, the app can try to connect them again.

アンカーが接続に失敗する可能性のあるいくつかの理由を次に示します。Here are some reasons why anchors might fail to connect:

  • アンカーを接続するプロセス中に、基になる複合現実または拡張現実プラットフォームで追跡が失われた。The underlying mixed-reality or augmented-reality platform lost tracking during the process of connecting anchors.
  • Spatial Anchors サービスとの通信中のネットワーク エラーのため、アンカーの接続を保持できなかった。Because of a network error during communication with the Spatial Anchors service, the anchor connection couldn't be persisted.

サンプル コードを見つけるFind sample code

アンカーを接続し、近隣クエリを実行する方法を示すサンプル コードを見つけるには、Spatial Anchors のサンプル アプリに関するページを参照してください。To find sample code that shows how to connect anchors and to do nearby queries, see Spatial Anchors sample apps.