LIDARのプロトタイピングを加速するオープンソースのプラットフォーム

概要

アナログ・デバイセズは、広範な市場に向けてLIDARシステムのプロトタイピング用プラットフォームを提供しています。このプラットフォームは、ハードウェアとソフトウェアから成る完全なソリューションです。これをベースとすることにより、お客様は独自のアルゴリズムやハードウェア・ソリューションの開発を迅速に進められるようになります。その結果、製品を市場に投入するまでの時間を短縮することが可能になります。本稿では、まず、このプラットフォームのモジュール式ハードウェア設計について詳細に説明します。具体的には、光の送受信に使用するシグナル・チェーン、FPGAベースのインターフェース、長い距離の測定に対応可能な光学部品などを取り上げます。続いて、システムのパーティショニングはどのようにして決定すればよいのか、そのプロセスについて解説します。それを通して、良好なシステム設計、インターフェースの定義、適切なレベルのモジュール性が重要であることを明らかにします。その後、オープンソースの形で提供されるLIDAR向けソフトウェア・スタックの構成要素と、このプラットフォームに固有のAPI(Application Programming Interface)について説明を加えます。更に、それらのソフトウェアにより、初期設計の段階から最終製品として統合する段階までの間に、お客様にどのようなメリットがもたらされるのか解説します。

はじめに

自動運転車やロボットは、既にSFの世界のものではありません。実用化の段階、あるいは普及が進む段階に到達していることは周知のとおりです。そうしたなか、自動車業界のお客様や産業分野のお客様は、マシンの自律動作を実現するために、周辺環境の事象の認識を可能にする強力なソリューションを求めるようになりました。その分野で著しく成長している技術がLIDAR(Light Detection and Ranging)です。LIDARは、その技術的な成熟度と信頼性が増すに連れて広く採用されるようになっています。その結果、現在は膨大な市場機会が生み出されている状況にあります。センサーの分野で大きな実績を持つ企業や数多くの新興企業が、より精度が高く、消費電力が少なく、小型で費用対効果の高いLIDAR向けセンサーの開発に取り組んでいます。ただ、システムを構成するハードウェアの設計と、システムの全構成要素と通信を行うためのソフトウェア・インフラの実装は、どの企業にとっても共通の課題になっています。アナログ・デバイセズは、オープンソースのソフトウェア・スタックとハードウェアを組み合わせたリファレンス設計を提供しています。これは、まさに上記の課題の解決に向けた強力なソリューションです。このリファレンス設計は、LIDARシステムのプロトタイピングを実施する際にプラットフォームとして活用できます。それにより、お客様はアナログ・デバイセズのLIDAR向けICや、ソフトウェア・モジュール、HDL(Hardware Description Language)をベースとするIP(Intellectual Property)を自社製品に簡単に組み込むことができます。そのため、製品を市場に投入するまでの期間を短縮することが可能になります。

システムのアーキテクチャ

LIDARをベースとするセンサーを開発する際、お客様がシステム設計のレベルで差別化を図れる部分はいくつかあります。例えば、送受信用の光学部品、レーザーの数と向き、レーザーの放射パターン、レーザーのビーム・ステアリング、受光素子の数などです。しかし、それらに関してどのような選択を行ったのかにかかわらず、受信用のシグナル・チェーンとレーザーを駆動する信号の要件については、かなり共通する部分があるはずです。その前提に基づき、アナログ・デバイセズは「AD-FMCLIDAR1-EBZ」というリファレンス設計を開発しました(図1)。これは、LIDARシステムのプロトタイピングに向けたモジュール式のプラットフォームです(以下、LIDARプラットフォーム)。その特徴は、お客様が個々のアプリケーションの要件に基づいて設計した独自のハードウェアにより、一部を簡単に構成/置換できることです。また、このLIDARプラットフォームは、完全なシステムとしても使用できます。以下に示す3つのボードに分割されており、それらは標準的なデジタル/アナログ・インターフェースで接続されています。

  • データ・アクイジション(DAQ)ボード:JESD204B に準拠する高速 A/D コンバータ(ADC)と、それに関連するクロック回路、電源回路を搭載しています。また、ユーザが選択したFPGA開発ボードに接続できるようにするために、FMC(FPGAMezzanine Card)に準拠するインターフェースも備えています。システムの基盤として機能し、デジタル・コネクタを使用して他の 2 つのボードに接続されます。それにより、各ボードと FPGA の間の制御や帰還信号のルーティングが行われます。アナログ信号は同軸ケーブルを介して伝送します。
  • アナログ・フロント・エンド(AFE)ボード:光検出器としてアバランシェ・フォトダイオード(APD)を使用する光センサーと、その出力信号を受け取るシグナル・チェーン全体を搭載しています。そのシグナル・チェーンにより、APD からの出力信号のコンディショニングを行います。コンディショニングを実施した後の信号は、DAQ ボード上の ADC に供給されます。
  • レーザー・ボード:レーザーと駆動回路を搭載しています。
