mayumi
Raspberry Pi Compute Module を取り付て動かすステレオカメラ(Stereo Pi)で3Dライブストリーミングをやってみます。
使用した物
必要なのはStereo Pi、Raspberry Pi Compute Module、電源線、カメラ2個で、そこに利用構成によってはmicro SDもしくはmicro USBケーブル等といった感じになります。今回は個別に購入して準備しましたが、Stereo Piは全部要りStereoPi Starter Kitが販売されています。電源線の作成も不要ですし、バージョンのそろったカメラが2台必ず用意されるので*1 悩みも少なく、手軽に始めやすいのではないかと思います。ただ、付属のカメラはv1です。
*1 使用する2台のカメラのバージョンは同じにしないと映像が映りません。
- StereoPi Slim Edition
- 購入したのはピンやLANコネクタ、USBコネクタのないSlimタイプです。このボードにRaspberry Pi Compute Moduleを差し込むのですが、wifiモジュールはStereo piにもRaspberry piにもついていないため、wifiを利用するならUSBのwifiドングルを利用するのが一番お手軽ではないかと思います。Slimタイプであってもボード上にUSBピンも出ていますし、USBコネクタを取り付ければUSBとして動作します。
- Raspberry Pi Compute Module 3+ (CM3+)
- eMMCフラッシュデバイスが搭載されている方のCompute Moduleを使用しました。LiteのついたCompute Moduleはフラッシュデバイスがないため、Stereo Pi側についているmicro SDスロットにmicro SDを入れて動かします。イメージの焼き方がLiteとそうでないのとで違うので注意が必要です。Liteの方が若干安いのと、Stereo PiスターターキットではLiteの方がセットに含まれているというところはありますが、どちらにするかは好みかと思います。
- Raspberry Pi カメラモジュール V2.1
- 利用するカメラです。3Dで撮影するので2個使います。
- 電源線
- Stereo Piに付属していたコネクタ付きケーブルと、USBコネクタ付きのケーブルを接続して作りました。
- WiFiドングル
- 映像はiphoneを使って段ボールVRゴーグルに収めてみられるようにしたいため、wifiドングルを付けて映像はネットごしにみられるようにします。
- ピン付きUSBケーブル
- WiFiドングルを利用するために用意しました。Stereo Pi Slimタイプで、USBコネクタはないのでこのケーブルをボードに差し込んで利用します。
- micro USBケーブル
- Raspberry Pi Compute Moduleにイメージを書き込む際にPCと接続するのに使用します。
- ジャンパー
- Raspberry Pi Compute Moduleにイメージを書き込む際にBoot mode jumperのピンをジャンプさせるのに使用します。
利用可能なRaspberry Pi Compute Module の種類とカメラの種類は「StereoPi Specifications」の通りです。
イメージの焼き込み
利用するRaspberry Pi Compute Moduleによって方法が変わります。今回はLiteではない方(eMMCフラッシュデバイスが搭載されている方)を使った方法を記載します。Liteの方は、通常のRaspberry piと同じくmicro SDカードに焼くだけで、調べれば情報はたくさんあるのでそれほど悩まないのではないかと思います。
参考:Upload image to EMMC over Micro USB (CM1, CM3 non-Lite)
手順は以下の動画で丁寧に説明されています。
- 1. Stereo Pi に Raspberry Pi Compute Module を取り付け
- まだ、カメラ、電源、HDMIなどは接続せず、Raspberry Pi Compute Moduleだけを取り付けます。
- 2. Boot mode jumperのピンにジャンパーを取り付けます。
- 3. micro USBケーブルでStereo PiとPCを接続します。
- Stereo Piの電源のスライドスイッチがONでもOFFでLEDが点灯します。
- 4. rpiboot.exe をインストールします。
- Raspbrry Pi 公式が出している「rpiboot.exe」をインストールします。
- rpiboot.exe
- このプログラムを利用することで、接続されたRaspberry pi Compute Module にファイルマネージャーからアクセスできるようになります。インストールするだけでなく、メニューからインストールされたrpibootを実行しないとファイルマネージャーからはアクセスできません。今回はwindows10上で行いました。Linuxの場合は公式のURLを参照してください。
- 5. イメージの取得
- ここではお手軽にセットアップされた公式イメージを利用します。
以下URLから、「How to prepare MicroSD card with SLP」のあたりにある「Download mirror」の好きなリンクからイメージをダウンロードします。
SLP (StereoPi Livestream Playground) Raspbian Image - 6. イメージの書き込み
- rpibootを起動した後は通常のイメージを焼く操作と同じです。認識されたデバイスをフォーマットしたあと、イメージを焼くツールを利用して「5.イメージの取得」でダウンロードしたイメージを書き込みます。
- 7. 設定
- WiFiの設定をします。焼き終えたメディア上(BOOT)の「stereopi.conf」を編集し以下の項目を設定します。「my-access-point-name」「mypassword」は環境に合わせて設定します。
wifi_iface =wlan0 wifi_ssid=my-access-point-name wifi_psk=mypassword
- また、カメラが1台しかない場合は、このファイル上の「video_mode=3D」を「video_mode=2D」に変更すると起動後1台分だけ表示されます。必要に応じて設定しておきます。
編集が終わったら、保存してファイルを閉じます。 - 8. 取り外し
- 書き込みが終わったら、デバイスの取り外し操作を行って、Stereo Piからmicro USBケーブルを抜きます。最後にジャンパーを外しておきます。
起動
カメラ、USBケーブル、WiFiドングル、電源、HDMIケーブルをつなぎます。
USBケーブルはStereo Piのピン配置を確認して接続します。
参考:Stereopi-usb-power-pinout.png
ここまで出来たら、Stereo Piの電源スイッチを入れます。
起動メッセージがでたあと、しばらくするとカメラの映像が接続されたディスプレイに表示されます。
ブラウザからは、「http://stereopi.local」でアクセスできます。ブラウザからですが、遅延もそれほどなく表示されます。
マウントプレートの取り付け
公式Wikiページでカメラサポートプレートのファイルが公開されていたので、ダウンロードしてMDFをレーザーカッターで切り出してみました。ネジはM2です。「StereoPi Starter Kit」 には付属されているようです。
カメラ固定されて、少し映像が安定しました。
段ボールVRゴーグルで見てみる
昔買った段ボールVRゴーグルにiphoneを載せてみてみました。
なんとなく3Dっぽいものはみられたのですが、段ボールVRが微妙なのかいまいちでした。もう少しましなものを探しておこうと思います。私はうまくできなかったのですが、寄り目でディスプレイを見た方が立体感があったそうです。
Stereo Pi良かった
公式のWikiページがとても丁寧なので一度読むと良いかもしれないです。Raspberry Pi Compute Module は初めて使用してところどころ知らなくて躓くことはあっても、特に大変な思いもせずに使えたので用途が合えば今後も使っていきたいなと思いました。
とりあえず、目的の3Dストリーミングはできたので、次はこれをこの前のロボットの頭に設置するところを考えていきたいなと思います。