GoogleCardboardとRaspberryPiを使って視界を共有できるロボットを作る
私の子供のころからの夢の一つに,ロボットに乗って操縦したいというものがありました.人が乗れるロボットを作るのはあまりに大変ですが,視覚が共有できるロボットなら作れそうな気がしたのでやってみました.
カギになるのはGoogleCardbordというGoogle謹製のお手軽VR体験装置.
段ボールだけでそこそこVRを体験できる非常に素晴らしい装置なのですが,今回はこれとRaspberryPiおよびカメラジンバルを組み合わせて,頭の動きとカメラの向きが同期する視覚共有装置の製作を試みました.そのカメラを台車に乗せてPS3コントローラで遠隔操作できるようにすることで疑似的にロボットを操縦している感覚を味わおうという魂胆です.
まだ一次完成版ですが一応形になったので整理を兼ねてまとめたいと思います.そこそこ長くなりそうなので分割で.
外観はこんな感じ.右にあるのがGoogleCardbordのケースです.
動画
今回は装置概要をまとめます.接続関係はこんな感じ.
以下詳細
・RaspberryPi3+カメラモジュール
今回の主役その1.周辺機器については過去記事参照のこと(RaspberryPi3の下準備 - 徒然創作記)
カメラ画像の取得と同時にAndroidとはWi-Fi(UDP)通信,コントローラとはBluetooth通信,マイコンとはUART通信と大忙し.マイコンとの通信にはUSB接続のシリアル変換モジュールを使用しました.
・サーボジンバル
フリスクでraspberry piカメラのケースを作る - 徒然創作記 でカメラ雲台といっていたやつです.
・サーボ駆動用マイコン(AVR ATmega88P)
RaspberryPiから直接サーボモータを動かすこともできますが,念のためモータ駆動用には別のマイコンを置きました.
今回の主役その2.ちゃんとGoogleがCardboad用のAPIを用意してくれているのでそれをベースに実装します.ちなみにGoogleはiPhone用のAPIもちゃんと出してくれてます.
今回はテザリングを使うことでAndroidとRspberryPiを疑似的に直接接続しました.
・Cardboard対応ケース
ebayで買ったプラ製のケースを使用.ヘッドバンド付きで900円という素晴らしさでした.
・台車
テキトーな板にタミヤさんのギヤボックスをテキトーに取り付けて,テキトーなモータドライバで動かします.モータドライバについては過去に設計したものを流用しましたが,今回の負荷ならモータドライバICで十分そう.
・PS3コントローラ
主に台車操作用に使用.
概ねこのような構成で作成しました.ここまで書いて思いましたが,ただの台車をロボットというのはかなり無理がありますね.でもまあこれだけで結構楽しめます.
何部構成になるかわかりませんが,次回はRaspberryPiのUDP通信部分について書きたいと思います.