2019年4月13日土曜日

ssl-visionでUSBカメラを使う話

とてもお久しぶりなおでんです。


今回のネタはRobocupの小型機リーグ(通称SSL)で使用されるssl-visionという画像共有のソフトのお話です。というか卒研の後日談です。


僕SSLに関わっていた(いる?)のは、流れに身を任せた惰性によるものなのですが、なぜか研究もそれがテーマになっていました。

まあやっている理由はやりたかった制御系の研究室がなかったからというのが大きいですが、教授様のご厚意で基板の開発を行ってもよいといわれていたのでこの研究をしてる面もあります。


話を戻しまして、僕が行っていた研究は「ssl-visionで産業用USBカメラを動かす」です。実際のテーマ名は少し違いますが要約すればこうです。

これを行った理由は結構単純で、ノートパソコン1台でSSLの試合を行いたいという教授様のご希望を叶える上で、firewireのカメラだとノートパソコンに接続するのがめんどくさかったんです。
(あと世界的にはUSB3.0より帯域がしょぼくて将来性がないGigEカメラにシフトしようとしててたのが個人的に許せなかったゲフンゲフン...)

結構しょうもない理由で行ったあげく、3日くらいでeTDPの日本語文を書いて(英訳は教授様がしてくださった)世界大会の環境を実質的に変えてしまったのでほんとにあれなんですけど、まあそこら辺のことを備忘録兼ねつつ書いときます。


まあそんなこんなで,USB接続の産業用カメラ規格のUSB3VISIONカメラ(BFLY-PGE-05S2C-CS )の実機テストを行ってたわけですが、案外簡単に接続することができます。これにはいろいろなからくりがありまして...。先ほども書きましたが、firewireカメラもUSB3VISIONカメラも産業用カメラの規格名なのですが、何かと産業向けというものは下方互換性が求められる業界です。

そのため、ありがたいことにUSBカメラのドライバが,firewireカメラと同じように使えるようにfirewireライブラリのlib1394へデータを変換して飛ばしてくれます。そのため,きちんとメーカーの説明通りにカメラを使用できるようにするだけです。上記のカメラをつかえるようになってからこのからくりを知り、他メーカーも調べましたが、どうもどこのカメラでもそういう仕様にちゃんとなってるみたいですね。

そのため何も悩むことなく、どこのメーカーのUSB3VISIONカメラを使用した場合でもドライバ、又はそれに類するようなSDKなどをインストールすればきちんと動作するはずです。また、しっかりと互換性を保つように設計されているため、カメラのパラメーター変更などもそのまま行うことが可能です。


こんな感じに書くとちょろって思われるので問題になったことも書いておきます。

一つ目に問題になったのは、カメラをよくロストすることでした。普通に設定を行っているだけでssl-visionが固まるのです。これは最終的に仮想環境のコントローラーがゴミだったのと、エレコム製の10mの延長ケーブルがゴミだったのですが、これにかなり時間を取られました。ケーブルの大切さを改めて思い知らされました。きちんと純正の高級品を使いましょう(マジで。

二つ目に問題になったのは、SDKがubuntuにしか対応してないところです。これは多くの方には関係ないことですがfedoraでssl-visionをもともと用いていたのでこれが一番痛かった...。幸いubuntuでよくなったので事なきを得ましたが、ドライバやSDKがきちんと自分の用いたいLinuxのディストリビューションで使うことができるかきちんと確認を行いましょう。

てな感じで行ったのが卒研でした。ちなみにeTDPはこちらにあって性能比較やインストールの仕方など詳しく書いたり調べさせられました。あと他チームのeTDP読んでるとマイコンの流行りとかわかるので面白いです。回路やってる身としてはわりと世界の最先端とまではいわないですけど先端の技術に少しふれることができて興味深く読ましてもらえます。

何かここら辺のことで質問がありましたらtwitterでDMなりリプなり飛ばしていただければできる範囲で対応できるのでよろしくお願いします。
それでは
インストール方法を追記しました。

0 件のコメント:

コメントを投稿