Raspberry PiでRealSenseが動かないときに確かめること
はじめに
前回の記事はこちら
Raspberry PiでIntel RealSense Depth Cameraを使うための環境構築 - 右向き矢印のメモ帳
前回の記事でラズパイでRealSenseを動かすための環境構築の手順を書きました。
しかし、SDKのビルドが上手くいっているはずなのにRealSenseが動かないという事態が発生したので、その際に確認したことや対処方法をここで紹介します。
RealSenseを動かそうとしたところ...
SDKのビルドが終了し、いざRealSense Viewerを起動!...とした際のこと。
RealSense Viewerにこのようなエラーが
rs_error was raised when calling rs2_create_device(info_list:0xa43dd0, index=0): Opcodes do not match! Sent 16 but received -1!
嘘やん...
とりあえず確認したこと
とまあ少し絶望したのちに原因をいろいろ調査してみました。
そもそもUSBデバイスとして認識されているか?
RealSenseが認識されていなかったらそりゃ起動するはずもないので下のコマンドで認識されているUSBデバイスの確認
$ lsusb
Intel CorpとかいうやつがあればそれがRealSenseのはずです。
もし表示されていなければ何度か抜き差しして確認してみましょう。
udevルールは変更されているか?
udevルールが変更されていないと認識されない可能性があるみたいなので、とあえずそこもチェック。
librealsenseのルートディレクトリに移動して、前回の記事でも紹介したudevルール変更のコマンドをもう一度叩いてみる。
$ sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules && udevadm trigger
真の原因は電力不足?
とまあ、とりあえず試してみたんですが状況は変わりませんでした。
半ば諦めつつもネットをいろいろ漁っていると、Githubに同じような症状を訴えている人がいました。
これを読み進めていくと、どうやらラズパイの電力不足が原因っぽさそうだと判明。
というわけで電気屋に駆け込んで、外部電源供給のUSBハブを早速購入。
ハブにRealSenseを接続すると...
ちゃんとデバイスが認識されました!!
しかしこれでは終わらず
デバイスも認識されたしこれで完璧でしょ!って思いながらカメラをonにすると...
そこには大量のIncomplete video frame detected!のエラーと共に、No Frame Receivedの文字が...
ファームウェアの更新もしてついに起動!
これの原因はなんとなく察しがついていたので、解決は早かったです。
RealSenseのUSB2.0対応は試験的な段階みたいなのをどこかで見たので、ファームウェアが古いのかもと思って更新。
ここの記事を参考にしてファームウェアを最新の5.10.3にアップデートして再度チャレンジ。
これでやっと正常に動きました...
最後に
この解決に丸一日費やしてしまいました...
今回試したことをまとめると、
この4点になります。もしラズパイでRealSenseを使おうとしている人は気を付けてください。
余談ですが、この作業が終わった際にこんな記事を発見。
USB2.0の公式サポートって、つい2週間ほど前のことだったんか...