IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ズークス インコーポレイテッドの特許一覧

特許7465473自律車両の安全停止解放をもたらすためのシステム及び方法
<>
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図1
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図2
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図3
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図4
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図5
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図6
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図7
  • 特許-自律車両の安全停止解放をもたらすためのシステム及び方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-03
(45)【発行日】2024-04-11
(54)【発明の名称】自律車両の安全停止解放をもたらすためのシステム及び方法
(51)【国際特許分類】
   B60W 50/02 20120101AFI20240404BHJP
   B60W 30/095 20120101ALI20240404BHJP
   G08G 1/16 20060101ALI20240404BHJP
   B60T 7/12 20060101ALI20240404BHJP
   B60T 7/16 20060101ALI20240404BHJP
【FI】
B60W50/02
B60W30/095
G08G1/16 C
B60T7/12 C
B60T7/16
【請求項の数】 12
(21)【出願番号】P 2022504070
(86)(22)【出願日】2020-07-22
(65)【公表番号】
(43)【公表日】2022-09-29
(86)【国際出願番号】 US2020043129
(87)【国際公開番号】W WO2021016387
(87)【国際公開日】2021-01-28
【審査請求日】2022-03-15
(31)【優先権主張番号】16/518,897
(32)【優先日】2019-07-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】マクグレゴー、コーリン
(72)【発明者】
【氏名】オルソン、サイ ケリー
(72)【発明者】
【氏名】パッカー、ジェファーソン ブラッドフィールド
【審査官】楠永 吉孝
(56)【参考文献】
【文献】特開2016-038689(JP,A)
【文献】米国特許第10086782(US,B1)
【文献】特開2016-037149(JP,A)
【文献】米国特許出願公開第2019/0049948(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 30/00~60/00
B60T 7/12~ 7/22
G08G 1/16
(57)【特許請求の範囲】
【請求項1】
システムにより実行される方法であって、
自律車両を制御するための第1の命令のセットを受信することであって、前記第1の命令のセットは、第1の時間において、前記自律車両をルートに沿って制御するための一次軌道と、前記自律車両を停止させるための偶発的軌道とを有する、受信することと、
前記自律車両の部分構成要素のステータスを受信することと、
前記ステータスに少なくとも部分的に基づいて、前記偶発的軌道に従って前記自律車両を制御するための第1の要求を決定することと
前記第1の要求に応答して、前記偶発的軌道に少なくとも部分的に基づいて、前記自律車両を制御することと、
前記偶発的軌道が選択されることを示す車両軌道状を設定することと、
前記自律車両を制御するための第2の命令のセットを受信することであって、前記第2の命令のセットは、第2の時間において、前記自律車両を前記ルートに沿って制御するための追加の一次軌道、及び、前記自律車両を停止させるための追加の偶発的軌道を有する、受信することと、
前記部分構成要素から更新されたステータスを受信することと、
前記更新されたステータスに少なくとも部分的に基づいて、前記追加の一次軌道に従って前記自律車両を制御するための第2の要求を決定することと、
前記更新されたステータス及び前記車両軌道状態をリモートシステムに送信することと
前記自律車両に前記車両軌道状態を前記偶発的軌道よりも前記追加の一次軌道を選択することを示す状態に設定させる解放信号を前記リモートシステムから受信することと、
前記解放信号に少なくとも部分的に基づいて、前記第2の要求に応答して、前記追加の一次軌道に基づいて前記自律車両を制御することと
を含む、システムにより実行される方法。
【請求項2】
前記第1の命令のセットが
記一次軌道と、
前記自律車両を停止させるための第1の二次軌道、
前記第1の二次軌道の修正、
以前に記憶された前記自律車両を停止させるための軌道、
前記以前に記憶された前記自律車両を停止させるための軌道の修正、または
緊急停止軌道、
のうちの1つ以上を含む、前記偶発的軌道と
を含む、請求項1に記載のシステムにより実行される方法。
【請求項3】
前記解放信号が、ユーザからの入力に少なくとも部分的に基づいて信号を送信するように構成された前記リモートシステムから受信される、請求項2に記載のシステムにより実行される方法。
【請求項4】
前記方法が、
少なくとも前記一次軌道または前記偶発的軌道を含む1つ以上の軌道の妥当性を判定することであって、前記妥当性が、妥当性チェックに少なくとも部分的に基づいて判定され、前記妥当性チェックは、前記一次軌道が定時性制限よりも最近に生成されたかどうかを判定すること、前記一次軌道が直前の一次軌道と一致するかどうかを判定すること、または前記一次軌道が、自律車両の動的能力の範囲内であるかどうかを判定すること、のうちの1つ以上を含む、前記決定すること、
前記1つ以上の軌道が無衝突であるかどうかを判定するために衝突チェックを実行することと、
前記1つ以上の軌道が無衝突であるかどうかを判定することと
をさらに含む、請求項2または3に記載のシステムにより実行される方法。
【請求項5】
前記第1の要求を決定することがさらに、前記妥当性及び前記1つ以上の軌道が無衝突であるかどうかに少なくとも部分的に基づいている、請求項4に記載のシステムにより実行される方法。
【請求項6】
前記自律車両の前記部分構成要素が、ステアリングシステム、制動システム、インバータ、牽引システム、パーキングブレーキシステム、モータコントローラ、またはアクティブサスペンションコントローラのうちの1つ以上を含む、請求項2~5のいずれか一項に記載のシステムにより実行される方法。
【請求項7】
前記第1の二次軌道の前記修正が、前記第1の二次軌道に関連付けられている減速の量を増加させることを含み、
前記以前に記憶された軌道の前記修正が、前記以前に記憶された軌道に関連付けられている減速の量を増加させることを含む、請求項2~6のいずれか1項に記載のシステムにより実行される方法。
【請求項8】
1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、請求項1~7のいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項9】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに動作を実行させる命令が内部に記憶された1つ以上の非一時的コンピュータ可読媒体と、を備えるシステムであって、
前記動作が、
自律車両を制御するための第1の命令のセットを受信することであって、前記第1の命令のセットは、第1の時間において、前記自律車両をルートに沿って制御するための一次軌道と、前記自律車両を停止させるための偶発的軌道とを有する、受信することと、
前記自律車両の部分構成要素のステータスを受信することと、
前記ステータスに少なくとも部分的に基づいて、前記偶発的軌道に従って前記自律車両を制御するための第1の要求を決定することと
前記第1の要求に応答して、前記偶発的軌道に少なくとも部分的に基づいて、前記自律車両を制御することと
前記偶発的軌道が選択されることを示す車両軌道状を設定することと、
前記自律車両を制御するための第2の命令のセットを受信することであって、前記第2の命令のセットは、第2の時間において、前記自律車両を前記ルートに沿って制御するための追加の一次軌道、及び、前記自律車両を停止させるための追加の偶発的軌道を有する、受信することと、
前記部分構成要素から更新されたステータスを受信することと、
前記更新されたステータスに少なくとも部分的に基づいて、前記追加の一次軌道に従って前記自律車両を制御するための第2の要求を決定することと、
前記更新されたステータス及び前記車両軌道状態をリモートシステムに送信することと
前記自律車両に前記車両軌道状態を前記偶発的軌道よりも前記追加の一次軌道を選択することを示す状態に設定させる解放信号を前記リモートシステムから受信することと、
前記解放信号に少なくとも部分的に基づいて、前記第2の要求に応答して、前記追加の一次軌道に基づいて前記自律車両を制御することと
を含む、
システム。
【請求項10】
前記部分構成要素が、ステアリングシステム、制動システム、インバータ、牽引システム、パーキングブレーキシステム、モータコントローラ、またはアクティブサスペンションコントローラのうちの1つ以上を含む、請求項9に記載のシステム。
【請求項11】
前記自律車両を、前記追加の一次軌道に追従するように制御することがさらに、前記追加の一次軌道が、前記自律車両の現在の動的能力の範囲内であることを検証することに基づいている、請求項9または10に記載のシステム。
【請求項12】
前記一次軌道の妥当性を判定することが、
前記一次軌道が定時性制限よりも最近に生成されたかどうかを判定すること、
前記一次軌道が直前の軌道と一致しているかどうかを判定すること、
前記一次軌道が前記自律車両の動的能力の範囲内であるかどうかを判定すること
のうちの1つ以上を含む、請求項9~11のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年7月22日に出願され、「SYSTEM AND METHOD FOR EFFECTING A SAFETY STOP RELEASE IN AN AUTONOMOUS VEHICLE」と題される米国特許出願第16/518,897号の優先権を主張するものであり、あらゆる目的のために参照によりこの開示すべてを組み込む。
【背景技術】
【0002】
自律車両などのシステムは、予測可能性、応答性、及び自律車両の場合の乗員の快適性などの他の目標に加えて、安全性を考慮してプログラムされている。オブジェクトがそのような自律車両の軌道と交差する場合、システムのセンサが動作できない場合などの特定の状況では、システムは、安全性を確保するために、公称モード以外のモードで動作するようにプログラムされることがある。そのような例では、その他のモードから公称動作モードに戻ることは安全ではない可能性がある。
【0003】
添付図面を参照して詳細な説明を記載する。図面中、参照番号の左端の数字(複数可)は、参照番号が最初に現れる図を特定する。異なる図面における同じ参照番号は、類似または同一の構成要素または特徴を示す。
【図面の簡単な説明】
【0004】
図1】一次コンピューティングシステム及び二次コンピューティングシステムを含む、自律車両管理及び/または制御システムのいくつかの要素の例を示す高レベルブロック図である。
図2】受信された軌道を検証及び/または確認するための、図1の軌道マネージャプロセス(「TMP」)の要素を示すブロック図である。
図3】自律車両のアクチュエータシステムとインターフェースするドライブマネージャの要素を示すブロック図である。
図4】システムモニタ及び軌道マネージャプロセス(「TMP」)の代替図を示すブロック図である。
図5】軌道を処理し、軌道を選択及び/または軌道を修正するTMPに実装され得る状態図である。
図6】公称動作を表す公称軌道以外の軌道を選択したときのTMPの状態を表す、TMPに実装され得る状態図である。
図7】自律車両のいくつかの要素を示す。
図8】自律車両のアーキテクチャに従って使用され得る要素の例を示す。
【発明を実施するための形態】
【0005】
本開示は、自律車両に安全停止解放を実装するための方法、装置、及びシステムを記載する。例では、人工知能(「AI」)ユニットは、入力を検討し、考え得る軌道の選択を軌道マネージャプロセス(「TMP」)に出力し、このTMPは、特定の基準を使用して提供された軌道のうちの1つを選択する、衝突回避を実行するシステムとして動作することができる。この例では、TMPは次いで、選択された軌道を、場合によっては他のシステムの中で、車両の推進システムを制御するドライブマネージャに出力し得る。
【0006】
一例では、TMPは、AIがどの軌道を出力するかとは独立して、提供された軌道に対して基準チェックを実行し、AIシステムが安全でない軌道を出力した場合に、TMPは、対応する信号をドライブマネージャプロセスまたはドライブアクチュエータに送信しないようにする。いくつかの例では、提案された軌道のいずれもTMPの基準を満たさない場合、TMPは車両を停止に至らせるための軌道を出力し得る。具体的な例では、TMPは、定時性、一貫性、実現可能性、及び衝突チェックに対して軌道を評価する。実行可能な軌道とは、少なくともこれらの妥当性テストを満たすものであるが、これらが十分な要件ではない場合もある。
【0007】
定時性要件は、軌道が受信されてからどれだけの時間が経過したかに関係する。たとえば、TMPが軌道を実行するプロセスにあるか、またはTMPが別のシステムによって実行されている場合、TMPは、実行される次の軌道を受信したが、その次の軌道は、4秒よりも長く前に受信されていた場合、定時性の基準を満たしていないとみなされ得る。これは、軌道の通信に何らかの遅延があった場合に生じる可能性がある。
【0008】
一貫性基準は、いくつかの所定の一貫性制約に基づいて、直前の軌道から現在の軌道への車両状態またはコマンドの大きなジャンプを妨げることに関連し得る。たとえば、直前の軌道と現在の軌道との速度があまりにも異なる場合、現在の軌道は一貫性がないというフラグが立てられてもよい。
【0009】
実現可能性基準は、確認されている軌道が車両の現在の動的能力の範囲内である(たとえば、「180KPHの速度または6m/s/sの横方向加速度を指令する新しい軌道には追従しないはずである」)ことを検証することに関連し得る。たとえば、軌道があまりにも過去に生成されたものであり、このため古くなっている場合には、実現可能ではないとみなされ得る。いくつかの例では、タイミングクロックの各周期で新しい軌道が提供され、これは、10分の1秒ごとまたは100分の1秒ごとであり得る。本明細書で使用されるとき、「フレーム」とは、軌道が考慮される期間を指し、フレームによって表される時間の長さは異なることがある。軌道は、フレームの期間が開始する直前など、タイムリーに受信され得るが、ずっと前に計算されていて、古くなっている可能性がある。
【0010】
衝突チェック基準は、エージェントまたはオブジェクトとの切迫した衝突を含むであろうとTMPが判定した軌道を、TMPが拒否することであり得る。いくつかの例では、軌道は、定時性、一貫性、及び実現可能性をカバーする個別の妥当性基準を有し、無衝突要件を有する。そのような例では、妥当性及び衝突回避性という2つのテストがあるが、これら2つのテストの基礎となるのは複数の基準であり得る。
【0011】
衝突チェックは、「衝突までの時間」値が「制動の直前までの時間」値よりも小さいかまたはそれに等しいエージェントまたは障害物との予測された衝突を含む、軌道の表現を妨げるために使用され得る。回避可能でないが任意の予想される衝突を含む軌道は追従されるべきではなく、または利用可能な軌道のすべてが予想される衝突を含む場合、予想される衝突エネルギーまたは他のメトリックを最小化する軌道が選択された軌道であってもよい。
【0012】
TMPが利用可能な軌道は、第1の軌道が第2の軌道よりも高い階層にあり、第2の軌道が第3の軌道よりも高い階層にあるなど、階層を有し得る。第1の軌道は公称動作軌道であり、より低い階層ある軌道は、より高い軌道が妥当でない場合など、理想でない状況またはエラー状況に対応し得る。たとえば、第1の軌道でいくつかのエラーが見つかり、第2の軌道が、その場合に使用されるであろう偶発的軌道でない限り、第1の軌道が使用される軌道である可能性がある。
【0013】
少なくともいくつかの例では、新たに取得された軌道が妥当でない及び/または無衝突でない場合に、受信された一次及び/または二次軌道の1つまたは複数のいずれかが、後続のフレームで使用されるように記憶されてもよい。このような軌道は、記憶された軌道と称され得る。任意の1つ以上の例では、(新たに取得されたか記憶されたかのいずれかの)任意の軌道は、そのような修正が衝突を防止する(または深刻度を最小化するなど)シナリオにつながるであろう場合に修正されてもよい。いくつかの例では、そのような修正は、軌道に追加の制動を加えることなどの、縦方向の修正に限定され得るが、他の例では、他の修正(たとえば、わずかな旋回)が提供されてもよい。階層に従って、システムは、第1(または一次)、二次(または代替/偶発的)、修正された二次、修正された記憶された二次、そして最後に、上記の軌道のいずれも衝突を緩和しない場合の緊急停止(本明細書では「E停止」とも称される)を選び得る。そのような例では、E停止は、自律車両の機械的能力及び乗員の安全制限の範囲内で、自律車両を迅速に停止に至らせようとする軌道であり得る。
【0014】
これらの特定の軌道のセットに言及する本明細書の例及び説明は、階層で提供される他の軌道のセットを有する例をカバーするように修正できることを理解されたい。また具体的な例では、厳密に順序付けられた階層も提供されているが、いくつかの例では、複数のタイプの軌道が同じレベルを有する階層が提供されていることがある。そのような例では、第1、第2、第3、及び第4の軌道があり得、第1の軌道は軌道上で最も高いと考えられ、第2及び第3は等しく、次に最も低いレベルにあると考えられ、第4は最も低いレベルの軌道である。
【0015】
一般的な場合では、軌道の階層があり、正常な動作状態では、TMPは第1の軌道を検討し、それが妥当及び無衝突である場合にそれを使用する。その正常な動作状態では、新しい軌道が提供されたときに各フレームにおいて軌道の各々をチェックし、最も高い、妥当及び無衝突である軌道を使用することができる。少なくともいくつかの例では、一次または二次のいずれかが無衝突及び妥当である場合、より低いレベルの軌道が妥当でも無衝突でもない場合でも、TMPはそのような軌道を選択することがある。TMPは次いで、使用された軌道を表す状態変数を記憶することができる。正常な動作が、第1の軌道が妥当及び無衝突であるようなものである場合、より低い軌道に下がることはエラーまたは異常な状況を示し得る。たとえば、第1の軌道は、生成時に妥当及び無衝突であり得るが、その後、自律車両の前を高速で移動するオブジェクトが通過したため、第1の軌道をチェックしたときに、それは確認されるが無衝突ではないようになる。これにより、TMPはより低い軌道を使用し、どちらが使用されたかを示すために状態変数を更新することになる。状態変数の記憶された値は、少なくともエラー状況が解放されるまで、TMPが使用する軌道を制限するために未来のフレームで使用される可能性がある。
【0016】
衝突チェックは、空き空間チェッカの実行、オブジェクトリストに基づく軌道予測器の評価、ヒートマップでの機械学習を使用するプロセッサ、または他のアプローチを含み得る。いくつかの軌道は、起こり得る衝突に対してすべてのフレームにおいてチェックされ得るが、他の軌道はチェックされなくてもよい場合がある。たとえば、緊急停止(「E停止」)軌道が起こり得る可能性が最も低い軌道である場合、その軌道が衝突をもたらすであろうかどうかを判定するために、その軌道を繰り返しチェックしなくてもよい場合がある。なぜなら、その軌道は、最終手段である可能性が高く、減速するという目標を有しており、(ブレーキまたは他の方法によって)ステアリングをロックして最大減速度を適用することで停止に至らせるための最後の選択肢をすでに表現している可能性が高く、複数のシステム障害がある場合または疑わしいステータスの場合にのみ使用される可能性が高いためである。
【0017】
一般に、軌道は、軌道の開始状態から終点まで、経時的に実行されるベクトル、経路、車両状態、制御などを定義するデータ構造で表され得る。軌道は必ずしもその終点まで再生されるとは限らないことがあり、上書きされることがある。TMPに提供される軌道は、車両が停止するまで減速することを伴う軌道と、軌道のいくつかの詳細、方向の変化、速度の変化などに従って車両が移動することを伴う軌道であり得る。軌道は、ブレーキ、ステアリング、アクセル、サスペンションなどのためのものなど、ドライブアクチュエータに送信するべき信号を表すデータを含み得る。
【0018】
終点まで追従されると、異常または安全な状況に起因して車両の停止に必然的につながるであろう軌道は、本明細書では停止軌道と呼ばれ、他の軌道は公称軌道である。いくつかの公称軌道は、停止標識まで走行すること、停止信号で停止すること、歩行者が横断するのを待つこと、人々を拾うために路肩に寄ることなど、異常ではない状況では、自律車両を停止に至らせる場合がある。停止軌道は、安全関連の理由または異常な状況のために、終点としての静止した位置を有する。
【0019】
TMPはまた、TMPの基準を満たす他の提案された軌道をTMPが有さないときに、TMPによって使用される記憶された停止軌道を有することもある。軌道の最後まで再生された場合、記憶された停止軌道及び/または受信された停止軌道は、車両が静止している状態で終了することになる。言い換えれば、そのような軌道の終点は静止車両である。すべての軌道が必ずしもそれらの終点まで再生されるわけではない。たとえば、軌道が、30秒にわたって50MPH~60MPHで車両を案内することになっているが、10秒後に突然の障害物が出現した場合、その軌道は、停止軌道または緊急停止軌道に迅速に置き換えられることがあり、そこでの主な目的は、乗員の快適性などの他の考慮事項を伴わずに車両を停止させることである。少なくともいくつかの例では、停止軌道は、上述したような二次及び/または偶発的軌道を含み得る。いくつかの例では、そのような停止軌道は、停止に至ることを伴わないことがあるが、一次軌道に問題が生じた場合の偶発的な事態として、代替の経路及び/または制御を提供してもよい。
【0020】
AIは、一次(公称)軌道及び二次(たとえば、停止)軌道といった2つの軌道のみを提供することがあるが、いくつかの例では、AIは、3つ以上の軌道を提供してもよい。一例として、AIが、車線を続行する車両を有する一次軌道、約10秒以内で停車する車両を有する一次軌道、制動する車道を有する二次軌道、車線を変更して制動する車両を有する二次軌道などを提供する場合がある。別の例では、AIは、100msほどごとに新しい一次軌道及び新しい二次軌道を作成し、発行する。修正された二次軌道は、TMPが二次軌道に縦方向の宣言を適用することによって作成した軌道であり得る。
【0021】
より一般的な場合では、提供されるのは命令のセットであり、これは、軌道に関する命令であり得、1つ、2つ、またはそれ以上の命令のセットが提供され得る。他の命令のセットは、提供されたものから生成され得、たとえば、以前に提供された記憶されている命令のセットから導出された命令のセット、受信された命令のセットの変換または修正されたバージョン、及び固定された命令のセットなどであり得る。命令のセットが軌道を含む場合、命令のセットは、メッセージ、照明などの指示など、軌道とは無関係の指示、及び/または方向指示もしくは軌道に関連してとられる他のアクションなど、軌道にいくぶん関連する指示を含み得る。この場合、その最大レベルを上回るレベルを有する命令のセットが必ずしも実行されないであろうレベルの階層における最大レベルを表す状態変数が提供されることがあり、命令のセットが無効または異常であることが判明した場合、最大レベルは、その無効または異常な命令のセットのレベルを下回るレベルに設定される。状態変数は、解放信号が受信されて状態変数をより高いレベル、おそらく最も高いレベルにリセットするまで、そのレベル以下にとどまることがある。たとえば、公称軌道よりも偶発的軌道を選択することを示す要求は、公称軌道よりも偶発的軌道を選択することを表す偶発的状態である車両軌道状態を表すように状態変数を設定することができ、解放信号は、車両軌道状態を、偶発的軌道よりも公称軌道を選択することを示す公称要求状態にリセットすることができる。解放信号は、ユーザからの入力の受信に応答して信号を送信するように構成されたリモートシステムから受信された信号であり得る。
【0022】
例示的なシステムでは、システムモニタが車両内のシステムの状態を監視し、「下への」方向の軌道に関するTMPの決定(たとえば、一次→二次→修正された二次→記憶された二次→修正され記憶された二次→「E停止」など)を上書きすることができる要求を、TMPに送信することができる。要求は、一次、二次、または「E停止」から選択された特定のタイプの軌道に対する要求であり得、これは、システムモニタがそれらのいずれかを許容可能な選択肢とみなすという信号を送るために使用するものとなる。要求は、公称軌道上の偶発的軌道を要求する上書き要求であり得る。いくつかの論理表では、最終的な結果は、複数のシステムモニタの軌道タイプ要求で同じである。例として、TMPがいくつかの状態の組み合わせに基づいて二次軌道要求の発動を決定しようとしている場合、システムモニタが一次軌道タイプまたは二次軌道タイプを要求しても、結果は二次軌道になる可能性が高い。それは、本明細書の箇所では、一次または二次軌道タイプを指定するシステムモニタと呼ばれることがあるが、上述したように理解されるべきである。
【0023】
別の例では、AIがTMPに軌道を提供し、TMPがそれらのすべてを許容可能であることを発見した場合、TMPは一次軌道を選択することがあるが、その後、システムモニタが、4輪車両の4つのタイヤすべてのタイヤ空気圧が15PSI(すなわち、ランニングフラット)であることを示す入力を処理した場合、システムモニタは、「E停止」軌道の要求の信号を送るであろう。
【0024】
動作中、システムモニタは、機械的または電気的エラーの検出などの異常な状況が検知されたときに、二次軌道を求める信号を送ることがある。それに応じて、TMPはドライブマネージャに二次軌道を提供し、ドライブマネージャが自律車両を静止状態に至らせるために二次軌道を作動させている間に、システムモニタは、問題が十分に解決されたことを検出し、公称(たとえば、一次)軌道の要求の信号を送る一方で、TMPは別の軌道を他の方法で提供するであろう。
【0025】
いくつかの例では、いくつかの状況からの回復は、人間の介入を必要とするほど深刻であるとみなされる。そのような場合、システムモニタは、テレオペレータシステムからのシステムモニタ解放信号など、人間が介入するシステム(及び/または、人工的に知的な決定のための追加の計算能力を有するリモートシステム)から故障クリア信号を受信するまで、二次軌道または「E停止」軌道の要求を発行することがある。
【0026】
図1は、一次計算ユニット102及び二次計算ユニット104を含む、自律車両管理及び/または制御システム100のいくつかの要素の例を示す高レベルのブロック図である。一次計算ユニット102及び二次計算ユニット104は、それらの間に通信チャネルを有する別個のプロセッサ、または他の何らかの構造体であり得る。図示されるように、一次計算ユニット102は、システムモニタAI110、軌道プランナAI112を実行し、そしてセンサデータ114を記憶し、二次計算ユニット104は、システムモニタ120、軌道マネージャプロセス(「TMP」)122、及び安全/無知覚コリドーチェッカ124を実行する。
【0027】
システムモニタAI110は、自律車両のモニタのさまざまな構成要素のステータスに関連して、システムモニタ120から送信されるメッセージに含まれ得るようなデータを受信する。例には、電力システム、タイヤシステム、環境センサシステム、バッテリモニタなどが含まれ得る。システムモニタ120はまた、これらのアクチュエータシステムのステータス及び動作に関連するメッセージをアクチュエータシステムから受信することもある。システムモニタAI110は、他のソースからもデータメッセージを受信してもよい。動作時、システムモニタAI110は、これらの入力を処理して、システムモニタ120に送信される軌道タイプの要求メッセージなどの、システムモニタAI出力を決定し得る。例として、システムモニタAI110は、公称軌道が使用する予定の軌道のタイプであること、あるいは緊急停止タイプ、または何らかの異常もしくは公称ではない状況に起因して自律車両が停止に至る停止タイプの軌道であることを決定することができる。システムモニタ120は、アクチュエータ診断メッセージを出力し得る。
【0028】
軌道プランナAI112は、さまざまな状態、状況、及び/または入力を考慮し、1つ以上の軌道を生成する。軌道は、軌道データメッセージで渡される軌道データ記録によって表され得る。軌道データ記録には、軌道がいつ作成されたかを示すタイムスタンプ、軌道がカバーするフレームにおける方向、スピード、アクチュエータへの入力などの詳細を含み得る。所与のフレームに対して、軌道プランナAI112は、1つ以上の軌道を軌道マネージャプロセス(「TMP」)122に出力してもよく、公称軌道と、公称軌道が妥当でないかもしくは衝突を含む場合、またはTMP122が公称軌道を実行しないことを決定したときに使用される偶発的軌道と、を含み得る。軌道プランナAI112は、TMP122がいくつかの軌道を処理できないことを示すメッセージなど、TMP122から警告メッセージを受信し得る。
【0029】
センサデータ114は、点群によって表される車両周囲などの点群データ、画像データ、レーダーデータ、及び他のセンサデータを含み得、またメッセージに含まれる。一次計算ユニット102は、このセンサデータ114をメッセージで安全/無知覚コリドーチェッカ124に提供することができ、このコリドーチェッカは、その情報を使用して、最大減速度を有する変換(修正)された軌道をTMP122に提供し得る。
【0030】
アクチュエータシステムから、それらのアクチュエータシステムのステータス及び動作に関するメッセージを受信すること、及びシステムモニタAI110から軌道タイプ要求メッセージを受信することに加えて、システムモニタ120は、テレオペレータシステムからの受信メッセージでシステムモニタ解放信号を受信し得る。その入力に基づいて、システムモニタ120は、TMP122が選択できる軌道を制限する軌道制限メッセージをTMP122に出力し得る。軌道制限メッセージは、TMP122が公称(たとえば、一次)軌道を実行せず、AVが静止位置に至ることをもたらす軌道または他の軌道を実行すべきであることの指示であり得る。軌道制限メッセージは、TMP122が緊急停止軌道を実行することの指示であり得る。
【0031】
システムモニタ120はまた、「クリアして発進」メッセージなどのクリアメッセージを出力し、TMP122が最も高いレベルの軌道を再び選択できることについてTMP122に信号を送ることができる。これは、システムモニタ120による以前の要求に起因してTMP122がより低いレベルの軌道を使用した場合に、またはより高いレベルの軌道が妥当及び無衝突でないことを理由に使用されることがあり、TMP122は、「クリアして発進」メッセージまたはシステムモニタ解放信号のいずれかによって解放されるまで、そのレベルを維持する。いくつかの例では、システムモニタ解放信号は、解除のために必要とされる。いくつかの例では、システムモニタ解放信号は、車両からのデータを確認した後、テレオペレータシステムを使用して、人間のオペレータからシステムモニタ120によって受信される。いくつかの例では、システムモニタの解放信号がTMP122によって直接受信される。
【0032】
本明細書の他の箇所でさらに詳細に説明されているように、TMP122は、TMP122で利用可能な軌道から、軌道階層における軌道のレベル、TMP122が上限とするレベル、及び軌道の妥当性及び無衝突状況を決定し、TMP122は、軌道データメッセージをドライブマネージャに出力する。軌道の処理のいくつかはTMP122によって実行されてもよく、いくつかはドライブマネージャによって実行されてもよい。
【0033】
図2は、衝突チェッカ204、軌道バリデータ202、軌道ステータスマネージャ220、及び軌道セレクタ230を含む、図1からのTMP122の要素をより詳細に示すブロック図である。いくつかの例では、TMPは、衝突回避のための別個のプロセス及びシステムを含み得る。
【0034】
軌道バリデータ202は、一貫性バリデータ210、定時性バリデータ212、実現可能性バリデータ214、及び軌道上で他のテストを実行し得る他のバリデータ216を含み得る。衝突チェッカ204は、軌道をチェックして、それが無衝突であるかどうかを判定する。妥当性チェック及び衝突チェックの結果は、軌道ステータスマネージャ220に提供され得、軌道ステータスマネージャ220は、それらの結果とともに軌道を軌道ストレージ222に記憶し得る。
【0035】
一般的な場合では、TMP122は、TMP122で利用可能な複数の軌道を有し、そのうちのいくつかは、一次計算ユニット102のAIシステムから受信され得、そのうちのいくつかは、以前のフレームから記憶されたものであり、そのうちのいくつかは、受信された軌道が変換され、その変換及び/または変換された軌道が軌道変換ストレージ226に記憶される、受信された軌道の修正バージョンであり、そしていくつかは、比較的固定された軌道(緊急停止タイプの軌道など)であり得る。AIが提供する軌道は、センサデータに基づいてAIシステムによって生成され得、センサは、道路、天候、周囲環境などに関する情報を提供し得る。提供される軌道は、公称軌道であることが予想される軌道と、公称軌道が使用できない場合に備えた1つ以上の偶発的軌道と、を含み得る。
【0036】
軌道ストレージ222に記憶された軌道は、公称軌道と、車両が静止している状態で終了しても終了しなくてもよいさまざまな偶発的軌道を含み得る。記憶された偶発的軌道は、TMP122が受信及び記憶した以前のフレームからの偶発的軌道であり得、おそらくTMP122が受信し、使用しないことを選択し、代わりに受信された公称軌道を使用するものである。別の例は、受信された偶発的軌道から導出されるが、場合によっては、最大減速度まで適用される制動を反復的に増加させること、縦方向に小さな距離だけ調整すること、及び/または軌道を完全に放棄することなく衝突を回避するために他の軽微な変更を行うことによって、起こり得る衝突を回避するために修正された偶発的タイプの軌道(すなわち、衝突回避軌道)である。さらに別の例は、記憶された偶発的軌道から導出されるが、同様の方法で修正された、変換され記憶された偶発的タイプの軌道である。さらに別の例は、緊急停止タイプの軌道であり、ステアリングがロックされた状態で、制動を反復的に増加させるのではなく、最大宣言が即座に適用される。
【0037】
VAL及びCF値は、妥当性制約及び以前または現在再生中の軌道に関するデータから決定することができる。これらの値を使用して、軌道セレクタ230は、軌道を選択し、これは、バイナリ値、及びこれらのバイナリ値に基づいて選択する軌道のインジケータを提供することができる。
【0038】
システムモニタAIシステムは、自律車両の構成要素の健全性を監視し、そこから利用可能な軌道のうちどれを使用するかを要求し得る。たとえば、システムモニタAIシステムは、安全性に関連していない状況であるが緊急停止を必要とするものを指摘し、次いで、自律車両を最終的に停止に至らせる偶発的軌道を使用すべきであることを示すだろう。この要求は、構成要素/部分構成要素の健全性に関連し得る。少なくともいくつかの例では、追加情報(たとえば、天候、摩擦などであるがこれらに限定されない)が、要求する軌道を決定する際にシステムモニタによって使用され得る。
【0039】
具体的な例では、より高い軌道が妥当性テストもしくは衝突チェックに不合格であったこと、またはシステムモニタが偶発的軌道を使用すべきであると示したことのいずれかを理由に、TMPが偶発的軌道を使用する場合、TMPは、それが使用した軌道のレベルを状態変数ストレージ224に記録することになり、解放の信号が送られるまで、より高いレベルの軌道を使用することはない。解放は、さまざまなレベルの解放を有することがあり、それらは偶発的軌道の使用につながった異常の深刻度によって異なり得る。たとえば、異常がバッテリのうちの1つにおける軽微な電力低下であったが、電力が自力で正常に戻った場合、それは1つのレベルの異常である場合があり、システムモニタAIシステムは解放を発行する権限を与えられてもよい。
【0040】
より一般的には、システムモニタは、解放が発行されるまで、軌道制限メッセージで指定された制限を上回るレベルの軌道を使用してはならないことを示す軌道制限メッセージをTMP122に送信する。たとえば、軌道制限メッセージは、第1の偶発的軌道よりも高い軌道を実行してはならないことを示し得る。その場合、TMPは、軌道階層のより高いところにある公称軌道の実行を引き継ぐことになる。
【0041】
解放が発行されると、次いでTMPは、そのテストに合格した最も高いレベルの軌道を使用することができる。チェックされたときに軌道のすべてが無効であることが判明し、TMPが緊急停止軌道を使用しなければならなかったときなど、いくつかの異常に対しては、おそらくより高いレベルの解放が必要になる場合がある。そのようなより高いレベルは、人間が状況を確認し、人間が異常のクリアに対応することが必要になる場合がある。
【0042】
軌道ストレージ222は、軌道セレクタ230が選択することができるさまざまな軌道のための記憶を含み得、各々に対して、タイプ指標、軌道を記述するデータ、TMP122が軌道が妥当であると判定したかどうかを示すVAL値、及びTMP122が軌道が無衝突であると判定したかどうかを示すCF値を含み得る。いくつかの例では、示されているデータオブジェクトごとに明示的なストレージがないことがある。
【0043】
軌道セレクタ230は、本明細書でより詳細に説明されるように、軌道が妥当であるかどうか、無衝突であるかどうか、及び場合によっては他の状況に基づいて、おそらく軌道ストレージ222から軌道を選択し、次いで、提案された軌道を有するメッセージをドライブマネージャに送信する。軌道セレクタ230は、TMP122の「現在のレベル」を表す状態変数ストレージ224における状態変数を考慮に入れる。本書の他の箇所で説明されているように、TMP122は、軌道を評価し、その状態が指定されたレベルを上回ってはならないことを示さない限り、階層上で最も高い軌道を使用する。階層の例は、公称軌道から緊急停止軌道までである。指定されたレベルは、システムモニタ120が最も高い許容レベルを示していることに起因するか、またはTMP122が軌道を処理し、最も高いレベルの軌道が妥当でないか、もしくは衝突を含んでいることを発見したことに起因し得る。いくつかの例では、TMP122の現在のレベルは、現在のレベルの軌道が妥当及び無衝突であり、レベルを下げるための外部信号を受信していない場合、フレームからフレームまで同じままであり、TMP122の現在のレベルは、現在のレベルにある軌道が妥当でないかもしくは無衝突でないか、またはレベルを下げるための外部信号を受信している場合に下がる。そのような場合、TMP122は、システムモニタの「クリアして発進」信号及び/またはシステムモニタの解放信号を探す。
【0044】
軌道セレクタ230は、軌道を選択すると、選択された軌道と一致するデータメッセージをドライブマネージャに送信する。軌道が利用可能でない場合、または他の理由により、軌道セレクタ230は、ドライブマネージャに故障メッセージを送信し、及び/または既定の「E停止」になり得る。軌道セレクタ230はまた、その出力を安全/無知覚コリドーチェッカ124へのフィードバックとしても提供し得る。
【0045】
いくつかの状況では、軌道ステータスマネージャ220は、軌道を検討し、それが妥当であるが無衝突ではないと判定し、軌道を変換したものが無衝突であろうと判定する。たとえば、階層があり得、これには、最高から最低まで、公称軌道、第1の偶発的軌道、記憶された偶発的軌道、衝突を有する妥当な第1の偶発的軌道から無衝突の軌道への変換である変換された偶発的軌道、衝突を有する妥当な記憶された偶発的軌道の無衝突の軌道への変換である変換された記憶された偶発的軌道、及び緊急停止軌道がある。変換の例には、軌道を無衝突の軌道にするために、軌道に追加の制動を加えることが含まれる。そのような例では、TMP122は、終点までそのような軌道を実行し続けるか、または他の方法で本明細書に記載される技術に従って解放され得る。
【0046】
軌道変換ストレージ226は、未来のフレームで必要とされる場合、そのような変換の詳細を記憶し得る。変換された偶発的軌道は、完全な軌道として記憶され、未来のフレームで使用され得る。その例では、第1の偶発軌道が変換された偶発的軌道に変換され、その変換された偶発軌道が使用される場合、TMP122がより高いレベルの軌道を使用できるようになる解放があるまで、変換された偶発的軌道が未来のフレームで再使用される。変換された偶発的軌道がもはや妥当及び無衝突でない場合、より低いレベルの軌道が使用されることになる。いくつかの例では、別個の軌道変換ストレージは使用されず、変換された軌道は単に軌道ストレージ222に記憶される。
【0047】
軌道セレクタ230は、システムモニタ「クリアして発進」信号及び/またはシステムモニタ解放信号を受信したときに、状態変数ストレージ224を更新して、新しい最大許容軌道レベルを示し得る。通常のプロセスでは、システムモニタはTMP122をクリアして、利用可能な最も高いレベルの軌道を使用するが、いくつかのプロセスでは、システムモニタは、TMP122をその現在のレベルよりも上のレベルまで部分的にクリアするが、最高レベルまではクリアしない場合がある。
【0048】
図3は、自律車両のアクチュエータシステム304とインターフェースするドライブマネージャ302の要素を示すブロック図である。そこに図示されているように、ドライブマネージャ302は、図2に示されている軌道セレクタ230などの軌道セレクタからドライブマネージャ302に渡される軌道を含むデータ構造を維持する軌道トラッカ306を含み得る。また、ドライブマネージャ302は、制御マネージャ308も含み得る。
【0049】
アクチュエータシステム304内のアクチュエータの例は、ステアリングシステム310、摩擦制動システム312、インバータ314、牽引システム316、電動パーキングブレーキシステム318、及びアクティブサスペンションコントローラ320を含み得る。
【0050】
動作中、ドライブマネージャ302は、アクチュエータコマンドメッセージをアクチュエータシステム304に出力し得、アクチュエータシステム304からフィードバックメッセージを受信し得る。そのようなフィードバックメッセージは、要求された軌道を決定する際にシステムモニタによって使用され得る。
【0051】
図4は、システムモニタ120及びTMP122の代替図400を示すブロック図である。図4は、存在し得るすべてのデータ構造を必ずしも示しているわけではなく、示されているそれらのいくつかは、論理データ構造及び/またはリモートもしくは分散データ構造であり得る。そこに示されているように、システムモニタ120は、自律車両から離れたテレマティクスシステム408にインターフェースする通信システム404を有し得、情報を検討し、自律車両に信号及び入力を提供するために、テレマティクスオペレータ412によって使用されるディスプレイ410に情報を提示し得る。
【0052】
どの種類の解放信号がTMPをより高いレベルの軌道使用に解放するのに十分であるかに対する要件は、いくつかのレベルに対して、解放信号が人間の相互作用からのみ生じることができることを必要とし得る。人間との相互作用は、テレマティクスデータを人間に提供するシステムを使用するリモートテレマティクスオペレータからのものであり得る。少なくともいくつかの例では、そのようなテレマティクスオペレータは、クリアランスメッセージを発行するためのより高度な診断を実行することができるより強力なマシンを備え得る。
【0053】
一例として、システムモニタ120は、いくつかの値または状況が正常な動作範囲から外れていることを発見し、テレマティクスシステム408に問い合わせを送信する一方で、自律車両または環境の異常な状況を検知した後、最終的に停止して静止位置にとどまることにつながる偶発的軌道を要求する軌道タイプ要求メッセージ402を、TMP122に送信し得る。いくつかの例では、異常な状況は、テレマティクスオペレータ412が状況を評価し、自律車両が静止位置に至った後に、異常な状況が十分にクリアされたと判定するまで、移動を開始すべきではないほど深刻である場合がある。
【0054】
たとえば、システムモニタ120が、安全上の理由から自律車両の停止につながるはずの故障を検出し、TMP122に軌道タイプ要求を発行したが、その後、テレマティクスオペレータ412は、その故障がもはや存在しないか、または実行可能な故障ではないと判定した場合、テレマティクスオペレータ412は、システムモニタ解放信号(たとえば、「解放して発進」メッセージ)をシステムモニタ120に送信するように、テレマティクスシステム408に指示することができる。このメカニズムは、自律車両がいったん停止すると、システムモニタ120が「解放して発進」メッセージを受信するまで、システムモニタ120がTMP122に停止状態を維持するように指示することになるという状況を作り出す。
【0055】
図5は、軌道を処理し、軌道を選択及び/または軌道を修正するTMPに実装され得る状態図である。このような状態図は、システム(自律車両システムなど)が、1つの動作モード(たとえば、公称モード)から偶発的モードまたはバックアップモードに移動する方法を説明し得る。TMPは、フレームに対する1つ以上の軌道及び/またはシステムモニタから、フレームに対する要求軌道を指示する要求を受信し得る。これらのいずれかは、同期的に受信され、及び/または非同期的に受信され得る。
【0056】
動作モードは、そのモードに関連付けられている軌道を有し得る。たとえば、公称モードは、道路、自律車両、及び/または乗員に関連する制約を観察しながら、自律車両を開始ロケーションから目的地まで経路に沿って移動させるなど、システムを経路に沿って移動させる軌道を有することができ、一方、偶発的モードは、自律車両を衝突を回避しながら自律車両を停止に至らせる経路に沿って移動させる軌道に関連付けられた軌道を有することができる。
【0057】
図5の状態図では、状態が動作モードに対応しており、TMPは、状態を指示する状態変数を記憶し得る。代わりに、TMPは他の情報からその状態を導出し得る。TMPでは、いくつかの軌道が利用可能である。
【0058】
第1の状態(図5では「状態A」として示されている)にあるとき、TMPは、受信された公称軌道を確認し、これは、図2に示されているものなどの1つ以上の確認テストに対して、一次軌道と呼ばれ得る。状態Aから、軌道が妥当及び無衝突であり、システムモニタが公称軌道を許可している場合(軌道制限メッセージを送信しないこと、またはTMPが任意の軌道を使用するためにクリアされていることを示すことなどによって)、TMPはその軌道を処理し、その状態を示すようにその状態変数を設定することになる。TMPは、軌道を実行するか、または実行のために別のサブシステムに渡すことによって、軌道を処理することができる。次のフレームにおいて、TMPは、その次のフレームの軌道を取得し、状態Aに戻ることができる。
【0059】
TMPは、偶発的軌道と一緒に複数の公称軌道を受信することができ、場合によっては、受信された軌道を修正することなどによって、TMPが自ら生成する1つ以上の軌道も受信することもできる。本明細書に記載される例では、TMPは、1つの公称軌道のみを受信してもよい。TMPは、各フレームで妥当及び無衝突であるかどうかを判定するために他の軌道をチェックすることができ、いくつかの例では、軌道の階層の上位にある軌道が妥当でないか、または無衝突ではない場合など、TMPがそのような軌道を使用する可能性があると決定した場合にのみ、他の軌道をチェックすることができる。公称軌道は、正常な状況で車両が停止標識で停止に至る場合、または乗員を乗降させるためになど、停止を伴う場合がある。
【0060】
状態Aから、これらの状況のいずれかが満たされない場合、たとえば、TMPが、公称軌道が妥当ではないかもしくは無衝突ではないと判定した場合、またはシステムモニタが、TMPが公称軌道を使用してはならないことを示した場合(「クリアして発進」以外の信号を送るシステムモニタとして図5に示されているように)、TMPは、受信された第1の偶発的軌道の妥当性及び衝突をチェックする状態Bに遷移する。第1の偶発的軌道が妥当及び無衝突の両方である場合、TMPは、状態Gに移動し、その第1の偶発的軌道を実行し(ここでも、軌道を実行するか、または実行のために軌道を別のサブシステムに渡すかのいずれかによって)、完了時に、状態Hに移動する。この例では、状態Hは、自律車両が静止している状態である。図6に示されるように、TMPは、本明細書に記載された技術に従って、システムモニタから「クリアして発進」信号を受信するまで、及び/またはテレマティクスシステムなどの人間が監視するシステムからシステムモニタ解放要求を受信するまで、この状態を維持する。
【0061】
状態Bにおいて、TMPが、第1の偶発的軌道が妥当でないと決定した場合、TMPは状態Cに遷移し、前のフレームからの記憶された偶発的軌道であり得る第2の偶発的軌道を試みる。状態Bにおいて、TMPが、第1の偶発的軌道は妥当であるが、無衝突でないことを決定した場合、TMPは、状態Dに遷移し、第1の偶発的軌道を第3の偶発的軌道に変換することによって修正するように試みる。
【0062】
状態Cにおいて、TMPは、第2の偶発的軌道の妥当性及び衝突をチェックする。第2の偶発的軌道が妥当及び無衝突の両方である場合、TMPは、状態Jに移動し、その第2の偶発的軌道を実行し(軌道を実行すること、または実行のために軌道渡すことによって)、完了時に、状態Kに移動する。この例では、状態Kもまた、自律車両が静止している状態である。TMPはまた、その階層内の許容レベルを示す状態変数も維持しているので、TMPは、状態Cに到達すると、未来のフレームでは、解放が受信されるまで状態A及び状態Bをスキップする。
【0063】
状態Cにおいて、TMPが、第2の偶発的軌道が妥当でないと決定した場合、TMPは状態Fに遷移し、緊急停止軌道を実行するが、これは、まれであるはずである。というのも、公称軌道が実行可能でないことも、両方の偶発的軌道が無効であることも必要とするためである。
【0064】
状態Dにおいて、TMPは、第3の偶発的軌道の妥当性及び衝突をチェックする。第3の偶発的軌道が妥当及び無衝突の両方である場合、TMPは、状態Mに移動し、その第3の偶発的軌道を実行し(軌道を実行すること、または実行のために軌道を渡すことによって)、完了時に、状態Nに移動する。この例では、状態Nもまた、自律車両が静止している状態である。TMPはまた、階層内のその許容レベルを示す状態変数も維持しているので、TMPは、状態Dに到達すると、未来のフレームでは、解放が受信されるまで状態A、B、及びCをスキップする。
【0065】
状態Eにおいて、TMPは、第4の偶発的軌道の妥当性及び衝突をチェックする。第4の偶発的軌道が妥当及び無衝突の両方である場合、TMPは、状態Pに移動し、その第4の偶発的軌道を実行し(軌道を実行すること、または実行のために軌道を渡すことによって)、完了時に、状態Qに移動する。この例では、状態Pもまた、自律車両が静止している状態である。TMPはまた、階層内のその許容レベルを示す状態変数も維持しているので、TMPは、状態Eに到達すると、未来のフレームでは、解放が受信されるまで状態AからDをスキップする。
【0066】
状態DまたはEにおいて、TMPが、偶発的軌道を無衝突である変換された軌道に変換することができない(または、何かが起こったことにより妥当でなくなったか、または変換により無効になった)と決定した場合、TMPは状態Fに移動する。また、システムモニタが、おそらくシステムエラー、機械的エラー、電気的エラーなどを検出したことに応答して、緊急停止を実行するようにTMPにメッセージを送信した場合、TMPは状態Fに移動する。
【0067】
このように、図5を参照して説明したように、TMPは、あるべき状態と実行すべき軌道を識別することができる。偶発的軌道の各々は、エラーまたは予期しない状況に応答している可能性が高いので、TMPは、解放信号を受信するまで公称動作を再開しないであろう。
【0068】
図6は、公称軌道以外の軌道を選択したときのTMPの状態を表す、TMPに実装され得る状態図である。TMPがあるタイプの偶発的軌道を実行している状態の例には、状態G(TMPが、軌道プランナAIから受信した、妥当及び無衝突である軌道である第1の偶発的軌道を実行する場合)、状態J(TMPが、以前に軌道プランナAIから受信した、有効及び無衝突である軌道である、記憶された偶発的軌道を実行する場合)、状態M(TMPが、無衝突にされた第1偶発的軌道の変換バージョンを実行する場合)、状態P(TMPが、無衝突にされた記憶されている偶発的軌道の変換バージョンを実行する場合)、及び状態F(TMPが、緊急停止軌道を実行する場合)が含まれる。
【0069】
状態P及び状態F以外の状態では、システムモニタが公称タイプの軌道を要求した場合に、TMPは状態Aに戻ることがあり得るが、自律車両が静止した(または、いくつかの例では、ゼロではない速度を有しているが、その速度が閾値速度より低いかまたはそれと等しい)後、状態Aへの遷移にはテレマティクスシステムからの解放信号が要求される。たとえば、状態Fにおいて、TMPが緊急停止を実行し、静止状態である状態Rに遷移すると、状態Sにおいて、TMPが人間のオペレータによって発行された解除要求を受信するまで、TMPはその状態に留まることになり、自律車両は静止したままとなる。
【0070】
図6に示されるように、システムモニタが異常状況をクリアすることで、自律車両が再び移動すること、または自律車両の停止につながり得る状態から抜け出すことがもたらされ得るいくつかの状態がある一方で、自律車両が再び移動することをもたらすために、テレマティクスシステムから解放信号を受信することが必要とされる他の状態もある。
【0071】
特定の例では、公称軌道は一次軌道とラベル付けされ、第1の偶発的軌道は二次軌道とラベル付けされ、第2の偶発的軌道は記憶された偶発的軌道であり、第3の偶発的軌道は第1の偶発的軌道の変換であり、第4の偶発的軌道は第2の偶発的軌道の変換であるが、公称軌道及び偶発的軌道の他の可能性も考えられる。公称軌道が車両の移動を継続させることは必要ではなく、すべての偶発的軌道が車両を停止に至らせることは必要ではない。
【0072】
より一般的な例では、公称軌道が実行されている公称モードと、妥当及び無衝突である最も高いレベルの軌道が実行され、TMPが開放されるまでそのレベルに留まる偶発的軌道の階層とがある。一般的な例では、レベルは、より高いレベルは自動化されたシステムによって解放することができ、より低いレベルは、最終的に実行された軌道のレベルよりも高いレベルに解放するために、人間のレビュー及び介入を必要とするようなものであり得る。
【0073】
いくつかの例では、システムモニタからの解放が完全かつ無条件の解放ではないことがある(たとえば、TMPを最も高いレベル及び状態Aに戻すことを許可する)。代わりに、システムモニタの解放は、現在のTMPレベルよりもある程度高いが、最高レベルよりは低い場合がある。
【0074】
図6は、システムモニタが状態H、K、及びNからクリアできることを示しているが、いくつかの例では、TMPは、自律車両が移動している状態である、状態G、J、及びMからのシステムモニタの解放を可能にするようにプログラムされていてもよいが、状態H、K、及びNからのシステムモニタの解放よりも多くのことを必要とする。本明細書における図及び説明を確認すると、他のバリエーションが明らかになるはずである。さらに、システムモニタが「発進」(または一次軌道)にクリアするように図示されているが、システムモニタは、図5に関して説明される状態図に反映されるように、任意の他のレベルにクリアしてもよい。
【0075】
図7は、入力704と、1つ以上のAIエンジンを含み得る一次計算ユニット706と、制御ロジックを含み得る二次計算ユニット708と、アクチュエータ710と、を含む、自律車両702のいくつかの要素を示している。具体的な例では、AIエンジンは、入力704を考慮し、選択、データ、または他の形態のメッセージを制御ロジックに送信し、制御ロジックは次いで、アクチュエータ710に送信されるメッセージ及び/または信号に提供される情報及び命令を処理し、アクチュエータ710は、自律車両702のさまざまな電気的、機械的、及び/または電気機械的要素をアクティブ化させて、自律車両702を移動または停止させる。入力704は、自律車両702に存在するセンサからの入力、気象システムなどの外部ソースからの入力、ナビゲーションシステムへのユーザの入力、及び/またはオペレータ入力を含み得る。AIエンジンは、システムモニタAIと、軌道プランナAIと、を含み得る。制御ロジックは、システムモニタプロセスと、軌道マネージャプロセスと、を含み得る。
【0076】
図8は、自律車両のアーキテクチャに従って使用され得る自律車両構成要素800の例を示している。自律車両は、さまざまなコントローラに結合された自律車両動作システム802を有するものとして特徴付けられてもよく、これらのコントローラは、次いで、自律車両のさまざまな構成要素に結合されて、運動、電力管理などを処理する。自律車両動作システム802の要素は、本明細書に記載されるように、オブジェクト識別及び環境分析を実装するための計算システムを提供する。これらの要素は、自律車両以外の他の用途で使用されてもよい。
【0077】
自律車両構成要素800は、本明細書に記載されるシステム、方法、及び装置の態様を実装するために、さまざまなハードウェア、ソフトウェア、ファームウェアなどを含む1つ以上のコンピュータシステム(複数可)を指定し得る。たとえば、自律車両動作システム802は、周囲分析システム803及び自律車両のさまざまな態様に使用可能な他の構成要素を含み得る。周囲分析システム803は、自律車両動作システム802が、モータ、ステアリング、オブジェクト回避などのためのコントローラを動作させるために使用し得る情報を取り込むために使用され得る。
【0078】
一例では、周辺分析システム803は、システムモニタ862であり、軌道の推奨を発行するようにプログラムされている。
【0079】
周囲分析システム803は、実装を単純化するために、別個のチームが特定のサブシステムのために開発できるようにするために、または他の理由のために、複数のサブシステムとして編成され得る。いくつかの例では、サブシステムは独立して実装され、一方、他の例では、複数のサブシステムが部分的または完全に一緒に統合される。サブシステムは、LIDARサブシステム804、カメラサブシステム806、レーダーサブシステム808、ソナーサブシステム810、ボクセル空間サブシステム812、地面判定サブシステム814、クラスタリングサブシステム816、補間サブシステム818、オブジェクト判定サブシステム820、動的オブジェクト判定サブシステム822、レイキャスティングサブシステム824、追跡サブシステム826、計画サブシステム828、センサ較正サブシステム830、注釈サブシステム832、及び場合によっては他のサブシステム834を含み得る。
【0080】
所定のサブシステムは、他のサブシステムと通信し、入力を受信し、出力を提供するためのプログラムコードまたはハードウェアで実装され得る。入力のいくつかはセンサからのものであり得る。本明細書のいくつかの説明では、読みやすさのために、サブシステムは、サブシステムがデータまたは信号を取得するセンサ、及び/またはサブシステムがデータまたは信号を出力するエミッタを含むものとして説明されることがある。たとえば、ソナーサブシステムは、超音波センサを有するものとして説明され得るか、または超音波センサから信号を受信するものとして説明され得る。別の例として、カメラサブシステムは、カメラ及びディスプレイを有するものとして説明され得るか、または信号またはデータをカメラから受信し、信号またはデータをディスプレイに送信するものとして説明され得る。
【0081】
図8には示されていないが、サブシステム間の通信は必要に応じて提供されてもよいことを理解すべきである。所与のサブシステムは、何らかのチャネルを介してデータを他のサブシステムに直接送信することによって、別のサブシステムと通信し得、周囲分析システム803は、サブシステムがその間にデータ及び/または信号を渡すことによって通信できるバスサブシステムまたは通信インフラストラクチャを備え得る。周囲分析システム803はまた、外部データを受信し、周囲分析システム803の外部に情報を通信するようにも構成され得る。
【0082】
所与のサブシステムは、それ自体の計算処理のいくつかを有してもよく、それは、その所与のサブシステムに専用のハードウェアによって実行されてもよく、またはそのサブシステムの計算を実行するように割り当てられたプロセッサまたは回路によって実行されてもよく、場合によっては、サブシステムは、完全にソフトウェアに実装され、プログラムコードメモリ及びデータ記憶メモリなどのメモリ838を使用して1つ以上のプロセッサ(複数可)836によって実行され得る。メモリは、RAMなどの変数及びデータの一時的記憶のためのもの、及び恒久的記憶(すなわち、ある寿命期間、リフレッシュ、電力などを必要とすることなく持続するデータ)のためのメモリであってもよく、明示的に言及されていなくても、示された箇所では暗示されるべきである。たとえば、サブシステムがデータベース上で動作している、またはデータを記憶しているものとして説明されている場合、電子的に読み取り可能な形態でデータを記憶するための何らかの形態のメモリが存在するであろう。いくつかの場合では、データベースまたはメモリ内のデータストレージは、1つのサブシステムに固有ではなく、その内部にはない。このような場合、メモリには複数のサブシステムからアクセス可能である。たとえば、あるサブシステムは、そのサブシステムによって取得されたセンサデータに基づいて記録を作成し、それらの記録をデータベースまたは他のデータ構造に書き込み、次に、別のサブシステムがそのデータを読み取って使用することができる。サブシステムがソフトウェアに実装されている場合、サブシステムは、そのサブシステムに固有のプロセッサ、またはより一般的なプログラムコードメモリ及びプロセッサに結合されたプログラムコードを含むことがある。
【0083】
いくつかの例では、周囲分析システム803が自律車両に使用されている。いくつかの例では、周囲分析システム803は、自律車両に知覚機能及び計画機能性を提供し得る。一般に、周囲分析システム803は、LIDAR知覚、レーダー知覚、視覚(カメラ)知覚、音響知覚、セグメント化及び分類、追跡及び融合、ならびに予測/計画とともに、ドライブコントローラ、電力コントローラ、環境コントローラ、及び通信コントローラなどの他のコントローラとのインターフェースを提供し得る。
【0084】
自律車両動作システム802は、計画システム840、道路ナビゲーションシステム842、マニフェストマネージャ844、及び監査/故障ロガー846を含み得る。自律車両動作システム802はまた、さまざまなセンサ850及びエミッタ852を含むか、またはこれらにインターフェースすることもできる。
【0085】
自律車両動作システム802は、モータ(複数可)880、ステアリング882、ブレーキ884、及びサスペンション886と相互作用するドライブコントローラ870、バッテリ888及びインバータ/チャージャ890と相互作用する電力コントローラ872、暖房、換気、空調(HVAC)構成要素892、及び照明894と相互作用する環境コントローラ874、自律車両、自律車両で使用されているデバイス、ならびにネットワーク、セルラーチャネル、またはWi‐Fiチャネル896などを介した外部デバイスとの間の通信を処理する通信コントローラ876とインターフェースし得る。自律車両動作システム802、コントローラ、及び自律車両に設置された車両構成要素の組み合わせは、絶え間ない人間の介入を伴わずに安全にナビゲートすることができる車両を提供することができる。
【0086】
ドライブコントローラ870は、軌道マネージャプロセス860(TMP122など)からの入力を受信し得、軌道マネージャプロセス860は、システムモニタ862(たとえば、システムモニタ120)からの入力を受信し得、システムモニタ862は、軌道を一緒に処理し、問題のある軌道を回避し、異常に応答し、保証されたときに異常をクリアする。システムモニタ862は、計画サブシステム828または計画システム840に組み込まれるか、またはこれと共通のプロセッサによって実行され得る。そのような構成要素のいずれかまたはすべては、本明細書に記載されているもの(図1図7のいずれかに関するものなど)、それらの組み合わせ、または他のものであり得る。
【0087】
周囲分析システム803及びそのサブシステム、LIDARサブシステム804をここでも参照すると、LIDARサブシステム804は、本明細書に記載されるように、セグメント化のためのLIDARデータを捕捉するための1つ以上のLIDARセンサを含み得、本明細書に詳細に記載されるように、任意の1つ以上の深度センサを備え得る。いくつかの例では、LIDARサブシステム804は、複数のLIDARセンサからのLIDARデータを組み合わせるかまたは合成して、LIDARデータのメタスピンを生成するための機能性を含み得、これは、複数のLIDARセンサに基づくLIDARデータを参照し得る。LIDARデータのメタスピンの場合、LIDARサブシステム804は、メタスピンデータの仮想起点(たとえば、すべてのLIDARセンサに共通の座標基準フレーム)を決定し、1つ以上のLIDARセンサの各々からのLIDARデータが仮想起点に関して表現されるようなデータ変換を実行するための機能性を含み得る。本開示の文脈で理解され得るように、LIDARサブシステム804は、データを捕捉し、後続の処理のために、データセットを周囲分析システム803の他のサブシステムに送信し得る。
【0088】
カメラサブシステム806は、画像セグメント化及び/または分類のために視覚データを捕捉するための、1つ以上のカメラセンサを含むか、またはそれにインターフェースし得る。カメラサブシステム806は、任意の数及びタイプのカメラセンサを含み得る。たとえば、カメラサブシステム806は、任意のカラーカメラ、モノクロカメラ、深度カメラ、RGB-Dカメラ、ステレオカメラ、赤外線(IR)カメラ、紫外線(UV)カメラなどを含み得る。本開示の文脈で理解され得るように、カメラサブシステム806は、データを捕捉し得、後続の処理のために他のサブシステムにデータセットを送信し得る。たとえば、カメラサブシステム806からのデータは、別のサブシステムによってそのように処理されるマルチチャネル画像の1つ以上のチャネルとして含まれ得る。
【0089】
レーダーサブシステム808は、環境内のオブジェクトの範囲、角度、及び/または速度を捕捉するための1つ以上のレーダーセンサを含み得る。本開示の文脈で理解され得るように、レーダーサブシステム808は、データを捕捉し、後続の処理のために、データセットを周囲分析システム803の他のサブシステムに送信し得る。たとえば、レーダーサブシステム808からのデータは、別のサブシステムに提供されるマルチチャネル画像の1つ以上のチャネルとして含まれ得る。
【0090】
ソナーサブシステム810は、環境内のオブジェクトから音響情報を捕捉するために、1つ以上のスピーカまたはサウンドエミッタ及び1つ以上のマイクロフォン(マイクロフォンアレイなど)を含むか、またはそれらにインターフェースすることができる。追加として、または代替では、そのようなソナーサブシステム810は、さまざまな超音波トランスデューサを備え得る。たとえば、ソナーサブシステム810は、超音波トランスデューサに音のパルスを放出させることができ、環境内のオブジェクトに関連する位置及び/または動き情報を決定するために、エコーを聴取し得る。本開示の文脈で理解され得るように、ソナーサブシステム810は、データを捕捉し、後続の処理のためにデータセットを他のサブシステムに送信し得る。たとえば、周囲分析システム803の別のサブシステムは、オブジェクトをより正確にセグメント化するために、及び/またはオブジェクトに関する情報を決定するために、または他の目的のために、ソナーサブシステム810から取得されたデータをLIDARサブシステム804から取得されたデータと融合し得る。
【0091】
自律車両動作システム802は、図示されたもの以外の自律車両における使用に適した任意の数またはタイプの他のセンサを含み得る。さまざまなセンサ850は、超音波トランスデューサ、ホイールエンコーダ、環境センサ、マイクロフォン、慣性測定ユニット(複数可)(IMU)、加速度計、ジャイロスコープ、磁気計、温度センサ、湿度センサ、光センサ、全地球測位システム(GPS)センサ、ロケーションセンサなどを含み得るが、これらに限定されない。
【0092】
いくつかの例では、LIDARサブシステム804、カメラサブシステム806、レーダーサブシステム808、及び/またはソナーサブシステム810は、改善されたセグメント化のためにデータを結合及び/または合成するために、1つ以上データセットを周囲分析システム803の他のサブシステムに提供し得る。
【0093】
周囲分析システム803は、テストで部分的に使用するために、コンピュータシミュレーションアルゴリズムによって生成されたシミュレートされたデータのためのストレージをさらに含み得る。いくつかの例では、シミュレートされたデータは、カメラデータ、LIDARデータ、レーダーデータ、ソナーデータ、慣性データ、GPSデータなど、任意のタイプのシミュレートされたデータを含み得る。いくつかの例では、周囲分析システム803は、動作を検証するために、及び/または本明細書に記載されるように機械学習アルゴリズムをトレーニングするために、シミュレートされたデータに対して、本明細書に記載される変換動作を修正、変換、及び/または実行することができる。たとえば、実験室環境でいくつかの機能性をテストするために、実際のセンサデータであるかのように、シミュレートされたセンサデータ/信号をサブシステムに供給して、いくつかのサブシステムの性能をテストすることができる。
【0094】
ボクセル空間サブシステム812は、データをボクセルマップに変換またはマッピングするための機能性を含み得る。たとえば、ボクセル空間サブシステム812は、LIDARデータ、カメラデータ、レーダーデータ、ソナーデータなどを受信し、個々のデータ点を、環境内の三次元空間を表すボクセルマップにマッピング、変換、または関連付けることができる。ボクセル空間は、自律車両を取り巻く空間などの3次元環境の論理表現であり、個別の小さなボリューム、たとえばボクセルとして表される。ボクセルマップは、ボクセル空間内のそれぞれのボクセルのデータまたは値を提供する。三次元環境表現として、ボクセルマップをメモリに記憶し、プロセッサで操作することができる。
【0095】
いくつかの例では、ボクセル空間サブシステム812は、ボクセル空間の長さ、幅、及び高さを含む、ボクセル空間の寸法を定義することができる。さらに、ボクセル空間サブシステム812は、個々のボクセルのサイズを決定してもよい。いくつかの例では、ボクセルは、ボクセル空間全体で均一なサイズ及び形状であり得るが、いくつかの例では、ボクセルのサイズ及び/または密度は、ボクセル空間内の相対的なロケーションに基づいて変化し得る。たとえば、ボクセルのサイズは、ボクセル空間の起点または中心からのボクセルの距離に比例して増加または減少し得る。追加として、または代替では、そのようなボクセル空間サブシステム812は、仮想起点とボクセル空間の起点との間の変換を含み得る。いくつかの例では、ボクセル空間サブシステム812は、データを含まないボクセル、またはデータ閾値を下回るある量のデータを含むボクセルがボクセルマップに存在する必要はなく、それらのボクセルの値を仮定または無視することができる、疎らなボクセル空間を生成するための機能性を含み得る。そのような例では、ボクセルマップは、オクトマップ、またはボクセルハッシュなどとして編成され得る。いくつかの例では、ボクセル空間サブシステム812は、データがボクセル空間にマッピングされ、ボクセルマップに記憶されるときにデータをフィルタリングすることによって、ボクセルマップのデータまたはボクセルマップを生成するために使用されるデータのノイズの量を低減するための機能性を含み得る。たとえば、フィルタリングは、ボクセルあたりのデータの閾値量を下回るデータ(たとえば、ボクセルに関連付けられているLIDARデータ点の数)、またはボクセルの所定の数を上回るデータ(たとえば、いくつかの近接するボクセルに関連付けられているLIDARデータ点の数)を除去することを含み得る。いくつかの例では、ボクセル空間サブシステム812は、データが経時的に収集されるとき、またはボクセル空間が対応する実世界環境内をナビゲートする自律車両に応答して、ボクセルマップを更新することができる。たとえば、ボクセル空間サブシステム812は、自律車両が環境内をナビゲートするときに、ボクセルマップからデータを追加し、及び/またはデータを破棄することができる。
【0096】
いくつかの例では、ボクセル空間サブシステム812は、ボクセルマップ、及びボクセルサイズ、方位、及びエクステントなどの他のボクセル空間パラメータを初期化することができ、初期のボクセルマップを空き空間を表すものとして扱い、ボクセル空間サブシステム812は、LIDARデータが経時的に捕捉されるにつれて、オブジェクトの表現を構築することができる。他の例では、ボクセル空間サブシステム812は、全体マップデータを使用してボクセルマップ及びボクセル空間パラメータを初期化することができ、これにより局所的に捕捉されたLIDARデータが、全体マップ空間内で自律車両を局所化するために使用され得、また全体マップのボクセルをクリーンアップまたはクリアするために使用され得る。
【0097】
地面判定サブシステム814は、ボクセル空間内の環境に関連付けられている地面を判定するために、ボクセル空間の個々のボクセルを解析するための機能性を含み得る。たとえば、地面判定サブシステム814は、特定のボクセルに関連付けられているデータを表す平面を推定すること、及びその平面の法線ベクトルを決定することによって、局所的に平坦なボクセルを判定し得る。たとえば、地面判定サブシステム814は、ボクセルマップのボクセルに対して主成分分析を実行して、ボクセルに関連付けられているデータに関連付けられている最小の主成分を決定し得る。いくつかの例では、主成分分析のために、最小の固有ベクトルは、平面の法線ベクトルに対応し得、一方、固有ベクトルに関連付けられている固有値は、最小の固有ベクトルの方向における特定のボクセルに関連付けられているデータの拡散またはレベルに対応し得る。
【0098】
別の例として、限定されるものではないが、そのような表面法線決定は、ボクセル内の点PからPの最近傍のうちの2つへの方向を示すベクトルの外積の法線を算定することによって行ってもよい。別の例として、限定されるものではないが、そのような表面法線決定は、個々のボクセルに関連付けられている共分散行列に対して固有値分解を実行することによって行ってもよい。いくつかの例では、地面判定サブシステム814は、隣接するボクセルに関連付けられている値に基づいてターゲットボクセルに関連付けられている表面を決定することによって、ターゲットボクセルが局所的に平坦なボクセルであるかどうかを判定し得る。さらに、いくつかの例では、地面判定サブシステム814は、マーチングキューブタイプのアルゴリズムを利用して、ボクセルに関連付けられている平均点値に基づいてメッシュを作成し、少なくとも3つの点を含む三角形を決定して表面を作成し得る。さらに、地面判定サブシステム814は、自律車両の方向または方位に対応し得る基準方位を受信し得る。地面判定サブシステム814は、ボクセルに関連付けられている法線ベクトルが、上述したように基準方位の閾値量内にある場合、ボクセルが局所的に平坦なボクセルであることを決定し得る。
【0099】
クラスタリングサブシステム816は、地面判定サブシステム814と連携して動作し、おそらくメモリ内の地面領域の表現を拡張させることによって、LIDARデータの起点に最も近い表面から開始するか、または自律車両の下にある表面から開始して、地面領域を決定し得る。すなわち、自律車両に近接する実世界の位置に対応するボクセル空間内の位置にあるボクセルは、クラスタリングサブシステム816によってシードボクセルとして使用され得、次いで、それらのシードボクセルからボクセルの表現を拡張することができる。クラスタリングサブシステム816は、隣接する局所的に平坦なボクセルが同じクラスタに属することを決定し得、地面平面を包含するように領域を拡張させ得る。さらに、クラスタリングサブシステム816は、以下で考察されるオブジェクト判定サブシステム820と連携して動作して、クラスタ内のまたは他の場所のボクセルが特定のオブジェクトに関連付けられていることを決定し得る。クラスタリングサブシステム816は、領域拡張(region growing)、階層的クラスタリング(hierarchical clustering)、分割クラスタリング(partitional clustering)、平方誤差クラスタリング(square error clustering)、グラフ理論クラスタリング(graph theoretic clustering)、混合‐分解クラスタリング(mixture-resolving clustering)、平均シーククラスタリング(mean-seeking clustering)、k平均クラスタリング(k-means clustering)、Nカットクラスタリング(N-cut clustering)、近接クラスタリング(proximity clustering)などを含むが、これらに限定されない、さまざまなクラスタリングアルゴリズムを利用してもよい。
【0100】
補間サブシステム818は、地面判定サブシステム814及び/またはクラスタリングサブシステム816と連携して動作し、さまざまなクラスタを組み合わせるかまたは一緒に関連付けて、地面平面の表現を拡大し得る。たとえば、局所的に平坦なボクセルは、自律車両に関連付けられている地面領域を決定するときに単一のクラスタを形成しない場合があり、その場合、補間サブシステム818は、点間を補間して、勾配が地面平面クラスタを拡張させるための閾値勾配を上回るかまたは下回るかを判定することができる。地面判定サブシステム814、クラスタリングサブシステム816、及び補間サブシステム818の追加の態様は、これらのサブシステムを理解するために必要に応じて、本明細書の他の箇所で提供され得る。
【0101】
オブジェクト判定サブシステム820は、ボクセルマップによってボクセル空間に表されるオブジェクトを判定するための機能性を含み得る。たとえば、オブジェクト判定サブシステム820は、地面判定サブシステム814から地面平面についての指示を受信し、及び/または局所的に平坦なボクセルのいくつかまたはすべてについての指示を受信することができ、ボクセルマップが他のボクセルの値のみを含むように、ボクセル空間から地面に関連付けられているボクセルを除去することができる。次に、オブジェクト判定サブシステム820は、残りのボクセルを解析して、ボクセルの接続性に基づいてオブジェクトを判定し得る。たとえば、オブジェクト判定サブシステム820は、クラスタリングサブシステム816と連携して動作して、隣接するボクセルが同じオブジェクトの一部であるとみなされるべきであることを判定することによって、オブジェクトに対応するボクセル空間内の領域を拡張させることができる。オブジェクト判定サブシステム820は、特定のオブジェクトに関連付けられているすべてのボクセルにオブジェクト識別子を割り当て得、いくつかの例では、オブジェクト判定サブシステム820によって割り当てられるかまたは判定されたオブジェクト識別子は、特定のオブジェクトを含むボクセルに関連付けられているLIDARデータに伝搬され得る。オブジェクト、地面、クラスタなどに関する追加の情報は、ボクセルマップとともに、または個別のデータ構造として記憶され得る。オブジェクト判定サブシステム820の追加の態様は、オブジェクト判定サブシステム820を理解するために必要に応じて、本明細書の他の場所で提供され得る。
【0102】
動的オブジェクト判定サブシステム822は、ボクセル空間に対応する空間に存在すると判定され得る静的オブジェクトと動的オブジェクトとを区別するための機能性を含み得る。たとえば、動的オブジェクト判定サブシステム822は、データを経時的に蓄積して、第1の時間におけるボクセル値を第2の時間におけるボクセル値と比較して、ボクセルの占有が経時的に変化したかどうかを判定することによって、オブジェクトの動きを判定し得る。たとえば、第1の時間にオブジェクトによって占有されていたボクセルが、第2の時間にそのオブジェクトによって占有されていない場合、動的オブジェクト判定サブシステム822は、そのオブジェクトを動的オブジェクトであるとみなし、その評価をボクセルマップデータとして記録し得る。どのボクセルが時間の経過とともに占有されるようになり、または占有されなくなるかに基づいて、動的オブジェクト判定サブシステム822は、移動のスピード及び方向などの動的オブジェクトの移動を判定することができる。いくつかの例では、動的オブジェクト判定サブシステム822は、動的オブジェクトからの移動を判定するための指示を提供することができる。動的オブジェクト判定サブシステム822の追加の態様は、動的オブジェクト判定サブシステム822を理解するために必要に応じて、本明細書の他の箇所で提供され得る。
【0103】
レイキャスティングサブシステム824は、動的オブジェクト判定サブシステム822と連携して動作して、静的オブジェクトと動的オブジェクトとの間を区別することができる。さらに、レイキャスティングサブシステム824は、データがボクセルマップの表現に蓄積するにつれて、経時的にボクセルマップをクリアするための機能性を含み得る。たとえば、オブジェクトが経時的にボクセル空間全体を移動するにつれて、動的オブジェクトが占有するボクセルの表現には、経時的にますます多くのデータが含まれ得る。しかしながら、レイキャスティングサブシステム824は、LIDARデータに関連付けられている光線の経路を分析して、たとえば、光線が内部を進行するいくつかのボクセルがクリアされたとみなされるべきであり、ボクセルマップ内の対応するストレージがクリアされるべきであることを判定し得る。したがって、レイキャスティングサブシステム824は、第1の時間に占有されていたボクセルが第2の時間に占有されていないことを判定するための追加の機能性を提供してもよく、それは、たとえば、さまざまなモジュールに提供されて、オブジェクトが動的オブジェクトであることを判定し得る。いくつかの例では、ボクセルマップは、疎な方法(たとえば、占有されたボクセルを表すデータを提供し、占有されていないボクセルを無視する)または密な方法(たとえば、ボクセルの破棄を伴わない)で表され得る。いくつかの例では、レイキャスティングサブシステム824は、密な方法でレイキャスティング情報を記憶してもよく、すなわち、疎なボクセル表現に存在しないボクセル(たとえば、ボクセルが関連するLIDARデータを有していないため)が、そのようなボクセルに関連付けられているレイキャスティング情報を有することができる。たとえば、関連するLIDARデータを有さないボクセルは、それでも、ボクセル空間のボクセルに関連付けられているレイキャスティング情報を含めるために、密なボクセルマップで表され得る。いくつかの例では、密なボクセル表現は、本明細書で考察されるレイキャスティング動作に少なくとも部分的に対応して、ボクセルが占有されていないという正の情報をボクセルに関連付けてもよい。さらに、LIDARデータは個々のボクセルに対して蓄積されるので、負の情報は、たとえば、それらが静的オブジェクトで占有されていることを示すために、ボクセルマップにおいて個々のボクセルに関連付けられてもよい。データは時間の経過とともに蓄積されるため、情報を部分的に集約して、たとえば、ボクセルが空き空間に対応するのか、または静的オブジェクトに対応するのかを判定することができる。さらに、レイキャスティングサブシステム824を使用して、局所的に捕捉されたLIDARデータを全体マップデータと比較することによって、全体マップをクリーンアップすることができる。レイキャスティングサブシステム824の追加の態様は、レイキャスティングサブシステム824を理解するために必要に応じて、本明細書の他の箇所で提供され得る。
【0104】
追跡サブシステム826は、1つ以上の動的オブジェクトの指示を受信し、オブジェクトを追跡するために追加の処理を実行するための機能性を含み得る。たとえば、追跡サブシステム826は、動的オブジェクトの速度を決定することができ、及び/または動的オブジェクトの軌道を経時的に決定及び記憶し得る。いくつかの例では、追跡サブシステム826は、オブジェクトの以前の動きに基づいて追跡されるオブジェクトの経路を予測し得る予測アルゴリズムを実行するようにプログラムされ得る。
【0105】
計画サブシステム828は、自律車両の軌道を決定するために、セグメント化されたデータ及び/または地面平面、静的オブジェクト、及び/または動的オブジェクトの指示を受信するための機能性を含み得る。たとえば、計画サブシステム828は、地面平面を識別するセグメント化情報を受信することができ、自律車両が追従する軌道を生成することができる。
【0106】
センサ較正サブシステム830は、環境に関して決定されたセグメント化情報に少なくとも部分的に基づいて、1つ以上のセンサを較正するための機能性を含み得る。たとえば、LIDARサブシステム804、カメラサブシステム806、レーダーサブシステム808、及び/またはソナーサブシステム810からのセンサデータは、(たとえば、(同時位置特定及びマッピング(SLAM)を使用して)、ロケーション及び/または方位を推定するために使用され得るが、自律車両はまた、環境における自律車両のロケーションを決定するための、慣性測定ユニット(IMU)及び/またはGPSユニットなどの追加のセンサも含み得る。いくつかの例では、IMUは、自律車両が第1のロケーションにあることを示し得、一方で、本明細書に記載されるLIDARデータの分析は、車両が第1のロケーションとは異なる第2のロケーションにあることを示し得る。センサ較正サブシステム830は、ロケーションの差を決定し得、自律車両のロケーション、または1つ以上のセンサ固有特性もしくは外部特性を更新するために、もう1つのセンサを調整または較正し得る。
【0107】
注釈サブシステム832は、本明細書で考察されるセグメント化情報を受信するための機能性を含み得、ボクセルマップとともにデータとしてまたは他の方法で記憶されたオブジェクトに関連付けられている情報で、地面平面、静的オブジェクト、及び/または動的オブジェクトに注釈を付け得る。いくつかの例では、注釈サブシステム832は、たとえば、技術者による手動の確認及び/または調整のために、グラフィカルユーザインターフェースでセグメント化情報を提供し得る。いくつかの例では、注釈サブシステム832は、本明細書で考察されるオブジェクトの分類を決定及び適用するための機能性を含み得る。注釈サブシステム832は、セグメント化及び分類の動作を実行するために、ニューラルネットワークプロセスなどの機械学習アルゴリズムを実行するようにプログラムされ得る。
【0108】
例示的なニューラルネットワークは、出力を生成するために一連の接続された層を通じて入力データを渡し得る。ニューラルネットワークの一例は、畳み込みニューラルネットワーク(CNN)を含み得る。CNNの各層はまた、別のCNNを含み得るか、またはいくつかの層を含み得る。本開示の文脈で理解され得るように、ニューラルネットワークは機械学習を利用することができ、これは、学習されたパラメータに基づいて出力が生成される、そのようなアルゴリズムの広いクラスを指すことができる。
【0109】
ニューラルネットワークの文脈で考察されているが、本開示に一致する任意のタイプの機械学習が使用されもよい。たとえば、機械学習アルゴリズムは、回帰アルゴリズム(たとえば、通常の最小二乗回帰(OLSR)、線形回帰、ロジスティック回帰、ステップワイズ回帰、多変量適応型回帰スプライン(MARS)、局所的に推定された散布図平滑化(LOESS))、インスタンスベースのアルゴリズム(たとえば、リッジ回帰、最小絶対収縮及び選択演算子(LASSO)、弾性ネット、最小角回帰(LARS))、決定木アルゴリズム(たとえば、分類回帰木(CART)、反復二分法3(ID3)、カイ二乗自動相互作用検出(CHAID)、決定株、条件付き決定木)、ベイジアンアルゴリズム(たとえば、ナイーブベイズ、ガウシアンナイーブベイズ、多項ナイーブベイズ、平均一依存エスティメータ(AODE)、ベイジアン信念ネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(たとえば、k平均法、kメジアン法、期待値最大化(EM)、階層的クラスタリング)、相関ルール学習アルゴリズム(たとえば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、放射基底関数ネットワーク(RBFN))、深層学習アルゴリズム(たとえば、深層ボルツマンマシン(DBM)、深層信念ネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層オートエンコーダ)、次元削減アルゴリズム(たとえば、主成分分析(PCA)、主成分回帰(PCR)、部分最小二乗回帰(PLSR)、サモンマッピング、多次元スケーリング(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、二次判別分析(QDA)、柔軟判別分析(FDA))、アンサンブルアルゴリズム(たとえば、ブースティング、ブートストラップ集計(バギング)、アダブースト、スタック汎化(ブレンディング)勾配ブースティングマシン(GBM)、勾配ブースト会機器(GBRT)、ランダムフォレスト)、SVM(サポートベクターマシン)、教師あり学習、教師なし学習、半教師あり学習などを含み得るが、これらに限定されない。
【0110】
図8に示される環境は、ストレージ、1つ以上のプロセッサ(複数可)、メモリ、及び場合によっては、オペレーティングシステムを含む1つ以上のコンピュータシステムで実装され得る。
【0111】
本明細書に記載されるシステム及び方法は、ソフトウェアもしくはハードウェア、またはこれらの任意の組み合わせで実装され得る。本明細書に記載されるシステム及び方法は、互いに物理的または論理的に分離していてもしていなくてもよい1つ以上のコンピューティングデバイスを使用して実装され得る。方法は、オンプレミスハードウェア、オンプレミス仮想システム、またはホストされたプライベートインスタンスのいずれかとして配置された構成要素によって実行することができる。さらに、本明細書に記載される方法のさまざまな態様を組み合わせるか、または他の機能に統合することができる。
【0112】
システム及び方法を実装するための例示的な環境及びコンピュータ化されたシステムは、プロセッサまたはコンピュータシステムを含み得、本明細書に記載される方法のいくつかまたはすべてを特に実行するように構成され得る。いくつかの例では、方法は、1つ以上のコンピュータまたはプロセッサによって部分的または完全に自動化することができる。本明細書に記載されるシステム及び方法は、ハードウェア、ファームウェア、及び/またはソフトウェアのいずれかの組み合わせを使用して実装することができる。本明細書に記載される本システム及び方法(またはその任意の部分(複数可)もしくは機能(複数可))は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせを使用して実装することができ、1つ以上のコンピュータシステムまたは他の処理システムに実装することができる。いくつかの例では、図示されたシステム要素は、単一のハードウェアデバイスに組み合わされるか、または複数のハードウェアデバイスに分離され得る。複数のハードウェアデバイスを使用する場合、ハードウェアデバイスは物理的に互いに近接するか、または互いから離れて位置付けられ得る。説明及び図示された方法の例は、例示を意図するものであり、限定を意図するものではない。たとえば、方法のステップのいくつかまたはすべてを、異なる例において組み合わせ、再配置し、及び/または省略することができる。
【0113】
1つの例示的な例では、本明細書に記載されるシステム及び方法は、本明細書に記載される機能性を実行することができる1つ以上のコンピュータシステムを対象とし得る。例示的なコンピューティングデバイスは、OSX(商標)、iOS(登録商標)、Linux(登録商標)、Android(登録商標)、及びMicrosoft(登録商標)、Windows(登録商標)などの、ただしこれらに限定されない、任意のオペレーティングシステムを動作させる、パーソナルコンピュータ(PC)システムであり得るが、これらに限定されない。しかしながら、本明細書に記載されるシステム及び方法は、これらのプラットフォームに限定されなくてもよい。代わりに、本明細書に記載されるシステム及び方法は、任意の適切なオペレーティングシステムを動作させる任意の適切なコンピュータシステム上に実装されてもよい。
【0114】
システムは、1つ以上のプロセッサを含み得る。プロセッサ(複数可)は、通信バス、クロスオーバーバー、またはネットワークなどの、ただしこれらに限定されない、通信インフラストラクチャに接続され得る。プロセス及びプロセッサは、同じ物理的ロケーションに位置付けられなくてもよい。言い換えると、プロセスは、たとえば、LANまたはWAN接続を介して、1つ以上の地理的に離れたプロセッサにおいて実行され得る。コンピューティングデバイスは、ディスプレイユニット上での表示のために、グラフィックス、テキスト、及び他のデータを通信インフラストラクチャから転送することができる、ディスプレイインターフェースを含み得る。
【0115】
コンピュータシステムはまた、メインメモリ、ランダムアクセスメモリ(RAM)、及び二次メモリなどを含み得るが、これらに限定されない。二次メモリは、たとえば、ハードディスクドライブ、及び/またはコンパクトディスクドライブCD-ROMなどのリムーバブル記憶ドライブなどを含み得る。リムーバブル記憶ドライブは、リムーバブル記憶ユニットから読み取ることができ、及び/またはリムーバブル記憶ユニットに書き込むことができる。理解され得るように、リムーバブル記憶ユニットは、コンピュータソフトウェア及び/またはデータを内部に記憶した、コンピュータ使用可能記憶媒体を含み得る。いくつかの例では、マシンアクセス可能媒体は、コンピュータによってアクセス可能なデータを記憶するために使用される任意の記憶デバイスを指すことができる。マシンアクセス可能媒体の例は、たとえば、磁気ハードディスク、フロッピーディスク、コンパクトディスクリードオンリメモリ(CD-ROM)もしくはデジタル多用途ディスク(DVD)などの光ディスク、磁気テープ、及び/またはメモリチップなどを含み得るが、これらに限定されない。
【0116】
プロセッサはまた、データを記憶するための1つ以上のデータ記憶デバイスも含み得、またはそれらと通信するように動作可能に結合され得る。そのようなデータ記憶デバイスは、非限定的な例として、(内蔵ハードディスク及びリムーバブルディスクを含む)磁気ディスク、光磁気ディスク、光ディスク、リードオンリーメモリ、ランダムアクセスメモリ、及び/またはフラッシュストレージを含み得る。コンピュータプログラム命令及びデータを有形的に具体化するのに適した記憶デバイスはまた、たとえば、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスク及びリムーバブルディスクなどの磁気ディスク、磁気-光ディスク、並びにCD-ROM及びDVD-ROMディスクを含む、すべての形態の不揮発性メモリも含み得る。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)によって補完され得るか、またはASICに組み込まれ得る。
【0117】
処理システムは、コンピュータ化されたデータ記憶システムと通信することができる。データ記憶システムは、非リレーショナルデータストア、またはMySQL(商標)もしくは他のリレーショナルデータベースなどのリレーショナルデータストアを含み得る。他の物理的及び論理的データベースタイプが使用され得る。データストアは、Microsoft(登録商標) SQL Server(商標)、Oracle(商標)、IBM DB2(商標)、SQLITE(商標)、またはリレーショナルもしくは他の方法の任意の他のデータベースソフトウェアなどの、データベースサーバであり得る。データストアは、構文タグを識別する情報、及び構文タグを演算するのに必要とされる任意の情報を記憶することができる。いくつかの例では、処理システムは、オブジェクト指向プログラミングを使用することができ、データをオブジェクト内に記憶することができる。これらの例では、処理システムは、オブジェクトリレーショナルマッパー(ORM)を使用して、データオブジェクトをリレーショナルデータベースに記憶することができる。本明細書に記載されるシステム及び方法は、任意の数の物理データモデルを使用して実装することができる。一例では、リレーショナルデータベース管理システム(RDBMS)が使用され得る。これらの例では、RDBMS内のテーブルは、座標を表す列を含み得る。経済的システムの場合、会社、製品などを表すデータが、RDBMS内のテーブルに記憶され得る。テーブルは、それらの間の事前定義された関係を有し得る。テーブルはまた、座標に関連付けられた付加物も有し得る。
【0118】
代替例では、二次メモリは、コンピュータプログラムまたは他の命令が、コンピュータシステムにロードされることを可能にするための、他の類似のデバイスを含み得る。そのようなデバイスは、たとえば、リムーバブル記憶ユニット及びインターフェースを含み得る。そのようなものの例は、(たとえば、ビデオゲームデバイスに見出されるものなどの、ただしこれらに限定されない)プログラムカートリッジ及びカートリッジインターフェース、(たとえば、消去可能プログラマブルリードオンリーメモリ(EPROM)、またはプログラマブルリードオンリーメモリ(PROM)、及び関連するソケットなどの、ただしこれらに限定されない)リムーバブルメモリチップ、ならびにソフトウェア及びデータがリムーバブル記憶ユニットからコンピュータシステムに転送されることを可能にし得る、他のリムーバブル記憶ユニット及びインターフェースを含み得る。
【0119】
コンピューティングデバイスはまた、マイクロフォンなどの音声入力デバイス、タッチスクリーン、カメラなどのジェスチャ認識デバイス、他の自然なユーザインターフェース、マウス、またはデジタイザなどの他のポインティングデバイス、キーボード、または他のデータ入力デバイスなどの、ただしこれらに限定されない、入力デバイスも含み得る。コンピューティングデバイスはまた、ディスプレイ、及びディスプレイインターフェースなどの、ただしこれらに限定されない、出力デバイスも含み得る。コンピューティングデバイスは、通信インターフェース、ケーブル、及び通信経路などの、ただしこれらに限定されない、入力/出力(I/O)デバイスを含み得る。これらのデバイスは、ネットワークインターフェースカード、及びモデムを含むが、これらに限定されない。通信インターフェース(複数可)は、ソフトウェア及びデータがコンピュータシステムと1つ以上の外部デバイスとの間で転送されることを可能にし得る。
【0120】
コンピューティングデバイスは、自動車システムに動作可能に結合され得る。そのような自動車システムは、手動で動作させられてもよく、半自律的であってもよく、または完全に自律的であってもよい。そのような例では、入力及び出力デバイスは、加速、制動、及びステアリングなどの、ただしこれらに限定されない、自動車機能を制御するための、1つ以上の画像捕捉デバイス、コントローラ、マイクロコントローラ、及び/または他のプロセッサを含み得る。さらに、そのような例における通信インフラストラクチャまた、コントローラエリアネットワーク(CAN)バスも含み得る。
【0121】
1つ以上の例では、コンピューティングデバイスは、任意の機械に基づく視覚システムに動作可能に結合され得る。たとえば、そのようなマシンに基づくビジョンシステムは、手動で動作させられる、半自律的な、または完全に自律的な産業用または農業用ロボット、家庭用ロボット、検査システム、セキュリティシステムなどを含むが、これらに限定されない。すなわち、本明細書に記載される例は、1つの特定の状況に限定されず、マシンビジョンを利用する任意の用途に適用可能であり得る。
【0122】
1つ以上の例では、コンピュータネットワークまたはネットワークの環境が使用され得る。ネットワークは、プライベートネットワーク、もしくはパブリックネットワーク(たとえば、以下に記載されるような、インターネット)、または両方の組み合わせを含み得る。ネットワークは、ハードウェア、ソフトウェア、または両方の組み合わせを含み得る。
【0123】
リモート通信指向の観点からは、ネットワークは、通信施設によって相互接続されたハードウェアノードのセットとして説明することができ、1つ以上のプロセス(ハードウェア、ソフトウェア、またはこれらの組み合わせ)が、そのような各ノードにおいて機能する。プロセスは、プロセス間通信経路を使用する、それらの間の通信経路を介して、互いに情報を相互通信し、交換することができる。これらの経路上では、適切な通信プロトコルが使用される。
【0124】
例示的なコンピュータ及び/またはリモート通信ネットワーク環境は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせを含み得るノードを含み得る。ノードは、通信ネットワークを介して相互接続され得る。各ノードは、ノードに組み込まれたプロセッサによって実行可能な1つ以上のプロセスを含み得る。たとえば、単一のプロセスが、複数のプロセッサによって実行され得るか、または複数のプロセスが、単一のプロセッサによって実行され得る。さらに、ノードの各々は、ネットワークと外部世界との間のインターフェース点を提供することができ、サブネットワークの集合を含むことができる。
【0125】
例では、プロセスは、任意の通信プロトコルを通して通信をサポートするプロセス間通信経路を通して、互いに通信し得る。経路は、順次的または並列的に、連続的または断続的に機能し得る。経路は、多くのコンピュータによって使用される標準的な並列命令セットに加えて、通信ネットワークに関して本明細書に記載される、通信規格、プロトコル、または技術のいずれかを使用することができる。
【0126】
ノードは、処理機能を実行することができる任意のエンティティを含み得る。そのようなノードの例は、コンピュータ(パーソナルコンピュータ、ワークステーション、サーバ、もしくはメインフレームなど)、ハンドヘルド無線デバイス及び有線デバイス(パーソナルデジタルアシスタント(PDA)、処理能力を有するモデムセルフォン、BlackBerry(登録商標)デバイスを含む無線電子メールデバイスなど)、文書処理デバイス(スキャナ、プリンタ、ファクシミリマシン、もしくは多機能文書マシンなど)、または記載されたように、プロセッサの集合が接続される複合エンティティ(ローカルエリアネットワークもしくはワイドエリアネットワークなど)を含む。たとえば、本開示との関連において、ノード自体が、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、プライベートネットワーク(仮想プライベートネットワーク(VPN)など)、またはネットワークの集合とすることができる。
【0127】
ノード間の通信は、通信ネットワークによって可能にされ得る。ノードは、通信ネットワークを用いて、連続的または断続的のいずれかで接続され得る。例として、本開示の文脈おいて、通信ネットワークは、適切な帯域幅及び情報セキュリティを提供する、デジタル通信インフラストラクチャとすることができる。
【0128】
通信ネットワークは、任意のタイプの規格、プロトコル、または技術を使用する、任意の周波数における、有線通信能力、無線通信能力、または両方の組み合わせを含むことができる。さらに、本例では、通信ネットワークは、プライベートネットワーク(たとえば、VPN)、またはパブリックネットワーク(たとえば、インターネット)とすることができる。
【0129】
通信ネットワークによって使用される例示的な無線プロトコル及び技術の非包括的リストは、Bluetooth(登録商標)、汎用パケット無線サービス(GPRS)、セルラーデジタルパケットデータ(CDPD)、モバイルソリューションプラットフォーム(MSP)、マルチメディアメッセージング(MMS)、無線アプリケーションプロトコル(WAP)、符号分割多元接続(CDMA)、ショートメッセージサービス(SMS)、無線マークアップ言語(WML)、ハンドヘルドデバイスマークアップ言語(HDML)、無線用バイナリランタイム環境(BREW)、無線アクセスネットワーク(RAN)、及びパケット交換コアネットワーク(PS-CN)を含み得る。また、さまざまな世代の無線技術が含まれる。通信ネットワークによって使用される主に無線プロトコル及び技術の例示的な非包括的リストは、非同期転送モード(ATM)、拡張内部ゲートウェイルーティングプロトコル(EIGRP)、フレームリレー(FR)、高レベルデータリンク制御(HDLC)、インターネット制御メッセージプロトコル(ICMP)、内部ゲートウェイルーティングプロトコル(IGRP)、ネットワーク間パケット交換(IPX)、ISDN、ポイントツーポイントプロトコル(PPP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ルーティング情報プロトコル(RIP)、及びユーザデータグラムプロトコル(UDP)を含む。当業者が認識するように、他の任意の知られた、または予想される無線または有線プロトコル及び技術を使用することができる。
【0130】
本開示の例は、本明細書における動作を実行するための装置を含み得る。装置は、所望の目的のために特別に構築されてよく、またはそれは、デバイス内に記憶されたプログラムによって選択的にアクティブ化または再構成される、汎用デバイスを備え得る。
【0131】
1つ以上の例では、本明細書に記載される動作は、マシン実行可能命令で具体化される。命令は、命令を用いてプログラムされる処理デバイス、たとえば、汎用または専用プロセッサに、本開示のステップを実行させるために使用され得る。あるいは、本明細書に記載されるステップは、ステップを実行するための配線論理を含む特定のハードウェア構成要素によって、またはプログラムされたコンピュータ構成要素とカスタムハードウェア構成要素との任意の組み合わせによって実行することができる。たとえば、ここで説明されたステップを実行するコンピュータプログラム製品が提供され得る。この環境では、コンピュータプログラム製品は、たとえば、命令が内部に記憶されたマシン可読媒体を含むことができる。命令は、本明細書の例に従って、プロセスまたは方法を実行するように、任意のプロセッサ(単数もしくは複数)(または他の電子デバイス)をプログラムするために、使用され得る。さらに、命令または同様のものは、ダウンロードされ、コンピュータプログラム製品上に記憶され得る。ここでは、プログラムは、通信リンク(たとえば、モデムまたはネットワーク接続)を介して、搬送波または他の伝搬媒体内に具体化されたデータ信号により、リモートコンピュータ(たとえば、サーバ)から要求コンピュータ(たとえば、クライアント)に転送することができ、最終的に、そのような信号は、後続の実行のために、コンピュータシステム上に記憶されてもよい。
【0132】
方法は、コンピュータまたは任意の命令実行システムによる使用のために、またはそれらとの関連において、プログラムコードを提供する、コンピュータ使用可能または可読記憶媒体からアクセス可能な、コンピュータプログラム製品において実装することができる。コンピュータ使用可能または可読記憶媒体は、コンピュータ、もしくは命令実行システム、装置、もしくはデバイスによる使用のために、またはそれらとの関連において、プログラムを含むかまたは記憶することができる、任意の装置とすることができる。
【0133】
対応するプログラムコードを記憶及び/または実行するのに適したデータ処理システムは、メモリ要素などのコンピュータ化されたデータ記憶デバイスに直接的または間接的に結合された、少なくとも1つのプロセッサを含むことができる。入力/出力(I/O)デバイス(キーボード、ディスプレイ、ポインティングデバイスなどを含むが、これらに限定されない)をシステムに結合することができる。データ処理システムが、介在するプライベートまたはパブリックネットワークを通して、他のデータ処理システム、またはリモートプリンタもしくは記憶デバイスに結合されることを可能にするために、ネットワークアダプタもシステムに結合されてもよい。ユーザとの相互作用を提供するために、これらの機能を、LCD(液晶ディスプレイ)などの表示デバイス、または情報をユーザに表示するための別のタイプのモニタ、ならびにユーザが入力をコンピュータに提供することができる、キーボード、及びマウスまたはトラックボールなどの入力デバイスを備えるコンピュータ上において実装することができる。
【0134】
コンピュータプログラムは、コンピュータにおいて直接的または間接的に使用することができる命令のセットとすることができる。本明細書に記載されるシステム及び方法は、コンパイル言語またはインタープリタ言語を含む、CUDA、OpenCL、Flash(登録商標)、JAVA(登録商標)、C++、C、C#、Python、Visual Basic(登録商標)、JavaScript(登録商標) PHP、XML、HTMLなどのプログラミング言語、またはプログラミング言語の組み合わせを使用して実装することができ、スタンドアロンプログラムとして、またはコンピューティング環境における使用に適したサブシステム、構成要素、サブルーチン、もしくは他のユニットとして、任意の形態で展開することができる。ソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができるが、これらに限定されない。プログラミングサブシステム間のインターフェースを実装する際に、SOAP/HTTPなどのプロトコルが使用され得る。本明細書に記載される構成要素及び機能性は、仮想化または非仮想化環境において実行される、Microsoft(登録商標) Windows(登録 商標)、Apple(商標) Mac(商標)、iOS(登録商標)、Unix(登録商標)/X-Windows(登録商標)、Linux(登録商標)の異なるバージョンを含むが、これらに限定されない、任意のデスクトップオペレーティングシステム上において、ソフトウェア開発に適した任意のプログラミング言語を使用して実装され得る。システムは、ルビーオンレイルズなどの、ウェブアプリケーションフレームワークを使用して実装することができる。
【0135】
命令からなるプログラムの実行に適したプロセッサは、任意の種類のコンピュータの、汎用及び専用マイクロプロセッサ、ならびに単独のプロセッサ、または複数のプロセッサもしくはコアのうちの1つを含むが、これらに限定されない。プロセッサは、リードオンリーメモリ、ランダムアクセスメモリ、両方、または本明細書に記載されるデータ記憶デバイスの任意の組み合わせなどの、コンピュータ化されたデータ記憶デバイスから、命令及びデータを受信し、記憶し得る。プロセッサは、電子デバイスの動作及び実行を制御するように動作する、任意の処理回路または制御回路を含み得る。
【0136】
本明細書に記載されるシステム、サブシステム、及び方法は、ソフトウェア要素またはハードウェア要素の任意の組み合わせを使用して実装することができる。本明細書に記載されるシステム、サブシステム、及び方法は、単独で、または互いに組み合わさって動作する、1つ以上の仮想マシンを使用して実装することができる。物理的コンピューティングマシンプラットフォームを、ハードウェアコンピューティングプラットフォームまたはホスト上で動作する仮想化ソフトウェアの制御下で実行される仮想マシンにカプセル化するために、任意の適用可能な仮想化ソリューションを使用することができる。仮想マシンは、仮想システムハードウェアとゲストオペレーティングシステムソフトウェアとの両方を有することができる。
【0137】
本明細書に記載されるシステム及び方法は、データサーバなどのバックエンド構成要素を含む、またはアプリケーションサーバもしくはインターネットサーバなどのミドルウェア構成要素を含む、またはグラフィカルユーザインターフェースもしくはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含む、またはそれらの任意の組み合わせを含む、コンピュータシステムにおいて実装することができる。システムの構成要素は、通信ネットワークなど、デジタルデータ通信の任意の形態または媒体によって接続され得る。通信ネットワークの例は、たとえば、LAN、WAN、ならびにインターネットを形成するコンピュータ及びネットワークを含む。
【0138】
本明細書に開示される1つ以上の例は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家電製品、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成を用いて実践され得る。本明細書に記載されるシステム及び方法はまた、ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境においても実践することができる。
【0139】
「コンピュータプログラム媒体」及び「コンピュータ可読媒体」という用語は、リムーバブル記憶ドライブ、ハードディスクドライブ内に設置されたハードディスクなどの、ただしこれらに限定されない媒体を一般に指すために使用され得る。これらのコンピュータプログラム製品は、ソフトウェアをコンピュータシステムに提供し得る。本明細書に記載されるシステム及び方法は、そのようなコンピュータプログラム製品を対象とし得る。
【0140】
「一実施形態」、「実施形態」、「例示的な実施形態」、「さまざまな実施形態」などに対する言及は、本開示に記載される実施形態(複数可)が、特定の特徴、構造、または特性を含み得るが、あらゆる実施形態が、特定の特徴、構造、または特性を必ずしも含むわけではないことを示すことがある。さらに、「一実施形態では」または「例示的な実施形態では」という句の繰り返される使用は、同じ実施形態を必ずしも指しているわけではないが、同じ実施形態を指すことがある。同様に、「例」に対する言及は、本明細書に開示されるもののさまざまな例(複数可)が、特定の特徴、構造、または特性を含み得るが、あらゆる例が、特定の特徴、構造、または特性を必ずしも含むわけではないことを示すことがある。さらに、「いくつかの例では」という句の繰り返される使用は、同じ例を必ずしも指しているわけではないが、同じ例を指すことがある。
【0141】
本説明及び特許請求の範囲において、「結合される」及び「接続される」という用語が、それらの派生形とともに使用され得る。これらの用語は、互いに同義語として意図されていなくてよいことが理解されるべきである。むしろ、特定の用法では、「接続される」は、2つ以上の要素が、互いに物理的または電気的に直接接触していることを示すために使用され得る。「結合される」は、2つ以上の要素が、物理的または電気的に直接接触していることを意味することがある。しかしながら、「結合される」は、2つ以上の要素が、互いに直接接触しておらず、それでもなお、互いに協力するか、または相互作用することを意味することがある。
【0142】
ここでは、また一般に、アルゴリズムは、所望の結果にいたる、行為または動作の自己矛盾のないシーケンスであるとみなされてもよい。これらは、物理量の物理的動作を含む。必ずではないが、通常、これらの量は、記憶され、転送され、組み合わされ、比較され、他の方法で動作されることが可能な、電気または磁気信号の形態をとる。主として、共通使用の理由で、これらの信号を、ビット、値、要素、シンボル、文字、項、または数などと呼ぶことが、時には便利であることが分かっている。しかしながら、これら及び類似の用語のすべては、適切な物理量と関連付けられるべきであり、これらの量に適用される便利なラベルにすぎないことが、理解されるべきである。
【0143】
特に別段の指摘がない限り、本明細書全体において、「処理する」、「計算する」、「算定する」、または「決定する」などの用語は、コンピューティングシステムのレジスタ及び/またはメモリ内の電子的などの物理量として表されるデータを、コンピュータシステムのメモリ、レジスタ、または他のそのような情報記憶、伝送、もしくは表示デバイス内の物理量として同様に表される他のデータに操作及び/または変換する、コンピュータもしくはコンピューティングシステム、または類似の電子コンピューティングデバイスの、アクション及び/またはプロセスを指すことが、理解されてよい。
【0144】
同様の方式で、「プロセッサ」という用語は、レジスタ及び/またはメモリからの電子データを処理して、その電子データを、レジスタ及び/またはメモリ内に記憶され得る他の電子データに変換する、任意のデバイス、またはデバイスの一部分を指してもよい。非限定的な例として、「プロセッサ」は、中央処理ユニット(CPU)、またはグラフィカル処理ユニット(GPU)であり得る。「コンピューティングプラットフォーム」は、1つ以上のプロセッサを備え得る。本明細書で使用されるとき、「ソフトウェア」プロセスは、たとえば、タスク、スレッド、及びインテリジェントエージェントなどの、経時的に作業を実行するソフトウェアエンティティ及び/またはハードウェアエンティティを含み得る。また、各プロセスは、命令を順次的または並列的、連続的または断続的に実施するための、複数のプロセスを指し得る。「システム」及び「方法」という用語は、システムが1つ以上の方法を具体化されてもよく、方法がシステムとみなされてもよい限り、本明細書において交換可能に使用される。
【0145】
1つ以上の実施形態、実施例、及び例が説明されたが、それらのさまざまな改変、追加、置換、及び均等物が、本開示の範囲内に含まれる。
【0146】
本明細書の説明において、それの一部を形成する添付の図面に対する参照が行われ、それは、特許請求される発明の特定の実施例を例示として示している。他の実施例が使用されてよく、構造的変更などの変更または改変が行われ得ることが理解されるべきである。そのような実施例、変更または改変は、意図された特許請求される発明に関する範囲からの逸脱であるとは限らない。ステップは、本明細書では、ある特定の順序で提示され得るが、いくつかの場合には、順序付けは、ある特定の入力が、説明されるシステム及び方法の機能を変更することなく、異なる時間にまたは異なる順序で提供されるように変更されてもよい。開示される手順もまた、異なる順序で実行され得る。さらに、本明細書におけるさまざまな計算は、開示された順序で実行される必要はなく、計算の代替的な順序付けを使用する他の実施形態、例、または実施例が容易に実装され得る。並べ替えられることに加えて、計算は、同じ結果を有する部分計算に分解されてもよい。
【0147】
上の考察は、説明される技術の例示的な実装について説明するが、他のアーキテクチャが、説明される機能性を実装するために使用されてよく、それは、本開示の範囲内にあることが意図されている。さらに、考察の目的で上記では、責務の特定の分配が定義されたが、さまざまな機能及び責務は、状況に応じて、異なる方法で、分配され、分割されてよい。
【0148】
さらに本主題は、構造的特徴及び/または方法論的行為に特有の言語で説明されてきたが、添付の特許請求の範囲で定義される本主題が必ずしも説明した特定の特徴または行為に限定されないことを理解されたい。むしろ、特定の特徴及び行為は、特許請求の範囲を実施する例示的形態として開示される。
【0149】
実施例の条項
【0150】
本開示の実施形態は、以下の条項を考慮して説明され得る。
【0151】
1.自律車両を動作させる方法であって、第1の時間において、前記自律車両をルートに沿って制御するための第1の一次軌道、及び前記自律車両を停止させるための第1の二次軌道を受信することと、第1のステータス時間において、前記自律車両の部分構成要素から、前記部分構成要素のステータスを示す第1のメッセージデータを受信することと、前記第1のメッセージデータに少なくとも部分的に基づいて、前記第1の二次軌道に少なくとも部分的に基づいて前記自律車両を制御するための第1の要求を決定することと、前記第1の要求に少なくとも部分的に基づいて、車両軌道状態を判定することと、前記第1の二次軌跡に少なくとも部分的に基づいて、前記自律車両を制御することと、第2の時間において、前記自律車両を前記ルートに沿って制御するための第2の一次軌道、及び前記自律車両を停止させるための第2の二次軌道を受信することと、第2のステータス時間において、前記部分構成要素から第2のメッセージデータを受信することと、前記第2のメッセージデータに少なくとも部分的に基づいて、前記第2の一次軌道に少なくとも部分的に基づいて前記自律車両を制御するための第2の要求を決定することと、前記第2の要求に少なくとも部分的に基づいて、前記第2の二次軌道に少なくとも部分的に基づいて前記自律車両を制御することを決定することと、前記第2の二次軌道に少なくとも部分的に基づいて、前記自律車両を制御することと、解放信号を受信することと、前記第2の一次軌道に少なくとも部分的に基づいて、前記自律車両を制御することと、を含む、前記方法。
【0152】
2.前記車両軌道状態を判定することが、前記車両軌道状態として、公称軌道よりも偶発的軌道を選択することを示す上書き要求状態を判定することと、前記解放信号に少なくとも部分的に基づいて、前記車両軌道状態を、前記偶発的軌道よりも前記公称軌道を選択することを示す公称要求状態にリセットすることを決定することと、を含む、条項1に記載の方法。
【0153】
3.前記解放信号が、ユーザからの入力を受信することに応答して信号を送信するように構成されたリモートシステムから受信される、条項2に記載の方法。
【0154】
4.前記第1の二次軌道に従って前記自律車両を制御することを決定することが、少なくとも前記第1の一次軌道または前記第1の二次軌道を含む軌道のうちの1つ以上の妥当性チェックを実行することであって、前記妥当性チェックは、前記第1の一次軌道が定時性制限よりも最近に生成されたかどうかを判定すること、前記第1の一次軌道が直前の一次軌道と一致するかどうかを判定すること、または前記第1の一次軌道が、前記自律車両の動的能力の範囲内にあるかどうかを判定すること、のうちの1つ以上を含む、前記実行することと、衝突チェックを実行して、1つ以上の軌道が無衝突であるかどうかを判定することと、を含む、条項1~3のいずれか1つに記載の方法。
【0155】
5.前記第1の二次軌道に少なくとも部分的に基づいて前記自律車両を制御することが、前記第1の二次軌道の修正、以前に受信された軌道、前記以前に受信された軌道の修正、または緊急停止軌道のうちの1つ以上に少なくとも部分的に基づいて、前記自律車両を制御することを含む、条項1~4のいずれか1つに記載の方法。
【0156】
6.前記自律車両の前記部分構成要素が、ステアリングシステム、制動システム、インバータ、牽引システム、パーキングブレーキシステム、モータコントローラ、またはアクティブサスペンションコントローラのうちの1つ以上を含む、条項1~5のいずれか1つに記載の方法。
【0157】
7.コンピュータシステムの1つ以上のプロセッサによって実行されたときに、前記コンピュータシステムに、少なくとも、車両を制御するための第1の命令のセットを受信することと、前記車両の構成要素から、前記構成要素のステータスを示す第1のメッセージデータを受信することと、前記第1のメッセージデータに少なくとも部分的に基づいて、第1の偶発的命令のセットに従って前記車両を制御するための第1の要求を決定することと、前記第1の要求に少なくとも部分的に基づいて、前記第1の偶発的命令のセットを実行することと、前記第1の偶発的命令のセットに従って前記車両を制御することを示す車両状態を判定することと、前記車両を制御するための第2の命令のセットを受信することと、前記構成要素から第2のメッセージデータを受信することと、前記第2のメッセージデータに少なくとも部分的に基づいて、前記第2の命令セットに従って前記車両を制御するための第2の要求を決定することと、第2の偶発的命令のセットに従って前記車両を制御することを決定することと、解放信号を受信することと、前記第2の命令セットを実行することと、を行わせる実行可能命令が内部に記憶された非一時的コンピュータ可読記憶媒体。
【0158】
8.前記第1の命令のセットが、前記車両をルートに沿って制御するための第1の軌道を含み、前記第1の偶発的命令のセットが、前記車両を停止させるための第1の二次軌道、前記第1の二次軌道の修正、以前に記憶された軌道、前記以前に記憶された軌道の修正、または緊急停止軌道のうちの1つ以上を含む偶発的軌道を含む、条項7に記載の非一時的コンピュータ可読記憶媒体。
【0159】
9.前記車両状態を判定することが、前記車両状態として、前記コンピュータシステムに前記偶発的軌道を使用させることを示す上書き要求状態を判定することを含み、前記実行可能命令がさらに、前記コンピュータシステムに、前記解放信号に少なくとも部分的に基づいて、前記車両状態を、前記コンピュータシステムに前記第2の命令のセットを使用させることを示す公称要求状態にリセットすることを決定させる、条項7または8に記載の非一時的コンピュータ可読記憶媒体。
【0160】
10.前記解放信号が、ユーザからの入力に少なくとも部分的に基づいて信号を送信するように構成されたリモートシステムから受信される、条項7~9のいずれか1つに記載の非一時的コンピュータ可読記憶媒体。
【0161】
11.前記実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記コンピュータシステムに、少なくとも前記第1の軌道または前記偶発的軌道を含む1つ以上の軌道の妥当性を判定することと、前記1つ以上の軌道が無衝突であるかどうかを判定することと、をさらに行わせる、条項7~10のいずれか1つに記載の非一時的コンピュータ可読記憶媒体。
【0162】
12.前記第1の要求を決定することがさらに、前記妥当性及び前記1つ以上の軌道が無衝突であるかどうかに少なくとも部分的に基づいている、条項7~11のいずれか1つに記載の非一時的コンピュータ可読記憶媒体。
【0163】
13.前記車両の前記構成要素が、ステアリングシステム、制動システム、インバータ、牽引システム、パーキングブレーキシステム、モータコントローラ、またはアクティブサスペンションコントローラのうちの1つ以上を含む、条項7~12のいずれか1つに記載の非一時的コンピュータ可読記憶媒体。
【0164】
14.前記第1の二次軌道の前記修正が、前記第1の二次軌道に関連付けられている減速の量を増加させることを含み、前記以前に記憶された軌道の前記修正が、前記以前に記憶された軌道に関連付けられている減速の量を増加させることを含む、条項7~13のいずれか1つに記載の非一時的コンピュータ可読記憶媒体。
【0165】
15.1つ以上のプロセッサと、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに動作を実行させる命令が内部に記憶された1つ以上の非一時的コンピュータ可読媒体と、を備えるシステムであって、第1の複数の軌道を受信することと、車両の構成要素の劣化ステータスを示す第1のメッセージデータを受信することと、前記第1の複数の軌道のうちの第1の軌道に関連付けられている妥当性を判定することと、衝突チェックとして、前記第1の軌道が無衝突であるかどうかを判定することと、前記妥当性、衝突チェック、及び前記第1のメッセージデータに少なくとも部分的に基づいて、前記車両を第1の偶発的軌道に追従させることと、車両状態を偶発的状態に設定することと、第2の複数の軌道を受信することと、前記構成要素の公称動作ステータスを示す第2のメッセージデータを受信することと、前記車両状態及び前記第2のメッセージデータに少なくとも部分的に基づいて、前記車両を第2の偶発的軌道に追従させることと、解放信号を受信することと、前記解放信号に少なくとも部分的に基づいて、前記車両を、前記第2の複数の軌道のうちの第2の軌道を追従するように制御することであって、前記第2の軌道が、前記第2の偶発的軌道とは異なる、前記制御することと、を含む、前記システム。
【0166】
16.前記解放信号が、リモートシステムから受信される、条項15に記載のシステム。
【0167】
17.前記構成要素が、ステアリングシステム、制動システム、インバータ、牽引システム、パーキングブレーキシステム、モータコントローラ、またはアクティブサスペンションコントローラのうちの1つ以上を含む、条項15または16に記載のシステム。
【0168】
18.前記車両を、前記第2の軌道に追従するように制御することがさらに、前記車両の速度が閾値速度よりも低いかまたはそれに等しいかどうかを判定することに少なくとも部分的に基づいている、条項15~17のいずれか1つに記載のシステム。
【0169】
19.前記動作が、前記車両状態を公称要求状態に設定することをさらに含む、請求項15~18のいずれか1つに記載のシステム。
【0170】
20.前記妥当性を判定することは、前記第1の軌道が定時性制限よりも最近に生成されたかどうかを判定すること、前記第1の軌道が直前の軌道と一致しているかどうかを判定すること、または前記第1の軌道が前記車両の動的能力の範囲内であるかどうかを判定すること、のうちの1つ以上を含む、条項15~19のいずれか1つに記載のシステム。
【0171】
21.1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、条項1~7のずれか1つに記載の方法、または条項15~20のいずれか1つに記載の動作を実行させる命令が内部に記憶された1つ以上の非一時的コンピュータ可読媒体。
図1
図2
図3
図4
図5
図6
図7
図8