ラジコン改造AIバトル戦車開発

ラジコン改造AIバトル戦車開発

バトル機能を持ったラジコン戦車にRaspberry Piを追加し、クラウドに接続することによって、音声命令で動くバトル戦車を作ってみることにします。レーザ測距センサのような高価なデバイスを用いず、普通のUSBカメラ2台を用いて障害物検知や地図作成を行うセンサとします。全体として、5000円以下のコストで自律移動するAI玩具が作れることを証明することが目的です。

プロトタイプ開発

まず、プロトタイプを作ります。米国でプログラミング教育等にも利用されているGoPiGo3を用います。シャーシの他、ロータリエンコーダ付きのモータ、Raspberry Piに直結できる制御基板等がついてきます。あとは、USBカメラを追加するだけです。通信はwifiを使いますが、Raspberry Pi本体のwifiインタフェースは性能が低いので、ドングルを使う必要があります。

Raspberry Piには、Raspbian LinuxROSがインストールされている必要があります。さらに、カメラドライバ等いつかのパッケージを追加する必要があります。クラウド側は、docker環境で動かします。セットアップ方法等は別途公開いたします。

プロトタイプでは、ROSの自律移動機能であるナビゲーションスタックを動かしてみます。通常はレーザ測距機構が必須なのですが、ちょっと高価です。ステレオカメラによる立体視を用いた測距機能を、ナビゲーションスタックへ適用することを試みます。調べてみてもあまり実施例のない試みですが、チャレンジしてみることにします。立体視による深さデータをレーザ測距データに変換するプログラムを開発します。

ナビゲーションスタックのmove_baseパッケージに命令を出すことによって移動を制御できます。音声認識APIを使って、音声命令で移動するようにします。音声入力から、移動先を計算し、ROSメッセージ出せば、ロボットが移動を開始します。 ナビゲーションスタックの機能により、カメラで検出された障害物は、避けて移動するように計画が作成されます。また、SLAM機能を追加すれば、地図作成も可能です。

ROSの主要機能は、docker化します。実行時に必要なroscoreばかりでなく、視覚化モジュールrviz、シミュレータGazebo等もdocker化し、別途PCを用意しなくてもワンコマンドでクラウド上で起動できるようにします。

プロトタイプを作成してわかったことは、安価なusbカメラを用いた自律移動が実際に可能であるということでした。

次は、iOtミドルウェアの管理のもとで全体を動かし、より高度なアプリケーションと接続します。