インテリジェントセンサーの時代と巨大化するソフトウエア(2)

三田典玄(ITコンサルタント、元慶南大学校(韓国)教授)

●マルチプロセッサの時代

そういう意味で言えば、LiDARは「コンピュータつきセンサー」であり、センサーそのものではない、ということがわかるだろう。そして、LiDARの性能を決めるのは、センサーそのものの性能もさることながら、そのセンサーのデータを処理するソフトウエアである、ということになる。こういったコンピュータ付きセンサーのことを「インテリジェント型センサー」と呼び、現在は既に多くの「インテリジェント型センサー」が多くの場所で使われている。たとえば、スマートフォンなどの電池の温度を測る温度センサーは、小さな温度計測のための「熱電対」と、それをデジタルデータ化する「A/D(Analog/Digital)コンバーター」、そして、「コンピュータ」が一体になったものだ。小さなチップから出る温度データは、直接スマートフォンのメインコンピュータにデータを送る仕組みになっている。半導体や熱電対の温度センサーでは、その出力の電圧は温度に比例しないのが普通で、これまではアナログ回路でその特性を温度に対して直線的に電圧を出す「リニアライザ」という電気回路を使って、その電圧を読んだのだが、現在は温度に対して非線形な温度センサーから出るレアなデータをそのままデジタルに変換し、内部のソフトウエアによって、実温度の値を引き出す、という仕組みに変わった。この仕組によって、複雑なアナログ回路であるリニアライザは必要なくなり、温度のキャリブレーションも、ソフトウエアの数値のみを変更すれば良くなり、校正も非常に楽になったことは言うまでもない。こういった「小さなコンピュータ」も含めると、私達が普段使っているスマートフォンの中には「コンピュータ」と呼ばれるものは数十個入っている、ということになる。

●進化するLiDARのキーは「ソフトウエア」だ

2018年5月22日のニュースによれば、ドイツの有名自動車メーカーBMW社の自動運転車製品には、イスラエルのスタートアップ企業である「Innoviz」社のLiDARセンサーが選ばれるとのことだ。「Innoviz」社はスタートアップなので、これまで多くの実績があるわけではない。しかし、BMW社がこの企業を自動運転車の要となる「LiDAR」のメーカーに選んだのは、ひとえに、そのセンサーの内蔵するソフトウエアが非常にインテリジェンシーが高く、メインの航行コンピュータの負担を激減するからだ、とのことだ。つまり、センサーもインテリジェントが当たり前になり、その要となるソフトウエアで評価される時代になったのだ、ということであるのは、時代の流れを感じさせる出来事だ。既にセンサーは単体の時代ではなく、センサー自身が「システム」の時代である、ということでもある。要は「ソフトウエア」だ。考えて見れば当たり前のことだが、時代とともに電子機器が複雑化する流れは止めようもない。この流れでいけば、複雑化した電子機器は、それぞれが複雑な複数の電子機器の集合体となる他はない。「センサーのシステム化」は当たり前の流れであり、センサー個々の性能が十分に検討されると同時に、複数のセンサーを束ねてデータ処理をしてメインのコンピュータにデータを送るコンピュータのソフトウエアが非常に重要なものになるのは、時代の流れと言っていい。

●Uberの事故の原因とOSS(Open Source Software)

複雑な電子機器は、より複雑になるものの、自動車の航行システムなどでは、当然人命が直接関わる重要なものにもなるため、そのセンサーのみならずソフトウエアの重要性が増すのは言うまでもない。今回のUberの事故の調査結果については、続報が各所で出ているが、まとめると、LiDARセンサーから出たデータをメインの航行コンピュータが受け取ったが、航行プログラムがそれを処理しきれず、人の姿を認識できなかった、ということにあったという。つまり、簡単に言えばソフトウエアのバグである。ちなみに、現代のソフトウエアは1行1行のプログラムをしっかりと作る、という作り方はほとんどない。コンピュータの要となるOS(オペレーティングシステム)からして、現在はOSS(Open Source Software)と呼ばれる「無料のソフトウエア」の塊である。OSSはインターネットのどこかにあるものをダウンロードしてきて、それを複数組み合わせて目的のソフトウエアを作る。たとえば、最近話題の家庭などで使われる「スマートスピーカー」も、スマートフォンなども、OSSの組み合わせで出来ていることが普通だ。そして、そのOSSの1つを手に取ってみると、他のOSSのを組み合わせて作っている、というものさえ出てきていて、それが当たり前になっている。したがって、ソフトウエアの検証をする、と言っても、そのプログラムのコードの1行1行を開発者が把握している、ということはほとんどない。つまり、自分が作ったものではないから、そこでバグが発生すると、原因さえわからない。万事休す、ということも往々にして起きることになる。OSSに限らないが、ソフトウエアにはバグがつきものなので、バグはあるもの、と思ってシステムを設計しなければならない。