omicro Flux:バランス制御球体型ロボット

1. はじめに

omicro Fluxは、従来のomicroの後継機として開発したバランス制御球体型ロボットです。名前の”Flux”は、磁束のほか、センサデータや状態の変化・流動といった連続的な動きを表現しています。最大の特徴は、従来のDCモーターからM5Stack製BLDC Roller485に変更することで、大幅な精度向上を実現したことです。

BLDCモーター、IMU、自作制御基板による構成で、球体内でバランスを取りながら移動する仕組みとなっており、XRプロジェクト「Boundary Blur」のような高度なインタラクション体験の実現を可能にしています。

omicro Flux Image 1

2. 開発背景

omicro Fluxの開発には明確な背景があります。これまで「omicro」という球型ロボットを「Boundary Blur」というXRプロジェクトで動かしていました。

Boundary Blurとは

Boundary Blurは、物理世界とデジタル世界の境界を曖昧にするというコンセプトのマルチエージェントシステムです。現実空間に存在する球体型ロボットomicroと仮想空間上のAIエージェントが連携してタスクを遂行することを目指すプロジェクトで、複合現実(Mixed Reality)技術を活用しています。

システム構成としては、iPad ProのLiDARセンサーとARFoundationを用いて現実空間をスキャン・メッシュ化し、その上にデジタルツインの世界を構築します。OpenCVによる画像認識で現実のomicroの位置を追跡し、AR空間上にロボットのデジタルツインを配置します。このデジタルツインは物理法則に従って仮想空間内のオブジェクトやAIエージェントと相互作用し、その結果が現実のomicroにフィードバックされます。つまり、現実のロボットが仮想空間のオブジェクトに「衝突」すると実際に停止し、仮想のAIエージェントがロボットを「追跡」すると現実のロボットが回避行動を取るという、物理世界と仮想世界が相互に影響し合うシステムとなっています。

技術的課題の顕在化

しかし、Boundary Blurでの展示体験を重ねるごとに、omicroの技術的な限界が明らかになりました。従来のomicroはDCモーターを用いて制御を行っていましたが、DCモーターは特性上、低速での回転量制御が困難であり、球体型ロボットという構造上、接地面が少ないため停止制御も非常に難しい課題でした。omicro単体で動かす分には精密な制御を必要としないため大きな問題にはなりませんでしたが、Boundary BlurシステムでロボットをxRでの操作やインタラクションに合わせて正確に動かそうとすると、この制御精度の限界が顕著に現れました。

さらに、従来のomicroは地磁気センサーを用いて方位を取得していましたが、地磁気は周囲の金属物や電子機器の影響を受けやすく、展示会場のような環境では安定した方位検出が困難でした。XRアプリでのインタラクションを高精度化するにあたり、これらの根本的な問題が解決されないと、Boundary Blurでより高度なインタラクション体験を実装することは不可能だと判断し、omicroの後継機として開発されたのがomicro Fluxです。

omicro Flux Concept Image

群制御システムへの布石

omicro Fluxの開発においてもう一つ重要な動機となったのは、将来的な群制御システムの実現に向けた技術基盤の構築です。単体ロボットの制御精度向上は、複数のロボットが協調動作する際の前提条件となります。個々のロボットが正確な位置制御と安定した通信を実現できなければ、群として機能することは不可能です。

特に、複数の球体型ロボットを「新しい車輪」として機能させるためには、従来のDCモーター制御では到底達成できない精密さが必要でした。各ロボットが僅かな誤差なく協調動作し、動的に役割を変更できる制御システムの確立が不可欠でした。omicro Fluxで実現した高精度制御技術は、このビジョンへの第一歩になっています。

3. システム構成

omicro Fluxの動作には、ハードウェアとソフトウェアの連携による以下の手順が必要です:

3.0 システムセットアップ手順

1. 初期設置
平坦で安定した床面にomicro Fluxを配置します。球体の特性上、傾斜面や不安定な場所での使用は避けてください。

2. 通信の確立
omicro Fluxの電源を投入後、専用iOSアプリケーションを起動し、Bluetooth Low Energy(BLE)による無線通信を確立します。接続状況はアプリケーション画面で確認できます。

