【レビュー】スフィロの最新ロボットボール「Sphero BOLT」(2) ブロックとテキストプログラミングに挑戦

前回はスフィロの最新ロボットボール「Sphero BOLT」(スフィロ ボルト)の開封の儀と初回レビューを行った。そこでは「Sphero BOLT」のワイアレス充電や防水、デジタルコンパス機能搭載など進化したポイントを紹介した。また、スマホ用のアプリ「Sphero Edu」を用いて、最も簡単なプログラミング方法「ドロー」方式でプログラミングしてみた。今回のレビューはMac用の「Sphero Edu」を使い、「ブロック」方式と「テキスト」方式の二種類の方法でプログラミングに挑戦したい!



ブロックでプログラミングに挑戦!

ブロック方式は積み木のように、使いたい機能のブロックをドラッグ&ドロップするだけでプログラミングが構成できる。ブロックは動作や色、サウンドなど合計11種類の機能に分けられている。ロボットが音を出したり、ぐるぐる回ったりするなど、自分で思い通りの動きができるようになる。ブロック方式のプログラミングの詳細情報は「Sphero Edu」の「All Program」が参考になると思う。

ブロックでプログラミングの例。ロボットボールのLEDがブルーになり、ロボットボールが最大速度で前方へ3秒間動き、馬の鳴き声を出す、という内容

今回ブロック・プログラミングで挑戦した内容は、ボールロボットが矢印を描いて元の位置に戻るプログラミングをやってみた。

今回まず挑戦するのはロボットボールが矢印のコースを描くプログラミング

「どうせプログラミングするなら」と言うことで、矢印に移動するだけでなく、ほかのコマンドも入れてみた。

まずはロボットのコンパス調整を行う。次に、「Welcome to robotstart」の音声を流し、ロボスタのLogoをLEDに表示する。次はいよいよ動き出す。ボールを緑のバツ印(上のイラスト図参照)からまっすぐ上に向かって出発、破線をライントレースして、途中の幾つかのバツ印に合わせて、最後は出発点に戻って、ゴールのサウンドを鳴らして終了というプログラミングだ。ブロックでは下記のように作ってみた。

今回のブロックプログラミング(前半)



早速、プログラミングした内容でスタート。
見事成功!
ただ、最後は出発点の近くに戻ったものの、×印は正確にはトレースできなかった点は少し気になった。床の材質などにも精度は影響されるのだろう。



テキスト方式のプログラミングに挑戦!

Sphero Eduのプログラミング言語はJavaを使う。プログラミングはJava Script Wikiを参考した。

今回は、ロボットボールとジャンケンするゲームを作ってみた。アルゴリズムを簡潔に説明すると、まずは、ジャンケンポンのパターンを「drawMatrixLine/drawMatrixPixel」のような命令を使って書いておく。次はifのコントロールとランダム数を用いて、ロボットが人間と同じようにランダムにジャンケンしてくれるようになった。最後は、ジャンケンのガイド音声をつけた。

マトリクスのプログラミングはブロックに比べるとやっぱり退屈で、時間がすごくかかった

早速、実行してみるとこちらも成功した。ただ、ジャンケンの絵が一瞬でLEDに表示されないことが少し気になった。


感想

ブロック方式では、矢印コースを走るプログラミングに数回挑戦したが、予定の×印をはずすことが頻発した。最初は数学での計算値を代入したが、誤差がもっと大きいことが分かった。そのため状況によって少し修正した数値で繰り返した。実験の結果は、床面の摩擦力(素材)、ボール運動の慣性力、ボールのバッテリ状況など色々な因子と関係があるように思った。


次回レビューの予告

Sphero BOLTには、複数のロボットボール間で通信して連携する機能がある。面白そうだ。
次回はロボットボール間のインタラクションに挑戦したい。複数のロボットボールでどんなことができるのか、楽しみだ!

ABOUT THE AUTHOR / 

郭 心宇
郭 心宇

中国出身、1993年生まれの25歳。2018年東京大学プロトタイピング・デザイン研究室から修士課程を終了した。中国・日本のロボットを調査しながら、知識と経験を積むことを目的として、ロボスタでアルバイト中。ロボット以外では、スポーツと旅行も好き。日本全国を回ることが三年以内の目標です。

PR

連載・コラム