(57)【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、前記コンピューティングシステムは、
１つ以上のプロセッサと、
命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体と
を備え、
前記命令は、前記１つ以上のプロセッサによって実行されると、前記コンピューティングシステムに動作を実施させ、前記動作は、
ユーザ入力を受信することに先立って、
第一の目的地に向かって自律走行乗り物を制御する一次運動計画を決定することと、
前記第一の目的地とは異なる第二の目的地に前記自律走行乗り物を制御する二次運動計画を決定することと、
前記一次運動計画に従って、前記自律走行乗り物を制御することと、
前記ユーザ入力を受信することと、
前記ユーザ入力の受信に応答して、前記一次運動計画から前記ユーザ入力の受信に先立って決定された前記二次運動計画に前記自律走行乗り物の制御を切り替えることと
を含み、
前記コンピューティングシステムは、複数の冗長運動計画システムを備え、前記複数の冗長運動計画システムは、
前記一次運動計画を決定する一次運動計画システムと、
前記二次運動計画を決定する二次運動計画システムと
を備え、
前記一次運動計画システムと前記二次運動計画システムとは、センサデータを共有するが、前記一次運動計画と前記二次運動計画とを別個に決定する、コンピューティングシステム。
【請求項２】
前記二次運動計画は、安全な状態に前記自律走行乗り物を制御する、請求項１に記載のコンピューティングシステム。
【請求項３】
前記二次運動計画は、緊急運動計画を備え、前記ユーザ入力は、緊急事象を示すユーザ入力を備えている、請求項１に記載のコンピューティングシステム。
【請求項４】
前記一次運動計画を決定することは、複数の期間のための複数の一次運動計画をそれぞれ決定することを含み、
前記二次運動計画を決定することは、前記複数の期間のための複数の二次運動計画をそれぞれ決定することを含み、
前記一次運動計画に従って前記自律走行乗り物を制御することは、前記ユーザ入力の受信の前の各期間の間、前記一次運動計画に従って前記自律走行乗り物を制御することを含み、
前記一次運動計画から前記二次運動計画に前記自律走行乗り物の制御を切り替えることは、前記ユーザ入力の受信の後の各期間の間、前記二次運動計画に従って前記自律走行乗り物を制御することを含む、
請求項１に記載のコンピューティングシステム。
【請求項５】
前記二次運動計画は、現在の車線内に留まっている間に前記自律走行乗り物に静止させる、請求項１に記載のコンピューティングシステム。
【請求項６】
前記二次運動計画は、前記自律走行乗り物に交通流から退出させる、請求項１に記載のコンピューティングシステム。
【請求項７】
前記一次運動計画システムは、一次最適化プランナを備え、前記一次最適化プランナは、前記一次運動計画を決定するためのコスト関数の第１の組を最適化し、二次運動計画システムは、二次最適化プランナを備え、前記二次最適化プランナは、前記二次運動計画を決定するためのコスト関数の第２の組を最適化する、請求項１に記載のコンピューティングシステム。
【請求項８】
前記二次運動計画を決定することは、複数の異なる場所に前記自律走行乗り物をそれぞれ制御する複数の二次運動計画を決定することを含む、請求項１に記載のコンピューティングシステム。
【請求項９】
前記ユーザ入力を受信することは、前記複数の二次運動計画のうちの１つを選択する前記ユーザ入力を受信することを含み、
前記二次運動計画に従って前記自律走行乗り物を制御することは、前記ユーザ入力によって選択される前記二次運動計画に従って、前記自律走行乗り物を制御することを含む、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記一次運動計画は、前記第一の目的地に向かって前記自律走行乗り物を移動させる一次軌道を備え、
前記二次運動計画は、安全な状態に前記自律走行乗り物を移動させる二次軌道を備えている、請求項２に記載のコンピューティングシステム。
【請求項１１】
自律走行乗り物であって、前記自律走行乗り物は、
１つ以上のプロセッサと、
命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体と
を備え、
前記命令は、前記１つ以上のプロセッサによって実行されると、前記自律走行乗り物に動作を実施させ、前記動作は、
ユーザ入力を受信することに先立って、
第一の目的地に向かって前記自律走行乗り物を制御する一次運動計画を決定することと、
前記第一の目的地とは異なる第二の目的地に前記自律走行乗り物を制御する二次運動計画を決定することと、
前記一次運動計画に従って、前記自律走行乗り物を制御することと、
前記ユーザ入力を受信することと、
前記ユーザ入力の受信に応答して、前記一次運動計画から前記ユーザ入力の受信に先立って決定された前記二次運動計画に前記自律走行乗り物の制御を切り替えることと
を含み、
前記自律走行乗り物は、複数の冗長運動計画システムを備え、前記複数の冗長運動計画システムは、
前記一次運動計画を決定する一次運動計画システムと、
前記二次運動計画を決定する二次運動計画システムと
を備え、
前記一次運動計画システムと前記二次運動計画システムとは、センサデータを共有するが、前記一次運動計画と前記二次運動計画とを別個に決定する、自律走行乗り物。
【請求項１２】
前記二次運動計画は、緊急運動計画を備え、
前記ユーザ入力は、緊急事象を示すユーザ入力を備えている、請求項１１に記載の自律走行乗り物。
【請求項１３】
前記一次運動計画を決定することは、複数の期間のための複数の一次運動計画をそれぞれ決定することを含み、
前記二次運動計画を決定することは、前記複数の期間のための複数の二次運動計画をそれぞれ決定することを含み、
前記一次運動計画に従って前記自律走行乗り物を制御することは、前記ユーザ入力の受信の前の各期間の間、前記一次運動計画に従って前記自律走行乗り物を制御することを含み、
前記一次運動計画から前記二次運動計画に前記自律走行乗り物の制御を切り替えることは、前記ユーザ入力の受信の後の各期間の間、前記二次運動計画に従って前記自律走行乗り物を制御することを含む、請求項１１に記載の自律走行乗り物。
【請求項１４】
前記二次運動計画は、現在の車線内に留まっている間に前記自律走行乗り物に静止させる、請求項１１に記載の自律走行乗り物。
【請求項１５】
前記二次運動計画は、前記自律走行乗り物を道路脇に寄せる、請求項１１に記載の自律走行乗り物。
【請求項１６】
前記ユーザ入力を受信することに先立って、前記二次運動計画を決定することは、前記ユーザ入力を受信することに先立って、前記二次運動計画を連続して決定することを含む、請求項１に記載のコンピューティングシステム。
【請求項１７】
前記ユーザ入力を受信することに先立って、前記二次運動計画を決定することは、前記自律走行乗り物の動作中、準備された二次行動方針を常に維持することを含む、請求項１に記載のコンピューティングシステム。
【請求項１８】
複数の冗長運動計画システムを備えているコンピューティングシステムによって実装されるコンピュータ実装方法であって、前記複数の冗長運動計画システムは、一次運動計画を決定する一次運動計画システムと二次運動計画を決定する二次運動計画システムとを備え、前記一次運動計画システムと前記二次運動計画システムとは、センサデータを共有するが、前記一次運動計画と前記二次運動計画とを別個に決定し、
前記コンピュータ実装方法は、
緊急事象を示すユーザ入力を受信することに先立って、
前記コンピューティングシステムの前記一次運動計画システムによって、少なくとも部分的にセンサデータの組に基づいて、第一の目的地に向かって自律走行乗り物を制御する一次運動計画を決定することと、
前記コンピューティングシステムの前記二次運動計画システムによって、少なくとも部分的に前記センサデータの組に基づいて、安全な状態に前記自律走行乗り物を制御する緊急運動計画を別個に決定することと、
前記コンピューティングシステムによって、前記一次運動計画に従って、前記自律走行乗り物を制御することと、
前記コンピューティングシステムによって、前記緊急事象を示す前記ユーザ入力を受信することと、
前記ユーザ入力の受信に応答して、前記コンピューティングシステムによって、前記一次運動計画から前記ユーザ入力の受信に先立って決定された前記緊急運動計画に前記自律走行乗り物の制御を切り替えることと
を含む、コンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、自律走行乗り物に関する。より具体的には、本開示は、極めて有能な自動運転システムの人間による監視のためのシステムおよび方法に関する。
【背景技術】
【０００２】
自律走行乗り物は、その環境を感知し、人間の入力を殆どまたは全く伴わずにナビゲートすることが可能である乗り物である。特に、自律走行乗り物は、種々のセンサを使用して、その周辺環境を観察することができ、センサによって収集されるデータに基づいて種々の処理技法を実施することによって、環境を把握しようとすることができる。その周辺環境の知識を所与として、自律走行乗り物は、そのような周辺環境を通した適切な運動経路を識別することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の実施形態の側面および利点は、以下の説明において部分的に記載され、説明から習得されることができ、または実施形態の実践を通して習得されることができる。
【０００４】
本開示の一例示的側面は、コンピューティングシステムを対象とする。コンピューティングシステムは、１つ以上のプロセッサと、１つ以上のプロセッサによって実行されると、コンピューティングシステムに動作を実施させる命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体とを含む。動作は、一次目的地に向かって自律走行乗り物を制御する一次運動計画を決定することを含む。動作は、安全な状態に自律走行乗り物を制御する二次運動計画を決定することを含む。動作は、一次運動計画に従って、自律走行乗り物を制御することを含む。動作は、ユーザ入力を受信することを含む。動作は、ユーザ入力の受信に応答して、一次運動計画から二次運動計画に自律走行乗り物の制御を切り替えることを含む。
【０００５】
本開示の別の例示的側面は、自律走行乗り物を対象とする。自律走行乗り物は、１つ以上のプロセッサと、１つ以上のプロセッサによって実行されると、自律走行乗り物に動作を実施させる命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体とを含む。動作は、一次目的地に向かって自律走行乗り物を制御する一次運動計画を決定することを含む。動作は、安全な状態に自律走行乗り物を制御する二次運動計画を決定することを含む。動作は、一次運動計画に従って、自律走行乗り物を制御することを含む。動作は、ユーザ入力を受信することを含む。動作は、ユーザ入力の受信に応答して、二次運動計画に従って自律走行乗り物を制御することを含む。
【０００６】
本開示の別の例示的側面は、コンピュータ実装方法を対象とする。方法は、１つ以上のコンピューティングデバイスを備えているコンピューティングシステムによって、緊急事象を示すユーザ入力を受信することを含む。方法は、コンピューティングシステムによって、緊急事象を示すユーザ入力を受信することに応答して、コンピューティングシステムによって、一次運動計画から緊急運動計画への自律走行乗り物の制御の移行を引き起こすことを含む。一次運動計画は、一次目的地に向かって自律走行乗り物を制御する。緊急運動計画は、安全な状態に自律走行乗り物を制御する。
【０００７】
本開示の他の側面は、種々のシステム、装置、非一過性のコンピュータ読み取り可能な媒体、ユーザインターフェース、および電子デバイスを対象とする。
【０００８】
本開示の種々の実施形態のこれらおよび他の特徴、側面、ならびに利点は、以下の説明および添付の請求項を参照して、さらに理解されるであろう。本明細書に組み込まれ、その一部を構成する付随する図面は、本開示の例示的実施形態を図示し、説明とともに、関連原理を解説する役割を果たす。
本発明は、例えば、以下を提供する。
（項目１）
コンピューティングシステムであって、前記コンピューティングシステムは、
１つ以上のプロセッサと、
命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体と
を備え、
前記命令は、前記１つ以上のプロセッサによって実行されると、前記コンピューティングシステムに動作を実施させ、前記動作は、
一次目的地に向かって自律走行乗り物を制御する一次運動計画を決定することと、
安全な状態に前記自律走行乗り物を制御する二次運動計画を決定することと、
前記一次運動計画に従って、前記自律走行乗り物を制御することと、
ユーザ入力を受信することと、
前記ユーザ入力の受信に応答して、前記一次運動計画から前記二次運動計画に前記自律走行乗り物の制御を切り替えることと
を含む、コンピューティングシステム。
（項目２）
前記二次運動計画は、緊急運動計画を備え、前記ユーザ入力は、緊急事象を示すユーザ入力を備えている、項目１に記載のコンピューティングシステム。
（項目３）
前記一次運動計画を決定することは、複数の期間のための複数の一次運動計画をそれぞれ決定することを含み、
前記二次運動計画を決定することは、前記複数の期間のための複数の二次運動計画をそれぞれ決定することを含み、
前記一次運動計画に従って前記自律走行乗り物を制御することは、前記ユーザ入力の受信の前の各期間の間、前記一次運動計画に従って前記自律走行乗り物を制御することを含み、
前記一次運動計画から前記二次運動計画に前記自律走行乗り物の制御を切り替えることは、前記ユーザ入力の受信の後の各期間の間、前記二次運動計画に従って前記自律走行乗り物を制御することを含む、
項目１または項目２に記載のコンピューティングシステム。
（項目４）
前記二次運動計画は、現在の車線内に留まっている間に前記自律走行乗り物に静止させる、項目１−３のいずれかに記載のコンピューティングシステム。
（項目５）
前記二次運動計画は、前記自律走行乗り物に交通流から退出させる、項目１、２、または３に記載のコンピューティングシステム。
（項目６）
前記コンピューティングシステムは、運動計画システムを備え、前記一次運動計画および前記二次運動計画の両方は、前記コンピューティングシステムの運動計画システムによって決定される、項目１−５のいずれかに記載のコンピューティングシステム。
（項目７）
前記運動計画システムは、最適化プランナを備え、前記最適化プランナは、前記一次運動計画を決定するためのコスト関数の第１の組を最適化し、前記最適化プランナは、前記二次運動計画を決定するためのコスト関数の第２の組を最適化する、項目６に記載のコンピューティングシステム。
（項目８）
前記コンピューティングシステムは、
前記一次運動計画を決定する一次運動計画システムと、
前記二次運動計画を決定する二次運動計画システムと
を備え、
前記二次運動計画システムは、前記一次運動計画システムとは別個であり、異なる、項目１−５のいずれかに記載のコンピューティングシステム。
（項目９）
前記二次運動計画を決定することは、複数の異なる安全な状態に前記自律走行乗り物をそれぞれ制御する複数の二次運動計画を決定することを含む、項目１−８のいずれかに記載のコンピューティングシステム。
（項目１０）
前記ユーザ入力を受信することは、前記複数の二次運動計画のうちの１つを選択する前記ユーザ入力を受信することを含み、
前記二次運動計画に従って前記自律走行乗り物を制御することは、前記ユーザ入力によって選択される前記二次運動計画に従って、前記自律走行乗り物を制御することを含む、項目９に記載のコンピューティングシステム。
（項目１１）
前記一次運動計画は、前記一次目的地に向かって前記自律走行乗り物を移動させる一次軌道を備え、
前記二次運動計画は、前記安全な状態に前記自律走行乗り物を移動させる二次軌道を備えている、項目１−１０のいずれかに記載のコンピューティングシステム。
（項目１２）
前記動作は
手動制御モードに前記自律走行乗り物を移行させることと、
アラートを集中型車隊マネージャコンピューティングシステムに伝送することと
のうちの少なくとも１つを前記二次運動計画に従って前記自律走行乗り物を制御した後に行うことをさらに含む、項目１−１１のいずれかに記載のコンピューティングシステム。
（項目１３）
自律走行乗り物であって、前記自律走行乗り物は、
１つ以上のプロセッサと、
命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体と
を備え、
前記命令は、前記１つ以上のプロセッサによって実行されると、前記自律走行乗り物に動作を実施させ、前記動作は、
一次目的地に向かって前記自律走行乗り物を制御する一次運動計画を決定することと、
安全な状態に前記自律走行乗り物を制御する二次運動計画を決定することと、
前記一次運動計画に従って、前記自律走行乗り物を制御することと、
ユーザ入力を受信することと、
前記ユーザ入力の受信に応答して、前記一次運動計画から前記二次運動計画に前記自律走行乗り物の制御を切り替えることと
を含む、自律走行乗り物。
（項目１４）
前記二次運動計画は、緊急運動計画を備え、
前記ユーザ入力は、緊急事象を示すユーザ入力を備えている、項目１３に記載の自律走行乗り物。
（項目１５）
前記一次運動計画を決定することは、複数の期間のための複数の一次運動計画をそれぞれ決定することを含み、
前記二次運動計画を決定することは、前記複数の期間のための複数の二次運動計画をそれぞれ決定することを含み、
前記一次運動計画に従って前記自律走行乗り物を制御することは、前記ユーザ入力の受信の前の各期間の間、前記一次運動計画に従って前記自律走行乗り物を制御することを含み、
前記一次運動計画から前記二次運動計画に前記自律走行乗り物の制御を切り替えることは、前記ユーザ入力の受信の後の各期間の間、前記二次運動計画に従って前記自律走行乗り物を制御することを含む、項目１３または１４に記載の自律走行乗り物。
（項目１６）
前記二次運動計画は、現在の車線内に留まっている間に前記自律走行乗り物に静止させる、項目１３、１４、または１５に記載の自律走行乗り物。
（項目１７）
前記二次運動計画は、前記自律走行乗り物を道路脇に寄せる、項目１３、１４、または１５に記載の自律走行乗り物。
（項目１８）
コンピュータ実装方法であって、前記コンピュータ実装方法は、
１つ以上のコンピューティングデバイスを備えているコンピューティングシステムによって、緊急事象を示すユーザ入力を受信することと、
前記コンピューティングシステムによって、前記緊急事象を示す前記ユーザ入力を受信することに応答して、前記コンピューティングシステムによって、一次運動計画から緊急運動計画への自律走行乗り物の制御の移行を引き起こすことと
を含み、
前記一次運動計画は、一次目的地に向かって自律走行乗り物を制御し、
前記緊急運動計画は、安全な状態に前記自律走行乗り物を制御する、コンピュータ実装方法。
（項目１９）
前記コンピューティングシステムによって、前記緊急事象を示す前記ユーザ入力を受信することは、前記コンピューティングシステムによって、前記自律走行乗り物に結合された物理的コンポーネントを介して入力される前記ユーザ入力を受信することを含む、項目１８に記載のコンピュータ実装方法。
（項目２０）
前記コンピューティングシステムによって、前記緊急事象を示す前記ユーザ入力を受信することは、
前記コンピューティングシステムによって、ディスプレイデバイスによって表示するためのグラフィカルユーザインターフェースを提供することと、
前記コンピューティングシステムによって、前記グラフィカルユーザインターフェースとの相互作用を介して入力される前記ユーザ入力を受信することと
を含む、項目１８または１９に記載のコンピュータ実装方法。
【図面の簡単な説明】
【０００９】
当業者を対象とする実施形態の詳細な議論が、添付図を参照する本明細書に記載される。
【００１０】
【図１】図１は、本開示の例示的実施形態による自律走行乗り物に関連付けられる例示的側面の第１の組のブロック図を描写する。
【００１１】
【図２】図２は、本開示の例示的実施形態による自律走行乗り物に関連付けられる例示的側面の第２の組のブロック図を描写する。
【００１２】
【図３】図３は、本開示の例示的実施形態による例示的自律走行乗り物運動計画システムのブロック図を描写する。
【００１３】
【図４】図４は、本開示の例示的実施形態による例示的自律走行乗り物最適化プランナのブロック図を描写する。
【００１４】
【図５】図５は、本開示の例示的実施形態による自律走行乗り物を制御するための例示的方法のフローチャート図を描写する。
【発明を実施するための形態】
【００１５】
複数の図にわたって繰り返される参照番号は、複数の説明図および／または実施形態にわたって同一の特徴またはコンポーネントを表すことを意図している。
【００１６】
概して、本開示は、極めて有能な自動運転システムの人間による監視を可能にするシステムおよび方法を対象とする。特に、本開示のシステムおよび方法は、人間（例えば、自律走行乗り物の乗車者または運転者／オペレータ）が、一次目的地に向かって乗り物を制御する一次運動計画から安全な状態に乗り物を制御する二次運動計画に、自律走行乗り物の制御を容易かつ迅速に移行させることを可能にする。したがって、本開示のシステムおよび方法は、自律走行乗り物挙動の高度な人間による監視を可能にし、乗り物の手動制御を実際に行うに人間に要求することなく、人間は、危険低減様式で動作すること、または別様に安全な状態に操作することを自律走行乗り物に行わせ得る。特に、人間が望ましくない状況を認識し、人間が達成可能であると考える代替的な行動方針を計算し、乗り物の制御を再獲得し、所望の代替的計画を達成するための精密な操向および制動入力を提供する必要がある代わりに、人間は、望ましくない状況を認識し、ユーザ入力を介してそのような認識を乗り物制御システムに知らせ、自動システムの既知の精密な制御能力を使用して達成可能であることが保証された事前計算された代替的な行動方針の実行を即時に開始することができる。したがって、本開示のシステムおよび方法は、人間の安全性および快適性の両方を増進する。
【００１７】
より具体的には、いくつかの実装では、自律走行乗り物は、地上自律走行乗り物（例えば、車、トラック、バス等）、空中自律走行乗り物（例えば、飛行機、ドローン、ヘリコプター、または他の航空機）、または他のタイプの乗り物（例えば、船）であり得る。自律走行乗り物は、自律走行乗り物を制御することを支援するコンピューティングシステムを含むことができる。いくつかの実装では、自律走行乗り物コンピューティングシステムは、知覚システムと、予測システムと、運動計画システムとを含むことができ、それらは、協働し、自律走行乗り物の周辺環境を感知し、それに応じて、自律走行乗り物の運動を制御するための１つ以上の運動計画を決定する。自律走行乗り物コンピューティングシステムは、１つ以上のプロセッサと、１つ以上のプロセッサによって実行されると、自律走行乗り物コンピューティングシステムに本明細書に説明されるような動作を実施させる命令を集合的に記憶している１つ以上の非一過性のコンピュータ読み取り可能な媒体とを含むことができる。
【００１８】
特に、いくつかの実装では、知覚システムは、自律走行乗り物に結合された、または別様にその中に含まれた１つ以上のセンサからセンサデータを受信することができる。例として、１つ以上のセンサは、光検出および測距（ＬＩＤＡＲ）システム、無線検出および測距（ＲＡＤＡＲ）システム、１つ以上のカメラ（例えば、可視スペクトルカメラ、赤外線カメラ等）、および／または他のセンサを含むことができる。センサデータは、自律走行乗り物の周辺環境内のオブジェクトの場所を説明する情報を含むことができる。
【００１９】
センサデータに加えて、知覚システムは、自律走行乗り物の周辺環境についての詳細な情報を提供する地図データを読み出すこと、または別様に取得することができる。地図データは、以下に関する情報を提供することができる：異なる道路、道路セグメント、建物、または他のアイテムの識別および場所；交通車線の場所および方向（例えば、特定の道路内の駐車車線、進路変更車線、自転車車線、または他の車線の場所および方向）；交通制御データ（例えば、標識、信号機、または他の交通制御デバイスの場所および説明書き）；および／または、コンピューティングシステムがその周辺環境とそれとのコンピューティングシステムの関係とを把握および知覚することを支援する情報を提供する任意の他の地図データ。
【００２０】
知覚システムは、１つ以上のセンサから受信されるセンサデータおよび／または地図データに基づいて、自律走行乗り物に近接した１つ以上のオブジェクトを識別することができる。特に、いくつかの実装では、知覚システムは、各オブジェクトに対して、そのようなオブジェクトの現在の状態を説明する状態データを提供することができる。例として、各オブジェクトのための状態データは、以下のオブジェクトの推定値を説明することができる：現在の場所（位置とも称される）；現在の速さ（速度とも称される）；現在の加速度；現在の進行方向；現在の向き；サイズ／占有面積（例えば、境界多角形によって表されるような）；クラス（例えば、乗り物／歩行者／自転車）、および／または、他の状態情報。
【００２１】
予測システムは、状態データを受信することができ、知覚システムによって識別されるオブジェクトの１つ以上の将来の場所を予測することができる。例えば、種々の予測技法が、知覚システムによって識別されるオブジェクトの１つ以上の将来の場所を予測するために使用されることができる。予測システムは、オブジェクトの予測される将来の場所を運動計画システムに提供することができる。
【００２２】
運動計画システムは、知覚システムによって提供される状態データ、および／または、オブジェクトに対して予測される１つ以上の将来の場所に少なくとも部分的に基づいて、自律走行乗り物のための１つ以上の運動計画を決定することができる。別の言い方をすれば、近接オブジェクトの現在の場所についての情報および／または近接オブジェクトの将来の場所についての予測を所与として、運動計画システムは、それらの現在および／または将来の場所におけるオブジェクトに対して乗り物を最良にナビゲートする自律走行乗り物のための運動計画を決定することができる。
【００２３】
例として、いくつかの実装では、運動計画システムは、１秒あたり複数回、自律走行乗り物のための新しい自律運動計画を生成するように動作する。各新しい自律運動計画は、次の数秒（例えば、５秒）に関する自律走行乗り物の運動を説明することができる。したがって、いくつかの例示的実装では、運動計画システムは、現在利用可能であるデータに基づいて、短期運動計画を訂正または別様に生成するように連続して動作する。
【００２４】
特に、本開示の側面によると、自律走行乗り物の運動を制御するシステム（例えば、上で説明される運動計画システム）は、一次目的地に向かって制御する一次運動計画と、安全な状態に乗り物を制御する二次運動計画との両方を決定する（例えば、連続してまたはほぼ連続して決定する）ことができる。例えば、いくつかの実装では、二次運動計画は、最小危険条件に乗り物を操作すること、および／または最小危険軌道に従って乗り物を操作することを含むことができる。例として、二次運動計画は、（例えば、現在の車線内で）自律走行乗り物を静止／停止させること、および／または交通流の外側の場所（例えば、路肩または中央分離帯）に到達するように（例えば、可能な限り最短の軌道に従って）乗り物を操作することを含むことができる。したがって、常に、自律走行乗り物は、乗り物の典型的動作に対応する一次運動計画と危険低減様式での乗り物の動作に対応する二次運動計画との両方を有することができる。
【００２５】
いくつかの実装では、自律走行乗り物は、一次運動計画および二次運動計画の両方を生成する単一の自律運転システムを含むことができる。一例として、いくつかの実装では、単一の自律運転システムは、上で説明されるような単一の運動計画システムを含むことができる。運動計画システムは、一次運動計画を生成するためのコスト関数の第１の組を最適化し、二次運動計画を生成するためのコスト関数の第２の組も最適化する最適化プランナまたは他の反復ソルバもしくはレギュレータを含むことができる。したがって、コスト関数の異なる組が、異なる目的を満たす異なる運動計画を提供するように調整されることができる。
【００２６】
他の実装では、自律走行乗り物は、複数の自律運転システムまたはそれらの部分を含むことができる。いくつかの実装では、複数の異なる自律運転システムは、いくつかのリソースまたはコンポーネントを共有することができる（例えば、それぞれ、同一のセンサデータ、状態データ、および／または予測を受信することができる）一方で、いくつかの別個のコンポーネント（例えば、別個の運動計画システム）を有する。他の実装では、複数の異なる自律運転システムは、完全に異なり、別個であり得る。例えば、各それぞれの自律運転システムは、それ自体の別個のセンサデータを受信または別様に取得し、世界の状態および運動計画に関してそれ自体の決定を行うことができる。したがって、一例では、自律走行乗り物は、一次運動計画を決定する一次運動計画システムと、二次運動計画を決定する二次運動計画システムとを含むことができ、少なくとも二次運動計画システムは、一次運動計画システムとは別個であり、異なる。複数の冗長運動計画システムを提供することは、一次運動計画システムが不具合を起こし、故障し、または別様に誤動作する場合でさえ、二次運動計画が利用可能であろうことを確実にする。
【００２７】
本開示の別の側面によると、人間（例えば、自律走行乗り物の乗車者または「運転者」／オペレータ）は、ユーザ入力を入力する能力を提供されることができる。例えば、ユーザ入力は、望ましくない条件を示し得る。例として、望ましくない条件は、緊急事象、乗り物故障事象（例えば、一次運動計画が不正確または無価値である、乗り物が一次運動計画を実行することができない、または別様に誤動作している等）、または、人間が不快と感じ、および／または乗り物が安全な状態に操作することを望む他のタイプの条件、状況、もしくは事象を含むことができる。ユーザ入力が緊急事象を示すとき、二次運動計画は、緊急運動計画に対応することができる。ユーザ入力は、一次運動計画から緊急運動計画への自律走行乗り物の制御の移行を開始することができる。
【００２８】
特に、いくつかの実装では、自律走行乗り物は、人間が（例えば、ボタン押すことによって）ユーザ入力を提供することを可能にする１つ以上の入力コンポーネント（例えば、ボタン、ディスプレイ等）を含むことができる。例として、入力コンポーネントは、１つ以上のボタン、レバー、ノブ、ハンドヘルドトリガ、ペダル等を含むことができる。例えば、入力コンポーネントは、自律走行乗り物のハンドル上に位置するボタンを含むことができる。別の例として、ユーザ入力は、ディスプレイデバイス（例えば、前部または後部座席ディスプレイデバイス）上に表示されるグラフィカルユーザインターフェースとのユーザ相互作用を介して、受信されることができる。したがって、人間は、グラフィカルユーザインターフェース上のボタンまたは他のインターフェース特徴を押し、ユーザ入力を提供することができる。
【００２９】
本開示の別の側面によると、ユーザ入力の受信に応答して、自律走行乗り物の制御は、一次運動計画から二次運動計画に移行させられることができる。例えば、運動計画コントローラまたは他のデバイスは、ユーザ入力を示す信号を受信し、応答して、一次運動計画から二次運動計画に自律走行乗り物の制御を切り替えることができる。二次運動計画に切り替えることは、安全な状態に自律走行乗り物を自動的に制御することをもたらし得る。
【００３０】
したがって、準備された２つの（またはそれを上回る）潜在的な行動方針を常に有する自動システム内で、人間の監督者入力は、その一次行動方針から二次行動方針に切り替わるように乗り物に指図することができる。特に、二次行動方針は、安全性を最大化するために、または別様に危険を低減させるために計算されることができる。
【００３１】
いくつかの実装では、１つ以上の自律走行乗り物運転システムは、複数の異なる二次運動計画を生成することができる。例として、第１の二次運動計画は、道路の左側または中央分離帯まで交通流から退出することを含み得、第２の二次運動計画は、自律走行乗り物を現在の車線内で静止または停止させることを含み得、第３の二次運動計画は、道路の右側まで交通流から退出することを含み得る。別の例として、異なる二次運動計画は、急停止と穏やかな停止とを含み得る。いくつかの実装では、望ましくない条件を示すユーザ入力に応答して、運動計画コントローラまたは他のデバイスは、実行のために複数の異なる二次運動計画のうちの特定のものを選択することができる。例えば、そのような選択は、各二次運動計画に割り当てられるそれぞれのスコア（例えば、安全性スコア）に基づいて行われることができる（例えば、最も安全な二次運動計画が選択されることができる）。いくつかの実装では、複数の異なる二次運動計画のためのスコアが、事前決定されることができる。いくつかの実装では、異なる二次運動計画のためのスコアが、自律走行乗り物に近接したオブジェクトのための直近の状態データおよび／または予測される将来の場所に基づいて、動的に計算されることができる。いくつかの実装では、人間によって提供されるユーザ入力は、実行のために複数の異なる二次運動計画のうちの特定のものを選択することができる。例えば、人間が実行のために複数の異なる二次運動計画のうちの特定のものを選択することを可能にする複数のボタン、制御、または他のユーザ入力コンポーネントが、提供されることができる。
【００３２】
自律走行乗り物が二次運動計画を実行した後、自律走行乗り物および／または関連システムは、いくつかの追加の動作またはアクションを実施することができる。一例として、二次運動計画の完了後、自律走行乗り物は、人間が乗り物の運動を制御することができる手動制御モードに戻ること、またはそれをデフォルトにすることができる。いくつかの実装では、自律走行乗り物は、タイムアウト時間（例えば、３０秒）が経過した後にのみ、手動制御モードに変化する。別の例として、二次運動計画の完了後、自律走行乗り物は、アラートを集中型車隊マネージャコンピューティングシステムに伝送することができる。アラートは、事故が起こったことを示すことができ、さらに調査するように、または他のアクションを講じるように車隊マネージャに促し得る。
【００３３】
本開示のシステムおよび方法は、いくつかの技術的効果および利益を提供する。例えば、本開示のシステムおよび方法は、望ましくない条件の場合に乗り物が安全な状態に操作することを可能にする二次運動計画を連続して計算することによって、自律走行乗り物の乗車者安全性を向上させる。特に、一次運動計画の失敗または誤動作の場合、乗り物の制御を能動的に獲得し、乗り物を手動で操作するよう人間に要求するのではなく、人間は、単純に、自律走行乗り物を二次運動計画に自動的に移行させるユーザ入力を提供する。特に、人間が望ましくない状況を認識し、人間が達成可能であると考える代替的な行動方針を計算し、乗り物の制御を再獲得し、所望の代替的計画を達成するために精密な操向および制動入力を提供する必要がある代わりに、人間は、望ましくない状況を認識し、ユーザ入力を介してそのような認識を乗り物制御システムに知らせ、自動システムの既知の精密な制御能力を使用して達成可能であることが保証される事前計算された代替的な行動方針の実行を即時に開始することができる。したがって、本開示のシステムおよび方法は、人間の安全性および快適性と自律走行乗り物の安全性との両方を増進する。
【００３４】
さらに、（例えば、緊急応答制御を実施するように）二次運動計画への容易にアクセス可能で確実な人間のアクセスを提供することによって、人間が乗り物の運動を補正することが常に可能であるための要件は、排除されることができる。１つの技術的利益として、乗り物の手動制御の必要性の排除は、乗り物がペダル、ハンドル等の手動制御コンポーネントを含む必要性を排除することができる。乗り物からそのようなコンポーネントを排除することは、乗り物コストを削減し、乗車者快適性および／または有用性に充てられることができる乗り物内の空間の量を増加させることができる。
【００３５】
乗り物の運動計画の手動制御または補正の必要性を排除することに由来する別の技術的利益として、一次運動計画による自律走行乗り物の動作は、少なくともいくつかの事例では、乗り物の運動を手動で補正する能力を超えるより広い制御空間内で動作することができる。特に、乗り物の運動の手動補正可能性が要求されるいくつかの事例では、一次運動計画は、乗り物の運動が常に手動で補正可能であることを確実にする限定された計画または制御空間内で動作するように制約され得る。例えば、一次運動計画空間は、人間によって反転可能ではない、または別様に補正可能ではないハンドルへのトルクを防止するように制約され得る。しかしながら、乗り物の運動計画の手動制御または補正の必要性が排除される事例において、一次運動計画空間へのそのような限界または制約は、除去または低減させられることができ、それによって、一次運動計画が改良されたより広く有能な性能を有することを可能にする。
【００３６】
ここで図を参照すると、本開示の例示的実施形態が、さらに詳細に議論されるであろう。
【００３７】
（例示的デバイスおよびシステム）
図１は、本開示の例示的実施形態による自律走行乗り物１０に関連付けられる例示的側面の第１の組のブロック図を描写する。特に、本開示の側面によると、自律走行乗り物１０は、一次自律運転システム２０と、二次自律運転システム３０とを含むことができる。
【００３８】
一次自律運転システム２０は、一次目的地に向かって自律走行乗り物１０を制御する一次運動計画を決定する（例えば、連続して、またはほぼ連続して決定する）ことができる。一次運動計画は、一次軌道を含むことができる。一次自律運転システム２０は、一次運動計画を自律走行乗り物１０の運動計画コントローラ１０６に提供することができる。
【００３９】
いくつかの実装では、一次運動計画は、計画されたルートのセグメントを形成するように計算されることができ、一次運動計画は、乗り物が計画されたルートに沿って進行するにつれて遭遇または計画される条件および事象に応答するリアルタイム調節を提供する。いくつかの実装では、一次運動計画は、例えば、乗り物が閾値持続時間（例えば、５秒）に関して横断することが予期される距離に及ぶ距離に対して連続して計算されることができる。
【００４０】
二次自律運転システム３０は、安全な状態に自律走行乗り物１０を制御する二次運動計画を決定する（例えば、連続して、またはほぼ連続して決定する）ことができる。二次運動計画は、二次軌道を含むことができる。二次自律運転システム３０は、二次運動計画を自律走行乗り物１０の運動計画コントローラ１０６に提供することができる。
【００４１】
いくつかの実装では、二次運動計画は、最小危険条件に自律走行乗り物１０を操作すること、および／または、最小危険軌道に従って自律走行乗り物１０を操作することを含むことができる。例として、二次運動計画は、（例えば、現在の車線内で）自律走行乗り物１０を静止／停止させること、および／または交通流の外側の場所（例えば、路肩または中央分離帯）に到達するように（例えば、可能な限り最短の軌道に従って）自律走行乗り物１０を操作することを含むことができる。したがって、いくつかの実装では、二次運動計画は、例えば、自律走行乗り物１０が停止または減速され得る交通流の外側の場所に自律走行乗り物１０を運ぶために必要とされる最短経路として、計算されることができる。
【００４２】
いくつかの実装では、二次運動計画は、乗り物が安全に運転し、停止（または遮断）するフェイルセーフアクションであり得る。いくつかの実装では、二次運動計画は、上位プロセッサまたは論理が稼働することを止めるという仮定、または、それが信頼できないという仮定に基づいて、上位処理論理およびリソースから独立して実装されることができる。
【００４３】
いくつかの実装では、二次自律運転システム３０は、乗り物のための停止場所を選択し、次いで、乗り物が選択された停止場所に到達することを可能にするための経路を決定することによって、１つ以上の二次運動計画を計算することができる。二次自律運転システム３０は、例えば、特定の瞬間に自律走行乗り物１０から閾値距離以内、または閾値進行時間以内にある複数の停止場所を選択することができる。二次自律運転システム３０は、例えば、特性または属性（例えば、路肩幅）に基づいて、停止場所を選択することができる。したがって、選択された停止場所は、例えば、最も近い停止場所と異なり得るが、選択された停止場所は、選択された場所を最も近い停止場所よりも安全性のために最適にする特性または属性を有することができる。
【００４４】
例えば、二次自律運転システム３０は、少なくとも１つの二次運動計画を計算することができ、二次運動計画は、路肩の選択された長さが広げられているという決定に基づいて、または、緊急電話が特定の場所またはその近傍に位置しているという別の決定に基づいて、乗り物を道路上の路肩の選択された長さまで移動させるための安全（または最も安全）なルートを識別する。いくつかの実装では、二次自律運転システム３０は、近さおよび路肩サイズ等の因子に基づいて、二次運動計画の目的地として路肩（例えば、左または右の路肩）を選択することができる。
【００４５】
したがって、常に、自律走行乗り物１０の運動計画コントローラ１０６は、自律走行乗り物１０の典型的動作に対応する一次運動計画および危険低減様式での自律走行乗り物１０の動作に対応する二次運動計画の両方を有することができる。
【００４６】
典型的には、日常的動作中、運動計画コントローラ１０６は、一次運動計画に従って自律走行乗り物１０を制御し、それによって、一次目的地に向かって自律走行乗り物１０を進行させるであろう。しかしながら、いくつかの事例では、運動計画コントローラ１０６は、自律走行乗り物１０の制御を二次運動計画に移行させること、または別様に切り替えることができる。
【００４７】
いくつかの実装では、運動計画コントローラ１０６は、一次運動計画および／または二次運動計画を自律走行乗り物１０の個々のインターフェースまたはコンポーネントのための制御パラメータに変換することができる。例えば、これらのインターフェースまたはコンポーネントは、推進インターフェース（例えば、アクセル）、操向インターフェース、制動インターフェース、および／または照明／補助インターフェースを含むことができる。
【００４８】
いくつかの実装では、運動計画コントローラ１０６は、一次運動計画および二次運動計画の両方を実装するための下位論理を含むことができる。変形例では、冗長または代替的コントローラが、継続的に二次運動計画を受信し、そして、ユーザ入力が受信されたときに二次運動計画を実装することができる。いずれのシナリオでも、運動計画コントローラ１０６は、運動計画を記憶および更新するためのメモリと、ユーザ入力が受信されるときに二次運動計画への移行または切り替えをアクティブにするためのトリガとを含むことができる。
【００４９】
いくつかの実装では、一次自律運転システム２０および二次自律運転システム３０は、一次運動計画および二次運動計画の両方を生成する単一の自律運転システムであり得る。一例として、いくつかの実装では、単一の自律運転システムは、単一の運動計画システムを含むことができる。運動計画システムは、一次運動計画を生成するためのコスト関数の第１の組を最適化し、二次運動計画を生成するためのコスト関数の第２の組も最適化する最適化プランナまたは他の反復ソルバもしくはレギュレータを含むことができる。したがって、コスト関数の異なる組が、異なる目的を満たす異なる運動計画を提供するように調整されることができる。
【００５０】
他の実装では、一次自律運転システム２０と二次自律運転システム３０とは、互いに対して少なくとも部分的に独立していること、別個であること、異なること、および／または冗長であることができる。いくつかの実装では、一次自律運転システム２０と二次自律運転システム３０とは、いくつかのリソースまたはコンポーネントを共有することができる（例えば、各々が、同一のセンサデータ、状態データ、および／または予測を受信することができる）が、いくつかの別個のコンポーネント（例えば、別個の運動計画システム）を有する。他の実装では、一次自律運転システム２０と二次自律運転システム３０とは、互いに対して完全に異なり、別個であり得る。例えば、一次自律運転システム２０および二次自律運転システム３０のうちの各それぞれのものは、それ自体の別個のセンサデータを受信または別様に取得し、世界の状態および運動計画に関してそれ自体の決定を行うことができる。
【００５１】
複数の冗長運動計画システムを提供することは、一次運動計画システムが不具合を起こす場合、故障する場合、または別様に誤動作する場合でさえ、二次運動計画が利用可能であろうことを確実にする。
【００５２】
いくつかの実装では、一次自律運転システム２０が、応答してルート計画および事象決定のためのモデルを実装するために使用されるような上位のプログラミングおよび論理を含むことができる一方で、二次自律運転システム３０は、例えば、ハードウェアおよび／またはファームウェアを通して、特定のタスクまたは動作を実施するために実装される下位機能性を含む。
【００５３】
本開示の別の側面によると、自律走行乗り物１０は、人間（例えば、自律走行乗り物の乗車者または「運転者」／オペレータ）がユーザ入力を入力することを可能にする１つ以上のユーザ入力コンポーネント１５０を含むことができる。例えば、ユーザ入力は、緊急事象、乗り物故障事象（例えば、一次運動計画が不正確または無価値である、乗り物が一次運動計画を実行することができない、または別様に誤動作している等）、または人間が不快と感じる、および／または乗り物が安全な状態に操作することを望む他のタイプの条件、状況、もしくは事象等の望ましくない条件を示し得る。ユーザ入力が緊急事象を示すとき、二次運動計画は、緊急運動計画に対応することができる。ユーザ入力は、一次運動計画から緊急運動計画への自律走行乗り物の制御の移行を開始することができる。
【００５４】
例として、入力コンポーネント１５０は、１つ以上のボタン、レバー、ノブ、ハンドヘルドトリガ、ペダル等を含むことができる。例えば、入力コンポーネント１５０は、自律走行乗り物１０のハンドル上に位置するボタンを含むことができる。別の例として、ユーザ入力コンポーネント１５０は、ディスプレイデバイス上に表示されるグラフィカルユーザインターフェースとのユーザ相互作用を介して、それを介してユーザ入力が受信され得るディスプレイデバイス（例えば、前部または後部座席ディスプレイデバイス）を含むことができる。したがって、人間は、グラフィカルユーザインターフェース上のボタンまたは他のインターフェース特徴を押し、ユーザ入力を提供することができる。
【００５５】
いくつかの実装では、入力コンポーネント１５０は、オーディオベースであり得る。例えば、マイクロホンが、音声コマンドまたは他のオーディオ信号を介してユーザ入力を受信することができる。さらに別の例として、入力コンポーネント１５０は、視覚ベースであり得る。例えば、ユーザ入力は、カメラによって捕捉される画像の分析を通して取得されることができる。例えば、コンピュータビジョン技法が、ユーザ入力を示すジェスチャ、発話、眼球運動、および／または顔の表情を査定または識別するように、画像に適用されることができる。
【００５６】
本開示の別の側面によると、ユーザ入力の受信に応答して、運動計画コントローラ１０６は、自律走行乗り物１０の制御を一次運動計画から二次運動計画に移行させること、または別様に切り替えることができる。例えば、運動計画コントローラ１０６は、ユーザ入力コンポーネント１５０からユーザ入力を示す信号を受信し、応答して、一次運動計画から二次運動計画に自律走行乗り物の制御を切り替えることができる。二次運動計画に切り替えることは、安全な状態に自律走行乗り物を自動的に制御することをもたらし得る。
【００５７】
したがって、準備された２つの（またはそれを上回る）潜在的な行動方針を常に有する自動システム内で、人間の監督者入力は、その一次行動方針から二次行動方針に切り替わるように乗り物に指図することができる。特に、二次行動方針は、安全性を最大化するために、または別様に危険を低減させるために計算されることができる。
【００５８】
いくつかの実装では、二次自律運転システム３０および／または追加の自律運転システムは、複数の異なる二次運動計画を生成することができる。例として、第１の二次運動計画は、道路の左側または中央分離帯まで交通流から退出することを含み得、第２の二次運動計画は、自律走行乗り物を現在の車線内で静止または停止させることを含み得、第３の二次運動計画は、道路の右側まで交通流から退出することを含み得る。別の例として、異なる二次運動計画は、急停止と穏やかな停止とを含み得る。
【００５９】
いくつかの実装では、複数の二次運動計画の各々は、乗り物が安全な場所（例えば、安全な停止のための場所）に到達し得るという保証を提供することができる。いくつかの実装では、複数の二次運動計画の各々は、少なくとも、自律走行乗り物１０が停止するための安全な場所に到達することができるであろうという閾値または最大レベルの保証を提供するように設計される。いくつかの実装では、計算される二次運動計画の数は、変動させられ得る。
【００６０】
いくつかの実装では、ユーザ入力に応答して、運動計画コントローラ１０６は、実行のために複数の異なる二次運動計画のうちの特定のものを選択することができる。例えば、そのような選択は、各二次運動計画に割り当てられるそれぞれのスコア（例えば、安全性スコア）に基づいて行われることができる（例えば、最も安全な二次運動計画が選択されることができる）。いくつかの実装では、複数の異なる二次運動計画のためのスコアが、事前決定されることができる。いくつかの実装では、異なる二次運動計画のためのスコアが、自律走行乗り物１０に近接したオブジェクトの直近の状態データおよび／または予測される将来の場所に基づいて、動的に計算されることができる。
【００６１】
いくつかの実装では、人間によって提供されるユーザ入力は、実行のために複数の異なる二次運動計画のうちの特定のものを選択することができる。例えば、人間が実行のために複数の異なる二次運動計画のうちの特定のものを選択することを可能にする複数のボタン、制御、または他のユーザ入力コンポーネント１５０が、提供されることができる。
【００６２】
図２は、本開示の例示的実施形態による例示的自律走行乗り物１０のブロック図を描写する。自律走行乗り物１０は、その環境を感知し、人間の入力を伴わずにナビゲートすることが可能である。自律走行乗り物１０は、地上自律走行乗り物（例えば、車、トラック、バス等）、空上自律走行乗り物（例えば、飛行機、ドローン、ヘリコプター、または他の航空機）、または他のタイプの乗り物（例えば、船）であり得る。
【００６３】
自律走行乗り物１０は、１つ以上のセンサ１０１と、乗り物コンピューティングシステム１０２と、１つ以上の乗り物制御１０７とを含む。乗り物コンピューティングシステム１０２は、自律走行乗り物１０を制御することを支援することができる。特に、乗り物コンピューティングシステム１０２は、１つ以上のセンサ１０１からセンサデータを受信し、センサ１０１によって収集されるデータに基づいて種々の処理技法を実施することによって、周辺環境を把握しようとし、そのような周辺環境を通した適切な運動計画を生成することができる。乗り物コンピューティングシステム１０２は、１つ以上の乗り物制御１０７を制御し、運動計画に従って自律走行乗り物１０を動作させることができる。
【００６４】
乗り物コンピューティングシステム１０２は、１つ以上のプロセッサ１１２と、メモリ１１４とを含む。１つ以上のプロセッサ１１２は、任意の好適な処理デバイス（例えば、プロセッサコア、マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、コントローラ、マイクロコントローラ等）であり得、１つのプロセッサまたは動作可能に接続される複数のプロセッサであり得る。メモリ１１４は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリデバイス、磁気ディスク等、およびそれらの組み合わせ等の１つ以上の非一過性のコンピュータ読み取り可能な記憶媒体を含むことができる。メモリ１１４は、データ１１６と、乗り物コンピューティングシステム１０２に動作を実施させるようにプロセッサ１１２によって実行される命令１１８とを記憶することができる。
【００６５】
図２に図示されるように、乗り物コンピューティングシステム１０２は、知覚システム１０３と、予測システム１０４と、運動計画システム１０５とを含むことができ、それらは、協働し、自律走行乗り物１０の周辺環境を感知し、それに応じて、自律走行乗り物１０の運動を制御するための運動計画を決定する。
【００６６】
特に、いくつかの実装では、知覚システム１０３は、自律走行乗り物１０に結合され、または別様にその中に含まれた１つ以上のセンサ１０１からセンサデータを受信することができる。例として、１つ以上のセンサ１０１は、光検出および測距（ＬＩＤＡＲ）システム、無線検出および測距（ＲＡＤＡＲ）システム、１つ以上のカメラ（例えば、可視スペクトルカメラ、赤外線カメラ等）、および／または他のセンサを含むことができる。センサデータは、自律走行乗り物１０の周辺環境内のオブジェクトの場所を説明する情報を含むことができる。
【００６７】
一例として、ＬＩＤＡＲシステムに対して、センサデータは、測距レーザを反射したオブジェクトに対応するいくつかの点の（例えば、ＬＩＤＡＲシステムに対する３次元空間内の）場所を含むことができる。例えば、ＬＩＤＡＲシステムは、センサからオブジェクトまで進行し、かつ戻るために短いレーザパルスが要する飛行時間（ＴＯＦ）を測定し、既知の光速から距離を計算することによって、距離を測定することができる。
【００６８】
別の例として、ＲＡＤＡＲシステムに対して、センサデータは、測距電波を反射したオブジェクトに対応するいくつかの点の（例えば、ＲＡＤＡＲシステムに対する３次元空間内の）場所を含むことができる。例えば、ＲＡＤＡＲシステムによって伝送される電波（例えば、パルス状または連続して）は、オブジェクトから反射し、ＲＡＤＡＲシステムの受信機に戻り、オブジェクトの場所および速度についての情報を与えることができる。したがって、ＲＡＤＡＲシステムは、オブジェクトの現在の速度についての有用な情報を提供することができる。
【００６９】
さらに別の例として、１つ以上のカメラに対して、種々の処理技法（例えば、運動からの構造、構造化された光、立体三角測量、および／または他の技法等の、例えば、範囲撮像技法）が、１つ以上のカメラによって捕捉される画像内で描写されるオブジェクトに対応するいくつかの点の（例えば、１つ以上のカメラに対する３次元空間内の）場所を識別するように実施されることができる。他のセンサシステムも、オブジェクトに対応する点の場所を識別することができる。
【００７０】
別の例として、１つ以上のセンサ１０１は、測位システムを含むことができる。測位システムは、乗り物１０の現在の位置を決定することができる。測位システムは、乗り物１０の位置を分析するための任意のデバイスまたは回路であり得る。例えば、測位システムは、慣性センサのうちの１つ以上のもの、衛星測位システムを使用することによって、ＩＰアドレスに基づいて、三角測量および／またはネットワークアクセスポイントもしくは他のネットワークコンポーネント（例えば、携帯電話の中継塔、ＷｉＦｉアクセスポイント等）への近接性および／または他の好適な技法を使用することによって、位置を決定することができる。乗り物１０の位置は、乗り物コンピューティングシステム１０２の種々のシステムによって使用されることができる。
【００７１】
したがって、１つ以上のセンサ１０１は、自律走行乗り物１０の周辺環境内のオブジェクトに対応する点の（例えば、自律走行乗り物１０に対する３次元空間内の）場所を説明する情報を含むセンサデータを収集するために使用されることができる。
【００７２】
センサデータに加えて、知覚システム１０３は、自律走行乗り物１０の周辺環境についての詳細な情報を提供する地図データ１２６を読み出すこと、または別様に取得することができる。地図データ１２６は、異なる進路（例えば、道路）、道路セグメント、建物、または他のアイテムもしくはオブジェクト（例えば、街灯柱、横断歩道、縁石等）の識別および場所、交通車線の場所および方向（例えば、特定の道路または他の進路内の駐車車線、方向変更車線、自転車車線、もしくは他の車線の場所および方向）、交通制御データ（例えば、標識、信号機、または他の交通制御デバイスの場所および説明書き）、および／またはコンピューティングシステム１０２がその周辺環境ならびにそれとのその関係を把握および知覚することを支援する情報を提供する任意の他の地図データに関する情報を提供することができる。
【００７３】
知覚システム１０３は、１つ以上のセンサ１０１から受信されるセンサデータおよび／または地図データ１２６に基づいて、自律走行乗り物１０に近接した１つ以上のオブジェクトを識別することができる。特に、いくつかの実装では、知覚システム１０３は、各オブジェクトのために、そのようなオブジェクトの現在の状態を説明する状態データを提供することができる。例として、各オブジェクトのための状態データは、オブジェクトの推定値を説明することができる：現在の場所（位置とも称される）；現在の速さ（速度とも称される）；現在の加速度；現在の進行方向；現在の向き；サイズ／占有面積（例えば、境界多角形または多面体等の境界形状によって表されるような）；クラス（例えば、乗り物対歩行者対自転車対その他）；ヨーレート；および／または他の状態情報。
【００７４】
いくつかの実装では、知覚システム１０３は、いくつかの反復に関して各オブジェクトのための状態データを決定することができる。特に、知覚システム１０３は、各反復において各オブジェクトのための状態データを更新することができる。したがって、知覚システム１０３は、経時的に自律走行乗り物１０に近接したオブジェクト（例えば、乗り物）を検出および追跡することができる。
【００７５】
予測システム１０４は、知覚システム１０３から状態データを受信し、そのような状態データに基づいて、各オブジェクトのための１つ以上の将来の場所を予測することができる。例えば、予測システム１０４は、各オブジェクトが次の５秒、１０秒、２０秒以内等に位置するであろう場所を予測することができる。一例として、オブジェクトは、その現在の速度に従って、その現在の軌道を中実に守ることが予測されることができる。別の例として、他のより精巧な予測技法またはモデル化が、使用されることができる。
【００７６】
運動計画システム１０５は、オブジェクトの予測される１つ以上の将来の場所および／または知覚システム１０３によって提供されるオブジェクトの状態データに少なくとも部分的に基づいて、自律走行乗り物１０のための１つ以上の運動計画を決定することができる。別の言い方をすれば、オブジェクトの現在の場所および／または近接オブジェクトの予測される将来の場所についての情報を所与として、運動計画システム１０５は、そのような場所におけるオブジェクトに対して自律走行乗り物１０を最良にナビゲートする自律走行乗り物１０のための１つ以上の運動計画を決定することができる。
【００７７】
特に、本開示の側面によると、運動計画システム１０５は、自律走行乗り物１０のための１つ以上の候補運動計画の各々のための１つ以上のコスト関数を評価することができる。例えば、コスト関数は、特定の候補運動計画を中実に守ることの（例えば、経時的な）コストを説明する、および／または、特定の候補運動計画を中実に守るための報酬を説明することができる。例えば、報酬は、コストと反対の符号であり得る。
【００７８】
より具体的には、１つ以上のコスト関数を評価するために、運動計画システム１０５は、特徴空間内にある複数の特徴を決定することができる。例えば、各特徴のステータスは、乗り物の状態、および／または周辺環境の他のオブジェクトもしくは側面のそれぞれの状態から、導出されることができる。運動計画システム１０５は、現在の候補運動計画の中に含まれる各乗り物状態のための複数の特徴を決定することができる。
【００７９】
運動計画システム１０５は、決定された特徴に基づいて、１つ以上のコスト関数を評価することができる。例えば、いくつかの実装では、１つ以上のコスト関数は、各状態における各特徴のためのそれぞれの線形コストを含むことができる。
【００８０】
運動計画システム１０５は、１つ以上のコスト関数を反復して最適化し、候補運動計画に関連付けられる総コストを最小化することができる。例えば、運動計画システム１０５は、１つ以上のコスト関数を反復して最適化する最適化プランナを含むことができる。
【００８１】
最適化後、運動計画システム１０５は、最適な運動計画を実行するために、１つ以上の乗り物制御１０７（例えば、ガス流、操向、制動等を制御するアクチュエータまたは他のデバイス）を制御する運動計画コントローラ１０６に最適な運動計画を提供することができる。
【００８２】
知覚システム１０３、予測システム１０４、運動計画システム１０５、および運動計画コントローラ１０６の各々は、所望の機能性を提供するために利用されるコンピュータ論理を含むことができる。いくつかの実装では、知覚システム１０３、予測システム１０４、運動計画システム１０５、および運動計画コントローラ１０６の各々は、汎用プロセッサを制御するハードウェア、ファームウェア、および／またはソフトウェアで実装されることができる。例えば、いくつかの実装では、知覚システム１０３、予測システム１０４、運動計画システム１０５、および運動計画コントローラ１０６の各々は、記憶デバイス上に記憶され、メモリにロードされ、１つ以上のプロセッサによって実行されるプログラムファイルを含む。他の実装では、知覚システム１０３、予測システム１０４、運動計画システム１０５、および運動計画コントローラ１０６の各々は、ＲＡＭハードディスクまたは光学もしくは磁気媒体等の有形コンピュータ読み取り可能な記憶媒体の中に記憶されるコンピュータ実行可能命令の１つ以上の組を含む。
【００８３】
図２は、センサ１０１、知覚システム１０３、予測システム１０４、および運動計画システム１０５の各々のための１つのみのブロックを図示するが、いくつかの実装では、自律走行乗り物１０は、上で列挙されるシステムまたはコンポーネントのうちの１つ以上のものの複製もしくは追加のものを含むことができる。例えば、いくつかの実装では、自律走行乗り物１０は、二次運動計画を生成する追加の運動計画システムを含むことができる。その上さらなる実装では、自律走行乗り物１０は、追加の知覚システムと、追加の予測システムと、二次運動計画を生成するように動作する追加の運動計画システムとを含むことができる。したがって、いくつかの実装では、図２に具体的に図示されるようなシステム１０２は、一次運動計画および二次運動計画の両方を生成することができる。しかしながら、他の実装では、図２に図示されるシステムおよび／またはコンポーネントのうちの１つ以上のものは、別個かつ異なる様式で二次運動計画を生成するように複製されること、または別様に冗長的に提供されることができる。
【００８４】
図３は、本開示の例示的実施形態による例示的運動計画システム２００のブロック図を描写する。例示的運動計画システム２００は、世界状態ジェネレータ２０４と、１つ以上のシナリオコントローラ２０６と、最適化プランナ２０８とを含む。
【００８５】
世界状態ジェネレータ２０４は、予測システム１０４からの情報、地図データ１２６、および／または、乗り物姿勢、現在のルート、もしくは他の情報等の他の情報を受信することができる。世界状態ジェネレータ２０４は、全ての受信された情報を合成して、各時間ステップにおける全てのオブジェクトの状態および自律走行乗り物の周辺環境内の他の側面を説明する世界の状態を生成することができる。
【００８６】
シナリオコントローラ２０６は、あるシナリオ（例えば、車線変更シナリオ／待ち行列シナリオ）を検出し、選択されたシナリオに従って、自律走行乗り物の挙動を誘導することができる。したがって、シナリオコントローラは、（例えば、自律走行乗り物が左折すべき、右折すべき、または車線を変更すべき等の場合）別々の決定を行うことができ、そのような決定に基づいて、乗り物の運動を制御することができる。いくつかの実装では、シナリオコントローラ２０６の各々は、１つ以上の対応するシナリオに含まれるか、もしくはそれらから除外されるかのいずれかとして世界の現在の状態を分類するように設計される分類子（例えば、機械学習された分類子）であり得る。いくつかの実装では、シナリオコントローラ２０６は、各時間ステップにおいて動作することができる。
【００８７】
例として、シナリオコントローラ２０６は、以下のうちの１つ以上のものを含むことができる：世界の中の各オブジェクトに対して、自律走行乗り物がそのようなオブジェクトを通過、無視、または待ち行列に入れるべきかどうかを決定する通過、無視、待ち行列コントローラ；世界の中の各隣接する乗り物に対して、自律走行乗り物がそのような乗り物に道を譲るべきかどうかを決定する譲歩コントローラ；車線を変更すべきかどうか、および変更すべきときを識別する車線変更コントローラ；および／または、各時間ステップにおける適切な運転速度を決定する速度リグレッサ。これらのシナリオコントローラ２０６は、一例のみとして提供される。代替的および／または追加のシナリオコントローラ２０６が、使用されることができる。本開示のいくつかの実装では、運動計画システム２００は、シナリオコントローラ２０６を含まない、または実装しない。
【００８８】
本開示の別の側面によると、運動計画システム２００は、運動計画空間（例えば、利用可能な制御空間）に関して検索し（例えば、反復して検索し）、運動計画に関連付けられる総コストを最適化する（例えば、局所的に最適化する）運動計画を識別する最適化プランナ２０８を含むことができる。例えば、最適化プランナは、総コストが最適化されるまで、候補運動計画を反復して評価および修正することができる。
【００８９】
図４は、本開示の例示的実施形態による例示的最適化プランナ３００のブロック図を描写する。最適化プランナ３００は、運動計画空間（例えば、利用可能な制御空間）に関して反復して検索し、運動計画に関連付けられる総コストを最適化する（例えば、局所的に最適化する）運動計画を識別することができる。特に、例示的最適化プランナ３００は、総コストを最適化するためのオプティマイザを実装することができる。オプティマイザは、総コストを最適化することができるソルバ（例えば、反復ソルバ）または他の最適化ツールであり得るか、もしくはそれを含むことができる。いくつかの実装では、オプティマイザは、反復線形二次レギュレータである。一例示的実装では、総コストは、全ての報酬の合計を引いた全てのコストの合計に等しく、最適化プランナは、総コストを最小化しようとする。
【００９０】
例証の目的のために例示的コスト関数を提供する：第１の例示的コスト関数は、自律走行乗り物から車線境界までの第１の距離の規模と負の相関関係にある第１のコストを提供することができる。したがって、候補運動計画が車線境界に接近する場合、第１のコストが増加し、それによって、自律走行乗り物が車線境界に近づく、またはそれを越える運動計画を選択することを阻止する（例えば、増加したコスト罰則を通して）。この第１の例示的コスト関数は、コストの原理を例証するための例証的コスト関数として提供されるにすぎない。第１のコスト関数は、本開示を実装するために要求されない。多くの他の異なるコスト関数３０４が、上で説明される第１のコスト関数に加えて、または代替として、採用されることができる。
【００９１】
さらに、いくつかの実装では、コスト関数は、コストではなく報酬を提供する部分を含むことができる。例えば、報酬は、コスト関数の他の部分によって提供されるコストと反対の符号であり得る。例示的報酬は、進行した距離、速度、またはルートの完了に向かって進行する他の形態のために提供されることができる。
【００９２】
本開示の側面によると、いくつかの実装では、最適化プランナ３００は、一次運動計画を生成するためのコスト関数３０２の第１の組の両方を最適化することができる。最適化プランナ３００は、二次運動計画を生成するためのコスト関数３０４の第２の組を別個に最適化することもできる。したがって、コスト関数３０２および３０４の異なる組は、異なる目的を満たす異なる運動計画を提供するために、別個に最適化されることができる。したがって、少なくともいくつかの実装では、単一の運動計画システムは、最適化プランナ３００を実装し、一次運動計画および二次運動計画を生成するためのコスト関数の第１の組３０２およびコスト関数の第２の組３０４の両方を最適化することができる。
【００９３】
しかしながら、他の実装では、複数の運動計画システムおよび／または複数の最適化プランナが、一次運動計画および二次運動計画を生成するために提供されることができる。例えば、第１の最適化プランナが、一次運動計画を生成するためのコスト関数の第１の組３０２の両方を最適化することができる一方で、第２の別個の最適化プランナは、二次運動計画を生成するためのコスト関数３０４の第２の組を最適化する。その上さらなる実装では、二次運動計画は、最適化プランナおよび／またはコスト関数の使用を通して生成されない。
【００９４】
図３を再び参照して、最適化プランナ２０８が最適な候補運動計画を識別する（またはある他の反復中断が起こる）と、最適な候補運動計画が、自律走行乗り物によって選択および実行されることができる。例えば、運動計画システム２００は、選択された運動計画を実行するために、１つ以上の乗り物制御（例えば、ガス流、操向、制動等を制御するアクチュエータ）を制御する運動計画コントローラ１０６に選択された運動計画を提供することができる。
【００９５】
世界状態ジェネレータ２０４、シナリオコントローラ２０６、最適化プランナ２０８、および罰則／報酬ジェネレータ３０２の各々は、所望の機能性を提供するために利用されるコンピュータ論理を含むことができる。いくつかの実装では、世界状態ジェネレータ２０４、シナリオコントローラ２０６、最適化プランナ２０８、および罰則／報酬ジェネレータ３０２の各々は、汎用プロセッサを制御するハードウェア、ファームウェア、および／またはソフトウェアで実装されることができる。例えば、いくつかの実装では、世界状態ジェネレータ２０４、シナリオコントローラ２０６、最適化プランナ２０８、および罰則／報酬ジェネレータ３０２の各々は、記憶デバイス上に記憶され、メモリにロードされ、１つ以上のプロセッサによって実行されるプログラムファイルを含む。他の実装では、世界状態ジェネレータ２０４、シナリオコントローラ２０６、最適化プランナ２０８、および罰則／報酬ジェネレータ３０２の各々は、ＲＡＭハードディスクまたは光学もしくは磁気媒体等の有形コンピュータ読み取り可能な記憶媒体の中に記憶されるコンピュータ実行可能命令の１つ以上の組を含む。
【００９６】
（例示的方法）
図５は、本開示の例示的実施形態による自律走行乗り物を制御する例示的方法５００のフローチャート図を描写する。
【００９７】
５０２では、コンピューティングシステムが、一次目的地に向かって自律走行乗り物を制御する一次運動計画を決定する。
【００９８】
５０４では、コンピューティングシステムが、安全な状態に自律走行乗り物を制御する二次運動計画を決定する。いくつかの実装では、二次運動計画は、緊急運動計画であり得る。一例として、二次運動計画は、現在の車線内に留まっている間に自律走行乗り物に静止させることができる。別の例として、二次運動計画は、自律走行乗り物に交通流から退出させることができる。
【００９９】
５０６では、コンピューティングシステムは、ユーザ入力が受信されたかどうかを決定する。いくつかの実装では、ユーザ入力は、望ましくない状況を示し得る。例えば、ユーザ入力は、緊急事象を示し得る。５０６において、ユーザ入力が受信されていないことが決定される場合、方法５００は、５０８に進む。
【０１００】
５０８では、コンピューティングシステムが、一次運動計画に従って、自律走行乗り物を制御する。５０８において、一次運動計画に従って自律走行乗り物を制御した後、方法５００は、５０２に戻り、再び開始する。そのような様式で、一次運動制御計画および二次運動制御計画の両方は、乗り物が動作されている間、いくつかの期間に関して反復して決定されることができる。しかしながら、ユーザ入力が受信されない場合、コンピューティングシステムは、一次運動計画に従って、自律走行乗り物を制御することができる。
【０１０１】
しかしながら、５０６を再び参照すると、５０６において、ユーザ入力が受信されたことが決定される場合、方法５００は、５１０に進むことができる。
【０１０２】
５１０では、コンピューティングシステムが、一次運動計画から二次運動計画に自律走行乗り物の制御を切り替えることができる。二次運動計画に切り替えることは、安全な状態に自律走行乗り物を自動的に制御することをもたらし得る。
【０１０３】
したがって、準備された２つの（またはそれを上回る）潜在的な行動方針を常に有する自動システム内で、人間の監督者入力は、その一次行動方針から二次行動方針に切り替わるように乗り物に指図することができる。特に、二次行動方針は、安全性を最大化するように、または別様に危険を低減させるように計算されることができる。
【０１０４】
コンピューティングシステムが二次運動計画に従って自律走行乗り物を制御した後、コンピューティングシステムは、いくつかの追加の動作またはアクションを実施することができる。一例として、二次運動計画の完了後、自律走行乗り物は、人間が乗り物の運動を制御することができる手動制御モードに戻るか、またはそれをデフォルトにすることができる。いくつかの実装では、自律走行乗り物は、タイムアウト時間（例えば、３０秒）が経過した後にのみ、手動制御モードに変更する。
【０１０５】
別の例として、二次運動計画の完了後、コンピューティングシステムは、アラートを集中型車隊マネージャコンピューティングシステムに伝送することができる。アラートは、事故が起こったことを示すことができ、さらに調査するように、または他のアクションを講じるように車隊マネージャに促し得る。
【０１０６】
図５は、例証および議論の目的のために特定の順序で実施されることを描写するが、本開示の方法は、特に図示される順序または配列に限定されない。方法５００の種々のステップは、本開示の範囲から逸脱することなく、種々の方法で省略され、再配列され、組み合わせられ、および／または適合させられることができる。
【０１０７】
（追加の開示）
本明細書で議論される技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびに講じられるアクションおよびそのようなシステムを往復して送信される情報を参照する。コンピュータベースのシステムの本質的な融通性は、コンポーネントの間のタスクおよび機能性の多種多様な可能な構成、組み合わせ、および分割を可能にする。例えば、本明細書で議論されるプロセスは、単一のデバイスまたはコンポーネント、もしくは組み合わせて稼働する複数のデバイスまたはコンポーネントを使用して、実装されることができる。データベースおよびアプリケーションは、単一のシステム上に実装されるか、または複数のシステムにわたって分散されることができる。分散型コンポーネントは、連続して、または並行して動作することができる。
【０１０８】
本主題は、その種々の具体的な例示的実施形態に関して詳細に説明されているが、各例は、本開示の限定としてではなく、解説として提供される。当業者は、前述の理解を達成することに応じて、そのような実施形態の改変、変形例、および均等物を容易に生成することができる。故に、本開示は、当業者に容易に明白であろうような本主題へのそのような修正、変形例、および／または追加の包含を除外しない。例えば、一実施形態の一部として図示または説明される特徴は、なおもさらなる実施形態を生じさせるために、別の実施形態とともに使用されることができる。したがって、本開示は、そのような改変、変形例、および均等物を網羅することが意図される。
【図１】
0006808078.tif 000002
【図２】
0006808078.tif 000003
【図３】
0006808078.tif 000004
【図４】
0006808078.tif 000005
【図５】
0006808078.tif 000006