2021年8月10日(火) 21:26
今回の直接の敗因を考えるに、最新の CUDA を入れようとしたことがあると思う。
ステレオカメラを読めるようにするため OpenCV は何とかしなければならなかったが、CUDA はノータッチでも良かったはずだ。ジェットパックには、最新版ではないとは言え CUDA が入っている。それを、そのまま使うべきだったのだ。
ジェットパックに入っているものは、バージョンを上げずにそのまま使う。入っていないものや、OpenCV のようにそのままでは使い物にならない場合だけ、インストールを行う。この鉄則を、絶対に崩さないようにすべきだ。
ジェットパックには最新ではないソフトばかり入っているが、メーカー公式としてトラブルのない組み合わせがパッケージングされている。つまり、バージョンを上げるのは自己責任の世界であり、それが泥沼なのは骨の髄まで実感させられた。
更に、またまたジェットパックをクリーンインストールする羽目になるが、それによりGUI環境も復活する。CUI化する前に、GUIベースのアプリを使い、USB接続のステレオカメラの映像が取得できるかどうかも確認した方が良いだろう。せっかくの機会だ。
という訳でマイクロSDカードを新しく入れてGUI起動した直後の状態で、cheese を起動してみた。が、何かエラーが出て起動できない。
USBからカメラを外して cheese を起動すると、当然に起動するがもちろん No devide found である。そこに後からUSBにカメラを接続しても、No device found のまま。
しかし /dev/video0 は存在している。lsusb にも出てくる。
USBカメラとしては認識されているが、アプリからは映像を取得できない。まさに、昨日まで悩まされていた症状そのまんまである。
USBケーブルを抜いて挿し直し、dmesg してみる。

カメラは間違いなく認識されているが、初期化時に訳の分からないエラーが出ている。UVC 1.00 デバイスに対応していない?という恐ろしい疑義がある。
次に、v4l2 というツールをインストールし、調べてみる。

USBカメラが、/dev/video0 に認識されている。
ならば、画面モードの取得は出来るのか?
意外にも、問題なく取得できている。

しかし、キャプチャーだけは出来ない。

こうなると当初の推測・・・v4l には対応しているが v4l2 には対応していない・・・が有力に思えて来る。今の OpenCV は v4l2 にしか対応していないので、v4l にも対応するオプションでコンパイルし直せば・・・
あと、もう1つ試せる手段がある。
カメラ名称が SPCA2100 となっているが、どうもこれカメラの型番ではない。カメラ制御基板の型番っぽいのだ。カメラ制御基板の SPCA2100 にコネクターが2つ付いていて、それにケーブルでカメラを2つ接続してステレオカメラとして機能させている。制御基板は2つのカメラの映像を並べて合体させ、USB経由で送り出している。
でもって現在、SPCA2100 というのはメーカー(SunplusIT)の現行製品ではない。UVC 1.1 に対応した製品ばかりになっている。ならば、制御基板だけ買って置換すれば?
そう思ったが、制御基板だけ買う方法が見つからない。カメラごと買おうにも、制御基板の型番など分からない。
まずは、OpenCV のコンバイルを成功させてみるのが先決だ。
written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4