BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 自動運転車のソフトウェア開発にモデルを使用すること

自動運転車のソフトウェア開発にモデルを使用すること

原文(投稿日:2016/07/28)へのリンク

モデルは自動運転車のような自律システムのソフトウェア開発において重要な役割を担う。モデルは振る舞いのシミュレートや検証、システムの文書化、そしてコードを生成するために使用される。アリゾナ大学の電子とコンピュータエンジニアリング准教授であるJonathan Sprinkle氏はGOTO Amsterdam 2016 conferenceで自動運転車のソフトウェア開発について基調講演を行った。

Sprinkle氏は、自動運転車に搭載されるソフトウェアは最初モノリシックであったが、現在は必要な機能性を構築するためのコンポーネントを組み合わせた構成可能なソフトウェアに変化してきていると述べた。また、以前はレーダやGPS、カメラのようなセンサからの大量のデータはセンサ融合を用いて一つのマップに結合されていたが、現在では構成可能な知覚とする方向に変化してきている。このことは、もう自動車が周辺の全体環境が(地図のように)静的だと仮定しておらず、むしろ周辺の事象を認知し、新しい種類のセンサを加えることにより環境が変化していることを推測することができることを意味している。

構成可能なソフトウェアは、入力と出力を持ち、互いに影響を及ぼすプロセスを用いてモデル化することができる。このようなプロセスモデルは機能性に焦点を当てるため、非機能の振る舞いに対してはあまり有効ではないとSprinkle氏は主張する。

機能的な振る舞いが(かなり)テストしやすいのに対し、非機能の振る舞いを構成することは非常に難しいのです。そしてこの非機能の振る舞いは、人間とやりとりする複雑なサイバーフィジカルシステムが保障すべき事柄の一つでなのです。

自動運転車は計算、通信、制御を結合したサイバーフィジカルシステムであると考えられる。これは要素同士が相互作用するネットワークである。計算と通信に関する要件は他のシステムとの通信方法を変化させるための新しいコンポーネントをシステムに追加させる傾向があるため、この結合によりシステムの構築とテストが高価となり、加えて計算処理に必要な時間が増加する。

Sprinkle氏は、障害物との接触を避けるためにモデルにより予測された制御が、どう運転中の自動車の軌道を制御するかの例を示した。もし計算が遅すぎると、補正動作が障害物に接触する地点に間に合わず衝突してしまう。計算が高速に行える制度の低い単純なモデルを用いた場合、計算結果の正確性が十分でない場合に障害物に衝突してしまうかもしれない。補正を計算するために、軌道を計算して制御に干渉することを決定する時には計算時間を考えに入れ、使用可能なモデルにどれくらい誤差があるかを知っておく必要がある。これらの全てはリアルタイムに行われる必要がある。

現在自動運転車で用いられているセンサは非常に高価である。もっと安価なセンサが必要であるとSprinkle氏は述べた。これは必要なこと全てはできず、我々が望まない動作をも多く行う性質のセンサである。自動駐車や高速道路の運転中の適応クルーズに始まり、全ての状況において完全に自律運転を行うに至るまで、自動運転は連続性を持ちうると考えられる。

自律システムに制御を任せることを人々がどのように決断するのか、自律システムに用いるソフトウェアをどうモデリングするのか、モデリングを行うことでどのような利点があるのか、テストデータを用いてどう運転システムが適切に運転しているかを検証するのか、及び信頼性のあるコードを記述するための技法についての詳細を得るためにInfoQはSprincle氏にインタビューを行った。

InfoQ: 自動システムに制御を任せることについてお話しされたと思います。どのくらい、どの制御をそのようなシステムに任せるかを人々はどのように決定するのでしょうか?

Jonathan Sprinkle氏: 実際、多くの大衆は現在既に周囲にあるシステムにどれくらい制御を委譲しているかを実感していることはありませんが、これらのシステムは移動しているわけではありません。例えば、最近の暖房システムは居住空間をほとんど希望の設定通りに維持しています。私たちは設定を行いますが、管理はシステムが行っています。システムが移動し始めると、私たちが管理していない時に快適性を得るためには長時間のやりとりを必要とします。十分に使えるものではあるため、私たちの大部分は現在クルーズコントロールにより快適さを得ています。しかし、クルーズコントロールレベルから歩行者区域の中で手放しできるレベルになるまでには大きな跳躍が必要です。このことが(訳注: ギリシャ神話の一節を引用して)ゼウスの頭からアテナが出現するように、完全な形態のものが突如現れるのではなく、ほとんどの自動システムが特定のタスク向けに発表される理由です。