図1. LIDARプラットフォームのシステム構成
図1. LIDARプラットフォームのシステム構成

どのようなシステム設計についても言えることですが、モジュール方式を採用すれば柔軟性が高まります。それと同時に、複雑さが増し、性能が低下し、コストが増加するといった欠点も生じます。そのため、システムのパーティショニングを行う際には、そうした側面について慎重に検討する必要があります。LIDARプラットフォームを3つのボードに分割した理由としては、以下のような事柄が挙げられます。

  • ADC とクロック回路は、AFE や選択したレーザー・ソリューションの実装にかかわらず、同じものを使用できる可能性が高いと言えます。
  • AFE のハードウェア設計とフォーム・ファクタは、選択したAPD、システム全体の受信感度、選択した光学部品に応じて変更される可能性があります。
  • レーザー・ボードの設計とフォーム・ファクタは、選択した光照射ソリューションと光学部品に応じて変更される可能性があります。
  • レシーバーとトランスミッタの位置決め、方向決めについては、それら双方の要件や他の要件に適応できるように高い柔軟性を持たせる必要があります。そのため、ボード間におけるデジタル信号の送受信にはフレックス・ケーブルを使用し、アナログ信号の送受信には同軸ケーブルを使用します。

上述したハードウェアと共に使用されるソフトウェア・スタックは、階層的なアプローチに基づいて複数の層に分割されています。OS固有のドライバやインターフェース、システム固有のAPI、アプリケーションといった層に分割されているということです。それにより、ソフトウェアが組み込みターゲット上で実行されるのか、それともネットワークやUSBを介してシステムと通信するPC上で実行されるのかにかかわらず、スタックの上層を共通化することができます。このことは、図2に示すような製品開発の各段階において、非常に重要な意味を持ちます。例えば、プロトタイピングの段階では、容易に開発作業が行えるように、システムはPCに接続されます。共通化を行うことにより、プロトタイピングの段階で開発したのと同じアプリケーション・ソフトウェアを、低レベルのインターフェースを変更することなく、組み込み製品のシステムにも簡単に配備できるのです。

図2. 製品の開発工程
図2. 製品の開発工程

ハードウェアの設計

LIDARをベースとするセンサーでは、光パルスが対象物で反射して戻ってくるまでの時間を計測します。その値を基に、対象物までの距離が算出されます。反射光が戻ってくるまでの時間は、ADCのサンプリング・レート(周期)を基に計測されます。システムは、サンプリング周期を時間分解能として、受信した光パルスをサンプリングします。つまり、計測される時間はサンプリング周期の整数倍になります。以下の式は、ADCのサンプリング・レートを基に距離を計算する方法を表しています。

数式 1

各変数の意味は以下のとおりです。

LS:光速。その値は3×108m/秒です。

fS:ADCのサンプリング・レート

N:光パルスが生成され、反射して戻ってくるまでにADCによって取得されるサンプルの数

LIDARプラットフォームでは、JESD204Bに準拠するクワッドADC「AD9094」を採用しています。そのサンプリング・レートは1GSPSです。そのため、1つのサンプルが15cmの距離に相当することになります。このようにして距離を測定することから、システム内に正確なサンプリングを妨げる要素(不確かさ)が存在しないことが重要になります。サンプルの数が本来の値からずれると、距離の測定結果に大きな誤差が含まれてしまうおそれがあるからです。従来のLIDARシステムは、本質的にサンプリングの不確かさが生じない並列インターフェースを備えるADCをベースとしていました。しかし、その種のADCでは、増加し続ける受信チャンネルの数と、ますます厳しくなる消費電力と実装面積の要件に対応することはできません。この問題は、JESD204Bなどに準拠する高速シリアル出力を備えたADCを採用することで解決できます。但し、この方法を採用すると、データ用のインターフェースが複雑になり、サンプリングの不確かさを排除するのが難しくなります。

