So-net無料ブログ作成
OS X用GigE Vision ブログトップ
前の10件 | -

OS X用GigE Visionカメラドライバ - その45 [OS X用GigE Vision]

遅々として進まないGEN<i>CAM対応のドライバ。こんなことをしているうちに、仕事で使っているカメラの数がどんどん増えて、機種ごとに書き分けているレジスタマップを定義したファイルが同じ数だけ増えてしまった。最初の頃は、買ったカメラ用のレジスタマップ定義はせいぜいシャッタスピード、ゲイン、fps、あとはデータ転送の開始終了ぐらいしかなかったけど、最近はROIやビニングやソフトウェアトリガや黒レベルなんかも使うようになってきて、もうどの機種に何を定義したのかぐちゃぐちゃになって、わからなくなりつつある。

それに、カメラのメーカをそれまで使っていたドイツのメーカから去年カナダのメーカに切り替えた。なぜかというと、いつの間にか日本での値段が逆転していた(一番最初は数社を値段だけで比べて決めた)のと、ドキュメントがカナダのメーカのものの方が豊富だったから。

その一方で、ノイズが多い感度が低いピクセルピッチがでかいなどなどの点で光学計測用途は難しいと思っていたC-MOSイメージセンサが、いつの間にかCCDに肩を並べるようになって、ある面ではCCDを超えるようになってきた。メーカもC-MOSセンサを乗せたカメラを次々投入してきている。僕も性能が良くて安いならそれにこしたことはないと思って今年に入ってからはC-MOSカメラばかりを買っている。

ところがそのおかげで、対応しなきゃいけない機種は増える、新しい製品は機能が豊富になってXMLファイルが肥大化して人間が読むのが辛くなる、でGEN<i>CAMにさっさと対応しないと、ずっと後回しになっている画像データ転送周りの効率化がちっとも進まなくて、20fps程度で1コア占有するという状態から抜け出すことができない。

ちなみに件のカナダのメーカのカメラは、懐かしいIIDC(ver.1.32)にも準拠してるので、レジスタへのアクセスはXMLファイルを読みくださなくてもなんとかなっている。でもどうもIIDCのレジスタマップとXMLに書かれているのが同じには見えない。全部を比べる元気はないのでどう違っているのかはわからない。単にIIDCは必ず間接アドレスでアクセスする(例えばゲインを調整するレジスタのアドレスは、あるベースアドレスからの決まったオフセットのレジスタにそのアドレスが書いてある、ということになっている)けど、XMLファイルはカメラに内蔵されているので、直接書いてあるだけなのかもしれない。

いや、そんなことはどうでもいい。とにかくさっさとGEN<i>CAMを実装するところまでこぎつけないと....でもすぐ優先順位の高い仕事にオーバーライドされるんだよなあ....

続きを読む


OS X用GigE Visionカメラドライバ - その44 [OS X用GigE Vision]

進捗がはかばかしくないGEN<i>CAM規格の実装。何回かにわけてやってきたスキーマファイルに書かれているノードの定義のダイアグラムへの書き下しは今日で最後。今日はノードの持っているエレメントの中で最も複雑なpIndex周りの定義。ダイアグラムをプリントアウトして全部並べたらなんかわかるような気がしてきた....かな?

続きを読む


OS X用GigE Visionカメラドライバ - その43 [OS X用GigE Vision]

Gen<i>CAM仕様がわかりにくいので自分でダイアグラムにまとめ直している。残りをやっつけでしまう。

続きを読む


OS X用GigE Visionカメラドライバ - その42 [OS X用GigE Vision]

めんどくさいし、なんだかこの話って誰も見てくれないんだけど、続ける。もちろん自分自身のためにやってるので気にするべきではない。でもそんなに面白くない話かな。まあ、対象層薄いからなあ。

でもこうやって詳細を整理していると、よく理解できない記述になっているところが見つかった。じっくり見たおかげだけど、実装はどうしよう。

続きを読む


OS X用GigE Visionカメラドライバ - その41 [OS X用GigE Vision]

GigEカメラ用ドライバがなかなか進まない自分自身に対して不安が募るというか業を煮やしてしまうというか、正直に言うとこれが今の自分の限界ではないということを証明したいがためにコードを書くことに比べて手間のかかる作業を始めてしまった。こればかりはもう途中でうやむやにしてなかったことにはできない。

