(57)【特許請求の範囲】
【請求項１】
物体までの距離を測定するシステムであって、
射出光パルスを発生する発光素子と、
前記物体から反射された戻り光パルスを受け取り、前記戻り光パルスを表すアナログパルス信号を出力する光センサと、
前記光センサに連結されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、
前記アナログパルス信号を複数のデジタル信号値に変換し、
各デジタル信号値をサンプリングすることにより、前記複数のデジタル信号値に対応する複数の時間測定値を生成し、前記サンプリングの時間分解能が前記ＦＰＧＡのクロック周期より短いＦＰＧＡと、
前記物体までの前記距離を、前記複数のデジタル信号値と前記複数の時間測定値に基づいて計算するコントローラと、
を含み、
前記ＦＰＧＡは相互に連続的に連結された複数の遅延ユニットを含み、前記ＦＰＧＡは、前記複数の遅延ユニットを使って前記サンプリングを実行し、
前記ＦＰＧＡは複数のラッチを含み、各ラッチは前記複数の遅延ユニットのうちの対応する遅延ユニットに連結され、各ラッチは、前記対応する遅延ユニットがデジタル信号値を受け取ったことに応答してラッチされ、
前記ＦＰＧＡは、
前記複数の遅延ユニットに沿って連続的にデジタル信号値を送信し、
前記ＦＰＧＡのクロック周期中にトリガされた前記複数のラッチの数を判断し、
前記判断された数に基づいて前記デジタル信号値に対応する時間測定値を計算すること
によって前記複数の時間測定値を生成する、システム。
【請求項２】
前記発光素子、光センサ、ＦＰＧＡ、及びコントローラは、無人機、自律走行車、又はロボットにより支持される、請求項１に記載のシステム。
【請求項３】
前記複数の遅延ユニットはキャリーチェーン又はルックアップテーブル（ＬＵＴ）を含む、請求項１または２に記載のシステム。
【請求項４】
前記ＦＰＧＡの上、中、又は付近に位置付けられた温度センサをさらに含み、前記ＦＰＧＡは、
前記温度センサからの温度値を受け取り、
前記温度値に基づいて前記時間測定値を計算すること
によって前記複数の時間測定値を生成する、請求項１から３の何れか１つに記載のシステム。
【請求項５】
前記ＦＰＧＡは複数のフェーズロックループ（ＰＬＬ）クロックを含み、各々は異なる位相を有するクロック信号を生成し、前記ＦＰＧＡは、前記複数のＰＬＬクロックを使って前記サンプリングを実行する、請求項１から請求項４の何れか1項に記載のシステム。
【請求項６】
前記複数のＰＬＬクロックは少なくとも２つのＰＬＬクロックを含む、請求項５に記載のシステム。
【請求項７】
前記複数のＰＬＬクロックにより生成される前記クロック信号は、π／８、π／４、π／２、又はπだけ相互に位相シフトされている、請求項５又は請求項６に記載のシステム。
【請求項８】
前記ＦＰＧＡは、
デジタル信号値を前記複数のＰＬＬクロックの各々により生成される前記クロック信号と比較し、
前記デジタル信号値に対応する時間測定値を前記比較に基づいて計算すること
により、前記複数の時間測定値を生成する、請求項５から請求項７の何れか1項に記載のシステム。
【請求項９】
前記ＦＰＧＡは前記コントローラを含む、請求項１から請求項８の何れか1項に記載のシステム。
【請求項１０】
前記コントローラは前記ＦＰＧＡに連結される、請求項１から請求項９の何れか1項に記載のシステム。
【請求項１１】
物体までの距離を測定する方法であって、
発光素子によって射出光パルスを発生させるステップと、
光センサにおいて、前記物体から反射された戻り光パルスを受け取るステップと、
前記光センサにより、前記戻り光パルスを表すアナログパルス信号を出力するステップと、
相互に連続的に連結された複数の遅延ユニット及び前記複数の遅延ユニットのうちの対応する遅延ユニットに連結される複数のラッチを含むフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使って前記アナログパルス信号を複数のデジタル信号値に変換するステップと、
前記ＦＰＧＡの前記複数の遅延ユニットを使って、各デジタル信号値をサンプリングすることによって前記複数のデジタル信号値に対応する複数の時間測定値を生成するステップであって、前記複数のラッチは、前記対応する遅延ユニットがデジタル信号値を受け取ったことに応答してラッチされ、前記サンプリングの時間分解能が前記ＦＰＧＡのクロック周期より短いステップと、
前記物体までの前記距離を前記複数のデジタル信号値と前記複数の時間測定値に基づいて計算するステップと、
を含み、
前記複数の時間測定値を生成するステップは、前記ＦＰＧＡを使って、
前記複数の遅延ユニットに沿って連続的にデジタル信号値を送信するステップと、
前記ＦＰＧＡのクロック周期中にトリガされた前記複数のラッチの数を判断するステップと、
前記判断された数に基づいて前記デジタル信号値に対応する時間測定値を計算すること
によって前記複数の時間測定値を生成するステップとを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に距離測定に関し、より具体的には、光検出と測距（ＬＩＤＡＲ：ｌｉｇｈｔ  ｄｅｔｅｃｔｉｏｎ  ａｎｄ  ｒａｎｇｉｎｇ）を用いた距離測定のためのシステムと方法に関する。
【背景技術】
【０００２】
無人航空機（ＵＡＶ）等の無人機は、作物調査、写真撮影、建物及びその他の構造物の検査、火災及び安全関連のミッション、国境警備、ならびに製品配達その他を含む多くの用途で使用できる。このような無人機は、周囲の環境中の障害物やその他の物体を検出するためのセンサを備えている。ＬＩＤＡＲシステムは、３次元障害物検出及び環境マッピングのための距離測定を提供するために使用できる。しかしながら、既存のＬＩＤＡＲシステムの測定精度は、複雑な環境で使用するのには十分でないかもしれない。したがって、無人機及びその他の可動物体に搭載されたＬＩＤＡＲシステムを実現するための改良された技術が必要である。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、ＬＩＤＡＲ及びその他の光学技法を用いた距離測定のためのシステムと方法に関する。
【０００４】
１つの態様において、物体までの距離を測定するシステムが提供される。システムは、射出光パルスを発生させるように構成された発光素子を含む。システムはまた、物体から反射された戻り光パルスを受け取り、戻り光パルスを表すアナログパルス信号を出力するように構成された光センサも含む。システムはまた、光センサに連結されたＦＰＧＡも含む。ＦＰＧＡは、アナログパルス信号を複数のデジタル信号値に変換し、各デジタル信号値をサンプリングすることによって複数のデジタル信号値に対応する複数の時間測定値を生成するように構成されている。サンプリングの時間分解能はＦＰＧＡのクロック周期より短い。システムはまた、物体までの距離を複数のデジタル信号値と複数の時間測定値に基づいて計算するように構成されたコントローラも含む。
【０００５】
他の態様において、物体までの距離を測定する方法が提供される。方法は、発光素子によって射出光パルスを発生させるステップを含む。物体から反射された戻り光パルスは光センサで受け取られる。戻り光パルスを表すアナログパルス信号は、光センサにより出力される。アナログパルス信号は、ＦＰＧＡを使って複数のデジタル信号値に変換される。ＦＰＧＡは、各デジタル信号値をサンプリングすることによって複数のデジタル信号値に対応する複数の時間測定値を生成するために使用され、サンプリングの時間分解能はＦＰＧＡのクロック周期より短い。物体までの距離は、複数のデジタル信号値と複数の時間測定値に基づいて計算される。
【０００６】
他の態様において、物体までの距離を測定するシステムが提供される。システムは、射出光パルスを発生させるように構成された発光素子を含む。システムはまた、物体から反射された戻り光パルスを受け取り、戻り光パルスを表すアナログパルス信号を出力するように構成された光センサも含む。システムはまた、光センサに連結されたＦＰＧＡも含む。ＦＰＧＡは、（１）アナログパルス信号を複数の閾値と比較し、（２）比較に基づいて複数のデジタル信号値を生成することにより、アナログパルス信号を複数のデジタル信号値に変換するように構成される。ＦＰＧＡはまた、複数のデジタル信号値に対応する複数の時間測定値を生成するように構成される。システムはまた、物体までの距離を複数のデジタル信号値と複数の時間測定値に基づいて計算するように構成されたコントローラも含む。
【０００７】
他の態様において、物体までの距離を測定する方法が提供される。方法は、発光素子によって射出光パルスを発生させるステップを含む。物体から反射された戻り光パルスは光センサで受け取られる。戻り光パルスを表すアナログパルス信号は、光センサにより出力される。アナログパルス信号は、ＦＰＧＡを使って、（１）アナログパルス値を複数の閾値と比較し、（２）比較に基づいて複数のデジタル値を生成することによって複数のデジタル信号値に変換される。ＦＰＧＡはまた、複数のアナログ信号値に対応する複数の時間測定値を生成するためにも使用される。物体までの距離は、複数のデジタル信号値と複数の時間測定値に基づいて計算される。
【０００８】
他の態様において、距離測定装置を校正する方法が提供される。方法は、複数の差動入力ポートを含むＦＰＧＡを提供するステップを含み、複数の差動入力ポートの各々はオフセット電圧に関連付けられる。ＦＰＧＡは、物体から反射された戻り光パルスを表すアナログパルス信号を受け取るように構成される。ＦＰＧＡはまた、（１）複数の差動入力ポートを使ってアナログパルス値を複数の閾値と比較し、（２）比較に基づいて複数のデジタル信号値を生成することによって、アナログパルス信号を複数のデジタル信号値に変換するようにも構成される。ＦＰＧＡはまた、複数のデジタル信号値に対応する複数の時間測定値を生成するようにも構成される。方法はまた、アナログパルス信号を変換する際に、複数の差動入力ポートの各々に関連付けられたオフセット電圧を補償するためにＦＰＧＡを校正するステップも含む。
【０００９】
上記及びその他の態様とそれらの実現は、図面、説明、及び特許請求の範囲の中でより詳しく説明する。
【図面の簡単な説明】
【００１０】
【図１Ａ】本発明の技術の実施形態による、可動物体を含む代表的なシステムの略図である。
【図１Ｂ】本発明の技術の実施形態による例示的なＬＩＤＡＲシステムの略図である。
【図２Ａ】本発明の技術の実施形態によるコンパレータに基づくサンプリング構成の略図である。
【図２Ｂ】本発明の技術の実施形態による図２Ａのコンパレータの入力及び出力波形を示す。
【図３】本発明の技術の実施形態によるマルチコンパレータサンプリング構成の略図である。
【図４】本発明の技術の実施形態によるＦＰＧＡを用いた距離測定システムの略図である。
【図５Ａ】本発明の技術の実施形態によるパルスデジタル化のために構成されたＦＰＧＡの略図である。
【図５Ｂ】本発明の技術の実施形態による図５ＡのＦＰＧＡを用いたアナログパルス信号のデジタル化を示す。
【図６】本発明の技術の実施形態によるオフセット校正を実行するための台形波信号を示す。
【図７】本発明の技術の実施形態によるポート遅延を測定する方法の略図である。
【図８Ａ】本発明の技術の実施形態による高時間分解能時間−デジタル変換のために構成されたＦＰＧＡの略図である。
【図８Ｂ】本発明の技術の実施形態による立上りエッジ信号の時間−デジタル変換を示す。
【図８Ｃ】本発明の技術の実施形態による立下りエッジ信号の時間−デジタル変換を示す。
【図９】本発明の技術の実施形態による時間−デジタル変換に使用される複数のＰＬＬクロック信号を示す。
【図１０】本発明の技術の実施形態による物体までの距離を測定する方法を示す。
【図１１】本発明の技術の実施形態による距離測定装置を校正する方法を示す。
【発明を実施するための形態】
【００１１】
本開示は、光等の電磁放射を使って物体までの距離を測定するシステムと方法に関する。いくつかの実施形態において、本明細書に記載のシステムと方法は、検出された光パルスを表すアナログパルス信号を処理するためにＦＰＧＡを使用することにより、測定精度を向上させるのと同時に（例えば、センチメートル単位の精度）、コスト、消費電力、及び処理負荷を削減する。本発明の技術のＦＰＧＡに基づくアプローチは、アナログパルス信号を正確にデジタル化し、その信号に関するタイミング情報をより高い時間分解能（例えば、ピコ秒単位の分解能）で測定するために使用できる。それに加えて、本発明の技術は、様々な可動物体に組み込むことができ、これには無人機、自律走行車、及びロボットが含まれるがこれらに限定されない。したがって、本明細書に記載の実施形態は、自律又は半自律走行車により実行される障害物検出及び環境マッピング等の複雑で動的な環境において高精度距離測定に依存する用途にとって特に有利である。
【００１２】
以下に、数値による具体的な詳細事項が本願で開示される技術を十分に理解するために示されている。他の実施形態において、本明細書で紹介される技術はこれらの具体的な詳細事項がなくても実行できる。他の例において、具体的な製造技術等のよく知られた特徴は、本開示を不必要に不明瞭としないように、詳しくは説明しない。「ある実施形態」、「１つの実施形態」、又はその他への言及は、記載されている特定の特徴、構造、材料、又は特性が本開示の少なくとも１つの実施形態が含まれることを意味する。それゆえ、本明細書におけるこのような語句の出現は、必ずしもすべて同じ実施形態を指しているとはかぎらない。他方で、このような言及は必ずしも相互に排他的ともかぎらない。さらに、特定の特徴、構造、材料、又は特性は、１つ又は複数の実施形態において、何れの適当な方法で組み合わせることもできる。また、図に示される各種の実施形態は、単に例示的な表現であり、必ずしも正確な縮尺によって描かれているとはかぎらないことを理解すべきである。
【００１３】
本開示において、「例示的な」という単語は、例、事例、又は例示の役割を意味するために使用される。本明細書において「例示的な」と説明されている実施形態又は設計は、必ずしも他の実施形態又は設計より好ましい、又は有利であると解釈されるわけではない。むしろ、例示的なという単語の使用は、具体的な方法で概念を示そうとするものである。
【００１４】
本明細書において使用されるかぎり、Ａ及び／又はＢは、Ａ又はＢのうちの１つ以上と、ＡとＢ等、その組み合わせを含む。
【００１５】
以下の説明の中で、特定の実施形態はＵＡＶに関連して紹介されているが、他の実施形態において、本明細書における技術は、他の種類の可動物体にも同様に適用され、これには他の種類の無人機（例えば地上車両）、自律走行車（例えば自動運転車）、携帯機器、又はロボットが含まれるが、これらに限定されない。
【００１６】
図１Ａは、本発明の技術の実施形態による要素を有する代表的なシステム１５０の略図である。システム１５０は、可動物体１６０（例えばＵＡＶ）と制御システム１７０と、を含む。可動物体１６０は、各種の実施形態の中で使用可能な、無人機、自律走行車、又はロボット等、何れの適当な種類の可動物体とすることもできる。
【００１７】
可動物体１６０は本体１６１（例えば機体）を含むことができ、これは搭載物１６２を担持できる。本明細書に記載の実施形態では、様々な種類の搭載物を使用できる。いくつかの実施形態において、搭載物は、イメージング装置又は光電子スキャニング装置（例えば、ＬＩＤＡＲ装置）等の１つ又は複数のセンサを含む。例えば、搭載物１６２は、カメラ、ビデオカメラ、及び／又はスチールカメラとすることができる。カメラは、各種の適当なバンドのうちの何れの波長に感応するものとすることもでき、これには可視、紫外、赤外及び／又はその他のバンドが含まれる。搭載物１６２はまた、その他の種類のセンサ及び／又はその他の種類の貨物（例えば、荷物又はその他の配送品）を含むこともできる。
【００１８】
いくつかの実施形態において、搭載物１６２は、支持機構１６３（例えばジンバル）によって本体１６１に関して支持される。支持機構１６３により、搭載物１６２を独立して本体１６１に関して位置付けることができる。例えば、支持機構１６３によって、搭載物１６２を１つ、２つ、３つ、又はそれ以上の軸の周囲で回転させることができる。支持機構１６３によって、搭載物１６２を１つ、２つ、３つ、又はそれ以上の軸に沿って直線移動させることもできる。回転又は並進移動のための軸は、相互に垂直でもそうでなくてもよい。例えば、搭載物１６２がイメージング装置を含む場合、このイメージング装置は、支持機構１６３を介して本体１６１に関して移動させて、標的の写真、ビデオの撮影や追跡を行うことができる。
【００１９】
可動物体１６０は１つ又は複数の推進ユニット１８０を含むことができ、これは可動物体１６０を最大で並進３自由度及び／又は最大で回転３自由度に関して移動させるように構成される。例えば、可動物体１６０がＵＡＶである実施形態において、推進ユニット１８０により、可動物体１６０は離陸し、着陸し、ホバリングし、及び／又は最大で並進３自由度及び最大で回転３自由度に関して空中で移動できる。
【００２０】
本明細書の実施形態への使用には、様々な種類の推進ユニットが適している。いくつかの実施形態において、推進ユニット１８０は１つ又は複数のロータを含むことができる。ロータは、シャフトに連結された１つ又は複数のロータブレードを含むことができる。ロータブレードとシャフトは、適当な駆動機構により回転させることができる。例えば、推進ユニット１８０は、ＤＣモータ（例えば、ブラシ付き又はブラシなし）又はＡＣモータ等、何れの適当なモータでも駆動できる。モータは、ロータブレードを取り付け、駆動させるように構成できる。可動物体１６０の推進ユニット１８０はプロペラ式として描かれており、４つのロータを有することができるが、何れの適当な数、種類、及び／又は配置の推進ユニットを使用することもできる。例えば、ロータの数は１、２、３、４、５、又はそれ以上とすることができる。ロータの向きは、可動物体１６０に対して垂直、水平、又は他の何れの適当な角度とすることもできる。ロータの角度は固定でも可変でもよい。
【００２１】
可動物体１６０は、制御システム１７０からの制御コマンドを受け取り、及び／又は制御システム１７０にデータを送信するように構成される。図１Ａに示される実施形態において、制御システム１７０は可動物体１６０の上に担持されているいくつかのコンポーネント及び可動物体１６０の外に位置付けられているいくつかのコンポーネントを含む。例えば、制御システム１７０は、可動物体１１０により担持されている第一のコントローラ１７１と、可動物体１６０から離れた場所に位置付けられ、通信リンク１７６（例えば、無線周波数（ＲＦ）型リンク等の無線リンク）を介して接続された第二のコントローラ１７２（例えば、人間が操作するリモートコントローラ）を含むことができる。第一のコントローラ１７１はコンピュータ読取可能媒体１７３を含むことができ、これは可動物体１６０の動作を指示する命令を実行するものであり、これには推進ユニット１８０及び搭載物１６２（例えばカメラ）の動作を含むがこれらに限定されない。第二のコントローラ１７２は、１つ又は複数の入力／出力装置、例えばディスプレイ及び制御ボタンを含むことができる。いくつかの実施形態において、オペレータは第二のコントローラ１７２を操作して、可動物体１６０を遠隔的に制御し、第二のコントローラ１７２上のディスプレイ及び／又はその他のインタフェースを介して可動物体１６０からのフィードバックを受け取る。他の実施形態において、可動物体１６０は自律的に動作することができ、その場合、第二のコントローラ１７２は除外でき、又はオペレータのオーバライド機能のためだけに使用できる。
【００２２】
安全で効率的な動作を確保するために、ＵＡＶ及びその他の種類の無人機を自律的又は半自律的に障害物を検出し、及び／又は障害物を避けるための回避動作に従事できることが有利であるかもしれない。それに加えて、環境物体の感知は、ナビゲーション、標的追跡、及びマッピング等のＵＡＶの機能にとって、特にＵＡＶが半自律的又は全自律的に動作しているときに有益となりうる。
【００２３】
したがって、本明細書に記載されているＵＡＶは、ＵＡＶの周囲の環境の中の物体を検出するように構成された１つ又は複数のセンサを含むことができる。いくつかの実施形態において、ＵＡＶは物体とＵＡＶとの間の距離を測定するように構成されたセンサを含み、これを本明細書の中で「距離測定装置」と呼ぶ。距離測定装置は、ＵＡＶの本体の上、下、又は側面、あるいはその中等、様々な方法でＵＡＶの上に位置付けることができる。任意選択により、距離測定装置は、装置をＵＡＶに関して並進移動及び／又は回転させることのできるジンバル又はその他の支持機構を介してＵＡＶに連結できる。
【００２４】
いくつかの実施形態において、距離測定装置はＬＩＤＡＲ装置又はレーザ距離計である。ＬＩＤＡＲ装置及びレーザ距離計は装置と物体との間の距離を、光信号（例えばレーザパルス）を発生させ、物体から反射されて戻った光信号を検出し、光の速度と送信から検出までの経過時間に基づいて物体までの距離を判断することによって測定する。レーザ距離計は１次元の距離データを提供し、その一方でＬＩＤＡＲ装置は複数の異なる角度で光信号を発生させることにより、周囲環境の３次元データを提供できる。本明細書における特定の例示的実施形態はＬＩＤＡＲ装置に関して説明されているが、これは例示を目的としているにすぎず、本発明の技術は、レーザ距離計等、他の種類の光による距離測定装置にも適用できる。それに加えて、本明細書における特定の技法は、ＬＩＤＡＲシステムにおいてレーザダイオードにより生成されるレーザビームに特に適用可能であるが、他の実施形態においては、他の種類の光源（例えば他の種類のレーザ、又は発光ダイオード（ＬＥＤ））を使用できる。
【００２５】
図１Ｂは、本発明の技術の実施形態による例示的なＬＩＤＡＲセンサシステム１００の略図である。ＬＩＤＡＲシステム１００は、光がＬＩＤＡＲシステム１００と物体１０４との間を移動するのに必要な時間、すなわち飛行時間（ＴＯＦ）を測定することによって物体１０４までの距離を検出する。システム１００は、光信号、例えばレーザビームを生成できる発光素子１０１を含む。レーザビームは、１つのレーザパルスとすることも、連続するレーザパルスとすることもできる。レンズ１０２は、発光素子１０１により発生されたレーザビームをコリメートするために使用できる。コリメート光は、ビーム分割装置１０３に向かって誘導できる。ビーム分割装置１０３により、光源１０１からのコリメート光を透過させることができる。あるいは、ビーム分割装置１０３は、異なる案が採用された場合（例えば、発光素子が検出器の前に位置付けられたとき）には不要としてもよい。
【００２６】
システム１００はまた、ビームステアリング装置１１０も含み、これはプリズム、ミラー、回折格子、光フェイズドアレイ（例えば液晶制御回折格子）等、各種の光学素子を含むことができる。これらの様々な光学素子は共通軸１０９の周囲で回転して、光を方向１１１及び１１１'等の異なる方向に誘導できる。射出ビーム１１１が物体１０４に当たると、反射又は散乱光が大きい角度１２０にわたって広がるかもしれず、エネルギーうち反射されてシステム１００に向かうのは一部のみかもしれない。戻りビーム１１２は、ビーム分割装置１０３により受光レンズ１０６に向かって反射させることができ、それが戻りビームを収集して検出器１０５上に集束させることができる。
【００２７】
検出器１０５は、戻り光を受け取り、この光を電気信号に変換する。ＴＯＦユニット１０７等の測定回路を含むコントローラを使ってＴＯＦを測定し、物体１０４までの距離を測定することかできる。それゆえ、システム１００は、光源１０１による光パルス１１１の生成と検出器１０５による戻りビーム１１２の受光との間の時間差に基づいて物体１０４までの距離を測定できる。
【００２８】
センチメートル単位の精度の距離測定値を得るために、ＬＩＤＡＲ装置により受け取られた光パルスは、数百ピコ秒又は、さらには数百ピコ秒未満の時間分解能でサンプリングする必要がある。高分解能サンプリングはまた、ごく短いパルスの信号（例えば、わずか数十ナノ秒〜数ナノ秒のパルス持続時間のもの）をうまく捕捉するためにも必要である。多くのＬＩＤＡＲシステムは、光パルス信号のデジタル化を行うために、高速アナログ−デジタル変換器（ＡＤＣ）（例えば、１ギガサンプル／秒（ＧＳＰＳ）を超えるサンプリングレートを有する）に依存する。しかしながら、高速ＡＤＣは典型的に、高コストであり、高い電力消費を必要とする。さらに、高速ＡＤＣサンプリングは、同じ時間間隔での異なる電圧によるアナログ信号のサンプリングに基づく（すなわち、時間軸に関するサンプリング）。そのため、サンプリングのタイミングは、パルス信号に関係なく、時間の相関がない。アナログ信号のタイミング情報を抽出するために、抽出アルゴリズムが必要である。
【００２９】
本発明の技術は、高速ＡＤＣの使用に依存しない高精度距離測定を実現するための方法を提供する。いくつかの実施形態において、本明細書中のシステムと装置は、コンパレータに基づくサンプリングを用いてアナログパルス信号をデジタル化するように構成される。１つのコンパレータを使って、アナログパルス信号が特定の閾値（例えば、本明細書では「基準閾値」又は「トリガ閾値」という）を超えるタイミングを判断でき、複数のコンパレータを使って複数の閾値に関するタイミングを判断できる。
【００３０】
図２Ａは、本発明の技術の実施形態によるコンパレータに基づくサンプリング構成の略図である。コンパレータ２４０は演算増幅器とすることができ、これは、その非反転入力（ＰＩＮ３）とその反転入力（ＰＩＮ４）との間で電圧を比較して、比較に基づいて高い、又は低い論理電圧を出力するように構成される。例えば、アナログパルス信号２０２（例えば、標的物体から反射により戻る光パルスを表す）が非反転入力ＰＩＮ３で受けら取られると、コンパレータ２４０は、信号２０２の電圧レベルを反転入力ＰＩＮ４の基準閾値２０６と比較する。信号２０２は２つの区間、すなわち振幅が増大する前方区間と振幅が減少する後方区間を有する。信号２０２の前方区間の振幅が基準閾値２０６を超えると、コンパレータ２０２の出力は高くなる（例えばＶＤＤ）。同様に、信号の後方区間の振幅が基準閾値２０６を下回ると、コンパレータ２０２の出力は低くなる（例えばＧＮＤ）。その結果、デジタル化された（例えばバイナリ）方形パルス信号２０４が得られる。
【００３１】
図２Ｂは、図２Ａのコンパレータ２４０の入力及び出力波形の図である。方形パルス信号２０４が時間−デジタル変換器（ＴＤＣ）２５０に出力されると、信号２０４のうちの関係するタイミング情報（例えば時間ｔ１及び時間ｔ２）を抽出できる。サンプリングポイントと時間との間に相関があるため（ＡＤＣに基づく方法と対照的である）、高速コンパレータはパルスタイミング情報をより直接的に有効に捕捉できる。
【００３２】
図３は、本発明の技術の実施形態によるマルチコンパレータサンプリング構成３００の略図である。マルチコンパレータ構成３００は、２つ又はそれ以上のコンパレータ（例えば、コンパレータ３４０ａ〜３４０ｄ）を含む。コンパレータの各々は同じ入力に連結されて、同じ光パルス上でタイミング測定を実行するが、コンパレータの各々は異なるトリガ閾値を有する。この例において、コンパレータ構成３００は、合計４つのコンパレータ３４０ａ〜３４０ｄを含む。各コンパレータは、そのそれぞれの個別の時間−デジタル変換器（ＴＤＣ）３５０ａ〜３５０ｄに接続されている。それに加えて、各コンパレータは異なるトリガ閾値を受け取る。図のように、コンパレータ３４０ａはその個別のトリガ閾値Ｖｆ０１を受け取り、コンパレータ３４０ｂはＶｆ０２を受け取り、コンパレータ３４０ｃはＶｆ０３を受け取り、コンパレータ３４０ｄはＶｆ０４を受け取る。それゆえ、タイミング情報は４つの異なる閾値、例えばＶｆ０１〜Ｖｆ０４で取得できる。
【００３３】
いくつかの実施形態において、本明細書に記載のシステムと装置は、ＦＰＧＡ又はＣＰＬＤ（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）等のフィールドプログラマブルデバイスを使って高精度距離測定を提供するために構成される。本明細書における特定の例示的実施形態はＦＰＧＡに関して説明されているが、本発明の技術はまた、ＣＰＬＤ等の他の種類のフィールドプログラマブルデバイスを使っても実行できる。
【００３４】
ＦＰＧＡは、ＦＰＧＡの製造後に様々な機能を提供するように使用者がプログラムできる複数の論理ブロックを含む集積回路である。いくつかの実施形態において、ＦＰＧＡは、プログラム可能論理ブロックアレイ（例えば、ＣＬＢ（ｃｏｎｆｉｇｕｒａｂｌｅ  ｌｏｇｉｃ  ｂｌｏｃｋ）又はＬＡＢ（ｌｏｇｉｃ  ａｒｒａｙ  ｂｌｏｃｋ））及び入力／出力（Ｉ／Ｏ）ブロックを含む。論理ブロックとＩ／Ｏブロックは、プログラム可能ルーティングを介して相互に連結できる。各論理ブロックは、複数の論理セル又はスライスを含むことができる。論理セル又はスライスは、使用者が論理機能を実装するために構成できる複数のコンポーネントを含むことができ、これには１つ又は複数のＬＵＴ（例えば３入力又は４入力ＬＵＴ）、フリップフロップ、マルタプレクサ、及び／又はキャリーロジックが含まれるが、これらに限定されない。例えば、本発明の技術は、Ａｌｔｅｒａ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｓａｎ  Ｊｏｓｅ，Ｃａｌｉｆｏｒｎｉａ）製のＥＰ４ＣＥ２２Ｕ２５６又はＥＰ４ＣＥ３０Ｆ３２４等、又はＸｉｌｉｎｘ，Ｉｎｃ．（Ｓａｎ  Ｊｏｓｅ，Ｃａｌｉｆｏｒｎｉａ）製のＸＣ７Ｚ０３０−１ＳＢＧ４８５Ｃ又はＸＣ７Ｚ００７Ｓ−１ＣＬＧ４００Ｃ等をはじめとするＦＰＧＡを使用できる。
【００３５】
例えば、ＦＰＧＡは、光学距離測定に関わる動作のいくつかを実行するように構成でき、例えば、アナログパルス信号を複数のデジタル信号値にデジタル化し（パルスデジタル化）、複数のデジタル信号値に対応する複数の時間測定値を判断し（時間−デジタル変換）、及びデジタル信号値と時間測定値を使って物体距離を計算する。ＦＰＧＡに基づくシステムと方法は、比較的低コストと低消費電力で、距離測定におけるセンチメートル単位の精度を提供するために使用できる。
【００３６】
図４は、本発明の技術の実施形態による、ＦＰＧＡを用いた距離測定のためのシステム４００の略図である。システム４００は発光素子４０２を含み、これは図１Ｂの発光素子１０１と同様に、射出光パルス（例えばレーザパルス）を発生させるように構成される。システム４００はまた、光センサ４０４も含み、これは、図１Ｂの光検出器１０５と同様に、物体（例えば、システム４００の周囲の環境中の物体）から反射された戻り光パルスを受け取るように構成される。光センサ４０４は、例えば光エネルギーを電気信号に変換する光検出器を使って、戻り光パルスを表すアナログパルス信号を出力するように構成される。
【００３７】
システム４００はＦＰＧＡ４０８を含む。ＦＰＧＡ４０８は、光センサ４０４に連結され、光センサ４０４により生成されたアナログパルス信号を受け取るように構成される。ＦＰＧＡ４０８は、それをデジタル信号に変換し、タイミング情報を抽出するために、アナログパルス信号を処理するように構成できる。いくつかの実施形態において、ＦＰＧＡ４０８は、アナログパルス信号を複数のデジタル信号値にデジタル化するように構成されたデジタイザ４１０と、複数のデジタル信号値に対応する複数の時間測定値を判断するように構成されたＴＤＣ４１２と、を含む。各デジタル信号値はアナログパルス信号の電圧レベルを表すことができ、対応する時間測定値はアナログパルス信号がその電圧レベルにある時点を表すことができる。デジタイザ４１０とＴＤＣ４１２は、各種のＦＰＧＡコンポーネントを使って実装できる。デジタイザ４１０とＴＤＣ４１２の例示的な構成を本明細書の中でさらに詳しく説明する。
【００３８】
システム４００は、コントローラ４０６を含むことができる。いくつかの実施形態において、コントローラ４０６は、例えば射出光パルスの発生を制御し、射出光パルスが発せられる時間測定値を記録するために、発光素子４０２に連結される。コントローラ４０６はまた、ＦＰＧＡ４０８にも連結されて、ＦＰＧＡ４０８により生成されたデジタル信号値と時間測定値を受け取り、デジタル信号値と時間測定値に基づいて物体までの距離を計算できる。例えば、コントローラ４０６は、デジタル信号値と時間測定値を関数に入力し、その関数を使って戻り光パルスに関する予測時間値を導き出すように構成できる。その後、予測時間値をＴＯＦ計算の中で使用して、物体までの距離を判断できる。
【００３９】
コントローラ４０６は、予測時間値を計算するために異なる種類の多くの関数を使用できる。いくつかの実施形態において、関数は、多項式又は三角関数モデル等のパルス信号モデルである。コントローラ４０６は、デジタル信号値と時間測定値をパルス信号モデルに適合させ、モデルの形状に基づいて予測される時間値を導き出す。例えば、コントローラ４０６は、いつ信号振幅がその最大値に到達したかに基づいて予測時間値を判断できる。いくつかの実施形態において、コントローラ４０６は、方形信号モデルにおける信号の幅等、その他の基準を使ってパルス信号に関連付けられる予測時間値を導き出すことができる。
【００４０】
いくつかの実施形態において、コントローラ４０６は、検索関数を使って予測時間値を導き出す。コントローラ４０６は、データベース又はルックアップテーブル（ＬＵＴ）の中を検索して、デジタル信号値と時間測定値に最も密接に一致する値の集合を見つけることができる。値の集合は、（ｔｉ，Ｖｆｉ）の形態を有していてもよく、このうちＶｆｉは電圧レベルであり、ｔｉはその電圧レベルに対応する時間測定値である。値の集合は、出力時間値又は（Ｔ，Ｖ）の形態の出力タプルにマッピングでき、こればデータベース又はルックアップテーブルに保存される。Ｖは、後述のように、アナログパルス信号をデジタル化するために使用される閾値のうちの１つに対応していてもよい。いくつかの実施形態において、Ｖは閾値とは異なる所定の信号振幅であってもよい。すると、コントローラはマッピングされた出力時間値、すなわちＴをＶに対応するマッピングされた出力タプルから選択して、システムから対応する物体までの距離を判断するためのＴＯＦ計算を容易にすることができる。
【００４１】
システム４００のコンポーネントのいくつか又は全部は、無人機（例えばＵＡＶ）、自律走行車（例えば自動運転車）又はロボット等の可動物体により担持できる。それゆえ、システム４００は、可動物体が環境内で動作する間に可動物体と周囲の物体との間の距離を測定するために使用できる。いくつかの実施形態において、システム４００は、複雑で動的な環境、例えばシステム４００を取り囲む多くの物体がある環境、障害物がシステム４００に関して高速で移動する環境、温度等の条件が変動する環境等で使用するのに特に適している。システム４００はまた、複数の自由度に関して高速で移動できる可動物体と共に使用するのにも特に適している。
【００４２】
図４は、ＦＰＧＡを用いて距離を測定するシステムの例示的実施形態を示しているが、システム４００のまた別の構成も使用できる。例えば、図４は、１つのデジタイザ４１０と１つのＴＤＣ４１２を示しているが、ＦＰＧＡ４０８はまた、複数のデジタイザ及び／又は複数のＴＤＣを含むことができる。デジタイザとＴＤＣの様々な組み合わせを使用でき、例えば、各デジタイザをそれぞれのＴＤＣに連結でき、１つのデジタイザを複数のＴＤＣに連結でき、又は１つのＴＤＣを複数のデジタイザに連結できる。
【００４３】
他の例として、いくつかの実施形態において、デジタイザ４１０又はＴＤＣ４１２の何れかは任意選択であってもよく、それによってパルスデジタル化ステップ又は時間−デジタル変換ステップはＦＰＧＡ４０８以外の装置により実行される。例えば、パルスデジタル化は、１つ又は複数のコンパレータにより実行でき（例えば、図２Ａ又は図３に示されている）、その一方で、時間−デジタル変換はＦＰＧＡ４０８のＴＤＣ４１２により実行される。あるいは、パルスデジタル化はＦＰＧＡ４０８のデジタイザ４１０により実行でき、その一方で、ＦＰＧＡ４０８以外の装置（例えば別のＴＤＣ）が時間−デジタル変換を実行する。
【００４４】
また別の例において、コントローラ４０６は図４の中でＦＰＧＡ４０８とは別の装置として描かれているが、別の実施形態において、コントローラ４０６はＦＰＧＡ４０８の一部とすることができる。このような実施形態において、ＦＰＧＡ４０８はコントローラ４０６の機能の一部又は全部を実行するように構成される。例えば、ＦＰＧＡ４０８は、デジタイザ４１０により生成されるデジタル信号値とＴＤＣ４１２により生成される時間測定値を使って距離計算を実行するように構成できる。
【００４５】
前述のように、本明細書に記載のシステムと装置は、アナログパルス信号を複数のデジタル信号値に変換するように構成された１つ又は複数のデジタイザ（例えばＦＰＧＡ４０８のデジタイザ４１０）を有するＦＰＧＡを含むことができる。デジタイザは、ＦＰＧＡを使って様々な方法で実装できる。例えば、デジタイザは、ＦＰＧＡの１つ又は複数の差動入力ポートを使って実装できる。低電圧作動信号（ＬＶＤＳ：ｌｏｗ−ｖｏｌｔａｇｅ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｓｉｇｎａｌｉｎｇ）インタフェース又はエミッタ結合論理（ＥＣＬ：ｅｍｉｔｔｅｒ−ｃｏｕｐｌｅｄ  ｌｏｇｉｃ）インタフェース等、何れの適当な種類の差動入力ポートも使用できる。差動入力ポートは、第一の電圧と第二の電圧を比較し、比較に基づいて、例えば第一の電圧が第二の電圧より高いか、低いか、等しいかに基づいて異なるデジタル信号値を出力するように構成できる。
【００４６】
図５Ａは、本発明の技術の実施形態によるパルスデジタル化のために構成されたＦＰＧＡ５００の略図である。ＦＰＧＡ５００は、複数の差動入力ポート５０４ａ〜５０４ｄを介してアナログパルス信号５０２を受け取るように構成される。各差動入力ポートは、第一のピン（Ｐ）と第二のピン（Ｎ）を含む。各差動入力ポートの第一のピンは、アナログパルス信号５０２を受け取るように構成できる。各差動入力ポートの第二のピンは、閾値を受け取るように構成できる。例えば、図の実施形態において、差動入力ポート５０４ａは閾値Ｖｆ０１を受け取り、差動入力ポート５０４ｂは閾値Ｖｆ０２を受け取り、差動入力ポート５０４ｃは閾値Ｖｆ０３を受け取り、差動入力ポート５０４ｄは閾値Ｖｆ０４を受け取る。閾値Ｖｆ０１〜Ｖｆ０４は異なる電圧とすることができ、それによって各差動入力ポートは異なる閾値を受け取る。
【００４７】
各差動入力ポートは、受け取った閾値をアナログパルス信号と比較し、比較に基づいてデジタル信号値を生成するように構成できる。デジタル信号値は、アナログパルス信号が特定の時点で閾値より大きいか、小さいかを示すことができる。例えば、差動入力ポートは、第一のピンで受け取った電圧（例えばアナログパルス信号）が第二のピンの電圧（例えば閾値）より高ければ「１」を出力でき、第一のピンの電圧が第二のピンの電圧より低ければ「０」を出力できる。それゆえ、差動入力ポート５０４ａ〜５０４ｄにより生成されるデジタル信号値をまとめて使用して、特定の時点でアナログパルス信号５０２の電圧レベルを判断できる。例えば、ポート５０４ａ〜５０４ｄにわたる「１０００」の出力は、信号５０２が電圧Ｖｆ０１にあることに対応でき、「１１００」の出力は、信号５０２がＶｆ０２にあることに対応でき、「１１１０」の出力は、信号５０２がＶｆ０３にあることに対応でき、「１１１１」の出力は、信号５０２がＶｆ０４にあることに対応できる。
【００４８】
アナログパルス信号５０２の電圧レベルは時間とともに変化するため、差動入力ポート５０４ａ〜５０４ｄにより生成されるデジタル信号値もまた、方形波信号５０６ａ〜５０６ｄにより示されるように、時間とともに変化する。デジタル信号値における「０」から「１」への変化は、方形波信号の立上りエッジに対応し、アナログパルス信号５０２がその差動入力ポートに関する閾値より上へと変化したことを示す。デジタル信号値における「１」から「０」への変化は、方形波信号の立下りエッジに対応し、信号５０２が閾値より下へと変化したことを示す。それゆえ、アナログパルス信号５０２の電圧レベルは、差動入力ポート５０４ａ〜５０４ｄにより出力される方形波信号５０６ａ〜５０６ｄのエッジを検出することによって判断できる。
【００４９】
差動入力ポート５０４ａ〜５０４ｄにより生成されるデジタル信号値及び／又は方形波信号５０６ａ〜５０６ｄは、複数のＴＤＣ５０８ａ〜５０８ｄにより受け取られて、対応する時間測定値を判断でき、これについては本明細書中でより詳しく説明する。それゆえ、ＦＰＧＡ５００は、アナログパルス信号５０２が各閾値に到達し、それを上回り、又はそれを下回った時点を判断し、それによってアナログパルス信号のデジタル化表現を提供するデータサンプルの集合を生成できる。
【００５０】
図５Ｂは、本発明の技術の実施形態によるアナログパルス信号５０２のデジタル化を示す。この例において、アナログパルス信号５０２は、ＦＰＧＡ５００の差動入力ポート５０４ａ〜５０４ｄを使って４つの異なる閾値Ｖｆ０１〜Ｖｆ０４と比較され、ＴＤＣ５０８ａ〜５０８ｄは、いつアナログパルス信号５０２が最初に各閾値を上回った、又は下回ったかに対応する時間測定値ｔ１〜ｔ８を生成するために使用される。それゆえ、アナログパルス信号５０２は、８つのデータサンプル（ｔ１、Ｖｆ０１）、（ｔ２、Ｖｆ０２）、（ｔ３、Ｖｆ０３）、（ｔ４、Ｖｆ０４）、（ｔ５、Ｖｆ０４）、（ｔ６、Ｖｆ０３）、（ｔ７、Ｖｆ０２）、及び（ｔ８、Ｖｆ０１）の集合にデジタル化できる。
【００５１】
図５Ａ及び５Ｂは４つの差動入力ポートと４つの閾値を使ったパルスデジタル化を示しているが、それ以外の数の差動入力ポート及び閾値も使用できる。例えば、いくつかの実施形態において、パルスデジタル化は、１つの差動入力ポートと１つの閾値、少なくとも２つの差動入力ポートと少なくとも２つの閾値、少なくとも４つの差動入力ポートと少なくとも４つの閾値、少なくとも８つの差動入力ポートと少なくとも８つの閾値、又は少なくとも１２の差動入力ポートと少なくとも１２の閾値を使って実行できる。差動入力ポートの数と閾値の数は、サンプリング精度の所望の程度に応じて変化させることができる。
【００５２】
いくつかの実施形態において、差動入力ポートの一部又は全部は、第一及び第二のピン間のオフセット電圧を有していてもよく、これはパルスデジタル化の精度に影響を与えるかもしれない。オフセット電圧とは、第一及び第二のピン間の電圧差を指すことができ、これは差動入力ポートの出力信号を変化させる。これらのオフセット電圧を補償することによって測定精度を高めるために、ＦＰＧＡを校正することが有利であるかもしれない。
【００５３】
いくつかの実施形態において、校正手順には、各差動入力ポートのオフセット電圧を測定することを含む。差動入力ポートのオフセット電圧の測定に適した何れの方法でも使用できる。例えば、オフセット電圧は、可変電圧信号（例えば、増大又は減少する電圧信号）を第一のピンに印加し、定電圧信号を第二のピンに印加することによって測定できる。第一のピンに印加される電圧は、差動入力ポートの出力信号の変化が検出されるまで、それゆえ第一のピンに印加された電圧が第二のピンに印加された定電圧を上回ったか、下回ったことが示されるまで変化させることができる。その時点で、第一及び第二のピン間の電圧差を（例えば直接測定により）判断し、差動入力ポートのオフセット電圧として使用できる。
【００５４】
他の例として、オフセット電圧は、既知の波形を有する可変電圧信号（例えば、三角又は台形波信号）を第一のピンに印加し、定電圧信号を第二のピンに印加することによって測定できる。第一のピンに印加される電圧は、差動入力ポートの出力信号の変化が検出されるまで、それゆえ第一のピンに印加された電圧が第二のピンに印加された定電圧を上回ったか、下回ったことが示されるまで変化させることができる。この工程中に、差動入力ポートの出力信号の変化が検出された時点を判断できる。差動入力ポートのオフセット電圧に対応する第一及び第二のピン間の電圧差は、この時点と可変電圧信号の既知の波形に基づいて計算できる。
【００５５】
図６は、本発明の技術の実施形態によるオフセット校正を実行するための台形波信号６００を示す。信号６００の波形（例えば、前方及び後方区間の傾斜）はわかっており、差動入力ポートのオフセット電圧を判断するために使用できる。例えば、台形波信号６００は差動入力ポートの第一のピンに印加でき、Ｖｆの電圧を有する定電圧信号は差動入力ポートの第二のピンに印加できる。電圧Ｖｆ＿ｃは、差動入力ポートの出力が変化したときに第一のピンに印加された電圧を表す。それゆえ、電圧Ｖｆ＿ｃとＶｆとの差は差動入力ポートのオフセット電圧を表す。
【００５６】
電圧Ｖｆ＿ｃとＶｆとの差は、様々な方法で判断できる。例えば、この差は、信号６００を差動入力ポートに印加し、そのポートの出力が（例えば「０」から「１」へと）変化した時間ｔ１を測定し、及び／又はそのポートの出力が（例えば「１」から「０」へと）変化した時間ｔ２を測定することによって判断できる。ｔ１とｔ２との間の時間間隔は、信号６００の既知の波形に基づいて判断できる。電圧Ｖｆ＿ｃは、ｔ１、ｔ２及び信号６００の既知の波形に基づいて判断できる。電圧Ｖｆもすでにわかっているため、オフセット電圧はＶｆ＿ｃとＶｆとの間の差を計算することによって判断できる。
【００５７】
差動入力ポートのオフセット電圧が測定されたら、ＦＰＧＡはオフセット電圧を補償するために校正できる。測定されたオフセット電圧に基づくＦＰＧＡの校正には様々な方法を使用できる。例えば、ＦＰＧＡは、差動入力ポート（例えば、差動入力ポートの第一又は第二のピン）に調整電圧を印加することによって校正でき、これは測定されたオフセット電圧を補償するように構成される。調整電圧の振幅は、測定されたオフセット電圧の振幅と等しく、又はほぼ等しくすることができる。調整電圧は、デジタル−アナログ変換器（ＤＡＣ）等の調節可能電圧源により印加できる。
【００５８】
他の例として、測定されたオフセット電圧は、戻り光パルスの予測時間値を計算するために使用される関数の入力パラメータとして使用できる。前述のように、ＦＰＧＡ及び／又は別のコントローラは、ある関数を使って、それぞれデジタイザとＴＤＣにより生成されたデジタル信号値と時間測定値に基づいて戻り光パルスのための予測時間値を計算できる。測定されたオフセット電圧は、関数への追加の入力の役割を果たすことができる。予測時間値をデジタル信号値、時間測定値、及び測定されたオフセット電圧に関係付ける関数は、何れの適当な技法を使って導き出すこともできる。例えば、オフセット電圧は測定距離と無関係であるため、関数は、複数の既知の距離にわたり複数の距離測定を実行し、これらの距離に対応する距離及び／又は予想ＴＯＦを関数の入力パラメータ（例えば、デジタル信号値、時間測定値、及び測定されたオフセット電圧）に関連付けるモデルを決定することによって導き出すことができる。
【００５９】
あるいは、ＦＰＧＡは、オフセット電圧を測定することなく、差動入力ポートのオフセット電圧を補償するために校正できる。このような実施形態において、オフセット電圧は、１つ又は複数のオフセット調整パラメータとしてまとめて表現でき、予測時間値は、予測時間値をデジタル信号値、時間測定値、及びオフセット調整パラメータに関係付ける関数を使って判断できる。１つ又は複数のオフセット調整パラメータは測定距離と無関係であるため、関数は、複数の既知の距離にわたり複数の距離測定を実行し、これらの距離に対応する距離及び／又は予想ＴＯＦを関数の入力パラメータ（例えば、デジタル信号値、時間測定値、及びオフセット調整パラメータ）に関係付けるモデルを決定することによって導き出すことができる。
【００６０】
いくつかの実施形態において、ＦＰＧＡの差動入力ポートは、アナログパルス信号を受け取ってから対応するデジタル信号値を出力するまでの遅延時間を示すかもしれず、それによってデジタル信号値のタイミングはアナログパルス信号のタイミングに関して遅延する。測定精度を高めるために、これらのポート遅延を補償するためにＦＰＧＡを校正することが有益であるかもしれない。いくつかの実施形態において、ＦＰＧＡは、各差動入力ポートに関連する遅延時間を測定し、戻り光パルスに関する予測時間値を計算する際に、例えば遅延時間をＦＰＧＡにより生成された時間測定値から差し引くことによってこれらの測定された遅延時間を補償することにより校正できる。
【００６１】
図７は、本発明の技術の実施形態によるポート遅延を測定する方法の略図である。ＦＰＧＡ７００は複数の差動入力ポート７０４ａ〜７０４ｄ及び複数のＴＤＣ７０８ａ〜７０８ｄを含み、これらはそれぞれ図５Ａの差動入力ポート５０４ａ〜５０４ｄ及びＴＤＣ５０８ａ〜５０８ｄと同様であってもよい。各差動入力ポートは、既知のタイミングを有する方形波信号７０２を閾値Ｖｆ０１〜Ｖｆ０４のうちの１つと比較する。いくつかの実施形態において、方形波信号７０２のタイミングは、差動入力ポート７０４ａ〜７０４ｄにより出力される遅延時間によって、差動入力ポート７０４ａ〜７０４ｄにより出力されるデジタル信号値のタイミングと異なる。遅延時間の振幅は、方形波信号７０２の既知のタイミングをＴＤＣ７０８ａ〜７０８ｄにより生成される時間測定値と比較することによって判断できる。
【００６２】
前述のように、本明細書に記載のシステムと装置は、時間測定値を生成するように構成された１つ又は複数のＴＤＣ（例えばＦＰＧＡ４０８のＴＤＣ４１２）を有するＦＰＧＡを含むことができる。ＴＤＣは、ＦＰＧＡを使って様々な方法で実装できる。例えば、ＴＤＣは、（例えば、デジタイザ４１０により生成される）デジタルアナログパルス信号を表す複数のデジタル信号値を受け取るようにＦＰＧＡを構成し、各デジタル信号値をサンプリングして対応する時間測定値を生成することによって実装できる。いくつかの実施形態において、ＦＰＧＡは時間に伴うデジタル信号の値の変化を表す方形波信号を受け取ってサンプリングし、信号の立上り及び立下りエッジの時間測定値を判断する。方形波信号の立上り及び立下りエッジの時間測定値は、前述のように、アナログパルス信号が特定の閾値に到達し、それを上回り、又はそれを下回った時点を表すことができる。
【００６３】
いくつかの実施形態において、サンプリングは高い時間分解能で、例えば数百ピコ秒又は数百ピコ秒未満のオーダの時間分解能で実行される。例えば、サンプリングの時間分解能は、約５ピコ秒〜約２０００ピコ秒、約１０ピコ秒〜約１０００ピコ秒、約１ピコ秒〜約５００ピコ秒、又は約１ピコ秒〜約１００ピコ秒の範囲とすることができる。いくつかの実施形態において、サンプリングの時間分解能（例えばピコ秒単位）は、ＦＰＧＡのクロックのクロック周期（例えばナノ秒単位）より短い。例えば、時間分解能はＦＰＧＡのクロック周期より少なくとも２倍、５倍、１０倍、２０倍、又は１００倍短くすることができる。
【００６４】
デジタル信号の高時間分解能サンプリングは、ＦＰＧＡを使って様々な方法で実現できる。いくつかの実施形態において、ＦＰＧＡは、複数の遅延ユニットを使って高時間分解能サンプリングを実行するように構成される。遅延ユニットは相互に連続的に連結でき、それによって、デジタル信号値は連続的に遅延ユニットを通って伝搬され、連続する各遅延ユニットは１つ前の遅延ユニットからデジタル信号値の時間遅延版を受け取る。それゆえ、デジタル信号値に関する時間測定値は、既知の時間間隔中にデジタル信号値を受け取った遅延ユニットの数をカウントすることによって判断できる。
【００６５】
図８Ａは、本発明の技術の実施形態による高時間分解能の時間−デジタル変換のために構成されたＦＰＧＡ８００の略図である。ＦＰＧＡ８００は複数の遅延ユニット８０２ａ〜８０２ｎを含み、これらは相互に連続的に連結されている。少なくとも１０、少なくとも２５、少なくとも５０、少なくとも１００、又は少なくとも２００の遅延ユニット等、何れの適当な数の遅延ユニットも使用できる。各遅延ユニットは、信号送信におけるピコ秒単位の遅延ｔｄを生成できる。例えば、各遅延ユニットは、約５ピコ秒〜約２０００ピコ秒、約１０ピコ秒〜約１０００ピコ秒、約１ピコ秒〜約５００ピコ秒、約１ピコ秒〜約１００ピコ秒の範囲内の遅延を生成するように構成できる。いくつかの実施形態において、各遅延ユニットにより生成される遅延は同じである。他の実施形態において、遅延ユニットのいくつか又は全部は、異なる遅延時間を生成し、それによって、ｔｄはすべてのユニットの平均遅延時間を表す。遅延ユニット８０２ａ〜８０２ｎは、ＦＰＧＡ内の論理コンポーネントを使って様々な方法で構成できる。例えば、複数の遅延ユニット８０２ａ〜８０２ｎはキャリーチェーン又はＬＵＴを含むことができる。
【００６６】
遅延ユニット８０２ａ〜８０２ｎは、アナログパルス信号のデジタル化に対応するデジタル信号値を受け取るように構成できる。デジタル信号値は、時間に伴うデジタル信号値の変化を表す方形波信号８０８として受け取られてもよい。信号８０８は、遅延ユニット８０２ａ〜８０２ｎの各々を通じて連続的に送信でき、それによって連続する各遅延ユニットが受け取る信号は１つ前の遅延ユニットにより受け取られた信号から遅延時間ｔｄだけ遅れる。各遅延ユニットは、それが信号８０８のエッジを受け取ったときに出力信号を生成するように構成できる。例えば、遅延ユニットは、信号８０８の立上りエッジによりトリガされると「１」を出力でき、信号８０８の立下りエッジによりトリガされると「０」を出力できる。
【００６７】
遅延ユニット８０２ａ〜８０２ｎは、ラッチユニット８０４に連結される。ラッチユニット８０４は、遅延ユニット８０２ａ〜８０２ｎが信号８０８によってトリガされると遅延ユニット８０２ａ〜８０２ｎの出力をラッチするように構成できる。いくつかの実施形態において、ラッチユニット８０４は複数のラッチを含み、その各々は対応する遅延ユニットに連結され、信号８０８の立上り又は立下りエッジによりトリガされるとその遅延ユニットの出力をラッチするように構成される。
【００６８】
ＦＰＧＡ８００はまた、クロック信号８１０を生成するように構成されたクロックも含む。クロック信号８１０は、数百ＭＨｚ〜ＧＨｚのオーダのレートを有することができ、それによって信号８１０はナノ秒単位のクロック周期Ｔｃｋを有する。クロック信号８１０は、ラッチユニット８０４とカウンタ８０６によって受け取らつれるようにすることができる。カウンタ８０６は、測定開始からのクロックサイクルの数Ｃｒをカウントでき、それによってＦＰＧＡクロックにより提供される大まかな時間測定値はＣｒＴｃｋとなる。
【００６９】
各クロック周期で、ＦＰＧＡ８００は、信号８０８によりトリガされた遅延ユニットの数を判断して、信号８０８の立上り又は立下りエッジに対応する高分解能時間測定を提供できる。時間測定方法の詳細は、図８Ｂ及び８Ｃに関して以下に説明する。
【００７０】
図８Ｂは、本発明の技術の実施形態による立上りエッジ信号の時間−デジタル変換を示している。図の実施形態において、立上りエッジ信号は、４つの遅延ユニットの連続を通じて送信され、第一の遅延ユニットは信号８２０ａを受け取り、第二の遅延ユニットは信号８２０ｂを受け取り、第三の遅延ユニットは信号８２０ｃを受け取り、第四の遅延ユニットは８２０ｄを受け取る。連続する信号の各々は１つ前の信号から遅延時間ｔｄだけ遅延する。時間Ｔｃｋにおいて、ラッチされた各遅延ユニットの出力がサンプリングされる。図の実施形態において、第一及び第二の遅延ユニットはそれぞれ信号８２０ａ及び８２０ｂの立上りエッジによってすでにトリガされており、これらの遅延ユニットの出力はどちらも「１」である。第三及び第四の遅延ユニットは、それぞれ信号８２０ｃ及び８２０ｄの立上りエッジによりまだトリガされていないため、これらの遅延ユニットの出力はどちらも「０」である。それゆえ、時間Ｔｃｋにおいてラッチユニット８０４によりラッチされるシーケンスは、「１１００」である。立上りエッジ信号の時間測定値Ｔｒｉｓｉｎｇは「１」でラッチされた遅延ユニットの数Ｃｒ１に基づいて、Ｔｒｉｓｉｎｇ＝ＣｒＴｃｋ−Ｃｒ１ｔｄの関係を使って計算できる。
【００７１】
図８Ｃは、本発明の技術の実施形態による立下りエッジ信号の時間−デジタル変換を示している。図の実施形態において、立上りエッジ信号は、４つの遅延ユニットの連続を通じて送信され、第一の遅延ユニットは信号８３０ａを受け取り、第二の遅延ユニットは信号８３０ｂを受け取り、第三の遅延ユニットは信号８３０ｃを受け取り、第四の遅延ユニットは８３０ｄを受け取る。連続する信号の各々は１つ前の信号から遅延時間ｔｄだけ遅延する。時間Ｔｃｋにおいて、ラッチされた各遅延ユニットの出力がサンプリングされる。図の実施形態において、第一及び第二の遅延ユニットはそれぞれ信号８３０ａ及び８３０ｂの立下りエッジによってすでにトリガされており、これらの遅延ユニットの出力はどちらも「０」である。第三及び第四の遅延ユニットは、それぞれ信号８２０ｃ及び８２０ｄの立下りエッジによりまだトリガされていないため、これらの遅延ユニットの出力はどちらも「１」である。それゆえ、時間Ｔｃｋにおいてラッチユニット８０４によりラッチされるシーケンスは、「００１１」である。立下りエッジ信号の時間測定値Ｔｆａｌｌｉｎｇは「０」でラッチされた遅延ユニットの数Ｃｒ１に基づいて、Ｔｆａｌｌｉｎｇ＝ＣｒＴｃｋ−Ｃｒ１ｔｄの関係を使って計算できる。
【００７２】
いくつかの実施形態において、ＦＰＧＡの遅延ユニットにより生成される遅延時間は、ＦＰＧＡの温度に基づいて変化する。例えば、温度が上がると遅延時間が減少するかもしれない。動作温度範囲にわたり正確な測定が確実に行われるようにするために、ＦＰＧＡは遅延時間の温度依存変化を補償するように校正できる。いくつかの実施形態において、校正方法には、温度範囲（例えば約−２０℃〜約８０℃の範囲内）で遅延時間を測定し、この測定データを使って、遅延時間と温度との関係を判断することが関わる。ＦＰＧＡの温度は、ＦＰＧＡの上、中、又は付近に位置付けられた温度センサを使って測定できる。各温度での遅延時間は、ｔｄ＝Ｔｃｋ／ｍａｘｂｉｎに基づいて判断でき、式中、ｍａｘｂｉｎはＦＰＧＡのクロック周期Ｔｃｋ内に信号を送信できる遅延ユニットの最大数を表す。各温度に関するｍａｘｂｉｎの値は、例えば、その温度で１つのクロック周期の信号によりトリガされる遅延ユニットの数をカウントすることによって測定できる。
【００７３】
測定された温度−遅延時間の関係は、ＦＰＧＡの校正に使用できる。例えば、距離測定を行う際に、ＦＰＧＡはＦＰＧＡの上、付近、又は中に位置付けられた温度センサから温度の値を受け取り、温度の値に基づいて時間測定値を計算できる。時間測定計算は、例えば測定温度−遅延時間の関係を介して受け取った温度値に関連付けられる遅延時間を判断し、この遅延時間を使って時間測定値を計算することにより、異なる温度を補償するために調整できる。
【００７４】
いくつかの実施形態において、校正に使用される温度−遅延時間関係は、各システムのための各ＦＰＧＡについて個別に測定される。あるいは、温度依存性におけるチップごとのばらつきが大きくない実施形態においては、温度−遅延時間関係を１つのＦＰＧＡから測定して、校正のためにすべてのシステムを通じて使用できる。
【００７５】
いくつかの実施形態において、ＦＰＧＡは、複数のフェーズロックループ（ＰＬＬ）クロックを使って、高時間分解能サンプリングを行うように構成される。少なくとも２つ、少なくとも４つ、又は少なくとも１０のＰＬＬクロック等、何れの適当な数のＰＬＬクロックも使用できる。各ＰＬＬクロックは、同じクロックレートであるが、異なる位相のクロック信号を生成するように構成できる。例えば、クロック信号は、相互にπ／８、π／４、π／２、又はπだけ位相シフトさせることができる。ＦＰＧＡは、（例えばＦＰＧＡ４００のデジタイザ４１０により出力される）デジタル化されたアナログパルス信号を表す複数のデジタル信号値を受け取り、各デジタル信号値をＰＬＬクロックのクロック信号と比較することにより、それに対応する複数の時間測定値を生成できる。いくつかの実施形態において、ＦＰＧＡは時間に伴うデジタル信号値の値の変化を表す方形波信号を受け取り、複数のＰＬＬクロックを使って方形波信号の立上り又は立下りエッジに関する時間測定値を生成できる。ＦＰＧＡは、複数のＰＬＬクロックを使って、個別のＰＬＬクロックのクロック周期より高い分解能で時間測定を実行できる。例えば、各ＰＬＬクロックはナノ秒単位のクロックレートを有することができ、その一方で、サンプリングの時間分解能はピコ秒単位とすることができる。
【００７６】
図９は、本発明の技術の実施形態による時間−デジタル変換に使用される複数のＰＬＬクロック信号９００ａ〜９００ｄを示す。各クロック信号はクロック周期Ｔｃｋを有する。複数のＰＬＬクロック信号９００ａ〜９００ｄは各々、連続的に量Δだけ位相シフトされ、これは図９において参照番号９０２で示されている。各ＰＬＬクロック信号について、カウンタを使って測定開始以降に信号により生成されたクロックサイクルＣの数をカウントする。カウンタは、それがサンプリングされた信号（例えば、方形波信号）の立上りエッジ又は立下りエッジを受け取ると停止される。それゆえ、第一のＰＬＬクロック信号９００ａにより生成される時間測定値はＣＴｃｋであり、第二の信号９００ｂにより生成される時間測定値はＣＴｃｋ＋Δであり、第三の信号９００ｃにより生成される時間測定値はＣＴｃｋ＋２Δであり、第四の信号９００ｄにより生成される時間測定値はＣＴｃｋ＋３Δであり、等々である。サンプリングされた信号の最終的な時間測定値は、ＰＬＬクロック信号９００ａ〜９００ｄにより生成される最大時間測定値である。
【００７７】
図１０は、本発明の技術の実施形態による物体までの距離を測定する方法１０００を示す。方法１０００のステップのうちのいくつか又は全部は、本明細書に記載されているシステム及び装置の何れによって実行することもできる（例えば、システム４００）。いくつかの実施形態において、方法１０００のステップのうちのいくつか又は全部は、無人機（例えばＵＡＶ）又はロボット等の可動物体上に搭載されたコンポーネントを使って実行される。
【００７８】
ステップ１０１０において、射出光パルスが発せられる。光パルスは、ＬＩＤＡＲ装置の発光素子、例えば図１Ｂの発光素子１０１又は図４の発光素子４０２により発生させることができる。
【００７９】
ステップ１０２０において、物体から反射される戻り光パルスが受け取られる。戻り光パルスは、物体からの射出光パルスの反射とすることができる。戻り光パルスは、ＬＩＤＡＲ装置の光センサ、例えば図１Ｂの光検出器１０５又は図４の光センサ４０４により受け取ることができる。
【００８０】
ステップ１０３０において、戻り光パルスを表すアナログパルス信号が出力される。例えば、ＬＩＤＡＲ装置の光センサ（例えば、図１Ｂの光検出器１０５又は図４の光センサ４０４）は、戻り光パルスの光エネルギーを電気信号に変換するために使用できる。
【００８１】
ステップ１０４０において、アナログパルス信号は複数のデジタル信号値に変換される。ステップ１０４０は、本明細書に記載されているように、ＦＰＧＡを使って（例えばＦＰＧＡ４０８のデジタイザ４１０により）実行できる。あるいは、ステップ１０４０は、図２Ａ、２Ｂ、及び３に関して説明したように、１つ又は複数のコンパレータを使って実行できる。いくつかの実施形態において、変換には、アナログパルス信号を複数の閾値と比較し、比較に基づいて複数のデジタル信号値を生成することが関わる。変換は、図５Ａ及び５Ｂに関して述べたように、ＦＰＧＡの複数の差動入力ポートを使って実行できる。任意選択により、ステップ１０４０は、差動入力ポートのオフセット電圧の補償を含むことができ、例えばこれは、調整電圧を差動入力ポートに印加することによって行われ、これはそのポートの測定されたオフセット電圧を補償するように構成される。
【００８２】
ステップ１０５０において、複数のデジタル信号値に対応する複数の時間測定値が生成される。ステップ１０５０は、本明細書に記載されているように、ＦＰＧＡを使って（例えば、ＦＰＧＡ４０８のＴＤＣ４１２によって）実行できる。ＦＰＧＡは、ステップ１０４０を実行するために使用されたものと同じＦＰＧＡとすることも、異なるＦＰＧＡとすることもできる。複数の時間測定値は、ＦＰＧＡのクロック周期より短い時間分解能で各デジタル信号値をサンプリングすることによって生成できる。より短い時間分解能は例えば、図８Ａ〜８Ｃに関して述べたように、複数の遅延ユニットを使って連続する遅延時間をデジタル信号値の中に導入することにより実現できる。あるいは、又は組合せにより、より短い時間分解能は、図９に関して述べたように、複数の位相シフトＰＬＬクロック信号を使ってデジタル信号値をサンプリングすることにより実現できる。
【００８３】
ステップ１０６０において、物体までの距離は、複数のデジタル信号値と複数の時間測定値を使って計算される。いくつかの実施形態において、ステップ１０６０は、コントローラ（例えば、システム４００のコントローラ４０６）を使って実行される。コントローラは、ＦＰＧＡの一部として含められてもよく、又はＦＰＧＡとは別の装置であってもよい。距離計算には、例えば、複数のデジタル信号値と複数の時間測定値を関数に入力し、この関数を使って戻り光パルスに関する予測時間値を導き出すことが関わることができる。任意選択により、関数はまた、差動入力ポートの測定されたオフセット電圧又はオフセット電圧を補償するように構成されたオフセット調整パラメータ等の他の入力パラメータも利用できる。関数により生成される予測時間値はその後、物体距離を判断するためのＴＯＦ計算において使用できる。
【００８４】
図１１は、本発明の技術の実施形態による距離測定装置を校正する方法１１００を示す。方法１１００は、本明細書に記載されているシステム及び装置の何れを校正するためにも使用できる（例えば、システム４００）。いくつかの実施形態において、方法１１００は、距離測定装置を操作する前に実行される。例えば、方法１１００は、製造工場で、又は使用者により（例えば、距離測定装置を初めて操作する前、及び／又は距離測定装置の電源を入れるたびに）実行できる。
【００８５】
ステップ１１００において、ＦＰＧＡが提供される。ＦＰＧＡは、図５Ａ及び５Ｂに関して前述したように、パルスデジタル化を実行するために使用される複数の差動入力ポートを有することができる。各差動入力ポートは、オフセット電圧に関連付けることができる。
【００８６】
ステップ１１２０において、ＦＰＧＡは、各差動入力ポートに関連付けられるオフセット電圧を補償するために校正される。いくつかの実施形態において、ステップ１１２０は、前述のように、差動入力ポートのオフセット電圧を測定することを含む。測定されたオフセット電圧は次に、例えば調整電圧を差動入力ポートに印加すること、又は測定されたオフセットを予測時間値計算のための入力パラメータとして使用することにより、ＦＰＧＡの校正に使用できる。他の実施形態において、ステップ１１２０は、オフセット電圧を測定せずに実行できる。このような実施形態において、ＦＰＧＡは、オフセット電圧を補償するように構成されたオフセット調整パラメータを決定し、オフセット調整電圧を予測時間値計算への入力パラメータとして使用することによって校正できる。
【００８７】
本明細書に記載の実施形態のいくつかは、一般的な方法又はプロセスに関して説明されており、これらは１つの実施形態においては、ネットワーク環境中でコンピュータが実行する、プログラムコード等のコンピュータ実行可能命令を含むコンピュータ読取可能媒体に具現化されたコンピュータプログラム製品により実現されてもよい。コンピュータ読取可能媒体にはリムーバブル又はノンリムーバブルストレージデバイスを含まれていてもよく、これにはリードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）等が含まれるが、これらに限定されない。したがって、コンピュータ読取可能媒体は、非一時的記憶媒体を含むことができる。一般に、プログラムモジュールは、特定のタスクを実行する、又は特定のアブストラクトデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含んでいてもよい。コンピュータ又はプロセッサ実行可能命令、関連するデータ構造、及びプログラムモジュールは、本明細書で開示されている方法のステップを実行するためのプログラムコードの例を示している。このような実行可能命令又は関連するデータ構造の特定のシーケンスは、かかるステップ又はプロセスの中に記載された機能を実行するための、それに対応する動作の例を表している。
【００８８】
開示された実施形態のいくつかは、ハードウェア回路、ソフトウェア、又はそれらの組合せを使ってデバイス又はモジュールとして実装できる。例えば、ハードウェア回路実装は、離散型アナログ及び／又はデジタルコンポーネントを含むことができ、これらは例えば、プリント回路基板の一部として集積される。あるいは、又はこれに加えて、開示されたコンポーネント又はモジュールは、特定用集積回路（ＡＳＩＣ）及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）装置として実装できる。いくつかの実装は、それに加えて、又はその代わりに、デジタル信号プロセッサ（ＤＳＰ）を含んでいてもよく、これは、本願の開示された機能に関連付けられるデジタル信号処理の動作上のニーズに合わせて最適化されたアーキテクチャを持つ専用マイクロプロセッサである。同様に、各モジュール内の各種のコンポーネント又はサブコンポーネントは、ソフトウェア、ハードウェア、又はファームウェアに実装されてもよい。モジュール及び／又はモジュール内のコンポーネントとの間の接続は、当業界で知られている接続方法及び媒体の何れを使って提供されてもよく、これには適当なプロトコルを用いたインタネット、有線、又は無線ネットワーク上での通信が含まれるが、これに限定されない。
【００８９】
本特許文献には、多くの具体的な点が含まれているが、これらは、本発明の範囲と、特許請求されるかもしれない限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態にとって固有であるかもしれない特徴を説明していると理解すべきである。特許文献の中で、別々の実施形態に関して説明されている特定の特徴はまた、１つの実施形態の中に組み合わせて実装することもできる。反対に、１つの実施形態に関して説明された各種の特徴はまた、複数の実施形態の中に、別々に、又は何れかの適当な部分組合せで実装することもできる。さらに、上では特徴が特定の組合せで動作すると記載されているが、さらには当初はそのように特許請求されるかもしれないが、特許請求されている組合せの中の１つ又は複数の特徴を、場合によっては組合せから削除でき、特許請求された組合せは部分組合せや部分組合せの変形型に関していてもよい。
【００９０】
同様に、図面には動作が特定の順序で描かれているが、これは、所望の結果を実現するために、そのような動作が図の特定の順序又は連続的順序で実行されることが求められている、又は示されているすべての動作を実行する必要があると理解すべきではない。さらに、本特許文献中に記載されている実施形態の中の各種のシステムコンポーネントの分離は、すべての実施形態においてそのような分離が必要であると理解すべきではない。
【００９１】
ある数の実装及び例のみが説明されており、本特許文献中に記載され、図示されているものに基づいて、他の実装、改善、及び変形を考案することができる。
【００９２】
以上のことから、本発明の具体的な実施形態が本明細書においては例示を目的として説明されているが、本発明の範囲から逸脱することなく、各種の改変を加えることができることがわかるであろう。したがって、本発明は付属の特許請求の範囲以外によっては限定されない。
［項目１］
物体までの距離を測定するシステムであって、
射出光パルスを発生する発光素子と、
上記物体から反射された戻り光パルスを受け取り、上記戻り光パルスを表すアナログパルス信号を出力する光センサと、
上記光センサに連結されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、
上記アナログパルス信号を複数のデジタル信号値に変換し、
各デジタル信号値をサンプリングすることにより、上記複数のデジタル信号値に対応する複数の時間測定値を生成し、上記サンプリングの時間分解能が上記ＦＰＧＡのクロック周期より短いＦＰＧＡと、
上記物体までの上記距離を、上記複数のデジタル信号値と上記複数の時間測定値に基づいて計算するコントローラと、
を含むシステム。
［項目２］
上記発光素子、光センサ、ＦＰＧＡ、及びコントローラは、無人機、自律走行車、又はロボットにより支持される、項目１に記載のシステム。
［項目３］
上記時間分解能は上記ＦＰＧＡの上記クロック周期の少なくとも５倍短い、項目１に記載のシステム。
［項目４］
上記ＦＰＧＡは相互に連続的に連結された複数の遅延ユニットを含み、上記ＦＰＧＡは、上記複数の遅延ユニットを使って上記サンプリングを実行する、項目１に記載のシステム。
［項目５］
上記複数の遅延ユニットは少なくとも２５の遅延ユニットを含む、項目４に記載のシステム。
［項目６］
上記複数の遅延ユニットはキャリーチェーン又はルックアップテーブル（ＬＵＴ）を含む、項目４に記載のシステム。
［項目７］
上記複数の遅延ユニットの各々は、５ピコ秒〜２０００ピコ秒の範囲内の遅延を発生させる、項目４に記載のシステム。
［項目８］
上記ＦＰＧＡは複数のラッチを含み、各ラッチは上記複数の遅延ユニットのうちの対応する遅延ユニットに連結され、各ラッチは、上記対応する遅延ユニットがデジタル信号値を受け取ったことに応答してラッチされる、項目４に記載のシステム。
［項目９］
上記ＦＰＧＡは、
上記複数の遅延ユニットに沿って連続的にデジタル信号値を送信し、
上記ＦＰＧＡのクロック周期中にトリガされた上記複数のラッチの数を判断し、
上記判断された数に基づいて上記デジタル信号値に対応する時間測定値を計算すること
によって上記複数の時間測定値を生成する、項目８に記載のシステム。
［項目１０］
上記ＦＰＧＡの上、中、又は付近に位置付けられた温度センサをさらに含み、上記ＦＰＧＡは、
上記温度センサからの温度値を受け取り、
上記温度値に基づいて上記時間測定値を計算すること
によって上記複数の時間測定値を生成する、項目９に記載のシステム。
［項目１１］
上記ＦＰＧＡは複数のフェーズロックループ（ＰＬＬ）クロックを含み、各々は異なる位相を有するクロック信号を生成し、上記ＦＰＧＡは、上記複数のＰＬＬクロックを使って上記サンプリングを実行する、項目１に記載のシステム。
［項目１２］
上記複数のＰＬＬクロックは少なくとも２つのＰＬＬクロックを含む、項目１１に記載のシステム。
［項目１３］
上記複数のＰＬＬクロックにより生成される上記クロック信号は、π／８、π／４、π／２、又はπだけ相互に位相シフトされている、項目１１に記載のシステム。
［項目１４］
上記ＦＰＧＡは、
デジタル信号値を上記複数のＰＬＬクロックの各々により生成される上記クロック信号と比較し、
上記デジタル信号値に対応する時間測定値を上記比較に基づいて計算すること
により、上記複数の時間測定値を生成する、項目１１に記載のシステム。
［項目１５］
上記ＦＰＧＡは上記コントローラを含む、項目１に記載のシステム。
［項目１６］
上記コントローラは上記ＦＰＧＡに連結される、項目１に記載のシステム。
［項目１７］
物体までの距離を測定する方法であって、
発光素子によって射出光パルスを発生させるステップと、
光センサにおいて、上記物体から反射された戻り光パルスを受け取るステップと、
上記光センサにより、上記戻り光パルスを表すアナログパルス信号を出力するステップと、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使って上記アナログパルス信号を複数のデジタル信号値に変換するステップと、
上記ＦＰＧＡを使って、各デジタル信号値をサンプリングすることによって上記複数のデジタル信号値に対応する複数の時間測定値を生成するステップであって、上記サンプリングの時間分解能が上記ＦＰＧＡのクロック周期より短いステップと、
上記物体までの上記距離を上記複数のデジタル信号値と上記複数の時間測定値に基づいて計算するステップと、
を含む方法。
［項目１８］
上記発光素子、光センサ、及びＦＰＧＡは、無人機、自律走行車、又はロボットにより支持される、項目１７に記載の方法。
［項目１９］
上記時間分解能は、上記ＦＰＧＡの上記クロック周期より少なくとも５倍短い、項目１７に記載の方法。
［項目２０］
上記ＦＰＧＡは相互に連続的に連結された複数の遅延ユニットを使って上記サンプリングを実行する、項目１７に記載の方法。
［項目２１］
上記複数の遅延ユニットは少なくとも２５の遅延ユニットを含む、項目２０に記載の方法。
［項目２２］
上記複数の遅延ユニットはキャリーチェーン又はルックアップテーブル（ＬＵＴ）を含む、項目２０に記載の方法。
［項目２３］
上記複数の遅延ユニットの各々は、５ピコ秒〜２０００ピコ秒の範囲内の遅延を発生させる、項目２０に記載の方法。
［項目２４］
上記ＦＰＧＡは複数のラッチを含み、各ラッチは上記複数の遅延ユニットのうちの対応する遅延ユニットに連結され、各ラッチは、上記対応する遅延ユニットがデジタル信号値を受け取ったことに応答してラッチされる、項目２０に記載の方法。
［項目２５］
上記複数の時間測定値を生成する上記ステップは、
上記複数の遅延ユニットに沿って連続的にデジタル信号値を送信するステップと、
上記ＦＰＧＡのクロック周期中にトリガされた上記複数のラッチの数を判断するステップと、
上記判断された数に基づいて上記デジタル信号値に対応する時間測定値を計算するステップと、
を含む、項目２４に記載の方法。
［項目２６］
上記複数の時間測定値を生成する上記ステップは、
上記ＦＰＧＡの上、中、又は付近に位置付けられた温度センサからの温度値を受け取るステップと、
上記温度値に基づいて上記時間測定値を計算するステップと、
を含む、項目２５に記載の方法。
［項目２７］
上記ＦＰＧＡは複数のフェーズロックループ（ＰＬＬ）クロックを使って上記サンプリングを実行するように構成され、各々は異なる位相を有するクロック信号を生成する、項目１７に記載の方法。
［項目２８］
上記複数のＰＬＬクロックは少なくとも２つのＰＬＬクロックを含む、項目２７に記載の方法。
［項目２９］
上記複数のＰＬＬクロックにより生成される上記クロック信号は、π／８、π／４、π／２、又はπだけ相互に位相シフトされている、項目２７に記載の方法。
［項目３０］
上記複数の時間測定値を生成する上記ステップは、
デジタル信号値を上記複数のＰＬＬクロックの各々により生成される上記クロック信号と比較するステップと、
上記デジタル信号値に対応する時間測定値を上記比較に基づいて計算するステップと、
を含む、項目２７に記載の方法。
［項目３１］
物体までの距離を測定するシステムであって、
射出光パルスを発生する発光素子と、
上記物体から反射された戻り光パルスを受け取り、上記戻り光パルスを表すアナログパルス信号を出力する光センサと、
上記光センサに連結されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であって、
上記アナログパルス信号を複数のデジタル信号値に、（１）上記アナログパルス信号を複数の閾値と比較し、（２）上記複数のデジタル信号値を上記比較に基づいて生成することによって変換し、
上記複数のデジタル信号値に対応する複数の時間測定値を生成するＦＰＧＡと、
上記物体までの上記距離を、上記複数のデジタル信号値と上記複数の時間測定値に基づいて計算するコントローラと、
を含むシステム。
［項目３２］
上記発光素子、光センサ、ＦＰＧＡ、及びコントローラは、無人機、自律走行車、又はロボットにより支持される、項目３１に記載のシステム。
［項目３３］
上記複数の異なる閾値は少なくとも２つの異なる閾値を含む、項目３１に記載のシステム。
［項目３４］
上記ＦＰＧＡは複数の差動入力ポートを含み、上記ＦＰＧＡは、上記複数の差動入力ポートを使って上記アナログパルス信号を変換するように構成される、項目３１に記載のシステム。
［項目３５］
各差動入力ポートは低電圧作動信号（ＬＶＤＳ）インタフェース又はエミッタ結合論理（ＥＣＬ）インタフェースを含む、項目３４に記載のシステム。
［項目３６］
上記ＦＰＧＡは、上記複数の差動入力ポートの各々において上記アナログパルス信号と閾値を受け取り、各差動入力ポートは異なる閾値を受け取るようにさらに構成される、項目３４に記載のシステム。
［項目３７］
各差動入力ポートは、上記アナログパルス信号が上記受け取った閾値より大きいか、小さいかに基づいてデジタル信号値を生成する、項目３６に記載のシステム。
［項目３８］
各差動入力ポートは、
上記アナログパルス信号を受け取るように構成される第一のピンと、
上記閾値を受けるように構成される第二のピンと
を含む、項目３６に記載のシステム。
［項目３９］
上記第二のピンは調整電圧を受け取るように構成され、上記調整電圧は、上記差動入力ポートの上記第一及び第二のピン間のオフセット電圧を補償するように構成される、項目３８に記載のシステム。
［項目４０］
上記コントローラは上記距離を、
上記複数のデジタル信号値と上記複数の時間測定値を関数に入力し、
上記関数を使って上記戻り光パルスに関する予測時間値を導き出すこと
によって計算するように構成される、項目３１に記載のシステム。
［項目４１］
上記関数はパルス信号モデルを含み、上記予測時間値は、上記複数のデジタル信号値と上記複数の時間測定値を上記パルス信号モデルに適合させることによって導き出される、項目４０に記載のシステム。
［項目４２］
上記複数の差動入力ポートの各々は測定されたオフセット電圧に関連付けられ、上記コントローラは、各差動入力ポートの上記測定されたオフセット電圧を上記関数に入力するように構成される、項目４０に記載のシステム。
［項目４３］
上記コントローラはオフセット調整パラメータを上記関数に入力するように構成され、上記オフセット調整パラメータは、上記複数の差動入力ポートのオフセット電圧を補償するように構成される、項目４０に記載のシステム。
［項目４４］
各差動入力ポートは遅延時間に関連付けられ、上記ＦＰＧＡは、上記複数の時間測定値を生成する際に、各差動入力ポートの上記遅延時間を補償するように構成される、項目３４に記載のシステム。
［項目４５］
上記ＦＰＧＡは上記コントローラを含む、項目３１に記載のシステム。
［項目４６］
上記コントローラは上記ＦＰＧＡに連結される、項目３１に記載のシステム。
［項目４７］
物体までの距離を測定する方法であって、
発光素子により射出光パルスを発生させるステップと、
光センサにおいて、上記物体から反射された戻り光パルスを受け取るステップと、
上記光センサにより、上記戻り光パルスを表すアナログパルス信号を出力するステップと、
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を用いて、上記アナログパルス信号を複数のデジタル信号値に、（１）上記アナログパルス値を複数の閾値と比較し、（２）上記複数のデジタル信号値を上記比較に基づいて生成することによって変換するステップと、
上記ＦＰＧＡを用いて、上記複数のデジタル信号値に対応する複数の時間測定値を生成するステップと、
上記物体までの上記距離を、上記複数のデジタル信号値と上記複数の時間測定値に基づいて計算するステップと、
を含む方法。
［項目４８］
上記発光素子、光センサ、及びＦＰＧＡは、無人機、自律走行車、又はロボットにより支持される、項目４７に記載の方法。
［項目４９］
上記複数の閾値は少なくとも２つの異なる閾値を含む、項目４７に記載の方法。
［項目５０］
上記ＦＰＧＡは複数の差動入力ポートを含み、上記変換するステップは、上記複数の差動入力ポートを用いて実行される、項目４７に記載の方法。
［項目５１］
各差動入力ポートは低電圧作動信号（ＬＶＤＳ）インタフェース又はエミッタ結合論理（ＥＣＬ）インタフェースを含む、項目５０に記載の方法。
［項目５２］
上記複数の差動入力ポートの各々において上記アナログパルス信号と閾値を受け取るステップをさらに含み、各差動入力ポートは異なる閾値を受け取る、項目５０に記載の方法。
［項目５３］
各差動入力ポートを用いて、上記アナログパルス信号が上記受け取った閾値より大きいか、小さいかに基づいてデジタル信号値を生成するステップをさらに含む、項目５２に記載の方法。
［項目５４］
上記アナログパルス信号は各差動入力ポートの第一のピンで受け取られ、上記閾値は各差動入力ポートの第二のピンで受け取られる、項目５２に記載の方法。
［項目５５］
調整電圧を各差動入力ポートの上記第二のピンに印加するステップをさらに含み、上記調整電圧は、上記差動入力ポートの上記第一及び第二のピン間のオフセット電圧を補償するように構成される、項目５４に記載の方法。
［項目５６］
上記計算するステップは、
上記複数のデジタル信号値と上記複数の時間測定値を関数に入力するステップと、
上記関数を使って上記戻り光パルスに関する予測時間値を導き出すステップと、
を含む、項目５０に記載の方法。
［項目５７］
上記関数はパルス信号モデルを含み、上記予測時間値は、上記複数のデジタル信号値と上記複数の時間測定値を上記パルス信号モデルに適合させることによって導き出される、項目５６に記載の方法。
［項目５８］
上記複数の差動入力ポートの各々が測定されたオフセット電圧に関連付けられ、上記計算するステップは、各差動入力ポートの上記測定されたオフセット電圧を上記関数に入力するステップを含む、項目５６に記載の方法。
［項目５９］
上記計算するステップは、オフセット調整パラメータを上記関数に入力するステップをさらに含み、上記オフセット調整パラメータは、上記複数の差動入力ポートのオフセット電圧を補償するように構成される、項目５６に記載の方法。
［項目６０］
各差動入力ポートは遅延時間に関連付けられ、上記複数の時間測定値を生成する上記ステップは、各差動入力ポートの上記遅延時間を補償するステップを含む、項目５０に記載の方法。
［項目６１］
距離測定装置を校正する方法であって、
複数の差動入力ポートを含むフィールドプログラマブルアレイ（ＦＰＧＡ）を提供するステップを含み、上記複数の差動入力ポートの各々はオフセット電圧に関連付けられ、上記ＦＰＧＡは、
物体から反射された戻り光パルスを表すアナログパルス信号を受け取り、
上記アナログパルス信号を複数のデジタル信号値に、（１）上記複数の差動入力ポートを使って上記アナログパルス値を複数の閾値と比較し、（２）比上記較に基づいて上記複数のデジタル信号値を生成することによって変換し、
上記複数のデジタル信号値に対応する複数の時間測定値を生成する
ように構成され、
上記アナログパルス信号を変換する際に、上記複数の差動入力ポートの各々に関連付けられた上記オフセット電圧を補償するために上記ＦＰＧＡを校正するステップを含む方法。
［項目６２］
上記ＦＰＧＡは無人機、自律走行車、又はロボットにより支持される、項目６１に記載の方法。
［項目６３］
各差動入力ポートに関連付けられた上記オフセット電圧を測定するステップをさらに含む、項目６１に記載の方法。
［項目６４］
各差動入力ポートは、
上記アナログパルス信号を受け取るように構成された第一のピンと、
閾値を受け取るように構成された第二のピンと、
を含む、項目６３に記載の方法。
［項目６５］
上記測定するステップは、
可変電圧信号を上記第一のピンに印加するステップと、
定電圧信号を上記第二のピンに印加するステップと、
上記差動入力ポートの出力信号の変化を検出するステップと、
上記変化が検出されたときに、上記第一及び第二のピン間の電圧差を判断するステップと、
を含む、項目６４に記載の方法。
［項目６６］
上記判断するステップは、上記第一及び第二のピン間の上記電圧差を測定するステップを含む、項目６５に記載の方法。
［項目６７］
上記判断するステップは、
上記出力信号の上記変化が検出された時点を判断するステップと、
上記電圧差を上記時点と上記可変電圧信号の波形に基づいて計算するステップと、
を含む、項目６５に記載の方法。
［項目６８］
上記可変電圧信号は増大する電圧信号を含む、項目６５に記載の方法。
［項目６９］
上記可変電圧信号は三角波信号又は台形波信号を含む、項目６５に記載の方法。
［項目７０］
上記校正するステップは、調整電圧を各差動入力ポートの上記第二のピンを印加するステップを含み、上記調整電圧は、上記差動入力ポートに関連付けられる上記オフセット電圧を補償するように構成される、項目６４に記載の方法。
［項目７１］
上記校正するステップは、上記複数の差動入力ポートの上記オフセット電圧を関数の入力パラメータとして使用するステップを含み、上記関数は、上記複数のデジタル信号値、上記複数の時間測定値、及び上記入力パラメータに基づいて上記戻り光パルスに関する予測時間値を導き出すように構成される、項目６３に記載の方法。
［項目７２］
上記校正するステップは、
オフセット調整パラメータを判断するステップであって、上記オフセット調整パラメータは上記複数の差動入力ポートの上記オフセット電圧を補償するように構成されるステップと、
上記オフセット調整パラメータを関数の入力として使用するステップであって、上記関数は、上記複数のデジタル信号値、上記複数の時間な測定値、及び上記オフセット調整パラメータに基づいて上記戻り光パルスに関する予測時間値を導き出すように構成されるステップと、
を含む、項目６１に記載の方法。
【図１Ａ】
0006891375.tif 000002
【図１Ｂ】
0006891375.tif 000003
【図２Ａ】
0006891375.tif 000004
【図２Ｂ】
0006891375.tif 000005
【図３】
0006891375.tif 000006
【図４】
0006891375.tif 000007
【図５Ａ】
0006891375.tif 000008
【図５Ｂ】
0006891375.tif 000009
【図６】
0006891375.tif 000010
【図７】
0006891375.tif 000011
【図８Ａ】
0006891375.tif 000012
【図８Ｂ】
0006891375.tif 000013
【図８Ｃ】
0006891375.tif 000014
【図９】
0006891375.tif 000015
【図１０】
0006891375.tif 000016
【図１１】
0006891375.tif 000017