LIDARプラットフォームのDAQボードは、上記の問題に対するソリューションです。これは、JESD204BのSubclass 1モードで動作するDAQシステム向けの電源、クロック、データ用のインターフェースはどのように設計すればよいのかということを示すものです。その設計では、デタミニスティックな遅延を保証することにより、サンプリングの不確かさを解消しています。同時に、JESD204Bに対応するインターフェースが備えるすべてのメリットを活用し、クロック回路の消費電力を最小限に抑えています。なお、JESD204BのSubclass 1モードで動作させるには、システム内に以下に示すクロックを用意しなければなりません。

  • ADC 用のサンプリング・クロック:ADC によるアナログ信号のサンプリング処理に使用します。
  • ADC/FPGA 用の SYSREF:ソースに同期したスルー・レートの高いタイミング決定信号。デタミニスティックな遅延を保証するためにデバイスのクロック分周器をリセットする役割を担います。
  • FPGA 用のグローバル・クロック(コア・クロックまたはデバイス・クロックとも呼ぶ):JESD204B の PHY 層と FPGA のロジックの出力を駆動します。
  • FPGA用のリファレンス・クロック:JESD204B対応トランシーバーが必要とする PHY 層の内部クロックを生成します。デバイス・クロックと等しいか、その整数倍でなければなりません。

これらのクロックは、いずれもJESD204Bに準拠するクロック・ジェネレータ「AD9528」によって生成されます。そのため、すべて互いに同期がとれています。図3に、FPGAとAD9094のデータ用インターフェースとクロック回路の関係を示しました。

図3. DAQボードにおけるクロッキングとデータ・パス
図3. DAQボードにおけるクロッキングとデータ・パス

LIDARプラットフォームのAFEボードは、反射してきた光信号を受信し、それを電気信号に変換します。得られた信号は、DAQボードのADCに引き渡されます。このAFEボードは、おそらく設計全体の中で最も繊細な部分です。その理由は、このボードには以下のような処理を担う回路が実装されているからです。まず、このボードでは、16チャンネルから成るAPDのアレイにより、μAのレベルの電流信号が生成されます。その電流信号に対してコンディショニングを行う回路も実装されています。加えて、APDに給電するために、-300~-120Vという大きな電圧を扱う電源も存在します。APDからの16系統の電流出力は4個の「LTC6561」に引き渡されます。同ICは、低ノイズ/4チャンネルのトランスインピーダンス・アンプ(TIA)です。同ICが内蔵する4:1のマルチプレクサにより、出力チャンネルが選択されます。出力チャンネルは、AD9094が備える4つのチャンネルのうちいずれかの入力に接続されます。望ましいレベルのシグナル・インテグリティとチャンネル間の絶縁を達成するためには、TIAの入力部に対して細心の注意を払う必要があります。APDによって生成される微小な電流信号にノイズが追加されないようにし、システムのS/N比と対象物の検出率を最大限に高める必要があるからです。最大限の信号品質を得るために、AFEボードの設計には、以下のベスト・プラクティスが適用されています。

  • APD と TIA の間の配線長はできるだけ短くします。
  • 各 TIA の入力の間にはビアを追加し、最大限のチャンネル間絶縁を実現します。
  • シグナル・コンディショニング回路は、ボード上の電源回路からの干渉を受けないように配置します。

AFEボードは、もう1つ重要な機能を備えています。それは、APDの温度を測定し、温度の変化に起因する信号出力の変動を補償する機能です。APDでは、正常な動作を行っている場合でも温度が上昇するため、このような仕組みが必要になります。シグナル・チェーンとAPDのバイアス(APDの感度に直結します)のオフセットを制御できるようにするために、いくつかのノブを用意してあります。これにより、最大限のS/N比が得られるようにADCの入力範囲を最大化することができます。図4に、AFEボードのシグナル・チェーンをブロック図として示しました。

