3個のサーボモーターを使った指型ロボット「フィンガロン」です(図1)。尺取り虫のように体を折り曲げながら、床をはうようにして移動します。図1の指の形をした本体には、USBカメラを接続してあります。USBカメラはレンズを床に向けた状態でフィンガロンの真上の位置に固定してあります(図2)。ちょうど床をはい回るフィンガロンの様子を真上から撮影する位置です。フィンガロンの動きを撮影したり、目標物を識別したりするのに使います。いわばフィンガロンの目となる重要な役割を果たすパーツです。

図1 フィンガロンの本体と木箱に収納した「Raspberry Pi Model 3 B+」
図2 USBカメラを含むシステム全体の外観

 フィンガロンには四つの遊び方があります。まず一つは「QRコード巡りを見て楽しむ」です(図3)。フィンガロンにQRコードを見せる(具体的には真上に固定したUSBカメラに映るように床に貼り付ける)と、フィンガロンはそこに向かって移動し始めます。もう1個別のQRコードを見せると、フィンガロンは二つのQRコードを行ったり来たりするようになります。

図3 「QRコード巡りを見て楽しむ」遊びをしている様子

 このとき、フィンガロンは次の2段階で動きを決めています。最初の第1段階では、USBカメラの映像から「前進」「後退」「左旋回」「右旋回」のどれかに行動を決定します。続く第2段階で、決定した行動に対応する動作パターンとなるように3個のモーターの出力を個別にコントロールします。

 四つの行動に対応する動作パターンは、「モデルベース強化学習」と呼ぶ手法で自動作成しました。その方法は、まずは15分間、さまざまな姿勢のポーズを取らせます。あるポーズから次のポーズに姿勢を変えると、本体が少し移動します。フィンガロンは、本体の尻尾に取り付けた板の中心点が、四つの行動に対してどう動いたのかを点数化して記録していきます(図4)。続いて、記録した膨大な情報を基にして3分間のシミュレーションを実行し、四つの行動に対応する行動パターンを学習していく仕組みです。

図4 「モデルベース強化学習」を実行中の様子

 二つめの遊び方は「リモートコントロールで操作する」です。キーボードで四つの行動に対応したキーを押して、フィンガロンをリモート操作して楽しみます。

 三つめは「動きのパターンを自作する」です。GUIのツールを使って複数のポーズからなる一連の動きを登録できます。

 四つめは「パーツを交換する」遊び方です。パーツを取り換えると、直前に学習した動作パターンではうまく移動できなくなります。再度、モデルベース強化学習を実施して上手に移動できるようにします。

【PR】日経Linux 9月号が好評発売中!
 日経Linux 9月号では「Linuxの遊び方大全100」と銘打ち、Linuxを遊び感覚で楽しく活用する方法を100本集めた大特集を掲載しています。付録冊子の「ラズパイ&電子工作 スタートブック」では「Raspberry Pi(ラズパイ)」の基本的な使い方と電子工作の入門を100ページでまとめました。

 この夏は新型コロナ禍により外出しづらい日々になりそうですが、自宅でじっくり楽しめる、Linuxやラズパイに挑戦してみてはいかがでしょうか。

日経Linuxの購入は<<こちら!>>