まあ僕は、歳をとって記憶力思考力複雑なものを把握する能力がリセッション局面を迎えたことを自覚しないといけない。でないとそれ自身、つまり「いまだに昔の能力を維持しているという幻想」を持ち続けることがすなわち「ボケ」あって、どっちにしても自分の存在意義を否定することにつながる。

景気には回復もあるけど加齢による能力の減退にはありえない。ということで残りをどんどん片付けていこう......若い人はいいなあ......

続きを読む


OS X用GigE Visionカメラドライバ - その40 [OS X用GigE Vision]

なかなか進まないので最後の手段に出たGigEカメラのドライバ。こういうのはさくさく進めないと、手間ばっかりかかって結局なにやってるのかわからなくなる、ということがある。

ということで、どんどん行こう。

続きを読む


OS X用GigE Visionカメラドライバ - その39 [OS X用GigE Vision]

GigEカメラドライバの仕切り直し。実はレジスタのハードコード版が動いてから、GenApiを実装しようとして、途中まで書いては複雑すぎてわからなくなって投げる、ということを何回か繰り返している。

コードの大きさや複雑さの許容できる閾値が、歳をとるにつれて明らかに下がっている。このままでは何か対策しないと小さなユーティリティ程度のものさえ作れなくなってしまいそうで、不安を感じる。

今回その対策のひとつとして、実装前に見通し良くする手間をかけることに決めた。作業量はそれなりに増えるけど、これでダメならほんとにダメかも....

続きを読む


OS X用GigE Visionカメラドライバ - その38 [OS X用GigE Vision]

もうずいぶん前のことですっかり忘れてるんだけど、やっぱりちゃんとやりたいので継続する。ギガビットイーサネットをデータの転送路として利用した無圧縮カメラの機能を制御するには、GEN<i>CAMという規格があって、カメラのメモリ内にXMLファイルとして格納されているカメラ記述ファイルを読みだして解析する必要がある。GEN<i>CAMはGenApiとGenTLという副次的な標準規格を持っていて、GenApiはカメラ記述ファイルを解析して、GenTLは実際にそれを制御データとしてカメラとやりとりする。それぞれ標準実装としてGEN<i>CAMが公開しているけど、Windows用のライブラリとドキュメントが主で、Linux用がおざなりに、OS X用は残骸程度のものが公開されているにすぎない(GenApi3.0として今年初めに最新版が公開されて、そのOS X用標準実装はかなり真面目になっている。でも力の入り方はWindowsとは比べものにならないし、詳しく見れば見るほど周回遅れ感がひしひしと伝わってくる)。

GenApi3.0は別途研究するとして、僕は(ずいぶん前だけど)GenApi+GenTL互換のOS X用GigEカメラドライバをフレームワークの形にまとめようとしていた。その前回はXML形式のカメラ記述ファイルの定義をしているスキーマを読んで、どういうふうにObjective-Cのオブジェクトに変換するかを考えていた。非常に複雑だ、ということはわかったけど、今日からそれを思い出して、続きを進めることにする....

続きを読む


OS X用GigE Visionカメラドライバ - その37 [OS X用GigE Vision]

Photonics West用のデモ装置の運び出しまであと2週間しかないのに、新しく買ったカメラが動かない。焦るんだけど、GEN<i>CAMのXMLファイルを読み込んだあとのカメラの設定ができない。今頃そんなところでまごまごしている場合ではないんだけど、どうしようもない。Windowsならメーカ謹製のドライバがちゃんとあって、表示するには問題はないけど、僕はWindowsには全く何も書けないので、そのあとの処理がなにもできない。このブログで繰り返し語られるマイナなOSを選択してしまったプログラマの悲劇。
えらいこっちゃ....

ということで今日は前回の続き、GEN<i>CAMに現れるノードが持つエレメント(ノードのプロパティ)の実装について。

続きを読む


OS X用GigE Visionカメラドライバ - その36 [OS X用GigE Vision]

新しいデモをやれということになった今年のPhotonics Westまでもう1ヶ月ほどしかない。装置の運び出しは今月末になるので実質3週間ほど。ヤバい。カメラのドライバに拘っている場合ではない。でもドライバをちゃんと書かないとデモ以前にカメラからのデータが受け取れない、従ってデモもくそもない、ということになる。ほんとにヤバい。

前回「Cスタイル」の式が書けるSwissKnifeを実装するために必要な構文をBNFの形にまとめた。今回はこれに従って字句解析と構文解析をObjective-Cで書いて、Cスタイルの式を評価して値を求めるテストアプリを作ってみる....

続きを読む


前の10件 | - OS X用GigE Vision ブログトップ
メッセージを送る