このページは研究室の歩行ロボットに搭載するために製作した ステレオビジョンに関するページです。
コンセプトは
ロボットに載せるには小さいに越したことはなく、ロボットの歩行に
伴って衝撃が加わり壊れる可能性があります。安くて
手にいれやすいに越したことはありません。
次に同期を取る必要性について述べます。
ステレオビジョンをつくる場合、2台のカメラの画像を同時に
コンピュータに取り込む必要があります。そのためには、
まず、キャプチャや合成のために、(1),(2)ではカメラの同期をとる必要が あります。そもそも、ビデオキャプチャなどのビデオ信号を扱う電子回路は ビデオ信号から基準クロックを再生します。多くの場合、これは同期信号を もとにしています。このクロックで画素ごとの取り込みを行います。 そのため、同期していない映像信号を切り替えた直後は、キャプチャ側の クロック再生が乱れ、映像が乱れます。もし、切り替える信号が ほぼ同期していれば、影響無く、もしくは瞬時に適合して画像が乱れる ことなく取り込めます。
(2)の場合は、より厳密に同期する必要があります。画面を合成するには 映像信号の途中でこまめに切り替えるなどすることがあります。 モノクロの場合は画像の中心がずれるくらいで済みますが、 カラーの場合は色がめちゃくちゃになる可能性があります。これは、 カラービデオ信号は、色の情報(彩度・色相)を3.58[MHz]の正弦波 (カラーサブキャリア)の振幅・位相という形でもっていて、 その基準は同期信号の近辺に 埋めてあります(カラーバースト)。 同期信号を含めて出力された側の画像は色が正しくでますが、 映像信号だけもってきたほうは本来と違う色がでてしまいます。
(3)の場合は、一見、同期させる必要はないように思えます。実際、 動きのないものを対象とする場合は、同期の必要はありません。 しかし、動くものを対象にする場合は同期を取っておいたほうが無難です。 なぜならば、多くのCCDカメラは電子的なシャッタを持っていて、 そのシャッタが有効な瞬間の画像をとります。さらに、シャッタが 作動するタイミングは同期信号に対して、一定の関係を持つことが 予想されます(基準クロックから各種タイミングをロジックで つくるので)。この推定に基づくと、同期していない2台のカメラの シャッタタイミングは異なります。これらで動いている対象を 撮影すると(もしくはカメラが動くと)、その時間差分だけ対象が 画像の中で動いてしまいます。ステレオビジョンは、2枚の画像内での 対象物の見える位置の関係で距離などを算出するため、 このことは問題になります。
と、いった理由で同期をとることにしました。
2台のカメラの同期をとるのに、一番簡単な方法は「外部同期」という 機能のあるカメラを使うことです。これは外部からいれた基準信号 (映像信号の場合もあります)をもとに、映像信号をつくって出力します。 ただ、モノクロ品に比べてカラー品が少ない(サブキャリアの関係でしょうか)のと、 あっても高価なのが普通です。
ここで、CCDカメラの内部構造を考えてみます。 分解してみると目でみてわかるのですが、 よくある構成は、CCDの他に、 小さな足の多いICがいくつかと、 水晶発振子が乗ってます。 水晶発振子で基準クロックをつくって、 それを加工(分周など)して、CCDの駆動信号や、映像の同期信号、 サブキャリアなどをつくると考えられます(サブキャリア用に もう一個搭載している場合もありましたが、主たる水晶に同期する構造でした: 秋月12,400円のカメラ)。 ということは、同じ基準クロックを与えて、同時に回路をリセットできれば、 そのあとはすっかり同じタイミングで動作することが期待できます。
と、いうわけで
同時にリセットできればいいのですが、往々にして、そういう都合のいい 端子はありません。そこで別の方法を考えます。
とりあえず、クロックの同期を先に行います。一般に水晶発振子の
発振回路はインバータのような回路です。そのため、
(クロック源に適当な抵抗をつないで、両端子に繋いでみて、
一方だけ映像が出るなら、それが入力と考えられます)
次に、同期をとります。いろいろ方法があると考えられるのですが、
クロックを外部供給にしたことを生かして、
ただ、一部にはメインクロックをある程度の期間止めてしまうと、
供給後も映像が正常に出ない場合があるようで注意が必要です
(後述の実例のMK-7248が実際そのようです)。
この様な改造が可能な用件は、
以下、具体的に実在のカメラで改造手順を示します。