(57)【要約】安全性アーキテクチャシステムが、一態様において、通常システム機能を実施するための１次データを発生する１次ユニットと、代替システム機能を実施するための２次データを発生する２次ユニットと、１次ユニットに接続された１次安全ゲートであって、１次データの有効性の判断に応答して１次データを１次出力として提供する１次安全ゲートと、２次ユニットに接続された２次安全ゲートであって、２次データの有効性の判断に応答して２次データを２次出力として提供する２次安全ゲートと、を備える第１ステージを含む。システムはまた、第１ステージの１次安全ゲートおよび２次安全ゲートの両方に接続された出力セレクタを含み、出力セレクタは、１次データおよび２次データの有効性の判断に応答してシステム出力を提供する。
2019509541.tif 000002
【特許請求の範囲】
【請求項１】
ａ）通常システム機能を実施するための１次データを発生する１次ユニットと、
代替システム機能を実施するための２次データを発生する２次ユニットと、
１次ユニットに接続された１次安全ゲートであって、１次データの有効性の判断に応答して１次データを１次出力として提供する１次安全ゲートと、
２次ユニットに接続された２次安全ゲートであって、２次データの有効性の判断に応答して２次データを２次出力として提供する２次安全ゲートと、を備える第１ステージと、
ｂ）第１ステージの１次安全ゲートおよび２次安全ゲートの両方に接続された出力セレクタであって、１次データおよび２次データの有効性の判断に応答してシステム出力を提供する出力セレクタと、を含む安全性アーキテクチャシステム。
【請求項２】
１次安全ゲートは、２次安全ゲートによって提供される許容範囲に応答して、１次データの有効性を判断する請求項１記載のシステム。
【請求項３】
第２ステージを備える１つ以上の追加のステージをさらに含み、
第２ステージの第１データ出力は、第１ステージの１次ユニットへの入力を提供し、
第２ステージの第２データ出力は、第１ステージの２次ユニットへの入力を提供する請求項１記載のシステム。
【請求項４】
２次安全ゲートは、２次データが有効であるかを判断するために、２次データが予め定めた時間ウインドウ内に受信したかを判断する請求項１記載のシステム。
【請求項５】
２次安全ゲートは、２次データの有効性の判断に応答して、２次データを保存するバッファを含む請求項１記載のシステム。
【請求項６】
２次データの無効性の判断に応答して、前回保存した２次データを２次出力として提供する請求項１記載のシステム。
【請求項７】
システム出力は、車両を動作させるための制御データを含む請求項１記載のシステム。
【請求項８】
１つ以上のプロセッサによって、通常システム機能を実施するための１次データを発生するステップと、
１つ以上のプロセッサによって、代替システム機能を実施するための２次データを発生するステップと、
１つ以上のプロセッサによって、１次データの有効性の判断に応答して１次データを第１ステージの１次出力として提供するステップと、
１つ以上のプロセッサによって、２次データの有効性の判断に応答して２次データを第１ステージの２次出力として提供するステップと、
１つ以上のプロセッサによって、１次データおよび２次データの有効性の判断に応答してシステム出力を提供するステップと、を含む方法。
【請求項９】
１次データの有効性を判断することは、許容範囲に応答する、請求項８記載の方法。
【請求項１０】
１次データを発生することは、第２ステージの第１データ出力を介して１次入力を受信することを含み、
２次データを発生することは、第２ステージの第２データ出力を介して２次入力を受信することを含む、請求項８記載の方法。
【請求項１１】
２次データの有効性を判断することは、２次データが予め定めた時間ウインドウ内に発生したことを判断することを含む、請求項８記載の方法。
【請求項１２】
２次データの有効性の判断に応答して２次データを保存することをさらに含む、請求項８記載の方法。
【請求項１３】
２次データの無効性の判断に応答して、前回保存した２次データを第１ステージの第２出力として提供することをさらに含む、請求項８記載の方法。
【請求項１４】
システム出力は、車両を動作させるための制御データを含む、請求項８記載の方法。
【請求項１５】
装置を第１場所から第２場所へ移動するための１次経路データを発生する１次計画者ユニットと、
１次経路データに従って、装置の移動中に１つ以上の悪条件の存在中に装置を移動するための安全化経路データを発生する安全化計画者ユニットと、
１次計画者ユニットから１次経路データを受信し、１次経路データが、安全な方法で１次経路データに従って装置の移動を提供するかを判断し、１次経路データが、安全な方法で１次経路データに従って装置の移動を提供するという判断に応答して、１次経路データを、検証した１次経路出力として提供する１次計画者安全ゲートと、
安全化計画者ユニットから安全化経路データを受信し、安全化経路データが１つ以上の悪条件を回避するように装置の移動を提供するかを判断し、安全化経路データが１つ以上の悪条件を回避するように装置の移動を提供するという判断に応答して、安全化経路データを、検証した安全化経路出力として提供する安全化計画者安全ゲートと、
検証した１次経路出力を受信し、検証した１次経路出力に基づいて、装置の現在通過点から１次軌道データを発生する１次軌道遂行者ユニットと、
検証した安全化経路出力を受信し、検証した安全化経路出力に基づいて、装置の現在通過点から安全化軌道データを発生する安全化軌道遂行者ユニットと、
１次軌道遂行者ユニットから１次軌道データを受信し、１次軌道データが装置の現在状態と一致するかを判断し、１次軌道データが装置の現在状態と一致するという判断に応答して、１次軌道データを、検証した１次軌道出力として提供する１次軌道安全ゲートと、
安全化軌道遂行者ユニットから安全化軌道データを受信し、安全化軌道データが装置の現在状態と一致するかを判断し、安全化軌道データが装置の現在状態と一致するという判断に応答して、安全化軌道データを、検証した安全化軌道出力として提供する安全化軌道安全ゲートと、
検証した１次軌道出力を受信するために１次軌道遂行者ユニットに接続され、検証した安全化軌道出力を受信するために安全化軌道遂行者ユニットに接続され、制御データを提供するためにコントローラに接続された優先度セレクタと、を含み、
優先度セレクタは、制御データとして、検証した１次軌道出力を受信した場合は検証した１次軌道出力、検証した安全化軌道出力だけを受信した場合は検証した安全化軌道出力、または、検証した１次軌道出力も検証した安全化軌道出力も受信しない場合は既定値出力のうちの１つを提供する、システム。
【請求項１６】
安全化軌道遂行者ユニットは、最小加速度、最大加速度、最小減速度、最大減速度、最小曲率変化率および最大曲率変化率を特定する許容範囲を発生し、
１次軌道安全ゲートは、１次軌道データが許容範囲によって特定される値の範囲内にあるかを判断して、１次軌道データが装置の現在状態と一致するかを判断し、１次軌道データが許容範囲によって特定される値の範囲内にあるという判断に応答して、検証した１次軌道出力を提供する、請求項１５記載のシステム。
【請求項１７】
安全化軌道安全ゲートは、安全化軌道データが装置の現在状態と一致するかを判断するために、安全化軌道データが予め定めた時間ウインドウ内に受信したかを判断する、請求項１５記載のシステム。
【請求項１８】
安全化軌道安全ゲートは、安全化軌道データが装置の現在状態と一致するという判断に応答して、安全化軌道データを保存するバッファを含む、請求項１５記載のシステム。
【請求項１９】
安全化軌道安全ゲートは、安全化軌道データが装置の現在状態と一致しないという判断に応答して、前回保存した安全化軌道データにアクセスし、前回保存した安全化軌道データが装置の現在状態と一致するかを判断し、前回保存した安全化軌道データが装置の現在状態と一致するという判断に応答して、前回保存した安全化軌道データを、検証した安全化軌道出力として提供する、請求項１５記載のシステム。
【請求項２０】
装置は車両を含み、
１つ以上の悪条件は、１次経路データに従って装置の移動を禁止する条件、または、達成できない１次経路データに従って装置の移動を行う車両のコンポーネントの故障、の少なくとも１つを含む、請求項１５記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、仮米国特許出願第６２／３８７８０４号（２０１６年１月５日出願）について米国特許法１１９（ｅ）条の下で優先権の利益を請求するものであり、その全体内容は参照によりここに組み込まれる。
【０００２】
（連邦政府による資金提供を受けた研究および開発に関する陳述）
本発明は、米国陸軍認可番号Ｗ９００ＫＫ−１  ｌ−Ｃ−００２５の下で政府支援でなされている。政府は、本発明において一定の権利を有する。
【背景技術】
【０００３】
無人車両ソフトウェアの複雑さは、今日利用可能なソフトウェア安全工学手法を凌ぐ。ソフトウェア安全基準は、ソフトウェアを作成して認証する場合に採用されるプロセスを規定する。必要であるが、現在の基準によって規定されたプロセスは、自動運転内の自律ソフトウェアの安全性を確保するのに充分でないことがある。幾つかの場合、進化した自律性の方法、例えば、機械学習などは、従来のソフトウェア検査方法を用いて容易に認証できない。その結果、独立した実行時不変モニタが、安全臨界性をアーキテクチャの小さいサブセットにファイアウォール設定するために使用され、資源集約的ソフトウェア安全工学手法を複雑な自律ソフトウェアから遠ざけて、かなりより簡単なモニタリングコンポーネントに集中させる。しかし今までは、こうした手法が遠隔制御または遠隔操作される無人車両に対して最も上手く展開されている。今まで、実行時不変モニタが、計画および制御などの自立機能によって課せられる安全性リスクを軽減するために、どのように最も有効に使用できるかが明らかでなかった。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、任意の自律アルゴリズムを、厳しい安全要求を維持するシステムに組み込んだ自律走行車両のためのアーキテクチャを記載する。このアーキテクチャにおいて、自律コンポーネントが任意に悪意でも故障することが許容されるとともに、より高い完全性(integrity)（例えば、より高い安全完全性レベル）の「安全ゲート」コンポーネントは、自律手法の必要性なしで構築でき、安全要求を維持する。アーキテクチャステージのセットが、安全な軌道をマッピング、計画、実行するための再利用可能なアーキテクチャパターンに基づいて作成される。各ステージは、１次「実行者(doer)／点検者(checker)」ペアと、１次ペアが失敗した場合に劣化した動作モードを提供する任意の２次「実行者／点検者」ペアとを含む。本開示において、「実行する」とは、自律制御を実施することを意味し、「点検する」とは、制御信号が実行するのに安全であることを確認することを意味する。もし上手く適用した場合、この実行者／点検者原理は、信頼できるシステムを構築するための安全基準による採用のための適切なオプションになり得る。
実行者／点検者アーキテクチャパターンを用いた既知のアーキテクチャにおいて、もし実行者が不正を行った場合、点検者は全体機能を停止し（両方のモジュール）、フェイルサイレントシステムが得られる（即ち、いずれかの故障が沈黙コンポーネントで生ずる。時には、フェイルストップまたはフェイルセーフとしても知られている）。これは、故障作動システム挙動を要求することが一般的である（例えば、たとえ自律故障があった場合でも、航空機は飛び続ける必要がある。）自律システムに課題を課すことがある。本開示で記載したアーキテクチャは、１つまたは潜在的に複数のコンポーネント故障にも関わらず、持続した動作を確保するマルチチャネル手法を使用することによって、この懸念事項に対処している。
【０００５】
一態様において、安全性アーキテクチャシステムが、
通常システム機能を実施するための１次データを発生する１次ユニットと、
代替システム機能を実施するための２次データを発生する２次ユニットと、
１次ユニットに接続された１次安全ゲートであって、１次データの有効性の判断に応答して１次データを１次出力として提供する１次安全ゲートと、
２次ユニットに接続された２次安全ゲートであって、２次データの有効性の判断に応答して２次データを２次出力として提供する２次安全ゲートと、を備える第１ステージを含む。
システムはまた、第１ステージの１次安全ゲートおよび２次安全ゲートの両方に接続された出力セレクタを含み、出力セレクタは、１次データおよび２次データの有効性の判断に応答してシステム出力を提供する。
【０００６】
本開示の実装は、下記特徴の１つ以上を含むことができる。１次安全ゲートは、２次安全ゲートによって提供される許容範囲(permissive envelope)に応答して、１次データの有効性を判断してもよい。システムは、第２ステージを備える１つ以上の追加のステージを含んでもよく、第２ステージの第１データ出力は、第１ステージの１次ユニットへの入力を提供し、第２ステージの第２データ出力は、第１ステージの２次ユニットへの入力を提供する。２次安全ゲートは、２次データが有効であるかを判断するために、２次データが予め定めた時間ウインドウ内に受信したかを判断してもよい。２次安全ゲートは、２次データの有効性の判断に応答して、２次データを保存するバッファを含んでもよい。２次ユニットは、２次データの無効性の判断に応答して、前回保存した２次データを２次出力として提供してもよい。システム出力は、車両を動作させるための制御データを含んでもよい。
【０００７】
他の態様において、方法が、１つ以上のプロセッサによって、通常システム機能を実施するための１次データを発生するステップと、
１つ以上のプロセッサによって、代替システム機能を実施するための２次データを発生するステップと、
１つ以上のプロセッサによって、１次データの有効性の判断に応答して１次データを第１ステージの１次出力として提供するステップと、
１つ以上のプロセッサによって、２次データの有効性の判断に応答して２次データを第１ステージの２次出力として提供するステップと、
１つ以上のプロセッサによって、１次データおよび２次データの有効性の判断に応答してシステム出力を提供するステップと、を含む。
【０００８】
本開示の実装は、下記特徴の１つ以上を含むことができる。１次データの有効性を判断することは、許容範囲に応答してもよい。１次データを発生することは、第２ステージの第１データ出力を介して１次入力を受信することを含んでもよく、２次データを発生することは、第２ステージの第２データ出力を介して２次入力を受信することを含んでもよい。２次データの有効性を判断することは、２次データが予め定めた時間ウインドウ内に発生したことを判断することを含んでもよい。該方法は、２次データの有効性の判断に応答して２次データを保存することを含んでもよい。該方法は、２次データの無効性の判断に応答して、前回保存した２次データを第１ステージの第２出力として提供することを含んでもよい。システム出力は、車両を動作させるための制御データを含んでもよい。
【０００９】
さらに他の態様において、システムが、
装置を第１場所から第２場所へ移動するための１次経路データを発生する１次計画者(planner)ユニットと、
１次経路データに従って、装置の移動中に１つ以上の悪条件の存在中に装置を移動するための安全化(safing)経路データを発生する安全化計画者ユニットと、
１次計画者ユニットから１次経路データを受信し、１次経路データが、安全な方法で１次経路データに従って装置の移動を提供するかを判断し、１次経路データが、安全な方法で１次経路データに従って装置の移動を提供するという判断に応答して、１次経路データを、検証した１次経路出力として提供する１次計画者安全ゲートと、
安全化計画者ユニットから安全化経路データを受信し、安全化経路データが１つ以上の悪条件を回避するように装置の移動を提供するかを判断し、安全化経路データが１つ以上の悪条件を回避するように装置の移動を提供するという判断に応答して、安全化経路データを、検証した安全化経路出力として提供する安全化計画者安全ゲートと、
検証した１次経路出力を受信し、検証した１次経路出力に基づいて、装置の現在通過点(waypoint)から１次軌道データを発生する１次軌道遂行者(executor)ユニットと、
検証した安全化経路出力を受信し、検証した安全化経路出力に基づいて、装置の現在通過点から安全化軌道データを発生する安全化軌道遂行者ユニットと、
１次軌道遂行者ユニットから１次軌道データを受信し、１次軌道データが装置の現在状態と一致するかを判断し、１次軌道データが装置の現在状態と一致するという判断に応答して、１次軌道データを、検証した１次軌道出力として提供する１次軌道安全ゲートと、
安全化軌道遂行者ユニットから安全化軌道データを受信し、安全化軌道データが装置の現在状態と一致するかを判断し、安全化軌道データが装置の現在状態と一致するという判断に応答して、安全化軌道データを、検証した安全化軌道出力として提供する安全化軌道安全ゲートと、
検証した１次軌道出力を受信するために１次軌道遂行者ユニットに接続され、検証した安全化軌道出力を受信するために安全化軌道遂行者ユニットに接続され、制御データを提供するためにコントローラに接続された優先度セレクタと、を含み、
優先度セレクタは、制御データとして、検証した１次軌道出力を受信した場合は検証した１次軌道出力、検証した安全化軌道出力だけを受信した場合は検証した安全化軌道出力、または、検証した１次軌道出力も検証した安全化軌道出力も受信しない場合は既定値(default)出力のうちの１つを提供する。
【００１０】
本開示の実装は、下記特徴の１つ以上を含むことができる。安全化軌道遂行者ユニットは、最小加速度、最大加速度、最小減速度、最大減速度、最小曲率変化率および最大曲率変化率を特定する許容範囲を発生してもよく、１次軌道安全ゲートは、１次軌道データが許容範囲によって特定される値の範囲内にあるかを判断して、１次軌道データが装置の現在状態と一致するかを判断してもよく、１次軌道データが許容範囲によって特定される値の範囲内にあるという判断に応答して、検証した１次軌道出力を提供してもよい。安全化軌道安全ゲートは、安全化軌道データが装置の現在状態と一致するかを判断するために、安全化軌道データが予め定めた時間ウインドウ内に受信したかを判断してもよい。安全化軌道安全ゲートは、安全化軌道データが装置の現在状態と一致するという判断に応答して、安全化軌道データを保存するバッファを含んでもよい。安全化軌道安全ゲートは、安全化軌道データが装置の現在状態と一致しないという判断に応答して、前回保存した安全化軌道データにアクセスしてもよく、前回保存した安全化軌道データが装置の現在状態と一致するかを判断してもよく、前回保存した安全化軌道データが装置の現在状態と一致するという判断に応答して、前回保存した安全化軌道データを、検証した安全化軌道出力として提供してもよい。装置は車両を含んでもよく、１つ以上の悪条件は、１次経路データに従って装置の移動を禁止する条件、または、達成できない１次経路データに従って装置の移動を行う車両のコンポーネントの故障、の少なくとも１つを含んでもよい。
【００１１】
前述の全てまたは一部が、１つ以上の非一時的機械可読なストレージ媒体に保存され、１つ以上の処理デバイスで実行可能である命令を含むコンピュータプログラム製品として実装してもよい。前述の全てまたは一部が、装置、方法または、１つ以上の処理デバイスおよび、記述した機能を実装する実行可能命令を保存するメモリを含んでもよい電子システムとして実装してもよい。
【００１２】
本明細書で記載した主題は、下記の潜在的な利点の１つ以上を実現するように実装できる。複雑な自律アルゴリズムと信頼できるソフトウェアシステムとの間の隙間は、自律コンポーネントを高い信頼性のフレームワークに統合できるようにすることによって橋渡しできる。こうしたフレームワークは、個々のコンポーネント、例えば、自律コンポーネントが任意に悪い方法で故障した場合（例えば、偶然の障害および個々のコンポーネントによる悪意的危険な挙動の両方）でも、安全システム動作を保証できる。さらに、個々のコンポーネントが故障した場合でも故障作動システムレベルの挙動を提供してもよく、あるいは、危険コンポーネントレベルの挙動に起因して停止する必要がある。異種機能モジュールが、共通モード故障の機会を減少させるように設けられてもよく、劣化モード挙動が、例えば、１次機能が故障した場合に安全化ミッションを実施するように設けられてもよい。
【００１３】
１つ以上の実装の詳細は、添付図面および下記説明において記述される。特定の実装が記載されるとともに、以下に図示し記載したものとは異なる動作およびコンポーネントを含む他の実装が存在する。他の特徴、目的および利点は、下記説明、図面および請求項から明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】自律走行地上車両のための自律能力の極めて高いレベルのマルチステージ説明のフローチャートを示す。
【図２】安全重大(safety critical)基準に開発される完全機能自律ソフトウェアの必要性を回避するためのシステムのブロック図を示す。
【図３】グリッド式２値(binary)コストマップを示す。
【図４】安全自律アーキテクチャの２チャネルバージョンの一般化した例のブロック図を示す。
【図５】安全自律アーキテクチャのシステムインスタンス化の一例のブロック図を示す。
【図６】運動計画のための占有グリッドの一例の図を示す。
【図７】倒れる木に反応して運動計画のための占有グリッドの一例の図を示す。
【図８】自律装置安全性アーキテクチャシステムによって実施されるプロセスの一例のフローチャートを示す。
【発明を実施するための形態】
【００１５】
本開示は、任意に悪い故障モードを備えた自律コンポーネントを高い信頼性のフレームワークに統合できる汎用アーキテクチャを記載する。このアーキテクチャにおいて、「安全ゲート」コンポーネントが安全要求を維持するとともに、自律コンポーネントは故障するのが許容される。本開示は、自律走行地上車両（ＡＧＶ）の文脈においてアーキテクチャを記載するとともに、アーキテクチャは、制限なしで、完全自律走行地上車両、半自律走行地上車両、飛行体、および完全または部分的自律性を備えた他のロボットシステムを含む、任意の自立システムでの応用のために多目的である。
【００１６】
一例として、図１は、ＡＧＶにおいて確実に実装すべき能力を極めて高いレベルで要約したフローチャート１００である。１０２において、ＡＧＶは、周囲の世界のモデルを構築する。このモデルは、あるレベルにおいて、先導者車両、他のトラフィック、歩行者、道路上の物体などを含む安全性危険を検出するのに必要になる情報を記述している。モデルは、複数のセンサからのデータから構築してもよく、先行マップを使用してもよい。
【００１７】
１０４において、ＡＧＶは、安全要求を満たす世界を経由して軌道を計画する。これは、経路計画アルゴリズムを用いて達成してもよい。例えば、経路計画者が、障害物を回避し、安定性を維持する軌道を探索してもよい。１０６において、ＡＧＶは、この軌道を遂行する。これらの能力の各々が、ＡＧＶのソフトウェアアーキテクチャにおいて確実に実装すべきであり、その安全ケースでの要求によって支援すべきである。
【００１８】
自律挙動のこの分解は、センサ測定値をマップに融合させるモデル、これらのマップ上でゴールへの経路を見つける確率的ロードマップ計画者、経路を遂行する経路追跡アルゴリズムを含む複数のステージの１つにそれぞれ対処するアルゴリズムをもたらす。アーキテクチャは、制御出力での「簡単点検」を含むため、単一制御アルゴリズムの制限された範囲内で行われた場合、点検することはより簡単になる。こうして点検することは、自律システムの各ステージのための点検を作成することによって、より簡単にできる。
【００１９】
本開示は、下流ステージに送信される出力に関する保証を行うために、いずれかの処理ステージ内でインスタンス化できるアーキテクチャパターンを記載する。この部分(partem)は、自律機能の一般カテゴリーおよび他の類似のシステム構造および機能において適切であり、他のステージの動作を妨害することなく、異なる自律アルゴリズムを１つのステージに置換することを許容する。本アーキテクチャに係るシステムが、１つ以上のステージを有することができる。この部分の例として、本開示は、計画および遂行ステージにとって適切な手法を記載する。アーキテクチャパターンは、あまり信頼できないコンポーネント（例えば、既製のソフトウェアコンポーネント）およびより信頼できるコンポーネント（例えば、安全重大コンポーネント）の混合を有する非自律応用にさらに適用可能である。
【００２０】
信頼性パターンの適用
【００２１】
この手法は、証明された信頼性パターンを適用して、安全軌道を確実に計画し遂行することを含む。２つの異なるコンピュータ上で同じソフトウェアを実行させることによって冗長性を提供することは、ソフトウェア設計不良を軽減するのに有効でないことがある。理由は、ソフトウェアの両方のコピーが、同じソフトウェア欠陥から、こうした欠陥が活性化した場合、同時に故障するという予想があるためである。多様性ソフトウェア（マルチバージョンプログラミングとしても知られる）のこうした使用は、自律ソフトウェアの各コピーが安全重大であることを要求し、単一コピーと比べて、ソフトウェアを開発するコストを２倍（またはそれ以上）にする。自律ソフトウェアでは、必要な機能を備えた高い完全性のソフトウェアの１つのコピーを作成する方法が知られていないことがあり、こうした手法を実行不可能にすることがある。
【００２２】
図２は、安全重大基準に開発される完全機能自律ソフトウェアの必要性を回避するためのシステム２００のブロック図を示す。図２に示すシステム２００は、シンプレックス(Simplex)アーキテクチャとして知られている。シンプレックスアーキテクチャは、２つの区別できる制御コンポーネント、即ち、複合(Complex)サブシステム２０２および安全性サブシステム２０４を含む。複合サブシステム２０２は、充分なレベルの完全性に開発するのが困難である洗練された制御アルゴリズムでもよい。安全性サブシステム２０４は、複合サブシステム２０２と同様で簡素化された制御特徴を提供できるが、高い完全性実装を用いてそのようにできる。高い完全性実装はかなり簡単でもよく、従って複合実装よりもあまり最適化されていない。安全性サブシステム２０４は、もし複合サブシステム２０２が障害を受けた場合、信頼できるフォールバック能力でもよい。シンプレックスアーキテクチャにおいて、決定ロジックは、もしその出力が危険なシステム状態に導く場合、プラント２０６から複合サブシステム２０２を切断する責任がある。危険な条件が予測される場合、安全性サブシステム２０４は、事故を回避する制御に入る。
【００２３】
シンプレックスアーキテクチャを適正に実装することは、同じアーキテクチャに性能および信頼性の両方を提供でき、これはかなり有益である。名目上の性能は、複合高性能制御サブシステム２０２によって決定され、最悪ケースの性能は安全性サブシステム２０４によって境界付けされる。高コストの検証および確証の範囲は、安全性サブシステム２０４および決定ロジック２０８に注目され、これらは、もし適切に設計した場合、比較的簡単なコンポーネントである。しかしながら、これらの利益を達成することは、慎重な設計解析および要求への厳しい順守を必要とするであろう。シンプレックスアーキテクチャにおいて、２つの実行者（安全性サブシステム２０４、複合サブシステム２０２）および１つの点検者（決定ロジック２０８）が存在する。
【００２４】
シンプレックスアーキテクチャは、ＡＧＶのための信頼できる軌道計画および遂行でのある実用性を有する。ＡＧＶにおいて、複合サブシステム２０２は、従来のロボット経路計画アルゴリズムを使用できる。安全性サブシステム２０４は、安全停止制御サブシステム（例えば、制御された方法で車両を停車場まで運ぶ）にできる。しかしながら、設計課題は残る。
【００２５】
残る設計課題は、安全性サブシステム２０４の要求を満たす「安全性計画者」が、実行可能に実装できるかを判断することを含む。先導者(leader)／追従者(follower)車列計画者のための一例は、緊急操作ライブラリを使用し、安全軌道が常に利用可能であることを保証する計画システムを含む。
【００２６】
他の残りの設計課題は、安全性サブシステム２０４（例えば、決定ロジック２０８）を有効にする時期を決定できるロジックを設計することを含む。これは挑戦的であることがあり、理由は、複合サブシステム２０２によって保証される軌道の安全性を評価する能力を要求するためである。さらに、決定ロジック２０８は、高い完全性コンポーネントにすべきであり、これは、車両の安全性サブシステム制御を有効／無効にする能力を有するためである。
【００２７】
決定ロジック２０８は、複合サブシステム２０２によって作成される軌道を評価する「軌道評価」コンポーネントを含む。もし該コンポーネントが、ある軌道が危険であると判断した場合、それは複合サブシステム２０２の出力を禁止する。コンポーネントは、複合サブシステム２０２を安全ゲートアーキテクチャ内に包んで、こうした判断に対して沈黙して故障させる。こうしたコンポーネントを実装する実現可能性は、軌道評価アルゴリズムが、確証することが実現可能な方法で実装できるかを含む。これを行うには、評価が計画より簡単であるという概念が利用できる。経路計画は、車両の制御空間についての探索問題であり、これは大型になることがあり、実用的な解決法を見つけるために、複雑でランダム化したアルゴリズムを採用する必要がある。比較すると、この制御空間を通じて個々の経路の安全性を評価することは、（ｉ）命令された軌道をグリッド式２値コストマップ（図３にマップ３００として示す）において整列させ、（ｉｉ）コストマップセルを経由して経路（例えば、経路３０２）の横断をシミュレーションし、（ｉｉｉ）もしセルが横断不可能である場合（例えば、図３のマップ３００の暗いセル３０４と交差する）、その経路を拒絶し、それ以外はそれを受け入れる、という比較的簡単な実行である。
【００２８】
この議論のため、この世界モデルは、全ての障害物を表現するのに充分な情報を含むことが想定される。モデル表現の一例がコストマップを含み、これは、車両の前方において空間の所定の個別のユニットを横断する「コスト」をコード化する規則的なグリッドである。簡単なコスト計量が、名目上の地面の上方にあるセル内の物体の高さでもよく、これは、路上ナビゲーションに関連しており、理由は、ほぼ平坦な道路表面が、物体高さを、横断可能性の直観的なコンポーネントにするためである。極めて複雑な表面を走行する場合、例えば、攻撃的なオフロードナビゲーションでは、「名目上の地面」の概念はあまり役に立たなくなり、車両運動のフォワードシミュレーションが、有効スロープなど、外見的に真直ぐな横断可能性特性を評価するために使用できる。しかしながら、緩いオンロード条件でも、センサ較正など、誤差源が簡単な横断可能性解析を混乱させることがある。
【００２９】
もし複合サブシステム２０２が沈黙して故障した場合（それが危険な軌道を発生した場合、複合サブシステム２０２を切断する決定ロジック２０８を介して）、決定ロジック２０８への要求は簡素化され、もしコマンドが複合サブシステム２０２から所定の時間ウインドウ以内に受信しない場合、安全性サブシステム２０４は車両の制御に入る。安全性計画者軌道を安全かつ停止状態で終端させることは、軌道が、制限された計画水平線内で発生することを確保できる。計画水平線を制限することによって、安全軌道発生がコンピュータ上で実現可能であり、車両にとって局所的な既知の構成空間（ＣＳＰＡＣＥ）領域内に全体的に存在でき、センサ範囲を超えて障害物に遭遇する確率を排除するとともに、緊急軌道制御を実行する。安全性計画者軌道を停止状態で終端させることは、安全性操作を実行した後、車両が不可避の衝突状態（制御動作が将来に行われたとしても、衝突が生ずることになる状態）で終わる状況を回避することが必要になる。
【００３０】
例えば、安全性操作が、木を通って避けるように発生し、操作の最後に車両がその元の速度に戻ったと仮定する。安全性操作は木を上手く回避できたが、操作の最後の状態は、車両を、時間内に停止させて、操作が開始したときに車両の局所センサ半径の外側にあった岩を回避できなくする。ゼロ速度で終わらない軌道が、車両が以前に未知である岩と衝突することをもたらすことがある。
【００３１】
シンプレックスアーキテクチャにおいて、決定ロジック２０８は、少なくとも１つの故障作動コンポーネントを有し、理由は、複合サブシステム２０２は、最適化された挙動を提供するが、信頼できないためである。決定ロジック２０８は、動作を安全性サブシステム２０４に切り替えることをいつでも用意している。決定ロジック２０８は、安全性サブシステム２０４が危険であるかを検出できないため、安全性サブシステム２０４（「実行者」であって「点検者」ではない）は、高い完全性の故障作動であり、決定ロジック２０８は、「安全な」挙動を伴う故障作動またはフェイルセーフにでき、安全性サブシステム２０４への切替えをもたらす。これに対して本開示で記載したアーキテクチャは、実行者のいずれもが故障作動であることを要求せず、あるいは、実行者のいずれもが高い完全性であることを要求しない。
【００３２】
アーキテクチャ概略
【００３３】
本開示で記載した安全性アーキテクチャは、再利用可能な設計部分を含み、任意のロボットまたは他の自律または半自律システム、そして、高い信頼性および低い信頼性のコンポーネントの組立てとして構築する必要がある任意のシステムの安全制御のための基礎として機能できる。そのパターンは、とりわけ、いずれの故障作動コンポーネントブロックを必要とせず、いずれの高い完全性実行者自律性ブロックを必要とせず、故障作動システムレベル挙動を提供する。制御システム内の物体のクラス間での関係性を定義することによって、安全車両ナビゲーションの一般的問題、およびより大きな一般自律システムの文脈においてこれらの概念を実装するのに必要な情報要求および依存性が理解できる。この形式化された構造は、目前の問題のより大きな理解を促進するだけでなく、要求の一義的な通信、モジュール分割法(modularization)による改善された保全性などの利益をも提供する。
【００３４】
図４は、安全自律アーキテクチャ４００の２チャネルバージョンの一般化した例を示すブロック図である。アーキテクチャ４００の左側部分は、１次ユニット４０２と、１次安全ゲート４０４と、安全化ユニット４０６と、安全化安全ゲートおよびバッファ４０８とを含む。アーキテクチャ４００の左側部分は、パイプライン式で１回以上繰り返してもよい。アーキテクチャ４００の右側部分は、最終駆動解決手法のための任意の優先度セレクタ４１０を含む。
【００３５】
アーキテクチャ４００は、システムのレイヤ(layers)を経由して共に連鎖した「１次」チャネルおよび「安全化」チャネルを含み、あるポイントまで、単一コマンド出力、例えば、モータ制御コマンドが提供される。優先度セレクタ４１０は、チャネル間を仲裁する。もし出力が１次チャネルおよび安全化チャネルから利用可能である場合、優先度セレクタ４１０は、１次チャネル出力を送信する。もし安全化チャネル出力だけが利用可能である場合、優先度セレクタ４１０は、安全化チャネル出力を送信する。いずれか他の場合、優先度セレクタ４１０は、車両を停車場まで運び、例えば、ブレーキを押してスロットルを切る、または航空機のパラシュートを展開する、ルーレベルバックアップ手段である運動停止（「ＭＳＴＯＰ」）コマンドを送信する。
【００３６】
アーキテクチャ４００の利益が、両方のチャネル（即ち、実行者）に出力を発生するために使用されるユニット４０２，４０６が低い完全性を有してもよいことから由来し、実際、それぞれ任意に故障することがある。もし未処理障害が、１次ユニット４０２または安全化ユニット４０６のいずれかに生じた場合、適切にインスタンス化されたアーキテクチャが作動的なままであり、安全性要求を満たすようになる。もし両方の１次ユニットおよび２次ユニットが故障した場合、システムは、安全なままであり、下流ステージは、システム回復（例えば、ＭＳＴＯＰを実行することによって）を実施する任務を負うようになる。これは、実行者ユニットから安全性を認証または完全に保証にする必要性を除去する。換言すると、１次ユニット４０２も安全化ユニット４０６も安全重大でなく、理由は、安全性が対応する点検者によって保証されるためである。しかしながら、もし１次ユニットまたは安全化ユニットが信頼できない場合、車両は、利用可能性問題に悩まされ、アーキテクチャ４００は、車両を停車場まで運び、または、望ましいものより頻繁に安全化チャネルに切替えることによって性能を劣化させることに留意することが重要である。
【００３７】
アーキテクチャ４００での２つの「安全ゲート」コンポーネント４０４，４０８は、１次ユニット４０２および安全化ユニット４０６の出力を点検し、もしこれらの出力が危険である場合、沈黙して故障する責任がある。これらは高い完全性のコンポーネントであるが、沈黙して故障してもよい。特定の応用のための安全ゲートのインスタンス化は、慎重な設計作業を要求することがあるが、しかしながら、最も予期されるケースでは、これは、１次ユニット４０２および安全化ユニット４０６を高いレベルの厳密さおよび完全性に開発するよりかなり少ない資源（特に検証および確証の観点で）を採用するようになる。こうしてこの手法は、実行者での完全性要求を緩和し、フェイルストップ点検者の使用を許容し、故障作動全体アーキテクチャを提供する。
【００３８】
アーキテクチャ４００は、より厳しい要求を優先度セレクタ４１０に行う。優先度セレクタ４１０は、故障の存在中に動作を続けて、１次コマンドまたは安全化コマンドのいずれかを配給する必要がある。優先度セレクタ４１０は、この故障がＭＳＴＯＰを起動している限り、沈黙して故障してもよい。このコンポーネントは、安全ゲートより簡単であり、要求される高いレベルの完全性を達成するために、その検証に多大な努力が消費できる。
【００３９】
幾つかの実装において、アーキテクチャ４００は、時間起動(triggered)される。時間起動アーキテクチャにおいて、故障はタイムアウトにより検出される。下流コンポーネントは、ある複数のメッセージ期間を通過した「古い(stale)」値を使用することを許容されない（過渡的な故障に対して頑丈になる）。例外は、安全化計画をバッファに格納できる安全化安全ゲートおよびバッファ４０８であり、バッファ格納された計画を再点検して、これが全ての時間ステップで受入れ可能であることを見る。イベント起動手法も可能であり、これに限定されないが、イベントの周期的発生による時間起動手法をエミュレートするイベント起動手法を含む。
【００４０】
アーキテクチャ４００の任意の第３チャネルが、オーバーレイ(overlay)ユニット４１２を含むオーバーレイと称され、他の機器を安全性アーキテクチャ４００の中に組み込み可能である。これは、例えば、試験場所での人員の位置を報告する一時的な「地上検証データ(ground truth)」コンポーネントを含んでもよく、もしこれらが接近し過ぎる場合、アーキテクチャ４００は車両を停止できる。これらのコンポーネントは、適切なセンサ、例えば、ラジオビーコンセンサを含んでもよい。それはまた、ＭＳＴＯＰコマンドを無線で送信する他の機器（おそらく一時的）を含んでもよい。
【００４１】
図５は、安全自律アーキテクチャのシステムインスタンス化５００の一例を示すブロック図である。アーキテクチャは、２つの制御ステージ、即ち、計画ステージ５０４および軌道遂行ステージ５０６についてインスタンス化されている。これらの２つのステージの各々は、１次チャネルおよび安全化チャネルを含む。車両制御ステージ５０８において、優先度セレクタ４１０は、これらのチャネル間を切替える責任がある。アーキテクチャは、他の機器、例えば、計画者オーバーレイ５３４および軌道オーバーレイ５３６をアーキテクチャの中に組み込み可能にするオーバーレイチャネルを任意に含んでもよい。アーキテクチャはまた、計画ステージ５０４が動作するマップを発生する認知ステージ５０２への信頼性概念を含んでもよい。幾つかのＡＧＶ関連の実装において、コンポーネント間の通信は、文献（Quigley, Morgan, et al., "ROS: an open-source Robot Operating System," ICRA workshop on open source software, Vol. 3, No. 3.2, 2009）に記載されたようなロボットオペレーティングシステム（ＲＯＳ）を用いて達成され、この文献の全体内容は参照によりここに組み込まれる。他の通信ネットワークは、コントローラエリアネットワーク(Controller Area Networks)（ＩＳＯ  １１８９８）、時間起動イーサネット（登録商標）(Time Triggered Ethernet）（ＳＡＥ  ＡＳ６８０２）、フレックスレイ(FlexRay)（ＩＳＯ  １７４５８）を含み、該アーキテクチャを応用の詳細で統合するために使用できる。
【００４２】
１次計画者
【００４３】
１次計画者５１２は、地上車両が通常動作条件下で追従する１次軌道を計画する。作成される各軌道は、衝突フリーであり、車両の運動学的境界内にある。この表現は、操縦、加速、ブレーキ操作、曲率に対する種々の現実的な制限に拡張可能であり、そのため表現されたフレームワークが、追加の動的複雑さとともに将来において評価できる。このアーキテクチャの幾つかのＡＧＶ関連の実装は、ロボットオペレーティングシステム（ＲＯＳ）を使用するオープンモーションプランニングライブラリ(Open Motion Planning Library)（ＯＭＰＬ）を使用する。ＯＭＰＬは、文献（Sucan et al, "The Open Motion Planning Library" (PDF), IEEE Robotics & Automation Magazine (December 2011)）に記載されており、この文献の全体内容は参照によりここに組み込まれる。ＯＭＰＬでは、ＲＲＴ＊が計画アルゴリズムとして使用される。ＲＲＴ＊は、文献（LaValle, Steven M., "Rapidly-exploring random trees: A new tool for path planning," Technical Report 
(Computer Science Department, Iowa State University) (TR 98-11) (October 1998)）に記載されており、この文献の全体内容は参照によりここに組み込まれる。１次計画者５１２は、認知ステージ５０２から占有グリッドを受信し、このグリッドマップを経由した経路を計画する。ＯＭＰＬモーションプランニングも無人航空機応用のために動作可能である。
【００４４】
１次計画者での任意の故障の取扱い
【００４５】
１次計画者５１２の出力は、幾つかのＡＧＶ関連の実装において一連の通過点からなる軌道であり、１次計画者安全ゲート（ＰＰＳＧ）５１４によって点検される。ＰＰＳＧ５１４は、応用特定点検を用いて１次計画者５１２の出力が有効であるかを点検し、出力が、安全化計画者安全ゲート（ＳＰＳＧ）５１８によって提供される許容範囲（ＰＥ）内にあるかをさらに点検する。もし１次計画者５１２の出力がこれらの点検のいずれも失敗した場合、ＰＰＳＧ５１４は、単に出力を抑制する。アーキテクチャ定義に基づいて、これらの１次チャネル出力を抑制することによって後のステージが応答し、最終的に優先度セレクタ４１０は制御を安全化チャネルに切替える。
【００４６】
ＡＧＶ実装における１次計画者
【００４７】
動作シナリオでのスタートおよびゴールの目的地は、ミッション(mission)記述によって定義されるとともに、幾つかのＡＧＶ関連の実装構成は、ＳＥ２状態空間でのゴールを定義し、これは、２Ｄ世界でのその（ｘ，ｙ）場所（占有グリッド、そしてその機首方位（Θ）によって特定される）に従って各可能な車両状態を表現する。ＡＧＶ関連の実装での１次計画者５１２は、２つのポイント間で運動学的に実現可能な経路を発生し、経路は、車のような地上車両によって実際に現実的に追従できる。
【００４８】
いずれか発生した経路の運動学的に実現可能性は重大になることがあり、理由は、車両制御５３２からの最終出力が、幾何学的経路または軌道でなく、実際の地上車両に適用でき、それを解答軌道に追従させる一連の制御であるためである。この問題を解決するために、システム５００は、問題を２つの別個の局面(phase)、即ち、軌道発生（車両によって追従される経路を作成する）および制御発生（車両に発生した軌道を追従させる一連の制御を発生する）に分割する。
【００４９】
軌道発生局面では、作成された経路は、衝突制約（占有グリッドによって課される）または運動学的制約（車両モデルによって課される）に違反することなく、車両をスタートからゴールに遷移させることが可能である。発生局面においてこれらの制約を検討することによって、制御は、車両について発生し、解答軌道に追従することが可能である。制御を発生するには、「デュビンの車(Dubin's car)」と称される状態空間実装が使用され、これは、車両が、路上車両にとって可能な道で移動できるようにする、車またはトラックの簡単な運動学的モデルである。このモデルは、車両の移動を３つの可能な道、即ち、右回り円弧、左周り円弧、直進に制限する。一連のこれらの運動基本命令(primitive)を用いて軌道を構築することによって、これらの制約を満たす経路と仮定すると（回転半径が物理的車両と一致すると想定する）、制御発生局面の際に軌道に追従する制御が発生する。占有グリッド式有効性点検者およびデュビン運動制約を用いてＯＭＰＬをインスタンス化することによって、実現可能であり、衝突フリーである軌道が発生できる。
【００５０】
図６は、ＯＭＰＬを用いて、デュビンの車運動モデルで運動計画のための占有グリッド６００の一例を示す図である。図６において、車両６０２が、その現在場所６０６から所望のゴール状態６０４に到達することを試みる。車両６０２は、障害物６０８を回避しながら、所望のゴール状態６０４に到達しようとする。障害物６０８の存在は、占有グリッド６００の関連四角を「占有済」としてマーク付与し、車両６０２がこれらの四角を通過するのを防止している。図６に示すように、ゴール場所６０４が障害物６０８の右側により近くても、車両６０２は、障害物６０８において、右の代わりに左周りする。もし車両６０２が右に回ってから左周りしたとすると、間違いの方向に面し、ゴールによって記述された所望の機首方位を満たさない。障害物６０８において右に行った後に回転することは、最初に左に行くことよりコストが多くなるため、車両６０２は、左行きの軌道６１０を計画する。解答軌道６１０は、障害物６０８の占有四角に沿って近くにカットできず、理由は、車両６０２への回転半径の制限は、厳しすぎる円弧の構築を防止するためである。この回転半径は、設定可能なパラメータであるため、基本的な軌道発生方法は、変化する車両タイプを用いて検査できる。前述したように、ＯＭＰＬプランニングライブラリは、運動計画を作成するために使用できる。ＯＭＰＬは、特注の「有効性点検者」とともにＯＭＰＬ計画者クラスを初期化するために使用できるデュビンの状態空間表現を含む。
【００５１】
安全化計画者
【００５２】
図５を再び参照して、既存の世界および車両状態を仮定すると、ＡＧＶ関連の実装における安全化計画者５１６は、問題が発生した場合、車両が素早くかつ安全に停止できるように設計された実現可能な軌道を作成する。安全化計画者５１６は、車両のための緊急オプションを提供し、車両が該世界を通って移動し、動的または静的な障害物に遭遇すると、計画を継続的に再評価する。
【００５３】
安全化計画者における任意故障の取り扱い
【００５４】
上記要求は、安全化計画者５１６のために設計されるが、システムは、安全化計画者５１６に依存しないで、車両安全性を保証する。安全化計画者５１６は、１次計画者５１２のように、「任意故障」ブロックとしてマーク付与される。システムは、下記の特徴を用いてこれを達成する。
１．安全化計画者５１６の出力は、安全化計画者安全ゲート５１８によって評価され、これは、例えば、もし安全化計画が障害物と衝突する場合、その出力を抑制する。
２．安全化計画者５１６はまた、１次計画者５１２が出力し点検する（詳細には後述する）許容範囲（ＰＥ）を作成する。安全化計画者安全ゲート５１４はまた、この範囲自体が適切であるかを評価する。
３．１次計画者５１２が故障した後、安全化計画者５１６は制御に入るが、安全化計画者安全ゲート５１８は、安全化計画者５１６に車両を停車場に運ぶための、制限された時間ウインドウを付与する。該時間ウインドウが経過した後、安全化計画者安全ゲート５１８は、その出力を抑制する。１次チャネルまたは安全化チャネルのいずれかからの出力の欠如に応答して、優先度セレクタ４１０はＭＳＴＯＰを起動する。
【００５５】
ＡＶＧ実装における安全化計画者
【００５６】
１次計画者５１２に関して上述したように、地上車両がその所望の計画経路を達成することができない幾つかの悪い状況または条件が存在することがある。これは、無効ミッション仕様、計画経路を達成不能にするハードウェア故障、または種々の他の動的状況、例えば、元の計画で考慮されていない、障害物、交通遅延、工事遅延などに起因することがある。これらのイベント時に安全な車両運用を提供するには、システムは、車両をその現在の状態から、車両が停止する安全なゴール状態に仕向ける経路を作成するための別個の計画コンポーネント（例えば、安全化計画者５１６）を含む。車両を停車場に来させることによって、故障した車両は、無限の期間についてそのゴール状態に安全に留まる。航空機のための類似の運用が最近接着地エリアへの転用であろう。安全化計画者５１６のゴールは停車場に安全に来ることであるため、安全化計画者５１６は、安全な停止経路を見つけるために、複数の異なるゴール構成を検討する。安全化計画者５１６は、安全な停止経路を下記のように見つける。
１．最大ブレーキ操作を適用する軌道を計画し、車両を道路の側にある停車場に運ぶ。
２．もし車両が道路の側に沿って停止できない場合、元の軌道からの最大偏差量で安全なゴール状態を達成しようと試みる。
３．もし車両が安全軌道を達成できない場合、許容される機首方位偏差量を増加させ、再計画を試みる。
４．最大操縦角に到達するまで繰り返し、または安全軌道が発生されている。
【００５７】
安全化計画者５１６は、潜在的な故障のために常に準備すべきであるため、毎回、マップまたは車両状態情報が更新され、安全化計画者５１６は、安全停止軌道のための新しい探索を開始する。幾つかのＡＧＶ実装において、安全化計画者５１６は、ロボットオペレーティングシステム（ＲＯＳ）を用いて再び達成される、固定された軌道セットに渡ってこの探索を実施する。安全化計画者５１６は、認知ステージ５０２から占有グリッドを受信し、このグリッドマップを経由して経路を計画する。もし安全化計画者５１６が新しい安全計画を発生できない場合、それは、システムに、最後に発生した安全軌道を開始するように信号を送る。理由は、緊急オプションなしで走行すること本質的に危険であるためである。
【００５８】
図７は、倒れる木に反応して運動計画のための占有グリッド７００の一例を示す図である。図６での障害物６０８が大きな木であることを想定する。図６に示すように軌道６１０を生成した後、木は、意図した経路に倒れる。この変化は、図７のグリッド７００に示すマップの状態を更新し、よって安全化計画者５１６（図５）を起動し、３つの緊急軌道（ｔ０，ｔ１，ｔ２）を発生する。安全停止軌道ｔ０は、障害物７０８と衝突しないため、軌道ｔ０が選択され、直ぐに適用される。しかしながら、もし車両７０２が大きすぎて、軌道ｔ０について計算した時間内に停止できない場合、軌道ｔ２が障害物７０８によって無効にされ、よって検討されない。この状況において、車両７０２は、代わりに安全代替軌道ｔ１を選択する。車両７０２は、既に左回りを開始していたためであり、右よりも左周りに、障害物７０８から遠いより鋭い回転を構築することが可能であろう。こうして地上車両７０２の状態の検討が、これらの安全経路の発生において重要になることがある。
【００５９】
許容範囲
【００６０】
図５を再び参照して、許容範囲ＰＥ１が、もし車両が１次計画者５１２の出力を実行するのを開始した場合、安全化計画者５１６の出力がなお達成可能であることを確認するために使用される。もし故障が発生した場合、システム５００は１次出力から安全化出力に切替えるため、これは重要である。ＰＥ１は、安全計画とともに、安全化計画者５１６によって発生される。ＰＥ１の安全性は、安全化計画者安全ゲート５１８によって点検される。もしＰＥ１この点検を通った場合、それは、１次計画者安全ゲート５１４に回される。１次計画者安全ゲート５１４は、ＰＥ１を、１次計画者５１２の出力を受理または拒絶するための基準の一部として使用する。許容範囲は、一般的およびＡＧＶ軌道−遂行ステージの例の特定の文脈の両方において、さらに後述する。
【００６１】
１次安全ゲート
【００６２】
図４を参照して、１次安全ゲート（ＰＳＧ）４０４の目的は、１次ユニット４０２からの危険な入力を抑制することである。後述するように、１次ユニット４０２の出力は、固有の安全性のために点検され（例えば、図５のＡＧＶ計画ステージ５０４の文脈において、計画が障害物と衝突し、または動的制約に違反するか）、そして安全化ユニット４０６によって発生した許容範囲との適合性のために点検される。もしＰＳＧ４０４が１次ユニット４０２の出力を抑制する場合、時間起動された優先度セレクタ４１０は、安全化ユニット４０６からの出力を車両アクチュエータに送信することに切り替える。
【００６３】
図５を参照して、ＡＧＶ計画ステージ５０４の文脈において、１次計画者安全ゲート５１４は、ロボットオペレーティングシステムでのノードとして実装され、これは、認知ステージ５０２から占有グリッド、そして１次計画者５１２の出力および許容範囲を受信する。１次計画者安全ゲート５１４は、１次計画者５１２の出力で特定された通過点を通って反復し、出力が車両をグリッド内の障害物と衝突させるか、またはそれが許容範囲に違反するかを判断する。
【００６４】
安全化安全ゲート
【００６５】
図４を参照して、安全化安全ゲート（ＳＳＧ）４０８は、任意に故障することが許容される、安全化ユニット４０６の出力について類似の点検を実施する。もし安全化ユニット４０６の出力が障害物と衝突し、または動的制約に違反する場合、該出力は抑制される。ＳＳＧ４０８は、これらの点検を通過する安全化ユニット４０６の最後出力を保持するバッファを維持する。もし到来する計画が安全である場合、ＳＳＧ４０８は、到来する計画をバッファに書き込む。しかしもし到来する計画が安全でない場合、ＳＳＧ４０８は、到来する計画を破棄し、バッファ保存された計画の実行を継続する。新しい安全な計画が安全化ユニット４０６から受信しない限り、ＳＳＧ４０８は、その出力を時間ウインドウ内に抑制する。もしＳＳＧ４０８がその出力を抑制する場合、時間起動された優先度セレクタ４１０は、ＭＳＴＯＰを起動する。
【００６６】
図５を参照して、ＡＧＶ計画ステージ５０４の文脈において、安全化計画者安全ゲート５１８は、ロボットオペレーティングシステムでのノードとして実装され、これは、認知ステージ５０２から占有グリッド、そして安全化計画者５１６の出力を受信する。安全化計画者安全ゲート５１８は、安全化計画者５１６の出力で特定された通過点を通って反復し、出力が車両をグリッド内の障害物と衝突させるかを判断する。
【００６７】
優先度セレクタ
【００６８】
図４を参照して、優先度セレクタ４１０が、典型的にはアーキテクチャの最終ステージにおいて、１次出力と安全化出力との間を選択する。例えば、優先度セレクタ４１０は、どの軌道コマンドを車両アクチュエータに送信するかを決定できる。優先度セレクタ４１０のロジックは、もし１次出力が抑制された場合、安全化出力が送信されるようにする。もし安全化出力が抑制された場合、ＭＳＴＯＰが起動される。優先度セレクタ４１０は、安全ゲート４０４，４０８が沈黙して故障することを想定する。
【００６９】
図５を参照して、ＡＧＶシステム実装の文脈において、優先度セレクタ５３０は、軌道遂行ステージ５０６の出力においてインスタンス化される。優先度セレクタ５３０は、ロボットオペレーティングシステム（ＲＯＳ）でのノードとして実装され、軌道遂行ステージ５０６内の１次軌道遂行者安全ゲート５２４および安全化軌道遂行者安全ゲート５２８の両方の出力を受信する。優先度セレクタ５３０の出力は、車両速度および曲率コマンドを含み、これらは、車両コントローラ５３２として知られる他のＲＯＳノードによって、車両のブレーキ操作、操縦およびスロットルアクチュエータへのコマンドに翻訳される。
【００７０】
軌道遂行ステージ
【００７１】
通過点Ｐｉが、機首方位を備えた２次元位置、即ち、｛ｘｉ，ｙｉ，Θｉ｝である。軌道｛Ｖｉ，Ｃｉ｝が、時間起動された期間に基づいた暗黙持続時間(implicit duration)を備えた速度−曲率ペアである。現在のシステム状態（例えば、車両姿勢など）は、Ｓｉである。軌道遂行ステージ５０６では、許容範囲ＰＥ２は、安全化軌道を伴う加速度およびヨー角(yaw)についての範囲制限である。ＰＥ２は、最小加速度、最大加速度およびヨーレート｛ΔＶｍｉｎｉ，ΔＶｍａｘｉ，ΔＣｍｉｎｉ，ΔＣｍａｘｉ｝のリストとして提供される。
【００７２】
１次軌道遂行者５２２および安全化軌道遂行者５２６は、１次軌道アルゴリズム（アルゴリズム１）ｐｔａおよび安全化軌道アルゴリズム（アルゴリズム２）ｓｔａをそれぞれ実行するノードである。これらは両方とも通過点Ｐｉおよび現在の車両状態Ｓｉを採用し、通過点の現在位置から軌道を出力する。
【００７３】
【表１】
2019509541.tif 000003
【００７４】
【表２】
2019509541.tif 000004
【００７５】
１次軌道遂行安全ゲート５２４は、アルゴリズム３を実行し、これは、現在状態および、安全化軌道遂行安全ゲート５２８によって生成されるＰＥ２に対して１次軌道を点検する。もし軌道が現在状態およびＰＥ２の限界に一致する場合、１次軌道は、１次軌道遂行安全ゲート５２４を通過する。
【００７６】
【表３】
2019509541.tif 000005
【００７７】
安全化軌道遂行安全ゲート５２８は、アルゴリズム４を実行して、安全化軌道遂行者５２６からの軌道を点検し、新しい到来する安全化軌道または古いバッファ保存された安全化軌道のいずれかを通過させるノードである。安全化軌道遂行安全ゲート５２８はまた、ＰＥ２を生成し、これは１次軌道遂行安全ゲート５２４が使用し、１次軌道が現在の安全軌道と一致することを確保する。ＰＥ２は、現在の安全化軌道値および一定の回復可能性限界のセット｛ΔＶｍｉｎｒ，ΔＶｍａｘｒ，ΔＣｍｉｎｒ，ΔＣｍａｘｒ｝に基づいて、許容される加速度および曲率変化の「範囲」を生成することによって発生する。
【００７８】
【表４】
2019509541.tif 000006
【００７９】
一般化アルゴリズム
【００８０】
アルゴリズム１〜４は、軌道遂行の文脈というより一般化した方法で下記のように表現される。１次アルゴリズム（アルゴリズム５）は、ある出力Ｏｉを作成し、その詳細はレイヤ固有のものである。１次アルゴリズムの正しさについて要求はなく、それは任意の方法で故障してもよい。
【００８１】
【表５】
2019509541.tif 000007
【００８２】
安全化アルゴリズム（アルゴリズム６）は、許容範囲Ｅｉとともにその自己の出力ＯＳｉについて責任がある。
【００８３】
【表６】
2019509541.tif 000008
【００８４】
１次安全ゲート（アルゴリズム７）は、２つの点検タイプについて責任がある。第１に、それは、アプリケーション固有の関数ｐｓｇ＿ｃｈｅｃｋを実行し、これは、現在のシステム状態Ｓｉを仮定すると、１次アルゴリズムの出力が受入れ可能であることを確保する。ＰＳＧはまた、１次アルゴリズムの出力が許容範囲内にあることを確保する責任がある。
【００８５】
【表７】
2019509541.tif 000009
【００８６】
安全化安全ゲートは、アルゴリズム８に示され、これは、「安全化安全ゲート」のセクションで先に記載したバッファリングリジックを定義する。ｓｓｇ＿ｃｈｅｃｋ（…）関数はまた、安全化軌道の年齢および許容範囲を点検し、もしこれらのいずれかが特定のタイムアウト期間より古い場合、ｓｓｇ＿ｃｈｅｃｋ（…）は、偽(false)を戻す。
【００８７】
【表８】
2019509541.tif 000010
【００８８】
ＡＧＶ実装の安全ケースは、障害物マップと対照して衝突について車両軌道を評価する安全ゲートに基づいている。あるマップおよびある軌道を仮定して、安全ゲートは、所定の軌道が、所定のマップで安全または危険であるかを報告する。安全ゲートは、連続的な超越的動力学(transcendental dynamics)を用いて、適度に高い次元のマップと対照して適度に高い次元の軌道を点検する。軌道が、動力学方程式のセットに基づいて経路（一連の位置）に翻訳され、これらの位置は、マップと対照して点検され、軌道が安全かまたはそうでないかを決定する。本開示の目的のために安全軌道の定義は、動力学方程式を用いてマップ上の障害物と交差しないものである。安全ゲートは、該軌道に基づいて、位置を特定の精度および分解能まで計算し、これらの位置の１つが障害物と重なり合う場合に安全問題を報告する。
【００８９】
本開示で記載したシステムは、衝突を回避する全体アーキテクチャのハイブリッドモデルを含む。ハイブリッドシステムは、１次提供者の軌道または安全化軌道に追従し、安全遂行を提供する。アーキテクチャの安全ゲート「点検者」部分は、先行技術で知られているソフトウェア安全基準、例えば、ＩＳＯ  ２６２６２，ＩＥＣ  ６１５０８，ＭＩＬ−ＳＴＤ  ８８２Ｅ、他の関連基準に従うことによって、高い完全性コンポーネントとして作成してもよい。安全化計画が、要求された期間内に車両を停車場へ運ぶことを点検するために、タイムアウト機構が使用でき、理由は、安全化ユニットが任意に故障することがあるためである。
【００９０】
アーキテクチャはさらに、本発明において、より下位のステージからのフィードバックを必要とする１つ以上の特定のステージを含んでもよい。例えば、もし軌道遂行機能が故障した場合、計画ステージは通知される。さらに、記載した安全性アーキテクチャは、こうしたアーキテクチャにとって適切な異なるステージを含むが、多くのロボットアーキテクチャは、「検知する」、「思考する」、「行動する」をステージに分別し、安全性アーキテクチャは、類似の手法を採用する。
【００９１】
下記チャートは、システムの条件および挙動の例を一覧表にしており、これは車両が障害物と衝突しない要求を満たすことができる。
【００９２】
【表９】
2019509541.tif 000011
【００９３】
図８は、自律装置安全性アーキテクチャシステムによって実施されるプロセス８００の一例のフローチャートである。プロセス８００は、１つ以上のコンピュータのシステムによって実施してもよい。プロセス８００は、上述した詳細を含んでもよい。
【００９４】
システムは、計画した経路上で装置を移動させるための１次データを受信する（８０２）。システムは、１次ユニットから１次データを受信する１次安全ゲートを含んでもよい。システムはまた、計画した経路上での装置の移動の際、１つ以上の悪条件の存在中に装置を移動させるための２次データを受信する（８０４）。システムは、２次ユニットから２次データを受信する２次安全ゲートを含んでもよい。
【００９５】
システムは、１次データが、安全な方法で計画した経路上での装置の移動を提供するかを判断することによって、１次データを認証する（８０６）。１次安全ゲートは、この判断を行うアルゴリズムを実行してもよい。システムはまた、２次データが１つ以上の悪条件を回避するように装置の移動を提供するかを判断することによって、２次データを認証する（８０８）。２次安全ゲートは、この判断を行うアルゴリズムを実行してもよい。もしシステムが、２次データは１つ以上の悪条件を回避するように装置の移動を提供していないと判断した場合、システムは、１つ以上の悪条件の存在中に装置の移動のための前回保存したデータにアクセスし（８１０）、前回保存したデータが１つ以上の悪条件を回避するように装置の移動を提供するかを判断することによって、前回保存したデータを認証する（８１２）。
【００９６】
システムは、ロジックデータの評価に基づいて、１次データ、２次データ、前回保存したデータ、または既定値データを選択する（８１４）。システムは、ロジックデータを評価して選択を行う優先度セレクタを含んでもよい。ロジックデータは、どのデータが特定の条件下で選択されるかを定義する規則を特定する。１次データは、１次データが安全な方法で計画した経路上での装置の移動を提供するかを判断した後、選択される。２次データは、（ｉ）１次データが安全な方法で計画した経路上での装置の移動を提供しないこと、および（ｉｉ）２次データが１つ以上の悪条件を回避するように装置の移動を提供することを判断した後、選択される。前回保存したデータは、（ｉ）１次データが安全な方法で計画した経路上での装置の移動を提供しないこと、（ｉｉ）２次データが１つ以上の悪条件を回避するように装置の移動を提供しないこと、および（ｉｉ）前回保存したデータが１つ以上の悪条件を回避するように装置の移動を提供することを判断した後、選択される。既定値データは、装置によって実施される既定動作を特定する。既定値データは、（ｉ）１次データが安全な方法で計画した経路上での装置の移動を提供しないこと、（ｉｉ）２次データが１つ以上の悪条件を回避するように装置の移動を提供しないこと、（ｉｉｉ）前回保存したデータが１つ以上の悪条件を回避するように装置の移動を提供しないことを判断した後、選択される。
【００９７】
システムは、選択された１次データ、２次データ、前回保存したデータ、または既定値データを、装置の移動を制御するコントローラに提供する（８１６）。
【００９８】
このアーキテクチャの使用は、故障作動自律システムの実装を簡素化し、達成可能にできる。１つ以上のバージョンの高い完全性の自律アルゴリズムを要求する代わりに、低い完全性の自律アルゴリズムが使用できる（例えば、「実行者」モジュールは、安全性を達成するために完全に作動する必要がない）。安全ゲート「点検者」モジュールは、各実行者／点検者ペアの故障沈黙挙動を確保するために使用される。安全ゲートは、高い完全性に開発する必要はなく、一般にはより簡単で、認証が困難である高度な自律アルゴリズムを最小化または排除し、これらを認証するのをより容易にする。さらに、点検者自体は、沈黙して故障できる。故障作動システム挙動は、各アーキテクチャステージにおいて故障沈黙実行者／点検者ペア化機能ブロックの２つ（またはそれ以上）の異なるセットを有することによって達成される。単一のコンポーネントが故障作動である必要がなく、点検者だけが高い完全性である必要がある。
【００９９】
実施形態は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはこれらの組合せで実装できる。装置が、プログラマブルプロセッサによる実行のために、機械可読記憶装置に有形的に具現化または格納されたコンピュータプログラム製品に実装でき、方法の動作は、入力データを操作して出力を生成することによって機能を実施する命令のプログラムを実行するプログラム可能なプロセッサによって実施できる。ここに記載された実施形態および本発明の他の実施形態は、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置からデータおよび命令を受信し、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置へデータおよび命令を送信するように接続された少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能な１つ以上のコンピュータプログラムにおいて、好都合に実装できる。各コンピュータプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装でき、いずれの場合も、言語は、コンパイルされた言語または解釈された言語でもよい。
【０１００】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータのいずれか１つ以上のプロセッサを含む。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための１つ以上のメモリデバイスである。一般に、コンピュータは、データを格納するための１つまたは複数の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、そこからデータを受信するか、そこにデータを転送するか、またはその両方のために動作可能に接続される。コンピュータプログラム命令およびデータを具体化するためのコンピュータ可読媒体は、一例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスクおよびＤＶＤ−ＲＯＭディスクを含む、すべての形態の不揮発性メモリを含む。プロセッサおよびメモリは、専用論理回路によって補完でき、あるいはそこに組み込むことができる。前述のいずれも、ＡＳＩＣ（特定用途向け集積回路）によって補完され、またはそこに組み込むことができる。
【０１０１】
ユーザとの相互作用を提供するために、実施形態は、ユーザにデータを表示するためのディスプレイ装置、例えば、ＬＣＤ（液晶ディスプレイ）モニタと、ユーザがコンピュータに入力を提供できるキーボードおよびポインティング装置、例えば、マウスまたはトラックボールを有するコンピュータ上で実装できる。他の種類の装置を使用して、ユーザとの相互作用を提供することもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックでもよく、ユーザからの入力は、音響、音声または触覚入力を含む任意の形態で受信できる。
【０１０２】
他の実施形態は、説明請求項の範囲および精神の範囲内である。さらに、ソフトウェアの性質上、上述した機能は、ソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、またはこれらの任意の組合せを使用して実装できる。機能を実装する特徴はまた、機能の一部が異なる物理的場所に実装されるように分散されることを含む、様々な位置に物理的に配置してもよい。ここでおよび本願全体を通じて用語「a」の使用は、限定的に使用されるものではなく、したがって、用語「a」について、複数の意味または「１つ以上の」意味を排除することを意味しない。さらに、仮特許出願に対して優先権が主張される範囲まで、仮特許出願は限定的ではなく、ここに記載された技術がどのように実装できるかの例を含むことを理解すべきである。
【０１０３】
本発明の多数の例示的な実施形態が記載されている。それにもかかわらず、本発明の精神および範囲から逸脱することなく様々な変更が可能であることは当業者には理解されるであろう。
【図１】
2019509541.tif 000012
【図２】
2019509541.tif 000013
【図３】
2019509541.tif 000014
【図４】
2019509541.tif 000015
【図５】
2019509541.tif 000016
【図６】
2019509541.tif 000017
【図７】
2019509541.tif 000018
【図８】
2019509541.tif 000019
【国際調査報告】
2019509541.tif 000020
2019509541.tif 000021
2019509541.tif 000022