ロボットトイをスマホアプリで制御するための開発環境「toio SDK for Unity」
ユニティ・テクノロジーズ・ジャパンによる公式オンラインセミナー「Unity道場 ロボティクススペシャル」が、2020年10月9日と10月10日に開催されました。Unity道場は学生から社会人まで幅広い開発者を対象に、Unityのエキスパートたちがあらゆるカテゴリーの技術を伝授する勉強会。今回のテーマはロボティクスです。
その中から、 ソニー・インタラクティブエンタテインメント(以下、SIE)のロボットトイ「toio™(トイオ)」 をUnityで自在に制御するための「toio SDK for Unity」に関するセッションを取材しました。発表者は、toio開発者であるSIEの田中章愛氏、そして「toio SDK for Unity」の設計に携わったモリカトロン株式会社のAIエンジニア、本間翔太氏と銭起揚氏です。
ロボットトイをアプリで制御する開発環境
「toio」は、子どもの創意工夫を引き出すことを目的としたキューブ型のロボットトイです。アクションゲームやパズルゲームなど、さまざまな別売りの専用タイトルと組み合わせることによって、工作やプログラミングを通じた枠にとらわれない自由な遊びを楽しめるプラットフォームとして設計されています。
また、幅広い年齢層に応じたプログラミング教材としても利用されています。小学校低学年から中学年の子どもには「順次・分岐・反復」といったプログラミングの基本構造を、小学校高学年にはビジュアルプログラミングによるアルゴリズムの実践を、中高大学生およびエンジニアにはJavaScriptライブラリや技術仕様を公開することで、本格ロボットプログラミングの機会を提供してくれます。
この「toio」とゲームエンジンのUnityを連携させるためにモリカトロンが開発したのが、「toio SDK for Unity」です。これにより、シミュレータ上で「toio」のコアキューブを挙動を再現できるほか、アプリケーションを生成することでスマートデバイスを介してキューブを制御することも可能です。さらにライブラリやアセットによってはARや機械学習も統合できるということです。ロボット工学のみならず、メディアアートでの活用も期待できます。
単体制御だけでなく複数個体の群制御も可能
「toio SDK for Unity」には、キューブをプログラム制御する「Cubeクラス」、デバイスを通信制御する「Bluetooth」、UnityEditorで「toio」の挙動をシミュレーションする「Simulator」、キューブを単体や群集として動かす「制御モジュール」という4種類のモジュールが用意されています。さらにCubeクラスは、シミュレータ上でキューブ制御する「CubeUnity」と、現実のキューブを制御する「CubeReal」の2種類に分かれています。
「Bluetooth」を使った通信制御では、共通のインターフェイスを介して命令を送ることで、iOSやWebといった複数のプラットフォームに対応しています。たとえば、モリカトロンが2019年11月に発表したiOSアプリ「ウロチョロス」は、スマートフォンやタブレットと「toio」を接続することで、キューブがまるで意志を持った生き物のように動き回るというものでした。今後、MacやAndroidへの対応も検討しているとのことです。
「Simulator」モジュールは、マットオブジェクト「Mat」、カード・シートオブジェクト「Standard ID」、コアキューブオブジェクト「Cube」から構成されています。「Cube」はtoioコアキューブ仕様2.0.0に対応。物理および通信遅延のシミュレーションも実装しています。また、シミュレータ上ではマウスとキーボードで直感的に操作できます。「Simulator」を使う最大の利点は、シミュレータ上でキューブの動作を確認しながら作業できることから、調整やデバッグのたびにコードを再度ビルドする必要がないことです。
「制御モジュール」には、単体制御を行うための「CubeHandle」と、群制御を行う「Navigator」という2種類のクラスがあります。このうち「CubeHandle」には、目標座標に到達するための「closed-loop」と、指定距離を移動したり指定角度に回転したりするための「open-loop」という2種類のメソッドが用意されています。また、移動の軌跡を予測することで、マットの範囲外へ出ないように指令の継続時間を自動で調整してくれます。
「Navigator」には、自然な動きでほかの個体を避けさせる「Human-like衝突回避」に加えて、魚群のように集団で行動できる「Boids」というアルゴリズムが実装されています。さらに、これら2種類を組み合わせることで、キューブが群れを形成した状態でも各個体が自然に動き回れる状態も再現できるということでした。前述したiOSアプリ「ウロチョロス」に実装されている鬼ごっこモードでは、追いかけるキューブと逃げ惑うキューブのすべての動作が、こうしたアルゴリズムによって生成されています。
テスターによる幅広い分野での活用事例
「toio SDK for Unity」は、すでにアルファ版が大学の研究グループや個人作家といったモニターによって利用されており、ジェスチャーを認識させて遊ぶ競争ゲームや、Unityのネットワーク通信を使ってリモートですごろくを遊ぶ作品、Unityのビジュアルスクリプティング環境である「Bolt」へ対応させる方法など、複数の活用事例が紹介されています。
SIEとユニティ・テクノロージズ・ジャパンは、10月10日から11月4日まで「toio」やUnityを使ったオリジナル作品動画コンテスト「ロボやろ」を開催しており、参加者には視聴数や内容のインパクトに応じたリワードが進呈されます。
また、「toio SDK for Unity」との併用を想定した開発者向けの「toio」専用マットが、SwitchScienceから販売されています。A3サイズの12枚セットで、すべてを並べると約1.2m角の正方形になります。こちらも、コアキューブをホワイトボード上で動かしたり、マットを使ってインタラックティブスクリーンを作ったりする複数の活用事例が、同社の開発キャンペーンをとおして紹介されています。
なお、「toio SDK for Unity」の「Simulator」モジュールは初期仕様で開発用マット1枚分の領域にしか対応していませんが、「制御モジュール」の「CubeHandle」クラスには座標系を変更する機能が備わっているので、独自の調整次第では12枚のマットを並べたシミュレーションも理論的には可能だということでした。
ロボット「toio」をUnityで自在に制御!「toio SDK for Unity」の紹介は、[1:20:46]から
Writer:Ritsuko Kawai / 河合律子