図4. AFEボードのシグナル・チェーン
図4. AFEボードのシグナル・チェーン

レーザー・ボードは、波長が905nmの光パルスを生成します(図5)。4つのレーザーを使用し、それらを同時に駆動してビームの強度を高めます。それにより、長い測定距離に対応します。レーザーの制御には、FPGAのキャリア・ボードによって生成されるPWM(Pulse Width Modulation)信号を使用します。この信号のパルス幅と周波数は、プログラムすることが可能です。また、同信号は、DAQボードと、DAQボードとレーザー・ボードを接続するリボン・ケーブルを経由して、FPGAからレーザー・ボードまで伝送されます。その際、ノイズの影響を受けにくくするために、PWM信号はFPGAによってLVDS(Low Voltage Differential Signaling)信号として生成されます。この信号は、ToF(Time of Flight)のリファレンスとしてADCの1つのチャンネルに帰還することができます。なお、レーザーへの給電には外部電源を使用します。この設計は、レーザー製品の国際規格であるIEC 60825-1:2014とIEC 60825-1:2007のクラス1に準拠しています。

図5. レーザー・ボードのシグナル・チェーン
図5. レーザー・ボードのシグナル・チェーン

AFEボードとレーザー・ボードは、いずれも長距離に対応する光学部品を必要とします。このシステムでは、レーザー・ダイオードに、水平視野を変えずに垂直視野を1°に狭める速軸コリメータ1を適用しています。また、受信側には、非球面レンズを採用しています。これらの手法により、60mの距離に対応できることが実証されています。

HDLベースのリファレンス・デザイン

LIDARプラットフォームには、HDLをベースとするリファレンス・デザインも含まれています。その部分は、ハードウェアへのプライマリ・インターフェースを構成しており、以下のような要素が実装されています。

  • JESD204B のリンクからシステムのメモリへのデータ転送機能
  • レーザーの駆動機能
  • ToF の正確な測定に向けて、レシーバーとトランスミッタの同期をとるために必要なすべてのロジック
  • ハードウェアにおける全構成要素への通信インターフェース

図6は、HDLで設計された部分を簡素化して示したものです。アナログ・デバイセズは、HDLベースのリファレンス・デザインでは汎用的なアーキテクチャを採用することにしています。そのため、スケーラブルで、別のFPGAキャリアにポーティングしやすいフレームワークが実現できています。AD9094からのデータを受信し、LIDARプラットフォーム上のすべてのデバイスを制御するために、アナログ・デバイセズのJESD204B対応フレームワーク2と複数のSPI/GPIOインターフェースを使用します。

図6. HDLで設計された部分のブロック図
図6. HDLで設計された部分のブロック図 

JESD204Bのリンクは、4本のレーン(L)を使用して4つのADC(M)をサポートするように構成されています。レーンのレートは10Gbps、ADC(AD9094)の分解能は8ビットです。デバイスのクロックは、高速トランシーバーのリファレンス・クロックと同じであり、250MHzに設定されています。これはDAQボードから供給されます。JESD204BのリンクはSubclass1モードで動作し、高速ADCとFPGAの間のデタミニスティックな遅延を保証します。

LIDARシステムの大きな課題の1つは、いかにしてパルスに関する様々な機能の同期をとり、高速ADCから受信した必要な量のデータだけを処理するかということです。この課題に対処するために、LIDARプラットフォームにおいてHDLで設計された部分には、レーザー用のパルスを生成し、TIAが内蔵するマルチプレクサを制御して、DMAにバックプレッシャを供給するために必要な機能を実現するIPが実装されています。それらの制御機能は、いずれも送信されるパルスと同期して動作します。そのため、A/D変換された未処理の高速データ・ストリームのすべてをシステム上に保存する必要はありません。このことから、システムの全体的なデータ・レートは非常に低く抑えられています。

ソフトウェアの特徴

LIDARプラットフォームで提供されるソフトウェア・スタックの最大の特徴は、フリーかつオープンソースであることです(図7)。つまり、ユーザには「ソフトウェアを実行、複製、配布、研究、変更、改善する自由」3が与えられます。この概念は、Linux®カーネルからユーザ・スペース・ツールまでのすべてに適用されています。

