AIロボットになることを夢見るラピロ(RAPIRO)にはRaspberry PI3を搭載しています。音声認識と音声合成で会話が出来るようになったAIロボットと一緒にみんなで遊べるゲームって何でしょう。せっかく手足があるから、じゃんけん?あっちむいてホイ?一瞬であきちゃうし、一人でしかプレイできない。あ、そうだ!みんなで順番に参加できて、会話だけで楽しめるゲーム、「しりとり」「山手線ゲーム」があった。iPhoneのSiriに聞いたら「しりとり」には付き合ってくれたけれど、山手線ゲーム(古今東西)は遊び方を説明するだけで、一緒に遊んでくれなかった。Siriがやらないなら、うちのラピロに実装してみよっと。山手線の駅名だけなら、簡単なSQLデータベースを使う練習にもなるし、データを入れ替えれば、古今東西、いろんなテーマで遊べるはずです。このゲームなら、いま話題の新しいAIスピーカーにも搭載できるかな。
「山手線、出発」という音声コマンドを受け付けると、ラピロが「ちゃん、ちゃん。品川新駅」と喋ってスタートします。最初にAさんが「xx駅」と山手線の駅名を答えると、正解か不正解(回答済み)かを判定し、正解ならラピロも「xx駅」と答えます。次の人に交代してBさんが「xx駅」と回答することで、大勢でもゲームに参加できます。全ての駅名を答えるか、3回間違えると終了です。
駅名のリストは、回答済み/未回答のフラグを追加できるようにSQLデータベース化した。山手線の駅は、新品川を追加して全部で30個なのでこの程度のデータならテキストファイルでも良かったけれど、今回はSQLも使ってみたかっただけ。ライブラリは「SQLite」。
12個もあるサーボモーターの位置を確認して、テストコマンドやファームウェアの書式に毎回書き直すのは大変なので、モーター角度を入力したら自動でpythonコマンドやArduino配列データに変換するExcelファイルを作ったので、デバックにかかる時間を大幅に短縮できた。
私のラピロでの設定値です。最初に組み立てたときのサーボモーターの位置合わせで初期の角度調整が必要です。
a
少し根気が必要ですが、ラピロのArduinoファームウェアの動作パターンを変更するだけで、独自の動作に改造できます。例えば、左右に振り替えるときも、腕の動きが加わるだけですごく自然な動作に見えます。目指したのは赤い彗星並みに動作性能1.3倍。ラピロのサンプル動作は、少しぎこちないので、カッコいい動作をみんなで公開できるといいなーと思いました。