InfoQ: 自動システムで使用されるソフトウェアはどうやってモデリングするのでしょうか?

Sprincle氏: ソフトウェアのタスクを最も簡単に理解する方法には計画と制御が関連しています。計画では、目的地のような抽象度の高い目標は望ましい道筋のような別の抽象度の高い概念に変換され、さらに経路は望ましい速度と進路に変換されます。この途中で、(車線の変更、道路の混雑状況などの)局所的に探索される事象を考慮に入れながら、これらの概念は所望の速度により軌道に変換されます。これらの概念のためのソフトウェアモデルは、ある場合ではUMLの状態モデルにように解釈されます。例えば運転モード間を遷移する地点は局所的に探索された障害物と状態に基づいて決定されます。シーケンスモデルの役割も重要であり、各種センサから受信したメッセージが状態を遷移させるきっかけとなります。これらのソフトウェアコンポーネントは典型的にはイベント駆動であり、ユーザが所望の入力を提供してシステムが応答するか、センサが何かを検知しシステムが反応します。そのため、リアクティブモデルが最良のものを提供することに驚きはありません。

制御に関しては、ほとんどのソフトウェアは入力を出力に変換するコンポーネント(機能的なブロック)としてモデリングすることができます。これらのタスクは典型的には時間をきっかけととし、システムから新しいデータが供給されたかに関わらずコンポーネントは反応しなければなりません。これは全てのブロックはスケジュール可能であること、データが大量に流れ込んできてもシステムの動作を遅延させることがないことを保証するのに必要です。これは安全スイッチをも提供し、センサが機能しなくなってもコントローラがこの障害を検知しアクションを取ることが可能になります。ここで、ブロック図形式のモデル、例えばSimulinkに見られるようなモデルは所望のシステムの振る舞いを提供する素晴らしい手段です。

InfoQ: ソフトウェアモデリングの利点は何でしょうか?

Sprinkle氏: モデルには正確な入力に基づくことなくシステムの振る舞いを判断する素晴らしい能力があります。モデルはから発見されるデータを増幅しなくても正常に動作するか(もしくはデッドロックするか)の確認を行うことができ、さらにシステムコンポーネントのスケジューリングも行うこともできます。開発者にとっては、特に最終成果物を導出するのにコード生成を使用する場合、モデルは開発中にシステムのドキュメンテーションを行う唯一の方法を提供します。

InfoQ: ソフトウェアが適切に自動車を操作しているかどうかを検証するためにテストデータをどう用いているか、例を挙げて頂けますか?

Sprinkle氏: 素晴らしい検証の例は、(人間が運転しているときに)自律システムが期待されるものの各々、例えば所望の速度などに対して、合理的な決定が出来ているかを確認することです。確認という意味では、システムが制約に違反していないことを保証するために、我々は典型的には理論から導出される技術を用いてモデルが正しいことを検証し、出力されるシステムがモデルを反映していることを保証するためにコード生成を使用します。

InfoQ: 信頼性のあるコードを記述するために推奨される他の技術はあるでしょうか?

Sprinkle氏: (手で記述した場合の)コードの信頼性を保つためには厳格なプロセスと回帰データと期待値による厳格な確認が必要となります。これが人間が関与するシステム領域の関係者に、可能であればモデルからのコード合成を強く推奨する理由です。なぜなら数々のベストプラクティスにより、システムの全てのロジックを変更せず生成されたコード上の新規開発を行うことで、接続の喪失や評価の変更を行う場合の信頼性と堅牢性を担保することができるからです。もちろん、ロジックそのものが誤っていれば、たくさんの華麗なコードに助けられることはありませんが!

自動運転車の研究はアリゾナ大学で行われ、センサとハードウェアを取り付けたフォードのエスケープの実車が用いられている。ソフトウェアはドメイン特化モデリングを用いて実車に使用する前にシミュレーションが行われる。データは実験の間、及び実際の運転の中で収集される。このアプローチを通じて実車によりテストする前に設計と統合の問題を明らかにすることができる。以前のテストで収集されたデータは、以前行われた決定のような危険な決定が行われないように保障するために用いられる。研究結果はCAT Vehicleのウェブサイトで公開されている。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT