Boundary Blur:球体型ロボットと複合現実を活用したマルチエージェントシステム

1. はじめに

現実空間に存在する球体型ロボットと仮想空間のAIエージェントが連携してタスクを遂行することを目指しています。しかし、物理空間と仮想空間をシームレスに接続することは困難です。さらに、球体ロボットの動きを正確に制御し、物理ロボットと仮想AIエージェントの双方向の相互作用を実現するためには高度なAI技術が必要です。また、直感的な操作体験を提供するためのインターフェースを開発する際にも技術的な課題が存在します。

本作品では、球体型ロボット omicroと複合現実を活用したマルチエージェントシステム Boundary Blurを提案します。

2. 提案システム

2.1 設計方針

提案システムの目的は、現実空間と仮想空間のエージェントが連携してタスクを遂行することです。このために、スマートフォンやApple Watchから操作できる球体型ロボットボール「omicro」と、複合現実を活用したマルチエージェントシステム「Boundary Blur」を構築します。

2.2 システム構成

システムの利用手順は以下の通りです。

sequenceDiagram
    participant Physical as 物理空間準備
    participant System as Boundary Blurシステム
    participant Experience as 体験開始
    
    Physical->>System: 環境設定・デバイス配置
    System->>System: AR環境構築・デジタルツイン生成
    System->>Experience: 物理↔仮想連携開始
    Experience->>Experience: AI追尾・回避の自動実行
    
    Note over System: 現実と仮想の境界を曖昧にする<br/>複合現実体験

  1. 球型ロボットを設置する場所の選定を行い、床や壁が反射しやすい場合は、反射を避けるために黒のシートを床に敷きます。LEDと同色の光を放つプロダクトの近くは避けます。
  2. 球型ロボットの電源を入れ、iPhoneアプリケーションとBLEで接続します。複数の球型ロボットと接続する際は、iPhoneアプリを複数接続モードに切り替えます。
  3. 球型ロボットで電子コンパスのキャリブレーションを行います。このキャリブレーションはiOSアプリから実施します。
  4. iPad Proを三脚で固定し、球型ロボットがiPadのカメラの画角に入るように設置します。iPad Proの設定高さは地上から130cm前後にします。
  5. iPad ProでUnityアプリケーションを起動し、メッシュモードをオンにして床やオブジェクトをメッシュ化します。必要に応じて、移動可能エリアを指定する仮想障害物を空間に設置します。
  6. iPad Pro上で動作するUnityアプリと球体型ロボットの操作に使用しているiOSアプリをBluetoothで接続し、iOSアプリを経由して球体型ロボットの電子コンパスから取得した方位情報をUnityアプリに渡します。
  7. UnityアプリケーションでOpenCVモードをオンにし、球体型ロボットの中心点を取得します。動作環境が明るすぎたり暗すぎる場合は、OpenCVモードの2値化の色範囲を調整し、AR空間上に球型ロボットのデジタルツインを表示させます。環境光の影響で検出位置がずれるため、OpenCV検出位置の補正機能を用いて、奥行きや縦横の位置を手動で調整します。
  8. 球型ロボットをiOSやwatchOSアプリケーションで操作します。球型ロボットのデジタルツインがAR空間上で衝突した場合は、その状態をハードウェアの球型ロボットにフィードバックします。
  9. AR空間上で球体型ロボットを追尾するゲームAIを稼働させます。ゲームAIが現実空間に存在する球体型ロボットと接触すると、現実の球体型ロボットは回避行動を起こします。追尾と回避を繰り返し、結果として球体型ロボットが自動で動き続けます。
2.2.1 球型ロボット

詳細については以下をご参照ください。
omicro:自走式球体型ロボット

2.3.4 Unityアプリケーション

本システムの中核をなす「Boundary Blur」と名付けられた複合現実アプリは、Unityで開発されています。ARFoundationを用いてARKitの機能を活用し、PlaneDetection、LiDAR情報に基づく空間のMesh化、HumanStencilを用いた人間の位置取得、仮想オブジェクトの設置、そしてShaderやVFXGraphを用いた視覚効果は全てARFoundationと組み合わせて行っています。

sequenceDiagram
    participant Camera as iPad Pro<br/>カメラ
    participant Unity as Unity<br/>Boundary Blur
    participant ARF as ARFoundation
    participant OpenCV as OpenCV
    participant Robot as 球型ロボット<br/>ハードウェア
    participant iOS as iOSアプリ
    
    Note over Unity: AR環境初期化
    Unity->>ARF: ARFoundation初期化
    ARF->>ARF: ARKit PlaneDetection
    ARF->>ARF: LiDAR空間Mesh化
    ARF->>ARF: HumanStencil設定
    
    Note over Unity: ロボット位置追跡ループ
    loop リアルタイム追跡
        Camera->>OpenCV: カメラ画像取得
        OpenCV->>OpenCV: LED青色検出
        OpenCV->>OpenCV: 2値化処理
        OpenCV->>Unity: 球型ロボット中心座標
        Unity->>ARF: Raycast実行
        ARF-->>Unity: 奥行き情報
        Unity->>Unity: デジタルツイン位置更新
        
        Unity->>Unity: 衝突判定実行
        alt 衝突検出時
            Unity->>iOS: 衝突フラグ送信
            iOS->>Robot: 停止コマンド
            Robot-->>iOS: 動作確認
        end
        
        Robot->>iOS: 方位情報(デジタルコンパス)
        iOS->>Unity: 方位データ送信
        Unity->>Unity: デジタルツイン向き更新
        
        Unity->>Unity: Shader/VFX視覚効果
    end

球体型ロボットの位置取得は、OpenCVを用いて行われます。アプリケーションで取得した画像をもとに、球体型ロボットのLEDの青色を基準にして2値化し、ボール型ロボットの中心座標を取得します。取得した中心座標に対してARFoundationでRaycastを行い、ボールの奥行き情報を取得します。AR空間上の仮想座標に球型ロボットのデジタルツインを配置し、デジタルツインがAR空間内でARによって出現させた別のGameObjectと衝突した場合は、ハードウェアの球型ロボットにもフィードバックを返すようにしています。

球型ロボットの向きの取得は、このアプリケーションでは行えないので、ハードウェア側でデジタルコンパスを用いて方位を計算し、それをUnityアプリ側に返す形をとっています。

Boundary Blurは、iPad ProのLiDARやコンピュータビジョンライブラリを用いて現実空間の上にデジタルツインをリアルタイムで作成し、その上で動くゲームAIが起こした事象が現実空間に存在する球体型ロボットに反映されます。また、現実に存在する球体型ロボットに仮想空間上での質量を与えており、現実のロボットが動くと、仮想空間上のゲームAIやゲームオブジェクトにも影響を与えます。

sequenceDiagram
    participant Real as 現実空間<br/>球型ロボット
    participant Unity as Unityアプリ<br/>Boundary Blur
    participant AI as ゲームAI<br/>エージェント
    participant Twin as デジタルツイン
    
    Real->>Unity: 位置情報(OpenCV)
    Real->>Unity: 方位情報(デジタルコンパス)
    Unity->>Twin: デジタルツイン位置更新
    AI->>AI: 追尾アルゴリズム実行
    AI->>Twin: 接触/追尾
    Twin->>Unity: 衝突検出
    Unity->>Real: 回避コマンド送信
    Real->>Real: 回避行動実行
    Real->>Unity: 新しい位置情報
    Note over Real,AI: 物理世界↔仮想世界<br/>相互作用

3. 将来への展望:境界をぼやかすインタラクション体験の深化

Boundary Blur(境界ぼかし)プロジェクトが目指すのは、現実と仮想の境界をより滑らかにぼやかし、ユーザーが物理世界とデジタル世界を意識することなく自然にインタラクションできる体験の実現です。

3.1 より自然な境界の融合

現在のBoundary Blurでは物理ロボットと仮想AIの相互作用を実現していますが、将来的にはその境界をさらにぼやかし、ユーザーが「現実のロボット」と「仮想のエージェント」を区別する必要のない、シームレスなインタラクション体験を目指しています。複数の球型ロボットが仮想エージェントと一体となって協調動作することで、物理とデジタルの境界が完全に曖昧になった環境を構築できます。

3.2 インタラクションの滑らかさの向上

次世代機omicro Fluxの高精度制御技術により、現実と仮想の同期がより滑らかになります。BLDCモーターによる精密制御と9軸IMUの高精度センシングにより、物理ロボットの動きと仮想空間の反応のタイムラグを最小化し、境界を感じさせない自然なインタラクションが実現されます。

3.3 没入感による境界の消失

Apple Vision ProなどのXRデバイスとの連携により、視覚的な境界をさらにぼやかします。手指トラッキングやアイトラッキングによって、ユーザーは物理ロボットに直接触れるかのように仮想エージェントとインタラクションでき、現実と仮想の区別が意識から完全に消失する体験を創出できます。

3.4 日常への境界ぼかし体験の浸透

教育現場では、子どもたちが物理とデジタルの境界を意識することなく学習できる環境を提供します。エンターテインメント分野では、現実空間全体がゲーム世界となる、境界のない遊び体験を実現します。これらの応用により、Boundary Blurのコンセプトが日常生活に自然に浸透していきます。

Boundary Blurは、単なる技術的な融合ではなく、人間の認知における「境界」そのものをぼやかし、現実とデジタルが滑らかに溶け合った新しいインタラクション体験の創造を追求し続けています。

© 2025. All rights reserved.