LiDAR の概要
LiDAR は「Light Detection and Ranging」もしくは「Laser Imaging Detection and Ranging」の略でレーザー光を利用した測距センサーです。元々は「レーザースキャナ」と呼ばれていましたが、2000 年を過ぎてから Velodyne 社が自動車の自動運転システム向けに「Velodyne LiDAR」として売り出したあたりから LiDAR という言葉が広く使われるようになってきたようです。LiDAR とレーザースキャナは基本的な原理は同じですが、LiDAR は自動運転システム向けのもの、レーザースキャナは測量システム向け、工場や倉庫内の自律走行ロボット向けのものとして緩やかに使い分けがなされています。
LiDAR は可視光に近い波長のレーザー光を使った TOF センサーです。光の飛行時間を計測することで対象物までの距離を推定する仕組みを持っています。TOF センサーの原理については、ミリ波レーダーのサイト(リンク)もご参考ください。
使用される波長は用途によって異なります。自動運転システム向けには 905nm と 1550nm、航空機やドローンに搭載して地形の測量を行う際には 1064nm と 1550nm、建築向けの測量には前述の波長に加えて 532nm や 640nm が使われることがあるようです。その他、845nm も使われます。光は、物質の量子力学的な性質を利用して生成されます。扱える光の波長はその性質に依存しますので、人間が自由に決定できるわけではありません。扱える波長の中から選択するという形をとります。LiDAR 製品の波長は、測定する対象物のサイズと材質、対象物までの空間(大気)の状態、人間の目に入る危険性、搭載する筐体全体のサイズや重さ、最終製品のコスト構造とのバランスなどを総合的に考慮して選択されます。
レーザー光は一般的な光とは異なり、サイン波の位相をそろえた波形になる光のことを指します。位相がそろうことをコヒーレント状態と呼びます。レーザー光は指向性が高く、対象物の狭い領域にピンポイントで当てることができます。これは、測距センサーの空間分解能を高めるのに役立ちます。可視光に近い波長の光(電磁波)を生成する際には、生成過程がランダムな物理現象に依存することが多く、通常は生成される光の位相はそろいません。レーザー光では、共鳴反応の仕組みを利用することで位相をそろえます。また、その生成過程から、生成される光の波長のずれ幅が小さくなります。この特性は受信時に送信部から発せられた光の選択性を高め、感度あるいはSN 比(信号対雑音比)を向上させます。
ちなみに電波を発生させる際には、アナログ回路でサイン波の電圧波形を作ってそれをそのままアンテナに伝えるという仕組みを使いますので、必然的にサイン波の位相はそろいます。例えば電波では周波数が高いものでも 100GHz オーダーとなってアナログ回路で対応可能ですが、可視光の周波数は 100THz オーダーとなりますので速すぎて対応できません。そこで可視光付近の光は、物性的な物理現象を利用した方法で生成することになります。
LiDAR の基本的な構成要素
LiDAR の基本的な構成要素は「レーザー」と「光センサー」です。下図のように、レーザーからレーザー光を出力して対象物にあてて、反射して返ってきた光を「光センサー」で検出します。図中では省略していますが、レーザー光の密度を上げるためにレーザーの前にはレンズを設置します。また、反射光の集光して検出感度を0高めるために光センサーの前にもレンズを設置します。LiDAR の種類によっては、これらのレンズを共有する構成をとることもあります。
レーザー光を出力して返ってくるまでの時間を計測することで対象物までの距離を推定する TOF センサーです。対象物までの距離を \(R\)(往復の距離を \(2R\))、時間を \(\Delta T\)、光速を \(c\) とすると、下記の数式が成り立ち、これで距離 \(R\) が求まります。
$$~~2R = \Delta T \times c$$
$$~~R = \frac{\Delta T \times c}{2}$$
ロボット向けの LiDAR のレーザーには半導体レーザーを使うことが多いようです。半導体レーザーは他のタイプに比べて小型という特徴があります。ロボットに搭載するためには小型であることが強く求められるからです。また、後で紹介する複数のレーザーを使うタイプの LiDAR やレーザーそのものを回転させる構造の LiDAR にとっては、レーザーが小型であることが極めて重要です。
光センサーにはフォトダイオードが使われます。フォトダイオードは半導体で構成され、光電効果によって光を電子とホールのキャリア(電荷)に変換するデバイスです。スマートフォンやデジタルカメラの撮像デバイスとして使われている CMOS イメージセンサーもフォトダイオードに含まれます。イメージセンサーは個別のフォトダイオードをピクセル状に複数配置して作られます。
レーザー光を照射して物体から反射して返ってくる光は非常に微弱で検出は簡単ではありません。レーザー光の強度を上げることができれば検出する光の強度も高くすることができるのですが、レーザー光の強度を高くしすぎると人間の目に害を及ぼしますので、出力強度の上限が法律で決まっています。こういった事情から、レンズによる集光だけでは不十分で、カメラに使われるフォトダイオードよりも感度が高い素子を使う必要があります。
また一般的な信号処理回路ではセンサーからの信号を増幅回路によって増幅して AD 変換に耐えられるようにしますが、LiDAR ではより高い SN 比(信号対雑音比)が求められることが多くなっています。そういった場合には APD(アバランシェフォトダイオード)という特別な半導体デバイスが光センサーとして使われます。APD は、フォトダイオードの中で光電効果によって発生した電荷の量を増幅させるという機能を持ちます。フォトダイオードと増幅回路を一体化させたようなデバイスです。一体化することで、増幅回路の入力部で発生するノイズによる影響を抑えることができ、光センサー全体の感度を向上させます。
LiDAR の出力データ
前項のように、レーザー光を照射して反射した光を検出するという手法だけでは1方向の距離しか測定できません。得られるデータは1方向の距離という1つ値のみで、これは1次元のデータになります。LiDAR と呼ぶためには、出力データが 2 次元か 3 次元である必要があります。2 次元のデータは一般的には「水平方向」に走査して各方向ごとに距離を算出することで得られ、2 次元のデータを出力する LiDAR のことを「2D LiDAR」と呼びます。例として 2D LiDAR と障害物が次のような位置関係にある状況を考えます。
この位置関係で 2D LiDAR を使って距離を測定し、得られたデータを可視化すると下のようなグラフになります。レーザー光を水平方向へ走査する際には何らかの機構を使ってレーザーを回転させ、一定の角度のステップで断続的にレーザー光を照射します。このグラフでは 1 度刻みでレーザー光を照射して距離を測定することを想定しています。また、正面を 0 度として ±90 度で計 180 度の測定範囲としています。測定範囲は LiDAR 製品によって異なり、構造によっては最大で 360 度まで可能です。
このデータを使って、X 軸と Y 軸の 2 次元平面上に障害物の位置情報をプロットしてみます。上の図の角度を \(\theta\)、距離を \(R\) とすると、座標 \((X, Y)\) は次のように計算されます。
$$X = R~ sin(\theta)$$
$$Y = R~ cos(\theta)$$
ここでは一般的な極座標と角度 \(\theta\) の位置(定義)を変えていますので関係式も少し異なることに注意してください。この式を使って上の図を変換して XY 平面に描いたのが次の図です。これで元々想定していた障害物の位置関係を取得することができました。
次に 3D LiDAR のデータを可視化します。簡単のために、前出の空間の位置関係の図で、正面の障害物と地面のみが存在することを想定します。障害物の高さが 3m で LiDAR は地面から 1.5m の高さに位置し、水平方向の走査は 2D の時と変わらず、垂直方向に ±20度で 1 度刻みにレーザー光を照射するとします。この条件で、得られたデータをプロットすると下図のようになります。距離情報は色で表現しています。右側のカラーバーで示しているように、距離が小さい(近い)状態を赤色、距離が大きい(遠い)状態を青色で表現しています。障害物が存在しない方向の距離は無限大になりますが、可視化のために距離の上限を 100m に設定しました。
このデータを3次元空間上にプロットしてみます。水平方向の角度を \(\theta\)、垂直方向の角度を \(\phi\)、距離を \(R\) とすると、座標 \((X, Y, Z)\) は次のように計算されます。
$$X = R~ cos(\phi)~sin(\theta)$$
$$Y = R~ cos(\phi)~cos(\theta)$$
$$Z = R~ sin(\phi)$$
この式を使って上の図を変換して XYZ 平面に描いたのが次の図です。
この図は、レーザー光が障害物にあたった場所の座標に点を付与して作成したものです。このようなデータのことを「点群」と呼びます。また、点群のデータを扱う際によく使われるデータフォーマットは「point cloud」です。3D LiDAR では、出力データを point cloud で扱うのが一般的です。各点は XYZ 座標と距離 R を組み合わせた配列 (X, Y, Z, R) で表現され、それを点の数だけ列挙する形でデータが構成されます。なお、距離情報は色で表現しています。見やすくするために、1つ前の図とは色の定義を変えています。
自動運転自動車などの自律走行ロボットで 3D LiDAR を利用する際には、point cloud のデータから距離が近い点を集めて塊を作り、1つの障害物と認識する処理を行います。この処理の中身は、幾何学的な計算だったり、ディープラーニングによるニューラルネットワークによる演算だったり、人工知能技術の1つのクラスタリング処理だったりします。障害物を表現する塊の形は、障害物がすっぽりと収まる直方体が一般的です。障害物の種類が自動車や人間の場合には直方体で十分です。一方で、工場や倉庫の中で自律走行車にロボットアームを付けて物を掴んだりするような作業をさせる場合には、対象物の形をもう少し詳しく知る必要があります。そのためには、直方体よりも頂点の数の多い3次元ポリゴンで障害物の形状を認識するようにします。
LiDAR の構造の種類
LiDAR はレーザー光の照射を水平方向もしくは水平方向と垂直方向に「走査」することで対象物の距離情報のマップを取得するセンサーです。そのため、レーザー光を複数の方向に照射する機能が必要です。原理的には方向の数だけレーザーを用意すれば良いのですが、コストがかかりすぎる点と LiDAR 製品のサイズが大きくなりすぎるという点で積極的に採用できる構成にはなりません。そこで、レーザーの個数が少なく済むような構成のものが考案され、実際に製品が作られています。LiDAR は複数方向にレーザー光を照射する方法の違いで種類が分類されています。これから1つずつ紹介していきます。なお、種類の名称は文献やWeb サイトによって異なり、統一化されていないようです。
平面ミラー型
「平面ミラー型」LiDAR は、1枚の平面ミラーにレーザー光をあて、平面ミラーを回転させることでレーザー光を複数方向に照射するという仕組みを持った LiDAR です。「チルトミラー型」と呼ばれることもあります。イメージを下図に示します。
ミラーが水平方向に対して傾きを持った状態で支柱に固定され、支柱はモーターの軸と接続されています。モーターが回転することでミラーも回転するという仕組みです。レーザー光がミラーの上から照射され、反射した光が対象物へ向かいます。この図のような構成の場合では、垂直方向の角度は固定され、水平方向の角度のみ変化します。その結果、前述の 2D LiDAR のデータのような距離情報が得られます。ミラーを 360° 回転させれば、水平方向の角度範囲は 0° ~ 360° となります。自律走行ロボットの頭上に設置すれば、周囲 360° の障害物を検知することが可能となります。
垂直方向の角度も変化させて 3D LiDAR にするためには、欲しい角度の数分だけレーザーを増やします。下図のように、垂直方向に少しずつ角度を変えたレーザー光をミラーに照射して反射させます。この状態でモーターを回転させると、前述の 3D LiDAR のデータのような距離情報が得られます。
ポリゴンミラー型
平面ミラー型の複数のレーザーを用意する必要があるというデメリットを解消するのが「ポリゴンミラー型」LiDAR です。その名の通り、多角形の形をしたミラーを用意します。構造のイメージを下図に示します。
垂直方向の角度を少しずつ変えた 6 個のミラーを側面に貼り合わせた構造を用意して、水平方向にレーザー光をミラーへ照射します。垂直方向の角度が異なるミラーに水平方向からレーザー光を照射すると、ミラーごとに反射の角度が変わり、複数の垂直方向のレーザー光を生成することができます。下図を参考にしてください。これによって、平面ミラー型で垂直方向の個数分だけ必要だったレーザーが1個で済むようになります。
一方で、水平方向の角度はどうなっているでしょうか?下図をご覧ください。平面ミラー型と同様に、モーターを回転させることで水平方向の角度を変化させることができるようになっています。ただし、平面ミラーとは異なり、360° の方向に照射することはできません。6 角形の場合には、6 分 1 の 60° の方向に照射することになります。のように水平方向の測定範囲が限定されるのが、ポリゴン型のデメリットです。
ヘッド回転型
ヘッド回転式は複数のレーザーを1つの台座に載せて丸ごとモーターで回転させ、レーザー光を水平方向に走査させるという方式です。各レーザーの垂直方向の角度を少しずつ変えておくことで、複数の垂直方向にもレーザー光を照射できるようになっています。ミラーを使わず、レーザー光を直接物体へ照射する方式となっており、構造が簡単で精度を出しやすいというメリットがあります。一方で、複数のレーザーごとモーターで回転させるため、他の方式に比べて回転させる部分の重量が大きく、高出力の(トルクが大きい)モーターが必要となります。高出力であるほどモーターのサイズは大きくなりますので、LiDAR 製品全体のサイズも大きくなってしまうというデメリットがあります。また、騒音も大きくなりやすい傾向にあり、レーザーを複数使うことからコストが高くなります。
自動運転向けで有名な Velodyne 社製の LiDAR はヘッド回転型です。実験車両では高いシェアを持ちますが、前述のデメリットのために通常の自動車への採用は進んでいません。
ソリッドステート型
モーターによってミラーやレーザーを回転させる機構はサイズが大きくなりがちです。そこで、モーターを使わない「ソリッドステート型」というコンパクトな LiDAR の開発が進んでいます。ソリッドステート型にもいくつか種類がありますが、代表的なものは「MEMS 型」です。MEMS 型は、ミラーとミラーを動かすアクチュエータ部分を半導体プロセスで製造し、平面ミラー型と同様の機能を LSI チップの中にミクロに作り込んでしまうというタイプの LiDAR です。コンパクトにできるという半面、微細加工を伴うために位置精度を高めづらいというデメリットもあります。
ソリッドステート型のもう1つの代表的なタイプは「フラッシュ型」です。他のタイプはレーザー光を局所的に照射するのに対して、フラッシュ型は一度に広範囲に照射します。そうすると、物体で反射したレーザー光が複数方向から1度に戻ってきます。それに対して、受信部に複数の光センサーを2次元アレイ状(ピクセル状)に並べておいて、同時に複数方向からのレーザー光を検出します。これは、通常の可視光向けのカメラでフラッシュをたいて撮像するのと同じ仕組みです。異なるのは、通常のカメラでは各ピクセルで受けた光の光量を測定するのに対し、フラッシュ型の LiDAR では各ピクセルごとに光を検出したタイミング(時間)を測定するという点です。TOF の原理による測定を複数同時に行う、という構成です。
フラッシュ型は、回転を伴う機構を使わないため、機械的な摩耗による劣化が起きないという大きなメリットがあります。例えば自動車など、耐用年数を特に気にするようなアプリケーションで好まれるタイプです。一方で、一度にレーザー光を複数方向へ照射するために1回あたりの出力が大きくなり、人の目に害を与えやすくなるというデメリットがあります。(出力できる光の強度は法律で規制されています。)出力の強度を抑えると、今度は反射して返ってくる光の量が小さくなりますので、検出が難しくなり、測定精度が悪化します。こういったデメリットを克服するための研究開発が様々な会社・研究機関で進められています。
LiDAR の回路構成
LiDAR の基本的な回路構成は下図のようなイメージです。送信部と受信部に分かれています。
送信部のコアとなるのは「レーザー」です。このレーザーからパルス状のレーザー光を出力します。レーザーを駆動するためには数十 W 程度の電力が必要で、「レーザードライバ」が役割を担います。他の回路よりも高い電圧が求められる場合には「昇圧回路」を使います。レーザー製品によって異なりますが、10~20V 程度が多いようです。通常の回路は 1 ~ 5 V 程度で動作しますので、それよりも高いレベルになります。そして、パルスのタイミングを生成するために、パルス発生器を用意します。これで送信部の基本的な構成は完成です。
受信部のコアとなるのは「フォトダイオード」です。フォトダイオードは、光電効果の原理によって、受信した光を電荷に変換するセンサーです。生成された電荷量は、「増幅回路(インピーダンス変換回路)」によって電圧情報に変換すると同時に、後段で処理しやすいように信号レベルを増幅します。電圧情報に変換するのは、一般的な電子回路では電荷よりも電圧の方が扱いやすいからです。また、LiDAR で受信する光は微弱ですので、後段の回路の精度やノイズによる影響を最小限に抑えるために増幅という処理が必要となります。
そして、十分増幅された電圧を「コンパレータ」で基準レベル(しきい値)と比較し、基準よりも高ければ「光を受信した」と判定します。そして、「TDC(Time-to-Digital Converter)」で受信したタイミングをデジタル値に変換し、後段のデジタル回路やマイコンで TOF の計算式に基づいて距離情報を算出します。以上が測距の一連のフローとなります。
なお、受信部の増幅の処理は何段かに分けて行うことが多いのですが、信号処理の一般的な理論では、出来るだけセンサーに近い前段の部分で大きく増幅してあげた方が S/N(信号対雑音比)を高くすることができると言われています。センサーと増幅回路を一体化させることができれば、最もセンサーに近い部分で増幅できます。それを実現するのが、APD(アバランシェ・フォトダイオード)です。APD は、フォトダイオードの一種なのですが、光を受信して電荷に変換した後、「雪崩(アバランシェ)現象」と呼ばれる物理現象によって電荷量を増やす(増幅する)機能を持った特別なデバイスです。LiDAR では、光センサーと増幅回路が一体化した APD を使って光の受信感度を高めるのが一般的になりつつあります。
LiDAR の性能
LiDAR の主な性能指標は、距離分解能、角度分解能、測定可能距離です。
距離分解能
LiDAR の距離分解能の物理的な限界は、照射する光の波長のスケールと受信タイミングの測定精度で決まります。1000nm 程度の波長の赤外線であれば、距離分解能の限界は 1000nm(1um)となり、ロボットの測距機能としては十分すぎる精度となります。受信タイミングの測定精度は TDC の時間分解能のことを指します。TDC の基本構成は「カウンタ」です。例えば 1ns 周期(1GHz)のクロックでカウンタを動かすと、時間分解能は 1ns になります。TOF の原理の式で距離に変換すると、次のような計算になります。これが距離分解能です。
$$R = \frac{\Delta T \times c}{2} = \frac{1[ns] \times 3 \cdot 10^{8} [m/s]}{2} = 0.15 [m] $$
パソコンなどのコンピュータ向けのデジタル回路(CPU 等)では 3GHz 程度は普通に実現できますので、3 GHz を仮定すると距離分解能は ⅓ の 5 cm となります。以上のことから、LiDAR では、距離分解能は波長の長さではなく TDC の時間分解能で律速される可能性が高いです。ただし、3GHz で動作可能なデジタル回路を半導体で製作しようとすると、比較的微細なプロセスを利用する必要があり、半導体チップあたりの単価が高くなってしまいます。そういったことを避けるために、TDC を純粋なカウンタのみで構成せずにアナログ回路と組合わせることで、低いクロック周波数でも高い時間分解能を達成できるような方式をとることがあります。この方式の TDC では時間分解能が数十ps 程度となり、1cm 以下の距離分解能も実現できます。
また、単純な TOF 方式ではなく「位相シフト方式」という光の波形の位相差を検出する方法であれば、1mm 程度の距離分解能も可能となります。
角度分解能
LiDAR の角度分解能は、垂直方向と水平方向で異なります。平面ミラー型やヘッド回転型の垂直方向の角度分解能は、複数設置するレーザーの角度のピッチで決まります。垂直方向の角度の範囲を固定した場合、角度分解能は角度の範囲をレーザーの個数で割った値になります。ポリゴンミラー型では、各ミラーの角度の違いがそのまま角度分解能となります。
水平方向の角度分解能は、構造ではなくレーザー光の広がりで決まります。照射するレーザー光をピンポイントで狭い範囲に当てることができれば、その分だけ角度分解能は高くなります。ただし、対象物の表面の材質によって様々な形で反射しますので、照射するレーザー光の広がりだけで角度分解能は決まりません。実際の LiDAR 製品では、高いもので 0.1 度程度になります。
測定可能距離(最大距離)
LiDAR の測定可能距離は、受信する光量と、測定環境や受信回路のトータルのノイズ量との競争で決まります。対象物の距離が遠くなるほど反射して返ってくる光の量が小さくなるからです。原理的には、照射するレーザー光の出力を大きくするほど測定可能範囲も長くなりますが、出力を大きくしすぎると人間の目や皮膚に有害となりますので、法律で限度が決められています。実際の LiDAR 製品では 300m 程度になっているようです。