Autoware自動運転ソフトウェア

自動運転ソフトウェアの内部ではどのような処理がなされているのか、興味があったので読んでみました。日本のオープンソース自動運転ソフトである、autowareの紹介本です。autoware foundation については以前当サイトでも御紹介致しました。

Autoware Foundation 設立

まず、自動運転ソフトウェアの構造です。4層に分かれています。

アプリケーション層:Autoware(sensing,Localization,Detection,Planning,,,)

ミドルウェア層:ROS (Robot Operating System)

OS層:Linux(ubuntu16.04)

ハードウェア層:PC、GPS、カメラ、LiDAR

ROSは、ロボットを動かすために開発されている汎用の基本ソフトです。様々なセンサーやモーターを動かすことができます。有名なところでは、sony のペットロボットaibo でも使われているということです。自動運転車というのは一種のロボットなんですね。センサーで外界を認識し、3D地図を作成し、これをrosbagというデータ形式で保存して、シミュレーションを行うことができます。

https://aibo.sony.jp/

autowareの主要機能は、次のような機能となります。autoware が起動すると、これらの機能を実行し続けます。繰り返し繰り返し、次の動作をし続けるのです。

(a)高精度3次元地図の作成、更新・・・事前に計測された3次元データを5G通信で更新したり、自車LiDARセンサーで補正する。

(b)自己位置推定・・・GPS受信機、LiDARセンサ、ホイール回転センサーなど内部センサー(デッドレコニングdead reckoningひたすら数えるというような意味)の情報を用いて、3次元地図における自車の位置を推定し続ける。

(c)環境認識・・・ディープラーニング画像認識により物体検出とトラッキング(物体追尾)を行います。信号や、対向車や歩行者や障害物などを検出します。

(d)経路計画、経路追従・・・出発地からゴールまでの大まかな経路を作成し、車両周辺の具体的な軌道を決定し、軌道をトレースするための、ハンドルやアクセルを決定し車両に送信します。

(e)障害物回避・・・車両の運動状況を考慮して、最善の障害物回避行動を取ります。

我々人間が自動車を運転するときは無意識のうちに行っているのですが、自動運転のプログラムは、様々な機能を同時に継続し続けていることが分かります。意外にひとつひとつの動作は単純なものかもしれません。単純な動作の集合で、複雑な自動運転が実現されているのですね。

自動運転車を開発する側の人間ではなくても、「自動運転ソフトウェアがどのように動いているのか」を学ぶことは意義があると思います。それは、自動運転の実現性や普及スピードを予測するのに役立つでしょう。そして、それが社会全体にどのように影響し、自分自身の生活にどのように影響するのか考える材料を与えてくれるのです。

※参考記事

Robot Operating System (ROS)

コメントする

メールアドレスが公開されることはありません。