3. センサーキャリブレーション
正確な方位制御のため、iOSアプリケーション上から9軸IMUセンサーのキャリブレーション処理を実行します。この工程により、設置環境における磁気的影響を補正し、高精度な姿勢推定を可能にします。

4. 制御開始
キャリブレーション完了後、iOSアプリケーション、またはApple Watch上のwatchOSアプリケーションから、omicro Fluxの移動制御を開始します。

3.1 球体型ロボット

omicro Fluxは、従来のomicroと同様に外側の球体とその中で動くロボットの二部分から構成されていますが、内部システムに大幅な改良が加えられています。

omicro Flux Image 2

外側の球体

外側の球体は、クリアなプラスチックを使用しており、材質はスチロール樹脂です。表面には硬化ガラスコーティング剤が塗装されており、耐久性と視認性を高めています。この点は従来のomicroと同様の構造です。

内部のロボット

omicro Fluxの最大の特徴は、制御システムの大幅な変更です。従来のDCモーターからM5Stack製BLDC Roller485に切り替えることで、精密な制御が可能になりました。

Roller485は、BLDCモーターだけでなく、角度センサーやディスプレイなどが一体化された統合型ブラシレスDCモーターモーションコントロールキットです。

DCモーターからRoller485への変更により、以下の大幅な改善が実現されました:

  1. BLDCによる高トルク制御:ブラシレスDCモーターの採用により、従来のDCモーターでは困難だった低速域での精密な制御が可能になりました
  2. 故障要因の減少:ブラシ接触がないBLDC特有の特性により、機械的な摩耗による故障リスクが大幅に軽減されました
  3. 正確な移動量制御:内蔵された角度センサーにより、回転量を正確に測定・制御できるようになり、PID制御の実装も可能になりました

さらに、M5Stack Unit Proを新たに追加することで、9軸IMU(3軸ジャイロスコープ、3軸加速度センサー、3軸磁気センサー)による高精度な姿勢推定が実現されました。この9軸IMUにより、従来の地磁気センサー単体では困難だった安定した方位検出と姿勢制御が可能になっています。

また、従来のマトリックスLEDからUnit Puzzleに変更することで、カラーを用いた表現豊かな目の表現も可能になり、ロボットとしての親しみやすさも向上しています。

この一体型デザインにより、従来のシステムで必要だった複数の部品を統合し、配線の簡素化と制御精度の向上を実現しています。制御基板は自作のものを使用し、これらの高精度センサー群と組み合わせることで、球体内でのバランス制御を実現しています。

車輪と運動機構

omicro Fluxには合計10個の車輪があり、動力は下部の大きな2つの車輪にのみ繋がれています。従来のomicroでは大きなホイールによるトルク向上により消耗が激しくなったため、omicro Fluxでは表面が滑らかで低収縮・高靱性の特性を持つ「Black Resin」に変更しました。ゴムタイヤと球体が直接接触するとグリップが強すぎるため、医療用のサージカルテープを使用して摩擦を調整しています。

その他の8つの車輪は、静止時には球体の内壁に接触していませんが、走行時には内壁に触れるようになっています。これにより、「ボールの直進安定性向上」、「衝撃吸収」、「回転時の軸保持」という役割を果たしています。車輪が回転すると、内部のロボットが球体の内側の壁を駆け上がることで、ボールが前進します。ボールの方向変更は、車輪が逆方向に等速で回転することで、超信地旋回を行い、その場での回転が可能です。

フレーム設計の刷新

omicroからomicro Fluxへの作り直し過程で、Roller485やUnit Proなどの新しいコンポーネントの追加により重心バランスが全て変わったため、フレームは全て再設計し直しています。Ring LEDカバーなどの光を通す必要がある箇所には、透明で強靭かつ寸法安定性に優れた「8001 Resin」を使用し、視認性と耐久性を両立しています。

3.2 操作アプリケーション

omicro Fluxの操作には専用のiOSアプリケーションとwatchOSアプリケーションを使用しています。これらのアプリケーションの詳細な機能や操作方法については、「omicroシリーズ専用アプリケーション」を参照してください。