図7. ソフトウェア・スタックの構成
図7. ソフトウェア・スタックの構成

カーネルに実装されているソフトウェア・ドライバは、ハードウェア・コンポーネントを初期化します。それにより、すべての便利な機能を利用できるようになります。ソフトウェア・ドライバのほとんどは、Linux Industrial I/O(IIO)というサブシステムに含まれています4。いずれのドライバもプラットフォームに非依存なので、キャリアを含むハードウェアを変更(例えば、Xilinx®のFPGAからIntel®のFPGAへの移行)することがあっても、ドライバを変更する必要はありません。

IIOに対応するデバイスとのインターフェースとなるソフトウェアの開発を簡素化するために、アナログ・デバイセズはlibiioというライブラリを開発しました5。libiioは、ハードウェアの低レベルかつ詳細な情報を抽象化します。高度なプロジェクトでも利用可能なシンプルかつ完全なプログラミング・インターフェースを提供します。バックエンド(ローカル、ネットワーク、USB、シリアル)に対応する多様な機能が提供されているので、IIOに対応するデバイスをローカルで利用できます。また、異なるOS(Linux、Windows®、macOS®など)上で実行されるアプリケーションからリモートで使用することも可能です。

アナログ・デバイセズが開発したIIO対応のオシロスコープ・ソフトは、IIOに対応するデバイスとのインターフェースを実現するためにlibiioを使用しています(図8)。これは、システムの評価段階で利用可能なアプリケーションの一例です。このツールを使えば、異なるモード(時間領域、周波数領域、コンステレーション、相互相関など)におけるデータのキャプチャ/プロット、データの送信、検出デバイスの設定の表示/変更が可能です。

図8. IIO対応のオシロスコープ・ソフト。LIDARシステムで取得したデータを表示しています。
図8. IIO対応のオシロスコープ・ソフト。LIDARシステムで取得したデータを表示しています。

libiioは、低レベルのプログラミング・インターフェースを提供します。ただ、多くのユーザは次のようなプラットフォーム固有のAPIが用意されていることを望みます。すなわち、ドライバに対する低レベルの呼び出しを抽象化し、様々なシステム・パラメータにアクセスして設定したり、システムからのデータをストリーミングしたりするための機能セットが求められます。このようなニーズに応えるために、LIDARプラットフォームにも固有のAPIを用意しています。よく使われるフレームワークやプログラミング言語(C/C++、MATLAB®、Python®など)とのバインディングが可能なので6、ユーザはシステムとのインターフェースを構築するために使い慣れたプログラミング言語を使用することができます。また、自らの顧客に対して提案する価値となる、アルゴリズムやアプリケーションの開発に専念することが可能になります。

まとめ

どのようなシステムを設計する場合でも、アーキテクチャを確定させて設計に関する意思決定を行う際には、ある程度の曖昧さが残ります。それが原因で、システムを構築した後に正しい動作が得られなかったり、期待どおりの性能が得られなかったりすることがあります。その結果として、設計工程の繰り返しが必要になったり、開発コストが膨れ上がったり、製品を市場に投入するまでの期間が長くなったりすることもあるでしょう。本稿で取り上げたLIDARプラットフォームは、高い相互運用性が得られるように設計されたシステムをベースとして構築されています。このようなものを利用すれば、1回限りのカスタム設計をゼロから行う場合と比べて、上記のようなリスクを抑えつつ、全体的に高い予測可能性と信頼性を得ることが可能になります。リファレンス・デザイン(LIDARプラットフォーム)を出発点として計画を進めれば、新たに設計した製品をより早く市場に投入することができます。また、予期せぬ事態や問題に遭遇する確率が低下します。

