雑食エンジニアの気まぐれレシピ

日ごろ身に着けた技術や見知った知識などの備忘録的なまとめ.主にRaspberry Piやマイコンを使った電子工作について綴っていく予定.機械学習についても書けるといいな.

GoogleCardboardとRaspberryPiを使って視界を共有できるロボットを作る

私の子供のころからの夢の一つに,ロボットに乗って操縦したいというものがありました.人が乗れるロボットを作るのはあまりに大変ですが,視覚が共有できるロボットなら作れそうな気がしたのでやってみました.

 

カギになるのはGoogleCardbordというGoogle謹製のお手軽VR体験装置.

Google Cardboard – Google VR

段ボールだけでそこそこVRを体験できる非常に素晴らしい装置なのですが,今回はこれとRaspberryPiおよびカメラジンバルを組み合わせて,頭の動きとカメラの向きが同期する視覚共有装置の製作を試みました.そのカメラを台車に乗せてPS3コントローラで遠隔操作できるようにすることで疑似的にロボットを操縦している感覚を味わおうという魂胆です.

まだ一次完成版ですが一応形になったので整理を兼ねてまとめたいと思います.そこそこ長くなりそうなので分割で.

f:id:shikky_lab:20160722104559p:plain

外観はこんな感じ.右にあるのがGoogleCardbordのケースです.

動画

視覚共有ロボットの動作確認 - YouTube

 

今回は装置概要をまとめます.接続関係はこんな感じ.

f:id:shikky_lab:20160721062105p:plain

以下詳細

・RaspberryPi3+カメラモジュール

今回の主役その1.周辺機器については過去記事参照のこと(RaspberryPi3の下準備 - 徒然創作記)

カメラ画像の取得と同時にAndroidとはWi-Fi(UDP)通信,コントローラとはBluetooth通信,マイコンとはUART通信と大忙し.マイコンとの通信にはUSB接続のシリアル変換モジュールを使用しました.

・サーボジンバル

フリスクでraspberry piカメラのケースを作る - 徒然創作記 でカメラ雲台といっていたやつです.

・サーボ駆動用マイコン(AVR ATmega88P)

RaspberryPiから直接サーボモータを動かすこともできますが,念のためモータ駆動用には別のマイコンを置きました.

Android端末(Xperia Z3C)

今回の主役その2.ちゃんとGoogleがCardboad用のAPIを用意してくれているのでそれをベースに実装します.ちなみにGoogleiPhone用のAPIもちゃんと出してくれてます.

今回はテザリングを使うことでAndroidとRspberryPiを疑似的に直接接続しました.

・Cardboard対応ケース

ebayで買ったプラ製のケースを使用.ヘッドバンド付きで900円という素晴らしさでした.

・台車

テキトーな板にタミヤさんのギヤボックスをテキトーに取り付けて,テキトーなモータドライバで動かします.モータドライバについては過去に設計したものを流用しましたが,今回の負荷ならモータドライバICで十分そう.

PS3コントローラ

主に台車操作用に使用.

 

概ねこのような構成で作成しました.ここまで書いて思いましたが,ただの台車をロボットというのはかなり無理がありますね.でもまあこれだけで結構楽しめます.

何部構成になるかわかりませんが,次回はRaspberryPiのUDP通信部分について書きたいと思います.