omicro Flux対応版の主な改良点:

  • BLDCモーター対応: 精密制御に対応した新しい制御インターフェース
  • 高精度制御: 改良された回転量と移動量の制御システム
  • 触覚フィードバック対応ジョイスティック制御: ジョイスティックで制御する際に触覚フィードバックを受けながら操作が可能。押し込み量によって加速減速制御を行う。単純な加速減速停止操作だと移動制御が難しいため、内部的に最適な値に変換するアルゴリズムを実装しています

4. 将来への展望:群制御による「新しい車輪」

omicro Fluxの開発は、単体ロボットの性能向上にとどまりません。それは、複数の球体型ロボットを群制御し、それらを協調動作する「新しい車輪」として機能させることです。

4.1 従来の車輪を超えて

従来の車輪は、固定された円盤状の物体であり、回転軸を中心とした単純な回転運動しか行えません。しかし、omicro Fluxを構成要素とした群制御システムでは、個々のロボットが知能を持ち、状況に応じて協調・適応する動的な移動システムの構築が可能になります。これは車輪という概念そのものを根本的に再定義する挑戦です。

omicro Flux自体は群制御システムを内蔵していません。omicro Fluxは、高精度な単体制御を実現する球体型ロボットとして設計されており、群制御機能はBoundary Blurのような上位システムによって補完されます。この設計により、omicro Fluxは車輪としても、マルチエージェントシステムの一部としても機能できます。

4.2 群制御による機能拡張

Boundary Blurのような上位システムが複数のomicro Fluxを制御することで、以下のような機能が可能になります:

協調移動: 複数のロボットが連携して、単体では困難な移動パターンを実現します

分散制御: システム全体の負荷を複数のロボットに分散し、効率的な動作を行います

冗長性の確保: 一部のロボットに問題が生じても、他のロボットが機能を補完します

環境適応: 各ロボットのセンサー情報を統合し、環境に応じた最適な制御を行います

4.3 技術的基盤

この構想の実現には、omicro Fluxで培われた高精度制御技術が不可欠です:

  • 精密位置制御: Roller485によるBLDC制御とPID制御により、群制御に必要な正確な位置決めが可能
  • リアルタイム姿勢推定: 9軸IMUによる高精度センサー情報により、個々のロボット状態の正確な把握が実現
  • 安定通信: BLE通信の最適化により、複数ロボット間の協調制御が可能
  • 環境認識: 各ロボットが持つセンサー情報を統合し、周囲環境の包括的な理解を構築

4.4 応用可能性

複数のomicro Fluxを車輪として統合した移動システムは、従来の固定式車輪では実現困難な適応性を移動体に与えます:

自動搬送システム: 積載物の形状や重量分布に応じて車輪位置を最適化する車両 移動ロボット: 多様な作業環境において柔軟な移動戦略を実現するロボットシステム

4.5 パラダイムシフトへの道筋

omicro Fluxは、このビジョンへの最初の重要なステップです。単体での高精度制御を確立することで、上位システムによる群制御という次のフェーズへの技術的基盤を構築しています。Boundary Blurプロジェクトでの実証実験を通じて得られた知見は、将来的な複数ロボット協調制御システムの開発に直接活用されます。

この取り組みは、ロボティクス分野における移動技術の革新を目指すものであり、従来の機械的制約を超えた、知能的で適応的な移動システムの実現を追求しています。omicro Fluxは、そのビジョンを実現するための構成要素として、高精度制御という基盤技術を提供する第一歩なのです。

omicro Flux Image 3

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

omicro:球体型ロボット

1. はじめに

omicroは、スマートフォンやタブレット、Apple WatchからBluetoothで直感的に操作可能な球体型ロボットです。完全に保護された設計により、STEAM教育に適した構造を持ち、360度全方向に対応する駆動システムを搭載しています。また、ハンドジェスチャーによる操作も可能であり、複数のロボットを同時に制御する機能も備えています。これにより、教育現場でのプログラミング教育やロボット工学の実習、家庭での子供たちの学習支援、研究開発におけるロボティクス研究、イベントや展示会でのインタラクティブなデモンストレーションなど、多岐にわたる応用が可能です。