システム設計者は、設計に関する意思決定が正しいことを実証し、リスクの緩和と信頼性の向上をもたらすリファレンス・プラットフォームを常に求めています。内容が明確で標準化されたリファレンスを活用してプロジェクトを開始することができれば、計画のプロセスを迅速に進められます。その計画を実行するには、共通の言語を使用して目標をすり合わせ、複数の機能の間の協調と関与を促し、複数の目標の間のトレードオフを評価しやすくする必要があります。本稿で紹介したLIDARプラットフォームは、システム・アーキテクチャを構築する初期の工程で大いに役立ちます。このプラットフォームは、オープンソースのソフトウェア/ハードウェアを提供することで、上述したニーズに応えることを目指して開発されました。そのハードウェア・プラットフォームとソフトウェア・スタックは、初期のシステム評価から、開発、最終製品への統合に至るまでの全工程を通して活用できます。LIDARプラットフォームに含まれている設計図や部品表などの情報は、要件を満たしつつ、システム設計を直ちに開始する上で非常に有用です。また、設計期間の短縮だけでなく、開発コストの削減にもつながる可能性があります。ハードウェアはモジュール方式で設計されているので、個々のアプリケーションの要件を満たすための様々な構成に対応できます。加えて、オープンソースのソフトウェア・スタックは、業界で標準的に使用されているフレームワークやプログラミング言語に基づいて構築されています。更に、アプリケーションのサンプルが付属しているので、スタックの低レベルな部分の開発に労力を注ぐことなく、製品に大きな価値を与えるアプリケーションの開発に専念することが可能になります。

参考資料

1Fast Axis Collimator Lenses(速軸コリメータ・レンズ)」FISBA、2019年

2JESD204 Interface Framework(JESD204のインターフェース用フレームワーク)」Analog Devices、2019年

3What Is Free Software?(フリー・ソフトウェアとは何なのか?)」Free Software Foundation, Inc.、2019年

4The Linux Driver Implementer's API Guide(Linuxドライバの実装者向けAPIガイド)」Analog Devices、2019年

5About libiio(libiioの概要)」Analog Devices、2019年

6PyADI-IIO: Analog Devices Python Interfaces for Hardware with Industrial I/O Drivers(PyADI-IIO:産業用I/Oドライバを搭載するハードウェア向けに、アナログ・デバイセズが提供するPythonインターフェース)」GitHub, Inc.、2020年

Michael Hennerich、Robin Getz「Free and Open-Source Software -- An Analog Devices Perspective(フリーのソフトウェアとオープンソースのソフトウェア――アナログ・デバイセズの見解)」Analog Dialogue、Vol. 44、No. 3、2010年3月

István Csomortáni

István Csomortáni

István Csomortániは、アナログ・デバイセズでFPGAベースのリファレンス設計の設計/開発を担当するFPGA設計エンジニアです。2012年にアナログ・デバイセズに入社して以来、高速コンバータやRFトランシーバーを対象とするシステム・レベルの様々なリファレンス設計のサポートに携わっています。産業用オートメーションとインフォマティクスに関する理学学士号と、IC設計に関する理学修士号を取得しています。

Dragos Bogdan

Dragos Bogdan

Dragos Bogdanは、アナログ・デバイセズのソフトウェア開発エンジニア・マネージャです。SDGグループで組み込みソフトウェアを担当するチームを統括しています。このチームの役割は、各種のプラットフォームやコンポーネントにオープンソースのBareMetalやLinuxのサポートを追加することです。2011年にソフトウェア・エンジニアとしてアナログ・デバイセズに入社。2010年~2011年にはPergamon RDで、印刷装置向けの組み込みハードウェア/ソフトウェアを開発していました。それ以前には、National InstrumentsとContinental Automotiveのインターンシップ・プログラムに参加した経験があります。ルーマニアのクルージュ・ナポカ工科大学で電子工学の学士号と、オートメーションに関する修士号を取得しています。

Cristian Orian

Cristian Orian

Cristian Orianは、アナログ・デバイセズのシステム設計エンジニアです。評価用プラットフォームのハードウェア開発を担当しており、電源の設計にも従事しました。電子工学の博士号を取得しています。

Andrei Cozma

Andrei Cozma

Andrei Cozma は、ADIのエンジニアリン グ・マネージャーとしてシステム・レベルのリファレンス設計の開発を 支援しています。産業オートメーションと情報科学に関する学士号に加 えて、電子工学と電気通信工学の博士号を取得しています。モーター制 御、産業オートメーション、ソフトウェア無線、電気通信など、さまざ まな分野にわたる設計/開発プロジェクトに従事した経験を持ちます。