プログラミングロボットRoot、日本で登場

iRobotが日本での「Root Coding Robot」の販売を発表した。日本での名称は「プログラミングロボットRoot」だ。実際に自分でロジックを構築してロボットで遊びながらプログラミングの素養を身につけていこう、というコンセプトの製品である。対象年齢は4歳からと低く、文字が読めない段階でも絵とブロックを組み合わせることでロボットを動かすことができるようになっている。幼年期や少年期という時期にどのようにプログラミング教育を行うべきか、そこに取り組んだ製品だ。

  • プログラミングロボットRoot

    プログラミングロボットRoot

Rootは、iRobotのロボット掃除機であるルンバを小型化して、掃除機能の代わりにお絵かき機能、音楽再生機能、色センサー、視覚センサーなどを搭載したデバイスとなっている。目的は掃除ではなく、ロボットで遊ぶことだ。Rootは磁石が内蔵されておりホワイトボードに貼り付けて走らせることもできる。ホワイトボードのある環境なら、ホワイトボードに貼り付けてペンで絵を書かせることが可能だ。

  • Rootの先頭はルンバのような衝突センターになっているほか、スイッチと光学センサーがついている

    Rootの先頭はルンバのような衝突センターになっているほか、スイッチと光学センサーがついている

  • Root後方上部には充電および通信にも使えるUSB-C

    Root後方上部には充電および通信にも使えるUSB-C

  • 背面には段差センサーほか色の識別センサーやホワイトボードイレーサーに相当するパーツが用意されている

    背面には段差センサーほか色の識別センサーやホワイトボードイレーサーに相当するパーツが用意されている

似たような製品はすでに存在しており、教育や研究で使われている。それぞれ対象とする範囲に違いがあるので、そうした製品との違いを簡潔にまとめるのはちょっと難しいのだが、あえて特徴をまとめるとすれば次のような感じになるんじゃないかと思う。

  • 対象範囲が4歳から99歳と広い(99歳というのは半分ジョークとされており、年齢上限なく使えるということを示すために使われている)。4歳児から研究開発まで応用範囲が広いと考えられている。
  • 制御に使われるプログラミング言語にSwiftが採用されている。SwiftはiPhoneやiPadのアプリ開発に使われているプログラミング言語。
  • 製品がポップで扱いやすい。おもちゃのような体裁でありながら、多くの機能を備えている。通信もBluetoothで簡単に行うことができる。

Rootは文字が読めない年齢でも、ビジュアル的にブロックを積み上げるだけでロボットを動かすことができるようになっている。これは大人であればすぐに飽きてしまうところだが、大人はSwiftで直接コーディングができるようになっている。しかもビジュアルブロックとSwiftコーディングは直結しており、常にどちらのアプローチからも利用できるようになっている。Rootの最大の特徴はこの点ではないかと思うのだ。

プログラミング言語としてSwiftが採用されている点も大きい。SwiftはiPhoneやiPadのアプリ開発で使われているプログラミング言語。つまり、Rootで遊びながら身につけたSwiftの経験は、そのままiPhone/iPadアプリ開発につなげやすい。ロボット遊びからスマホアプリ開発へつながっていく。これは今後のプログラミング教育においてひとつの重要なパスとなる可能性がある。

Webブラウザだけ、スマホだけでプログラムできる

Rootが面白いのは、面白いというか太っ腹なのは、Rootを動かすプログラムを作るのに、Rootそのものも使用料も必要ないという点にある。Webブラウザかスマートフォンがあれば利用できるのだ。実際に実機にプログラムを流し込んで動かしたいならRootの実機が必要だが、スクリーン上で仮想のRootを動かすだけでよいなら実機は必要ない。PCかMacかスマホかタブレットがあればよい。

小学校低学年または中学年くらいまでであれば、プログラミングに馴染むという観点からスマホかタブレットを使ったプログラミング体験ということになるだろう。小学校高学年くらいからは最終的にプログラミングにつなげるという観点からPCまたはMacを使うのが自然な流れになってくるかなと思う。

たとえば、PCかMacのWebブラウザから次のページにアクセスしてみよう。

次のようなページが表示される。左上にある「+」のアイコンからプログラミング環境に入ることができる。

  • iRobot Coding

    iRobot Coding

最初に表示されるUIは低学年向けのもので、下のブロックをドラッグ&ドロップで上へ配置していく。最初から配置されているブロックはスタートボタンのようなものだ。青色のブロックがイベント(開始、衝突、タッチなど)で、イベントを配置してそこにコマンドを積み上げていくという仕組みになっている。右側に描かれているのが仮想Rootで、組み上げたブロックに従ってこの仮想Rootが動く仕組みになっている。

  • レベル1のRootプログラミング

    レベル1のRootプログラミング

左上の再生ボタンをクリックすると仮想Rootがブロックで指示されたロジックに従って動作する。次のような感じだ。

  • ブロックに従って動作する仮想Root

    ブロックに従って動作する仮想Root

この状態で左下のレベルを1から2へ切り替えてみよう。次のように表示が変わるのだ。

  • レベル2のRootプログラミング

    レベル2のRootプログラミング

レベル1のブロックは横につなげていくだけだったが、レベル2ではブロックを横に接続するのではなく、プログラミングの構造に近いかたちで表示されるようになる。さらに関数やメソッドの引数に相当する部分を調整できるようになる。ブロックを積み上げる遊びから、徐々にコーディングへ向けてソフトランディングを始めるような形になっている。ここである程度、高度なお遊びができるようになる。

たとえばパラメータを微調整することで、次のような動きをさせることができる。

  • パラメータを変更した場合の実行例

    パラメータを変更した場合の実行例

そして次はレベル3へ切り替えてみてほしい。次のスクリーンショットのようにこれまでブロックが表示されていたエリアにSwiftのソースコードが現れる。イベント駆動のコーディングがどのように実装されているかがよくわかる。

  • レベル3のRootプログラミング

    レベル3のRootプログラミング

Rootの実機を動かしたい場合には、Rootの電源を入れてから左上のRootロボットのアイコンをクリックすればよい。Bluetooth経由でRootへの接続が行われ、実機が動くという仕組みになっている。

新入社員研修に使えるかも

RootやiRobotの教育事業となる「iRobot Education」は特に学校における教育に焦点を当てたものだ。STEM教育を低学年から実施できるようにしていくことに焦点が当たっているように見える。しかし、実際に使ってみると、これはこれからスマホアプリを開発する新入社員向けの教材としても使えるかもしれない、という手応えを受けた。

ソフトウェアベンダにおける新人教育のレベルはさまざまだ。プログラミングできる方のレベルとできない方のレベルの差は著しいものがある。どうしてもレベルが低いほうに合わせて社員教育を行う必要があるのだが、Rootはその点では入門からすでにハイレベルなスキルを持っている方も十分に遊び倒せるデバイスになっているように感じた。

プログラミングの経験がないと、イベント駆動でアプリを組み上げる感覚を掴むのはちょっとむずかしいかもしれないのだが、Rootだとそのあたりが直感的で理解しやすい。簡単なコーディングで実際にRootが動くので実感としても理解しやすいのだ。すでにプログラミングの経験がある方もRootを使うとかなり凝った遊びもできる。しかもソースコードとしてSwiftが使われているのでiPhoneやiPad向けのアプリ開発にも結びつけていきやすい。

現在、Rootで使われているプログラミング言語はSwiftだが、今後はPythonやJavaScriptでの利用も検討しているようだ。実機の販売は2021年2月19日からとなる。実機がなくてもRootプログラミングは可能なので、興味がある方は試してみてはいかがだろう。