Image 1 Image 2 Image 3 Image 4

2. システム構成

omicroの動作には、ハードウェアとソフトウェアの連携による以下の手順が必要です:

2.0 システムセットアップ手順

sequenceDiagram
    participant Setup as 初期設定
    participant omicro as omicroシステム
    participant Control as 制御開始
    
    Setup->>omicro: 設置・接続・キャリブレーション
    omicro->>Control: システム準備完了
    Control->>Control: iOS/watchOS制御開始

1. 初期設置
平坦で安定した床面にomicroを配置する。球体の特性上、傾斜面や不安定な場所での使用は避ける。

2. 通信の確立
omicroの電源を投入後、専用iOSアプリケーションを起動し、Bluetooth Low Energy(BLE)による無線通信を確立する。接続状況はアプリケーション画面で確認できる。複数のomicroと接続する場合は、iOSアプリを複数接続モードに切り替える。

3. センサーキャリブレーション
正確な方位制御のため、iOSアプリケーション上から電子コンパスのキャリブレーション処理を実行する。この工程により、設置環境における磁気的影響を補正し、高精度な姿勢推定を可能にする。

4. 制御開始
キャリブレーション完了後、iOSアプリケーション、またはApple Watch上のwatchOSアプリケーションから、omicroの移動制御を開始する。

2.1 球体型ロボット

球体型ロボット omicroは、外側の球体とその中で動くロボットの二部分から構成されています。

外側の球体

外側の球体は、直径170mmのクリアなプラスチックBOXを使用しており、材質はスチロール樹脂です。表面には硬化ガラスコーティング剤が塗装されており、耐久性と視認性を高めています。

内部のロボット

内部のロボットは、M5Stamp S3を中心に、2つのマトリックスLED、モータードライバのSparkfun TB6612FNG、6軸センサのMPU6050、地磁気センサ GROVE三軸デジタルコンパスモジュールv1、NeoPixel Ring 16連フルカラーシリアルLEDで構成されています。フレームはレーザーカットされたアクリルを使用しています。電源にはエネループ電池を6本使用し、これらは2本と4本に分けて配置されています。ロボットの最下部には重心を整えるためにパラストが配置されています。

sequenceDiagram
    participant Power as エネループ電池×6
    participant MCU as M5Stamp S3<br/>メインコントローラ
    participant Driver as TB6612FNG<br/>モータードライバ
    participant Motors as DCモーター×2
    participant IMU as MPU6050<br/>6軸センサ
    participant Compass as 地磁気センサ
    participant LED as マトリックスLED×2
    participant Ring as NeoPixel Ring
    
    Note over MCU: システム起動・初期化
    Power->>MCU: 電源供給
    MCU->>Driver: モータードライバ初期化
    MCU->>IMU: 6軸センサー初期化
    MCU->>Compass: 地磁気センサー初期化
    MCU->>LED: LED表示初期化
    MCU->>Ring: NeoPixelリング初期化
    
    Note over MCU: 動作制御ループ
    loop 制御サイクル
        IMU-->>MCU: 加速度・ジャイロデータ
        Compass-->>MCU: 方位データ
        MCU->>MCU: 姿勢・方位計算
        MCU->>Driver: モーター制御信号
        Driver->>Motors: 駆動輪回転制御
        MCU->>LED: 目の表情制御
        MCU->>Ring: 周囲LED演出
    end

車輪と運動機構

ロボットには合計10個の車輪があり、動力は下部の大きな2つの車輪にのみ繋がれています。ゴムタイヤと球体が直接接触するとグリップが強すぎるため、医療用のサージカルテープを使用して摩擦を調整しています。その他の8つの車輪は、静止時には球体の内壁に接触していませんが、走行時には内壁に触れるようになっています。これにより、「ボールの直進安定性向上」、「衝撃吸収」、「回転時の軸保持」という役割を果たしています。車輪が回転すると、内部のロボットが球体の内側の壁を駆け上がることで、ボールが前進します。ボールの方向変更は、車輪が逆方向に等速で回転することで、超信地旋回を行い、その場での回転が可能です。

sequenceDiagram
    participant User as 操作指令
    participant MCU as M5Stamp S3
    participant Driver as モータードライバ
    participant Drive as 駆動輪×2
    participant Support as 補助輪×8
    participant Ball as 球体
    
    Note over User: 前進指令
    User->>MCU: 前進コマンド
    MCU->>Driver: 同方向回転指示
    Driver->>Drive: 両輪同方向回転
    Drive->>Ball: 内壁を駆け上がり
    Support->>Ball: 内壁接触で安定化
    Ball->>Ball: 前進動作
    
    Note over User: 回転指令
    User->>MCU: 回転コマンド
    MCU->>Driver: 逆方向回転指示
    Driver->>Drive: 左右逆回転
    Drive->>Ball: 超信地旋回
    Support->>Ball: 軸保持・衝撃吸収
    Ball->>Ball: その場回転
    
    Note over Support: 補助輪の役割
    Support-->>Ball: 直進安定性向上
    Support-->>Ball: 衝撃吸収
    Support-->>Ball: 回転時軸保持



2.2 操作アプリケーション

omicroの操作には専用のiOSアプリケーションとwatchOSアプリケーションを使用します。これらのアプリケーションの詳細な機能や操作方法については、「omicroシリーズ専用アプリケーション」をご参照ください。

主な機能:

  • iOSアプリ: システムハブとして複数ロボットの制御、Unity連携
  • watchOSアプリ: ハンドジェスチャーによる直感的操作、CoreMLを活用した機械学習機能

omicroシリーズ専用アプリケーション:iOS・watchOSアプリの機能と操作

1. はじめに

omicroシリーズ(omicroおよびomicro Flux)は、専用のiOSアプリケーションとwatchOSアプリケーションを通じて操作される球体型ロボットシステムです。これらのアプリケーションは、直感的なユーザーインターフェースとハンドジェスチャー機能により、革新的なロボット操作体験を提供します。

2. 球型ロボットを操作するためのiOSアプリケーション

2.1 基本機能

このiOSアプリケーションは、システムのハブの役割を担っており、複数の球型ロボット(omicroおよびomicro Flux)とwatchOSアプリとの間の通信をすべて制御しています。球型ロボットとwatchOSアプリとの通信はCoreBluetoothを用いてBLEで行っています。

sequenceDiagram
    participant Apps as アプリケーション<br/>レイヤー
    participant Hub as iOSアプリ<br/>システムハブ
    participant Hardware as ハードウェア<br/>レイヤー
    
    Note over Apps: 統合アプリケーション制御
    Apps->>Hub: watchOS/Unity/外部システム
    Hub->>Hub: 通信プロトコル変換・統合
    Hub->>Hardware: 統一制御インターフェース
    Hardware-->>Hub: センサー情報集約
    Hub-->>Apps: 状態情報配信
    
    Note over Hub: CoreBluetooth基盤で<br/>全デバイス間通信を一元管理

2.2 主要機能

omicroシリーズのアプリケーションでは、以下の機能が実装されています:

  • 複数ロボット同時制御: 複数の球型ロボットとwatchOSアプリ、Unityアプリの間の通信管理
  • Unity連携:
    • 球型ロボットから受け取った角度情報をUnityアプリケーションに送信
    • Unityアプリケーションから受け取った衝突判定のフラグを球型ロボットに送信
  • BLE通信: CoreBluetoothを用いた安定したBluetooth Low Energy通信

3. 球型ロボットを操作するためのwatchOSアプリケーション

3.1 基本概要

このアプリはiOSアプリに付随するものです。iOSアプリと同様に球型ロボットを操作するのが主な機能であり、その操作の際は必ずiOSアプリケーションを経由して、球型ロボットに指示を送ります。

3.2 ハンドモーション機能

watchOSアプリケーションならではの機能としては、ハンドモーション機能が挙げられます。これは、パフォーマンスを行う球型ロボット操縦者の手の動きをApple Watchのジャイロセンサと加速度センサで読み取り、それに応じて球型ロボットを操縦する機能です。

sequenceDiagram
    participant User as ユーザー
    participant Watch as Apple Watch<br/>ジャイロ+加速度センサ
    participant watchOS as watchOSアプリ
    participant iOS as iOSアプリ
    participant Robot as 球型ロボット
    
    Note over User: 手の動きによる操作開始
    
    User->>Watch: 素早く水平に上げる
    Watch->>watchOS: センサーデータ取得
    watchOS->>watchOS: モーション認識:機能ON
    watchOS->>iOS: BLE通信:機能有効化
    iOS-->>watchOS: 機能有効確認
    
    User->>Watch: 水平から20°上げる
    Watch->>watchOS: 角度変化検出
    watchOS->>watchOS: 直進動作認識
    watchOS->>iOS: BLE通信:直進コマンド
    iOS->>Robot: BLE通信:前進指示
    Robot->>Robot: 前進動作実行
    Robot-->>iOS: 動作完了確認
    
    User->>Watch: 水平で左右に捻る
    Watch->>watchOS: 回転動作検出
    watchOS->>watchOS: 左右回転認識
    watchOS->>iOS: BLE通信:回転コマンド
    iOS->>Robot: BLE通信:回転指示
    Robot->>Robot: 超信地旋回実行
    
    User->>Watch: 素早く下げる
    Watch->>watchOS: 下向き動作検出
    watchOS->>watchOS: モーション認識:機能OFF
    watchOS->>iOS: BLE通信:機能停止
    iOS-->>watchOS: 機能停止確認
    
    Note over watchOS: 全操作はiOSアプリ経由でロボットに送信

基本操作

  • 機能のオン/オフ: 手を素早く下げた場合には機能がオフになり、素早く水平に上げた場合は機能がオンになります
  • 直進操作: 手を水平状態から20°上げると、球体型ロボットが直進します
  • 回転操作: 手を水平に上げたまま手のひらを左右に捻ると球体型ロボットが左右に回転します

3.3 機械学習機能

watchOS上のCoreMLを用いて手の動きを機械学習し、複雑なハンドモーションで操作する機能も実装されています。手の動きのログをCoreMLのActivity Classificationでトレーニングさせ、センシングだけより複雑な手の動きのパターンを読み取れるようにしています。

sequenceDiagram
    participant User as ユーザー
    participant Watch as Apple Watch
    participant App as watchOSアプリ
    participant CoreML as CoreML<br/>Activity Classification
    participant Model as 学習モデル
    participant iOS as iOSアプリ
    participant Robot as 球型ロボット
    
    Note over User: トレーニングフェーズ
    User->>Watch: 複雑な手の動き
    Watch->>App: センサーデータ収集
    App->>CoreML: 動きパターンログ
    CoreML->>Model: Activity Classificationトレーニング
    Model-->>CoreML: 学習完了
    
    Note over User: 運用フェーズ
    User->>Watch: 学習済みハンドモーション
    Watch->>App: センサーデータ
    App->>Model: パターンマッチング
    Model-->>App: 認識結果
    App->>iOS: BLE通信:複雑コマンド
    iOS->>Robot: 高度な制御指示
    Robot->>Robot: 複雑動作実行

4. システム間連携

これらのアプリケーションは、omicroシリーズのロボットと密接に連携し、以下のような統合されたシステムを構成しています:

sequenceDiagram
    participant User as ユーザー体験
    participant Platform as omicroプラットフォーム
    participant Innovation as 革新的インタラクション
    
    User->>Platform: 直感的操作(手振り・タッチ)
    Platform->>Platform: AI/ML処理・物理制御統合
    Platform->>Innovation: XR・複合現実体験
    Innovation-->>User: 境界を超えた体験提供
    
    Note over Platform: iOS/watchOS/Unity/ハードウェア<br/>を統合したプラットフォーム
  1. iOSアプリ: 中央制御ハブとして機能します
  2. watchOSアプリ: 直感的なハンドジェスチャー操作を提供します
  3. 球型ロボット: 高精度な物理的動作を実行します
  4. 外部システム: Unity等との連携によるXR体験を実現します

これらのアプリケーションにより、omicroシリーズは単なるロボットを超えた、革新的なインタラクション体験を提供するプラットフォームとして機能しています。

© 2025. All rights reserved.