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

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

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

特許7330259自律車両のためのシミュレーションシステム、方法、及び非一時的なコンピュータ可読記憶媒体
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-10
(45)【発行日】2023-08-21
(54)【発明の名称】自律車両のためのシミュレーションシステム、方法、及び非一時的なコンピュータ可読記憶媒体
(51)【国際特許分類】
   B60W 50/00 20060101AFI20230814BHJP
   B60W 60/00 20200101ALI20230814BHJP
【FI】
B60W50/00
B60W60/00
【請求項の数】 20
(21)【出願番号】P 2021210801
(22)【出願日】2021-12-24
(62)【分割の表示】P 2018544031の分割
【原出願日】2016-11-02
(65)【公開番号】P2022046646
(43)【公開日】2022-03-23
【審査請求日】2022-01-24
(31)【優先権主張番号】14/932,963
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/757,016
(32)【優先日】2015-11-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,959
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,966
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,940
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/756,995
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/756,992
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/756,994
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/756,993
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/756,991
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/756,996
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,948
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,952
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,954
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,958
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,962
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジェシー ソル レヴィンソン
(72)【発明者】
【氏名】ガブリエル サーストン シブリー
(72)【発明者】
【氏名】アシュトシュ ガジャーネン レゲ
【審査官】平井 功
(56)【参考文献】
【文献】特表2013-544696(JP,A)
【文献】特表2009-505260(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 10/00-10/30
B60W 30/00-60/00
G08G 1/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
環境におけるオブジェクトを表す車両に関連付けられたセンサからセンサデータを受信することと、
前記センサデータに少なくとも部分的に基づいて、前記オブジェクトに関連付けられた分類を決定することと、
前記オブジェクトの方位、速度及び加速度のうちの少なくとも1つを決定することと、
前記センサデータ、前記分類、並びに前記方位、前記速度、及び前記加速度のうちの少なくとも1つのうちの少なくとも1つに基づいて前記オブジェクトに関連付けられたデータモデルを生成することと、
前記データモデル、並びに前記オブジェクトの方位、速度及び加速度のうち少なくとも1つに少なくとも部分的に基づいて、シミュレーションを生成することと、
前記シミュレーションに少なくとも部分的に基づいて、シミュレートされた環境における前記オブジェクトの速度、加速度、位置、及びアクションのうちの少なくとも1つに関連付けられる確率を決定することであって、前記確率は、前記オブジェクトが静的状態から動的状態に遷移する可能性を示す、ことと、
前記確率に少なくとも部分的に基づいて、前記車両を制御することと
を備える方法。
【請求項2】
前記データモデルは、動的オブジェクトデータモデラ、環境モデラ、センサモデラ及び車両モデラのうちの1つまたは複数を備える、請求項1方法。
【請求項3】
前記確率を決定することは、追加のオブジェクトをシミュレートすることに少なくとも部分的に基づいて決定された第2の確率に少なくとも部分的にさらに基づいており、前記追加のオブジェクトをシミュレートすることは、前記追加のオブジェクトに関連付けられた追加のデータモデルに少なくとも部分的に基づいている、請求項1の方法。
【請求項4】
前記オブジェクトが前記車両の計画された経路に干渉する可能性を示す第2の確率を判定することをさらに備える、請求項1の方法。
【請求項5】
前記車両を取り巻く環境におけるイベントのインジケーションを受信することをさらに備え、前記シミュレーションを生成することは、前記イベントにさらに基づく、請求項1の方法。
【請求項6】
前記確率に少なくとも部分的に基づいて前記車両の操作をシミュレートすることをさらに備え、前記車両を制御することは、前記操作をシミュレートすることに少なくとも部分的にさらに基づく、請求項1の方法。
【請求項7】
1つまたは複数のプロセッサと、
プロセッサ実行可能命令を格納するメモリと
を備えたシステムであって、前記プロセッサ実行可能命令は、前記1つまたは複数のプロセッサによって実行されると前記システムに、
車両に関連付けられたセンサから、車両を取り巻く環境におけるオブジェクトを表すセンサデータを受信することと、
前記センサデータに少なくとも部分的に基づいて、前記オブジェクトに関連付けられた分類を決定することと、
前記オブジェクトの方位、速度及び加速度のうちの少なくとも1つを決定することと、
前記センサデータ、前記分類、並びに前記方位、前記速度、及び前記加速度のうちの少なくとも1つのうちの少なくとも1つに少なくとも部分的に基づいて前記オブジェクトに関連付けられたデータモデルを生成することと、
前記データモデル、並びに前記オブジェクトの方位、速度及び加速度のうち少なくとも1つに少なくとも部分的に基づいて、シミュレーションを生成することと、
前記シミュレーションに少なくとも部分的に基づいて、シミュレートされた環境における前記オブジェクトの速度、加速度、位置、及びアクションのうちの少なくとも1つに関連付けられる確率を決定することであって、前記確率は、前記オブジェクトが静的状態から動的状態に遷移する可能性を示す、ことと、
前記確率に少なくとも部分的に基づいて、前記車両を制御することと
を備える動作を実行させる、システム。
【請求項8】
前記データモデルは、動的オブジェクトデータモデラ、環境モデラ、センサモデラ、及び車両モデラのうちの1つまたは複数を備える、請求項7のシステム。
【請求項9】
前記確率を決定することは、追加のオブジェクトをシミュレートすることに少なくとも部分的に基づいて決定された第2の確率に少なくとも部分的にさらに基づいており、前記追加のオブジェクトをシミュレートすることは、前記追加のオブジェクトに関連付けられた追加のデータモデルに少なくとも部分的に基づいている、請求項7のシステム。
【請求項10】
前記動作は、前記オブジェクトが前記車両の計画された経路に干渉する可能性を示す第2の確率を判定することをさらに備える、請求項7のシステム。
【請求項11】
前記動作は、前記車両を取り巻く環境におけるイベントのインジケーションを受信することをさらに備え、前記シミュレーションを生成することは、前記イベントにさらに基づく、請求項7のシステム。
【請求項12】
前記動作は、前記確率に少なくとも部分的に基づいて前記車両の操作をシミュレートすることをさらに備え、前記車両を制御することは、前記操作をシミュレートすることに少なくとも部分的にさらに基づく、請求項7のシステム。
【請求項13】
前記操作をシミュレートすることは、
前記確率に少なくとも部分的に基づいて、1つまたは複数のシミュレートされた候補軌道を生成することと、
前記シミュレーションにおいて前記1つまたは複数のシミュレートされた候補軌道のインスタンスを生成することと
に少なくとも部分的に基づいており、前記車両を制御することは、前記シミュレートされた候補軌道の少なくとも1つが衝突のない動作であることを決定することに少なくとも部分的に基づいている、請求項12のシステム。
【請求項14】
プロセッサ実行可能命令を格納する、1つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記プロセッサ実行可能命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
車両に関連付けられたセンサから、車両を取り巻く環境におけるオブジェクトを表すセンサデータを受信することと、
車両コントローラによって、前記センサデータに少なくとも部分的に基づいて、前記オブジェクトに関連付けられた分類を決定することと、
前記オブジェクトの方位、速度及び加速度のうちの少なくとも1つを決定することと、
前記センサデータ、前記分類、並びに前記方位、前記速度、及び前記加速度のうちの少なくとも1つのうちの少なくとも1つに少なくとも部分的に基づいて前記オブジェクトに関連付けられたデータモデルを生成することと、
前記データモデル、並びに前記オブジェクトの方位、速度及び加速度のうち少なくとも1つに少なくとも部分的に基づいて、シミュレーションを生成することと、
前記シミュレーションに少なくとも部分的に基づいて、シミュレートされた環境における前記オブジェクトの速度、加速度、位置、及びアクションのうちの少なくとも1つに関連付けられる確率を決定することであって、前記確率は、前記オブジェクトが静的状態から動的状態に遷移する可能性を示す、ことと、
前記確率に少なくとも部分的に基づいて、前記車両を制御するコマンドを生成することと
を備える動作を実行させる、1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項15】
前記データモデルは、動的オブジェクトデータモデラ、環境モデラ、センサモデラ、及び車両モデラのうちの1つまたは複数を備える、請求項14の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項16】
前記確率を決定することは、追加のオブジェクトをシミュレートすることに少なくとも部分的に基づいて決定された第2の確率に少なくとも部分的にさらに基づいており、前記追加のオブジェクトをシミュレートすることは、前記追加のオブジェクトに関連付けられた追加のデータモデルに少なくとも部分的に基づいている、請求項14の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項17】
前記動作は、前記オブジェクトが前記車両の計画された経路に干渉する可能性を示す第2の確率を判定することをさらに備える、請求項14の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記動作は、前記車両を取り巻く環境におけるイベントのインジケーションを受信することをさらに備え、前記シミュレーションを生成することは、前記イベントにさらに基づく、請求項14の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記動作は、前記確率に少なくとも部分的に基づいて前記車両の操作をシミュレートすることをさらに備え、前記車両を制御することは、前記操作をシミュレートすることに少なくとも部分的にさらに基づく、請求項14の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【請求項20】
前記操作をシミュレートすることは、
前記確率に少なくとも部分的に基づいて、1つまたは複数のシミュレートされた候補軌道を生成することと、
前記シミュレーションにおいて前記1つまたは複数のシミュレートされた候補軌道のインスタンスを生成することと
に少なくとも部分的に基づいており、
前記車両を制御することは、前記シミュレートされた候補軌道の少なくとも1つが衝突のない動作であることを決定することに少なくとも部分的に基づいている、請求項19の1つまたは複数の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律車両のためのシミュレーションシステムおよび方法に関する。
【背景技術】
【0002】
関連出願の相互参照
本PCT国際出願は、2015年11月5日に出願された米国特許出願第14/757,016号、2015年11月4日に出願された「AUTONOMOUS VEHICLE FLEET SERVICE AND SYSTEM」と題する米国特許出願第14/932,959号、2015年11月4日に出願された「ADAPTIVE MAPPING TO NAVIGATE AUTONOMOUS VEHICLES RESPONSIVE TO PHYSICAL ENVIRONMENT CHANGES」と題する米国特許出願第14/932,963号、2015年11月4日に出願された「自律車両の軌道修正のための遠隔操作システムおよび方法」と題する米国特許出願第14/932,966号、2015年11月4日に出願された「AUTOMATED EXTRACTION OF SEMANTIC INFORMATION TO ENHANCE INCREMENTAL MAPPING MODIFICATIONS FOR ROBOTIC VEHICLES」と題する米国特許出願第14/932,940号、2015年11月4日に出願された「COORDINATION OF DISPATCHING AND MAINTAINING FLEET OF AUTONOMOUS VEHICLES」と題する米国特許出願第14/756,995号、2015年11月4日に出願された「ADAPTIVE AUTONOMOUS VEHICLE PLANNER LOGIC」と題する米国特許出願第14/756,992号、2015年11月4日に出願された「自律車両の方向性を示すために能動的照明を構成するシステム」と題する米国特許出願第14/756,994号、2015年11月4日に出願された「音響ビームフォーミングを介する外部環境とのロボット車両通信のための方法」と題する米国特許出願第14/756,993号、2015年11月4日に出願された「SENSOR-BASED OBJECT-DETECTION OPTIMIZATION FOR AUTONOMOUS VEHICLES」と題する米国特許出願第14/756,991号、2015年11月4日に出願された「CALIBRATION FOR AUTONOMOUS VEHICLE OPERATION」と題する米国特許出願第14/756,996号、2015年11月4日に出願された「自律車両の状態を周囲環境内のエンティティに通信するための能動的照明制御」と題する米国特許出願第14/932,948号、2015年11月4日に出願された「ロボット車両のための強靭な安全システム」と題する米国特許出願第14/932,952号、2015年11月4日に出願された「ロボット車両のための内部安全システム」と題する米国特許出願第14/932,954号、2015年11月4日に出願された「ロボット車両の四分円(quadrant)構成」と題する米国特許出願第14/932,958号、および2015年11月4日に出願された「ロボット車両アクティブセーフティシステムおよび方法」と題する米国特許出願第14/932,962号の継続出願であり、本出願は2015年11月5日に出願された「自律車両における独立した操舵、出力、トルク制御、および伝達」と題する米国特許出願第14/757,015号、に関係付けられ、これらはすべて本明細書において、参照によりそれらの全体が本明細書に組み込まれる。
【0003】
様々な実施形態は、一般に、自律車両(autonomous vehicle)、ならびに関連付けられた機械的、電気的、および電子的ハードウェアと、コンピュータソフトウェアおよびシステムと、サービスとして自律車両群を提供する有線およびワイヤレスのネットワーク通信とに関する。より具体的には、システム、デバイス、および方法は、様々なシミュレートされた環境における自律車両のナビゲーションをシミュレートするように構成される。
【0004】
無人運転車両(driverless vehicles)を開発するための様々な手法は、主に、消費者が購入するための無人運転車両を製造するという目的をもって従来の車両(例えば、手動運転される自動車両)を自動化することに焦点を当てている。例えば、いくつかの自動車会社および関連会社は、消費者に、運転者なしで動作することができる車両を所有する能力を提供するために、従来の自動車、および、ステアリングのような制御メカニズムを修正している。いくつかの手法において、従来の無人運転車両は、いくつかの条件において安全を重要視すべき運転機能を実施するが、運転者が、乗員の安全を危険にさらすおそれがある特定の課題を車両コントローラが解決することができない場合に、運転者が制御(例えば、ステアリングなど)を担うことを必要とする。
【0005】
機能的ではあるが、従来の無人運転車両は、一般的に、いくつかの欠点を有する。例えば、開発中の多数の無人運転車は、手動(すなわち、人間によって制御される)ステアリングおよび他の同様の自動車機能を必要とする車両から発展している。それゆえ、多数の無人運転車は、特定の座席または位置が車両内で確保されている免許を受けた運転者に対応するように設計されるべきであるというパラダイムに基づく。そのため、無人運転車両は、準最適に設計されており、一般的に、車両設計を単純化し、資源を節約する(例えば、無人運転車両を製造する費用を低減する)機会を逸している。従来の無人運転車両には、他の欠点も存在する。
【0006】
他の欠点は従来の輸送サービスにも存在し、これらは、例えば、実効的に、従来の輸送および相乗りサービスを提供する一般的な手法に起因して車両の在庫を管理するのにあまり適合されていない。1つの従来の手法において、搭乗者(passenger)は、人間の運転者および車両(例えば、個人が所有している)を搭乗者に割り当てる集中型サービスを介して輸送サービスを要求するために、モバイルアプリケーションにアクセスすることを要求される。異なる所有者によって所有されている車両を使用することによって、自家用車および安全システムの保守管理は検査されないままになる。別の従来の手法において、会員として登録している運転者が、会員の間で共有されている車両にアクセスすることを可能にすることによって、何らかのエンティティが、車両のグループの相乗りを可能にする。運転者は特定の位置にある、共有されている車両に乗車し、下車する必要があり、これは都市環境においては希少で少なく、相乗りされる車両を駐車するための相対的に高価な不動産(すなわち、駐車場)にアクセスすることを必要とするため、この手法は、従来の輸送サービスを提供するにはあまり適合されていない。上述されている従来の手法において、輸送サービスを提供するために使用される従来の車両は、運転者が離れると車両が動けなくされるため、一般的に在庫の観点から十分に利用されていない。さらに、相乗り手法(および個人によって所有されている車両の輸送サービス)は一般的に、使用状況および一般的な走行パターンに適合させるために輸送サービスの需要に合わせるために在庫のバランスを取り戻すのにはあまり適合されていない。また、自動運転自動化機能が制限されている、いくつかの従来記述されている車両もまた、人間の運転者が一般的に必要とされ得るため、在庫のバランスを取り戻すのにはあまり適合されていない。自動運転自動化機能が制限されている車両の例は、米国運輸省道路交通安全局(「NHTSA」)による、レベル3(「L3」)車両として指定されている車両である。
【0007】
別の欠点として、無人運転車両に対する一般的な手法は、一般的に、走行中の車両と、車両の他の運転者または個人との間の相互作用(例えば、社会的相互作用)に関して車両を検出およびナビゲートするのにはあまり適合されていない。例えば、いくつかの従来の手法は、無人運転車両の乗員および他の車両の運転者、歩行者などに対する安全性のリスクに対処する目的のために、歩行者、自転車利用者など、および、アイコンタクト、ジェスチャなどのような関連付けられる相互作用を識別することが十分に可能ではない。
【0008】
したがって、必要とされているものは、従来の技法の制限なしに、自律車両の実施のための解決策である。
【先行技術文献】
【特許文献】
【0009】
【文献】米国特許出願第14/756994号明細書
【文献】米国特許出願第14/756993号明細書
【文献】米国特許出願第14/932948号明細書
【文献】米国特許出願第14/932952号明細書
【文献】米国特許出願第14/932954号明細書
【文献】米国特許出願第14/932962号明細書
【文献】米国特許出願第14/932958号明細書
【図面の簡単な説明】
【0010】
本発明の様々な実施形態または例(「例」)が、以下の詳細な説明および添付の図面において開示される。
図1】いくつかの実施形態による、自律車両サービスプラットフォーム(autonomous vehicle service platform)に通信可能にネットワーク接続されている自律車両の群の実施を示す図である。
図2】いくつかの実施形態による、自律車両の群を監視するためのフロー図の例である。
図3A】いくつかの例による、センサおよび他の自律車両構成要素の例を示す図である。
図3B】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
図3C】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
図3D】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
図3E】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
図4】いくつかの例による、通信レイヤを介して自律車両コントローラに通信可能に結合されている自律車両サービスプラットフォームを含むシステムを示す基本ブロック図である。
図5】いくつかの実施形態による、自律車両を制御するためのフロー図の例である。
図6】いくつかの実施形態による、自律車両コントローラのアーキテクチャの例を示す図である。
図7】いくつかの実施形態による、自律車両の群との信頼可能な通信を維持するために冗長な通信チャネルを実施する自律車両サービスプラットフォームの例を示す図である。
図8】いくつかの実施形態による、様々なアプリケーションの間でデータを交換するように構成されているメッセージングアプリケーションの例を示す図である。
図9】いくつかの例による、図8に記述されている通信プロトコルを使用した遠隔操作を促進するためのデータのタイプを示す図である。
図10】いくつかの実施形態による、遠隔操作者が経路プランニングに影響を与えることができる遠隔操作者インターフェース(teleoperator interface)の例を示す図である。
図11】いくつかの例による、遠隔操作を呼び出すように構成されているプランナ(planner)の例を示す図である。
図12】いくつかの実施形態による、自律車両を制御するように構成されているフロー図の例である。
図13】いくつかの例による、プランナが軌道を生成することができる例を示す図である。
図14】いくつかの実施形態による、自律車両サービスプラットフォームの別の例を示す図である。
図15】いくつかの実施形態による、自律車両を制御するためのフロー図の例である。
図16】いくつかの例による、群最適化マネージャ(fleet optimization manager)を実施する自律車両群マネージャ(autonomous vehicle fleet manager)の例の図である。
図17】いくつかの実施形態による、自律車両の群を管理するためのフロー図の例である。
図18】いくつかの実施形態による、自律車両通信リンクマネージャを実施する自律車両群マネージャを示す図である。
図19】いくつかの実施形態による、イベント中の自律車両に対するアクション(action)を決定するためのフロー図の例である。
図20】いくつかの実施形態による、ローカライザの例を示す図である。
図21】いくつかの実施形態による、集積センサデータに基づいて局所的位置(local pose)データを生成するためのフロー図の例である。
図22】いくつかの実施形態による、ローカライザの別の例を示す図である。
図23】いくつかの実施形態による、知覚エンジン(perception engine)の例を示す図である。
図24】いくつかの実施形態による、知覚エンジンデータを生成するためのフロー図の例である。
図25】いくつかの実施形態による、セグメンテーションプロセッサ(segmentation processor)の例を示す図である。
図26A】様々な実施形態による、オブジェクトトラッカ(object tracker)およびクラシファイヤ(classifier)の例を示す図である。
図26B】少なくともいくつかの例による、オブジェクトトラッカの別の例を示す図である。
図27】いくつかの例による、知覚エンジンのフロントエンドプロセッサの例の図である。
図28】いくつかの実施形態による、合成環境において自律車両をシミュレートするように構成されているシミュレータを示す図である。
図29】いくつかの実施形態による、自律車両の様々な態様をシミュレートするためのフロー図の例である。
図30】いくつかの実施形態による、マップデータを生成するためのフロー図の例である。
図31】いくつかの実施形態による、マッピングエンジンのアーキテクチャを示す図である。
図32】いくつかの実施形態による、自律車両アプリケーションを示す図である。
図33】様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す図である。
図34】様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す図である。
図35】様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す図である。
図36】いくつかの例による、シミュレートされた環境においてシミュレートされた自律車両の1つまたは複数の機能をシミュレートするように構成されたシミュレータを示す図である。
図37】いくつかの例による車両モデラを示す図である。
図38】いくつかの例によるセンサモデラの例を示す図である。
図39】いくつかの例による動的オブジェクトデータモデラの例を示す図である。
図40】いくつかの例による、シミュレートされた環境を生成する例を示すフロー図である。
図41】様々な実施形態による、自律車両サービスをシミュレートするために様々なシミュレータに関連する機能性および/または構造を提供するように構成された様々なコンピューティングプラットフォームの例を示す図である。
【発明を実施するための形態】
【0011】
様々な実施形態または例は、システム、プロセス、装置、ユーザインターフェース、コンピュータ可読記憶媒体または光、電子、もしくはワイヤレス通信リンクを介してプログラム命令が送信されるコンピュータネットワークのようなコンピュータ可読媒体上の一連のプログラム命令を含む、いくつかの方法で実施されてもよい。一般に、開示されているプロセスの動作は、特許請求の範囲において別途提供されない限り、任意の順序で実施されてもよい。
【0012】
1つまたは複数の例の詳細な説明が、添付の図面とともに下記に提供される。詳細な説明は、そのような例と関連して提供されるが、いかなる特定の例にも限定されない。その範囲は、特許請求の範囲、ならびにいくつかのその代替形態、修正形態、および均等物によってのみ限定される。完全な理解を提供するために、以下の説明において、いくつかの特定の詳細が記載されている。これらの詳細は、例の目的のために提供されており、記述されている技法は、これらの特定の詳細のいくつかまたはすべてなしに、特許請求の範囲に従って実践されることができる。明瞭化のために、例に関係付けられる技術分野において知られている技術的資料は、説明を不必要に曖昧にすることを回避するために、詳細には記述されていない。
【0013】
図1は、いくつかの実施形態による、自律車両サービスプラットフォームに通信可能にネットワーク接続されている自律車両の群の実施を示す図である。図100は、サービスとして動作している自律車両の群109(例えば、自律車両109a~109eのうちの1つまたは複数)を示し、各自律車両109は、道路網110を自動運転し、自律車両サービスプラットフォーム101との通信リンク192を確立するように構成されている。自律車両の群109がサービスを構成する例において、ユーザ102は、自律輸送手段を求める要求103を、1つまたは複数のネットワーク106を介して自律車両サービスプラットフォーム101に送信することができる。応答して、自律車両サービスプラットフォーム101は、ユーザ102を地理的位置(geographic location)119から地理的位置111へと自律的に輸送するために、自律車両109の1つを派遣する(dispatch)ことができる。自律車両サービスプラットフォーム101は、ステーション190から地理的位置119へと自律車両を派遣してもよく、または、ユーザ102の輸送要求にサービスするために、すでに移動中の(例えば、乗員なしで)自律車両109cを転用してもよい。自律車両サービスプラットフォーム101は、ユーザ102(例えば、搭乗者としての)からの要求に応答して、搭乗者を乗せて移動中の自律車両109cを転用するようにさらに構成されてもよい。加えて、自律車両サービスプラットフォーム101は、既存の搭乗者が下車した後にユーザ102の要求にサービスするために転用するために、搭乗者を乗せて移動中の自律車両109cを確保するように構成されてもよい。複数の自律車両サービスプラットフォーム101(図示せず)および1つまたは複数のステーション190が、道路網110に関連して1つまたは複数の自律車両109をサービスするために実施されてもよい。1つまたは複数のステーション190は、自律車両109の在庫を格納、サービス、管理、および/または維持するように構成されてもよい(例えばステーション190は、自律車両サービスプラットフォーム101を実施する1つまたは複数のコンピューティングデバイスを含んでもよい)。
【0014】
いくつかの例によれば、自律車両109a~109eのうちの少なくともいくつかは、双方向性自律車両(「AV」)130のような双方向性自律車両(bidirectional autonomous vehicle)として構成される。双方向性自律車両130は、限定ではないが、主に長手方向軸131に沿っていずれかの方向に走行するように構成されてもよい。したがって、双方向性自律車両130は、隣接した周辺の他者(例えば、他の運転者、歩行者、自転車利用者など)、および、双方向性自律車両130が走行している方向を警告するために、車両の外部のアクティブな照明を実施するように構成されてもよい。例えば、アクティブ光源136が、第1の方向に走行しているときはアクティブライト(active light)138aとして実施されてもよく、または、第2の方向に走行しているときはアクティブライト138bとして実施されてもよい。アクティブライト138aは、任意選択のアニメーション(例えば、可変強度の光の光パターンまたは経時的に変化し得る色)を伴う、1つまたは複数の色からなる第1のサブセットを使用して実施されてもよい。同様に、アクティブライト138bは、1つまたは複数の色からなる第2のサブセット、および、アクティブライト138aのものとは異なってもよい光パターンを使用して実施されてもよい。例えば、アクティブライト138aは、「ヘッドライト」としての白色光を使用して実施されてもよく、一方、アクティブライト138bは、「テールライト」としての赤色光を使用して実施されてもよい。アクティブライト138aおよび138b、またはその部分は、(例えば、黄色光を使用して)「ターンシグナル(turn signal)指示」機能を提供することのような、他の色に光関連機能を提供するように構成されてもよい。様々な例によれば、自律車両130内の論理は、任意の数の管轄に関する様々な安全性要件および交通規制または法律に準拠するように、アクティブライト138aおよび138bを適応させるように構成されてもよい。
【0015】
いくつかの実施形態において、双方向性自律車両130は、四半部(quad portion)194のような各四半部内に、同様の構造的要素および構成要素を有するように構成されてもよい。四半部は、少なくともこの例においては、両方とも、平面132および134の各側に2つの同様の半部を形成するのに車両を通過する平面132および134の交差によって規定される双方向性自律車両130の部分として示されている。さらに、双方向性自律車両130は、他の機能の中でも運転制御(例えば、推進、ステアリングなど)およびアクティブ光源136を含む主要ないくつかの車両機能を制御するように構成されている論理(例えば、ハードウェアもしくはソフトウェア、またはそれらの組み合わせ)を含む自律車両コントローラ147を含むことができる。双方向性自律車両130はまた、車両上の様々な位置に配置されているいくつかのセンサ139をも含む(他のセンサは図示されていない)。
【0016】
自律車両コントローラ147は、自律車両109の局所的位置(local position)(例えば、局所的場所(local pose))を決定し、車両に対する外部オブジェクトを検出するようにさらに構成されてもよい。例えば、双方向性自律車両130が、道路網110内で方向199に走行していると考える。自律車両コントローラ147のローカライザ(図示せず)が、地理的位置111における局所的位置を決定することができる。そのため、ローカライザは、建造物115および117の表面と関連付けられるセンサデータのような、取得されるセンサデータを使用することができ、これは、局所的位置を決定するために、マップデータ(例えば、反射データを含む3Dマップデータ)のような基準データに対して比較されることができる。さらに、自律車両コントローラ147の知覚(perception)エンジン(図示せず)が、外部オブジェクト112(「樹木」)および外部オブジェクト114(「歩行者」)のような外部オブジェクトの挙動を検出、分類、および予測するように構成されてもよい。そのような外部オブジェクトの分類は、外部オブジェクト112のような静的オブジェクト、および、外部オブジェクト114のような動的オブジェクトとして、オブジェクトを広範に分類することができる。ローカライザおよび知覚エンジン、ならびにAVコントローラ147の他の構成要素は、協働して、自律車両109に自律的に運転させる。
【0017】
いくつかの例によれば、自律車両サービスプラットフォーム101は、自律車両109が遠隔操作を要求する場合に、遠隔操作者サービスを提供するように構成されている。例えば、自律車両109d内の自律車両コントローラ147が、挿入図120に示されているように、ポイント191において道路122上の経路124を閉塞しているオブジェクト126を検出すると考える。自律車両コントローラ147が、車両109dが相対的に高い確実度で安全に移動することができる経路または軌道を確定することができない場合、自律車両コントローラ147は、遠隔操作サービスを求める要求メッセージ105を送信することができる。応答して、遠隔操作者コンピューティングデバイス104が、障害物126を首尾よく(かつ安全に)切り抜けるための方策を実施するための命令を、遠隔操作者108から受信することができる。その後、車両に、例えば、代替の経路121に沿って移動するときに二重線のセットを安全にまたがせるために、自律車両109dに応答データ107が返信され得る。いくつかの例において、遠隔操作者コンピューティングデバイス104は、経路のプランニングから除外するために、地理的領域を識別する応答を生成することができる。特に、追従するための経路を提供するのではなく、遠隔操作者108は、自律車両が回避すべき領域または位置を規定することができる。
【0018】
上記を考慮して、自律車両130および/または自律車両コントローラ147、ならびにそれらの構成要素の構造および/または機能は、自律車両109が自動運転することを可能にするために、位置特定および知覚のような自律関連動作を通じてリアルタイム(またはほぼリアルタイム)の軌道計算を実施することができる。
【0019】
いくつかの事例において、双方向性自律車両130の双方向性は、互いに同様または実質的に同様である四半部194(または任意の他の数の対称な部分)を有する車両を提供する。そのような対称性は、設計の複雑度を低減し、相対的に、固有の構成要素または構造の数を低減し、それによって、在庫および製造の複雑度を低減する。例えば、駆動系およびホイールシステムは、それら四半部194のいずれに配置されてもよい。さらに、自律車両コントローラ147は、そうでなければ乗員の安全性に影響を与える可能性があるイベントまたは課題を解決しながら、自律車両109が移動中に遅延される可能性を低減するために、遠隔操作サービスを呼び出すように構成されている。いくつかの事例において、道路網110の可視部分は、自律車両109の図1に示す道路網に対する動きを限定または他の様態で制御することができる地理上のフェンス領域を示す。様々な例によれば、自律車両109、およびその群は、共有されている車両の効率を提供しながら、ポイント間の人の移動の簡便性およびプライバシーを伴って需要に応じた輸送手段を提供することができるレベル4(「完全自動運転」またはL4)車両として動作するように構成可能であり得る。いくつかの例において、自律車両109、または、本明細書において記述されている任意の自律車両は、ステアリングホイール、または、自律車両109の手動(すなわち、人間によって制御される)ステアリングを提供する任意の他の機械的手段を省略するように構成されてもよい。さらに、自律車両109、または本明細書に記載された任意の自律車両は、乗員がステアリングホイール、またはステアリングシステムのための任意の機械的インターフェースと係合するために車両内に確保されたシートまたは場所を省略するように構成され得る。
【0020】
図2は、いくつかの実施形態による、自律車両の群を監視するためのフロー図の例である。202において、フロー200は、自律車両の群が監視されるときに開始する。少なくとも1つの自律車両が、車両に、第1の地理的領域から第2の地理的領域へと自律的に移動させるように構成されている自律車両コントローラを含む。204において、車両の計算されている信頼水準と関連付けられるイベントを表すデータが検出される。イベントは、自律車両の動作に影響を与えるか、または、動作に影響を与える可能性がある条件または状況であり得る。イベントは、自律車両の内部または外部であってもよい。例えば、道路を閉塞している障害物、および、通信の低減または喪失が、イベントとして見られ得る。イベントは、交通条件または渋滞、および、知覚エンジンによって知覚される、予想外のまたは異常な数またはタイプの外部オブジェクト(またはトラック)を含み得る。イベントは、天候関連条件(例えば、氷または雨に起因する摩擦の喪失)、または、他の車両の人間の運転者の目に明るく陽が差すようにする水平線に対する低い角度のような、陽が差している角度(例えば、日没時)を含み得る。これらのおよび他の条件は、遠隔操作者サービスの呼び出しを引き起こすか、または、車両に安全停止軌道を実行させるイベントとして見られ得る。
【0021】
206において、候補軌道のサブセットを表すデータが、イベントの検出に応答して自律車両から受信され得る。例えば、自律車両コントローラのプランナが、1秒のような単位時間あたりに多数の軌道(例えば、数千以上)を計算および評価することができる。いくつかの実施形態において、候補軌道は、自律車両がイベントを考慮して(例えば、遠隔操作者によって提供される代替の経路を使用して)安全に前進することができる相対的により高い信頼水準を提供する軌道のサブセットである。いくつかの候補軌道は、他の候補軌道よりも高くランク付けされ、または、他の候補軌道よりも高い信頼度と関連付けられ得ることに留意されたい。いくつかの例によれば、候補軌道のサブセットは、プランナ、遠隔操作者コンピューティングデバイス(例えば、遠隔操作者が、近似の経路を決定および提供することができる)などのような任意の数のソースに由来することができ、または、候補軌道のサブセットとして組み合わされることができる。208において、経路案内データが、1つまたは複数のプロセッサにおいて識別され得る。経路案内データは、遠隔操作者が、候補軌道のうちの1つまたは複数から案内される軌道を選択するのを補助するように構成されてもよい。いくつかの事例において、経路案内データは、特定の候補軌道が、イベントが自律車両の動作に影響を与え得る可能性を低減または無視することができる確実度を指示する信頼水準または確率を指示する値を指定する。選択される候補軌道としての案内される軌道は、210において、遠隔操作者からの入力(例えば、遠隔操作者は、別様にランク付けされている候補軌道のグループから少なくとも1つの候補軌道を、案内される軌道として選択することができる)に応答して受信され得る。選択は、いくつかの候補軌道を、例えば、最も高い信頼水準から最も低い信頼水準への順序においてリストしている操作者インターフェースを介して行われてもよい。212において、案内される軌道としての候補軌道の選択が、車両に送信され得、これは、車両に、遠隔操作者によって指定される操作を実施させることによって、条件を解決するための案内される軌道を実施する。そのため、自律車両は、非規範的動作状態から移行することができる。
【0022】
図3Aは、いくつかの例による、センサおよび他の自律車両構成要素の例を示す図である。図300は、センサ、信号ルータ345、駆動系349、取り外し可能電池343、オーディオ生成器344(例えば、スピーカまたはトランスデューサ)、および自律車両(「AV」)制御論理347を含む双方向性自律車両330の内部図を示す。図300に示されているセンサは、他のセンサタイプおよびモダリティの中でも、画像キャプチャセンサ340(例えば、任意のタイプの光キャプチャデバイスまたはカメラ)、オーディオキャプチャセンサ342(例えば、任意のタイプのマイクロフォン)、レーダ(radar)デバイス348、ソナーデバイス341(または、超音波センサまたは音響関連センサを含む、他の同様のセンサ)、およびライダ(LIDAR)デバイス346を含む(慣性計測装置すなわち「IMU」、全地球測位システム(「GPS」)センサ、ソナーセンサなどのような、それらのいくつかは図示されていない)。四半部350は、双方向性自律車両330の4つの「四半部」の各々の対称性を表していることに留意されたい(例えば各四半部350は、図示されているものの他に、ホイール、駆動系349、同様のステアリングメカニズム、同様の構造的支持および部材などを含んでもよい)。図3Aに示されているように、同様のセンサが、各四半部350内の同様の位置に配置されてもよいが、任意の他の構成が実施されてもよい。各ホイールは、個々に、かつ互いに独立してステアリング可能であり得る。また、取り外し可能電池343は、その場で充電するのではなく、スワップインおよびスワップアウトされることを促進するように構成され得、それによって、電池343を充電する必要性に起因する休止時間が低減される、または、無視できることを保証する。自律車両コントローラ347aは、双方向性自律車両330内で使用されるものとして示されているが、自律車両コントローラ347aは、そのように限定されず、地上、空中、または海上を問わず、一方向性自律車両または任意の他のタイプの車両内で実施されてもよい。図3Aに示されているセンサの示されている、および、記述されている場所、位置、向き、量、およびタイプは、限定であるようには意図されておらず、そのため、任意の数およびタイプのセンサがあってもよく、任意のセンサが自律車両330上のいずれの場所に設置および方向づけられても(orient)よいことに留意されたい。
【0023】
いくつかの実施形態によれば、自律車両(「AV」)制御論理347の部分は、グラフィックスプロセッシングユニット(「GPU」)のクラスタをプログラミングするのに適したフレームワークおよびプログラミングモデルを実施するGPUのクラスタを使用して実施されてもよい。例えば、compute unified device architecture(「CUDA」)に準拠したプログラミング言語およびアプリケーションプログラミングインターフェース(「API」)モデルが、GPUをプログラミングするために使用されてもよい。CUDA(商標)は、カリフォルニア州サンタクララ所在のNVIDIAによって製造および維持されている。OpenCL、または任意の他の並列プログラミング言語のような他のプログラミング言語が実施されてもよいことに留意されたい。
【0024】
いくつかの実施形態によれば、自律車両制御論理347は、モーションコントローラ362、プランナ364、知覚エンジン366、およびローカライザ368を含むように示されている自律車両コントローラ347aとして、ハードウェアおよび/またはソフトウェアにおいて実施されてもよい。示されているように、自律車両コントローラ347aは、カメラデータ340a、ライダデータ346a、およびレーダデータ348a、または、ソナーデータ341a等を含む任意の他の範囲検知(range-sensing)または位置特定(localization)データを受信するように構成されている。自律車両コントローラ347aはまた、GPSデータ352、IMUデータ354、および他の位置検知データ(例えば、ステアリング角度、角速度などのようなホイール関連データ)のような測位データを受信するようにも構成されている。さらに、自律車両コントローラ347aは、任意の他のセンサデータ356および基準データ339を受信してもよい。いくつかの事例において、基準データ339は、マップデータ(例えば、3Dマップデータ、2Dマップデータ、4Dマップデータ(例えば、エポック決定(Epoch Determination))を含む)およびルートデータ(例えば、限定ではないが、RNDFデータ(または同様のデータ)、MDFデータ(または同様のデータ))を含む道路網データなどを含む。
【0025】
ローカライザ368は、GPSデータ352、ホイールデータ、IMUデータ354、ライダデータ346a、カメラデータ340a、レーダデータ348aなどのような1つまたは複数のソースからのセンサデータ、および基準データ339(例えば、3Dマップデータおよびルートデータ)を受信するように構成されている。ローカライザ368は、双方向性自律車両330の局所的位置(または場所)を決定するために、センサデータをマップデータと比較することによって、データを統合(例えば、センサデータを融合)および分析する。いくつかの実施形態によれば、ローカライザ368は、任意の自律車両の位置または場所をリアルタイムまたはほぼリアルタイムに生成または更新することができる。ローカライザ368およびその機能は、「双方向性」車両に限定される必要はなく、任意のタイプの任意の車両において実施され得ることに留意されたい。それゆえ、ローカライザ368(およびAVコントローラ347aの他の構成要素)は、「一方向性」車両または任意の非自律車両において実施されてもよい。いくつかの実施形態によれば、局所的位置を記述するデータは、x座標、y座標、z座標(または、極座標系または円筒座標系などを含む任意の座標系の任意の座標)、ヨー値、ロール値、ピッチ値(例えば、角度値)、レート(例えば、速度)、高度などのうちの1つまたは複数を含んでもよい。
【0026】
知覚エンジン366は、ライダデータ346a、カメラデータ340a、レーダデータ348aなどのような1つまたは複数のソースからのセンサデータ、および局所的位置データを受信するように構成されている。知覚エンジン366は、センサデータおよび他のデータに基づいて外部オブジェクトの位置を決定するように構成され得る。例えば、外部オブジェクトは、運転可能な表面の部分でないオブジェクトであり得る。例えば、知覚エンジン366は、外部オブジェクトを、歩行者、自転車利用者、犬、他の車両などとして検出および分類することが可能であり得る(例えば、知覚エンジン366は、ラベルを含む意味情報と関連付けられ得る分類のタイプに従ってオブジェクトを分類するように構成される)。これらの外部オブジェクトの分類に基づいて、外部オブジェクトは、動的オブジェクトまたは静的オブジェクトとしてラベル付けされ得る。例えば、樹木として分類されている外部オブジェクトは静的オブジェクトとしてラベル付けされ得、一方、歩行者として分類されている外部オブジェクトは、動的オブジェクトとしてラベル付けされ得る。静的としてラベル付けされている外部オブジェクトは、マップデータ内に記述されてもよく、または、記述されなくてもよい。静的としてラベル付けされる可能性がある外部オブジェクトの例は、道路を横切って配置されているセメント壁、車線閉鎖標識、新たに配置された郵便ポスト、または、道路に隣接するごみ箱などを含む。動的としてラベル付けされる可能性がある外部オブジェクトの例は、自転車利用者、歩行者、動物、他の車両などを含む。外部オブジェクトが動的としてラベル付けされる場合、外部オブジェクトに関するさらなるデータが、分類タイプと関連付けられる一般的なレベルの活動および速度、ならびに、挙動パターンを指示し得る。外部オブジェクトに関するさらなるデータは、外部オブジェクトを追跡することによって生成され得る。そのため、分類タイプは、外部オブジェクトが、例えば、プランニングされている経路に沿って走行している自律車両と干渉し得る可能性を予測または他の様態で決定するために使用され得る。例えば、歩行者として分類される外部オブジェクトは、(例えば、追跡データに基づいて)何らかの最大速度、および、平均速度と関連付けられ得る。自律車両の速度に対する歩行者の速度は、衝突の可能性があるか否かを決定するために使用されることができる。さらに、知覚エンジン364は、オブジェクトの現在および未来の状態と関連付けられる不確定度を決定することができる。いくつかの例において、不確定度は、推定値(または確率)として表現されてもよい。
【0027】
プランナ364は、知覚エンジン366から知覚データを受信するように構成されており、また、ローカライザ368からのローカライザデータをも含むことができる。いくつかの例によれば、知覚データは、自律車両の近傍に配置されている静的オブジェクトおよび動的オブジェクトを指定する障害物マップを含むことができ、一方で、ローカライザデータは、局所的位置または位置を含むことができる。動作時、プランナ364は、多数の軌道を生成し、少なくとも、外部の動的オブジェクトおよび静的オブジェクトの相対位置(relative location)に対する自律車両の位置に基づいて、軌道を評価する。プランナ364は、衝突のない走行を提供するように自律車両を誘導する最適な軌道を、様々な基準に基づいて選択する。いくつかの例において、プランナ364は、確率的に決定される軌道として軌道を計算するように構成されてもよい。さらに、プランナ364は、ステアリングおよび推進コマンド(ならびに減速またはブレーキコマンド)をモーションコントローラ362に送信することができる。モーションコントローラ362はその後、ステアリングコマンド、スロットルまたは推進コマンド、およびブレーキコマンドのようなコマンドのいずれかを、ステアリングまたはホイール角度および/または速度353の変更を実施するための制御信号(例えば、アクチュエータまたは他の機械的インターフェースに対する適用のための)に変換することができる。
【0028】
図3B図3Eは、いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。図3B図391は、センサ310aがオブジェクトを(例えば、範囲もしくは距離または他の情報を決定するために)検出するセンサフィールド301aを示す。センサ310aは、任意のタイプのセンサまたはセンサモダリティを実施することができるが、センサ310a、ならびに、センサ310b、310c、および310dのような同様に記述されているセンサは、ライダデバイスを含んでもよい。それゆえ、センサフィールド301a、301b、301c、および301dは各々、レーザが延伸するフィールドを含む。図3C図392は、各々が対応するライダセンサ310(図示せず)によって生成される4つの重なり合うセンサフィールドを示す。示されているように、センサフィールドの部分301は、重なり合うセンサフィールドを含まず(例えば、単一のライダフィールド)、センサフィールドの部分302は、2つの重なり合うセンサフィールドを含み、部分303は3つの重なり合うセンサフィールドを含み、それによって、そのようなセンサは、ライダセンサが機能不全になった場合に複数レベルの冗長性を提供する。
【0029】
図3Dは、いくつかの例による、ライダ 309の動作が機能不全にされることに起因するセンサフィールドの喪失を示す。図3Cのセンサフィールド302は、単一のセンサフィールド305に変換されており、図3Cのセンサフィールド301のうちの1つは失われて間隙304になっており、図3Cのセンサフィールド303のうちの3つは、センサフィールド306に変換されている(すなわち、2つの重なり合うフィールドに限定される)。自律車両330cが進行方向396に走行している場合、動いている自律車両の正面のセンサフィールドは、後端位置にあるものよりもロバストでない場合がある。いくつかの例によれば、自律車両コントローラ(図示せず)は、車両の正面の前方領域におけるセンサフィールドの喪失に対処するために、自律車両330cの双方向性を活用するように構成されている。図3Eは、自律車両330dの正面のセンサフィールドの一定のロバスト性を回復するための双方向性操作を示す。示されているように、テールライト348と同延のよりロバストなセンサフィールド302が、車両330dの後部に配置されている。好都合な場合、自律車両330dは、私道397に寄ることによって双方向性操作を実施し、テールライト348が自律車両330dの他の側(例えば、後縁)にアクティブに切り替わるように、その双方向性を切り替える。示されているように、自律車両330dは、進行方向398に沿って走行しているときに、車両の正面のロバストなセンサフィールド302を回復する。さらに、上述した双方向性操作は、交通量の多い車道に戻ることを必要とするより複雑化された操作の必要性を取り除く。
【0030】
図4は、いくつかの例による、通信レイヤを介して自律車両コントローラに通信可能に結合されている自律車両サービスプラットフォームを含むシステムを示す機能ブロック図である。図400は、自律車両430内に配置されている自律車両コントローラ(「AV」)447を示し、自律車両430は、自律車両コントローラ447に結合されているいくつかのセンサ470を含む。センサ470は、1つまたは複数のライダデバイス472、1つまたは複数のカメラ474、1つまたは複数のレーダ476、1つまたは複数の全地球測位システム(「GPS」)データ受信機-センサ、1つまたは複数の慣性計測装置(「IMU」)475、1つまたは複数のオドメトリセンサ477(例えば、ホイールエンコーダセンサ、ホイール速度センサなど)、および、赤外線カメラまたはセンサ、ハイパースペクトル対応センサ(hyperspectral-capable sensor)、超音波センサ(または任意の他の音響エネルギーに基づくセンサ)、無線周波数に基づくセンサなどのような、任意の他の適切なセンサ478を含む。いくつかの事例において、ホイールのステアリング角度を検知するように構成されているホイール角度センサが、オドメトリセンサ477または適切なセンサ478として含まれてもよい。非限定例において、自律車両コントローラ447は、4つ以上のライダ 472、16個以上のカメラ474および4つ以上のレーダユニット476を含んでもよい。さらに、センサ470は、自律車両コントローラ447の構成要素、および、自律車両サービスプラットフォーム401の要素にセンサデータを提供するように構成されてもよい。図400に示されているように、自律車両コントローラ447は、プランナ464と、モーションコントローラ462と、ローカライザ468と、知覚エンジン466と、局所的マップ(local map)ジェネレータ440とを含む。図4図400に示されている要素は、1つまたは複数の他の図面に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができることに留意されたい。
【0031】
ローカライザ468は、マップデータ、ルートデータ(例えば、RNDFのようなデータのような、道路網データ)などを含んでもよい基準データに対して自律車両を位置特定する(すなわち、局所的位置を決定する)ように構成されている。いくつかの事例において、ローカライザ468は、例えば、環境の表現の特徴(feature)に対する自律車両430の位置を表現することができる、空間内のポイントを識別するように構成されている。ローカライザ468は、各個々のタイプのセンサに関係付けられる不確実性を低減するために(例えば、異なるセンサモダリティの)センサデータの複数のサブセットを統合するように構成され得るセンサデータインテグレータ(sensor data integrator)469を含むように示されている。いくつかの例によれば、センサデータインテグレータ469は、局所的位置を決定するための統合されたセンサデータ値を形成するために、センサデータ(例えば、ライダデータ、カメラデータ、レーダデータなど)を融合するように構成されている。いくつかの例によれば、ローカライザ468は、2Dマップデータ、3Dマップデータ、4Dマップデータなどを格納するためのマップデータリポジトリ(map data repository)405aを含む、基準データリポジトリ(reference data repository)405に由来する基準データを取り出す(retrieve)。ローカライザ468は、自律車両430の位置を識別、または、他の様態で確認するためにマップデータと照合するために、環境内の特徴の少なくともサブセットを識別するように構成され得る。いくつかの例によれば、ローカライザ468は、特徴のセットが1つまたは複数の特徴、またはすべての特徴を含むことができるように、環境内の任意の量の特徴を識別するように構成されてもよい。特定の例において、任意の量のライダデータ(例えば、ほとんどのまたは実質的にすべてのライダデータ)が、位置特定の目的のためにマップを表現するデータと比較され得る。一般的に、環境特徴とマップデータとの比較からもたらされる一致しないオブジェクトは、車両、自転車利用者、歩行者などのような動的オブジェクトであり得る。障害物を含む動的オブジェクトの検出は、マップデータを用いてまたは用いずに実施され得ることに留意されたい。特に、動的オブジェクトは、マップデータから独立して(すなわち、マップデータがない状態で)検出および追跡されてもよい。いくつかの事例において、2Dマップデータおよび3Dマップデータは、「グローバルマップ(global map)データ」、または、自律車両サービスプラットフォーム401によってある時点において認証されているマップデータとして見られ得る。マップデータリポジトリ405a内のマップデータは定期的に更新および/または認証され得るため、マップデータと、自律車両が位置決めされる実際の環境との間には逸脱が存在する場合がある。それゆえ、ローカライザ468は、位置特定を強化するために、局所的マップジェネレータ440によって生成される、局所的に導出された(locally-derived)マップデータを取り出すことができる。局所的マップジェネレータ440は、局所的マップデータをリアルタイムまたはほぼリアルタイムに生成するように構成されている。任意選択的に、局所的マップジェネレータ440は、例えば、位置特定において動的オブジェクトを無視することによって、局所的に生成されるマップの精度を強化するために、静的および動的オブジェクトマップデータを受信してもよい。少なくともいくつかの実施形態によれば、局所的マップジェネレータ440は、ローカライザ468と統合されてもよく、または、その部分として形成されてもよい。少なくとも1つの事例において、局所的マップジェネレータ440は、独立してまたはローカライザ468と協働してのいずれかで、simultaneous localization and mapping(「SLAM」)などに基づいてマップおよび/または基準データを生成するように構成され得る。ローカライザ468は、マップデータの使用に対する「混合」(hybrid)手法を実施することができ、それによって、ローカライザ468内の論理は、マップデータの各ソースの信頼度に応じて、マップデータリポジトリ405aからのマップデータまたは局所的マップジェネレータ440からの局所的マップデータのいずれかから様々な量のマップデータを選択するように構成されることができることに留意されたい。それゆえ、ローカライザ468は依然として、局所的に生成されるマップデータを考慮して古いマップデータを使用することができる。
【0032】
知覚エンジン466は、例えば、プランナ464が、自律車両430が移動している周囲環境内の対象のオブジェクトを識別することによってルートをプランニングし、軌道を生成するのを補助するように構成されている。さらに、対象のオブジェクトの各々と確率が関連付けられ得、それによって、確率は、対象のオブジェクトが安全な走行に対する脅威となり得る可能性を表現することができる(例えば、高速で動くオートバイは、新聞を読みながらバス停のベンチに座っている人よりも強化された追跡を必要とし得る)。示されているように、知覚エンジン466は、オブジェクトディテクタ(object detector)442およびオブジェクトクラシファイヤ444を含む。オブジェクトディテクタ442は、環境内の他の特徴に対してオブジェクトを区別するように構成されており、オブジェクトクラシファイヤ444は、オブジェクトを動的オブジェクトまたは静的オブジェクトのいずれかとして分類し、プランニングの目的のために、自律車両430に対する動的オブジェクトまたは静的オブジェクトの位置を追跡するように構成されることができる。さらに、知覚エンジン466は、静的または動的オブジェクトに、オブジェクトがプランナ464における経路プランニングに影響を与える可能性がある障害物である(またはそうなる可能性を有する)か否かを指定する識別子を割り当てるように構成されることができる。図4には示されていないが、知覚エンジン466はまた、セグメンテーションおよび追跡のような、他の知覚関連機能を実施することもできることに留意されたい。それらの例は後述する。
【0033】
プランナ464は、利用可能であるいくつかの経路またはルートを介して目的地に達するという目標を達成するためのいくつかの候補軌道を生成するように構成されている。軌道エバリュエータ(trajectory evaluator)465が、候補軌道を評価し、候補軌道のいずれのサブセットが目的地までの衝突のない経路を提供する最も高い程度の信頼水準と関連付けられるかを識別するように構成されている。そのため、軌道エバリュエータ465は、コマンドに、車両構成要素450(例えば、アクチュエータまたは他のメカニズム)に対する制御信号を生成させるための関連する基準に基づいて最適な軌道を選択することができる。関連する基準は、最適な軌道を規定する任意の数のファクタを含んでもよく、その選択は、衝突を低減することに限定される必要はないことに留意されたい。例えば、軌道の選択は、ユーザ経験(例えば、ユーザ快適性)、および、交通規制および法律に準拠する衝突のない軌道を最適化するように行われてもよい。ユーザ経験は、(例えば、けいれんのような走行または他の不快な動きを低減するために)様々な直線方向および角度方向における加速を加減することによって最適化され得る。いくつかの事例において、関連する基準の少なくとも部分は、最適化された衝突のない走行を維持しながら、他の基準のいずれに優越または優先すべきかを指定することができる。例えば、限定された状況において軌道を生成するときに(例えば、自転車利用者と併走するために二重黄色線をまたぐとき、または、交通流量に合わせるために提示されている速度制限よりも高速で走行しているとき)、法的な制約は一時的に撤廃または緩和され得る。そのため、制御信号は、駆動系および/またはホイールにおける推進および方向の変化を引き起こすように構成される。この例において、モーションコントローラ462は、コマンドを、自律車両430の移動を制御するための制御信号(例えば、速度、ホイール角度など)に変換するように構成されている。軌道エバリュエータ465が、衝突のない最適化された走行を提供するために十分に高い信頼水準を保証するためには不十分な情報を有する場合、プランナ464は、遠隔操作者404に対する、遠隔操作者の支持を求める要求を生成することができる。
【0034】
自律車両サービスプラットフォーム401は、遠隔操作者404(例えば、遠隔操作者コンピューティングデバイス)と、基準データリポジトリ405と、マップアップデータ(map updater)406と、車両データコントローラ408と、キャリブレータ(calibrator)409と、オフラインオブジェクトクラシファイヤ410とを含む。自律車両サービスプラットフォーム401の各要素は、独立して配置または分散され得、自律車両サービスプラットフォーム401内の他の要素と通信することができることに留意されたい。さらに、自律車両サービスプラットフォーム401の要素は、独立して、通信レイヤ402を介して自律車両430と通信することができる。マップアップデータ406は、マップデータ(例えば、局所的マップジェネレータ440、センサ460、または、自律車両コントローラ447の任意の他の構成要素からの)を受信するように構成されており、例えば、マップデータリポジトリ405a内のマップデータの、局所的に生成されるマップからの逸脱を検出するようにさらに構成されている。車両データコントローラ408は、マップアップデータ406に、リポジトリ405内の基準データを更新させ、2D、3D、および/または4Dマップデータに対する更新を促進することができる。いくつかの事例において、車両データコントローラ408は、局所的マップデータが自律車両サービスプラットフォーム408へと受信されるレート、および、マップアップデータ406がマップデータの更新を実施する頻度を制御することができる。
【0035】
キャリブレータ409は、同じまたは異なるタイプの様々なセンサの較正を実施するように構成されている。キャリブレータ409は、センサの相対的な位置(例えば、デカルト空間(x、y、z)における)およびセンサの向き(例えば、ロール、ピッチおよびヨー)を決定するように構成され得る。カメラ、ライダセンサ、レーダセンサなどのようなセンサの位置および向きは、他のセンサに対して、および、全体的に(globally)車両の基準フレームに対して較正され得る。オフライン自己較正はまた、車両慣性テンソル、軸距、ホイール半径または路面摩擦のような他のパラメータを較正または推定することもできる。較正はまた、いくつかの例によれば、パラメータ変化を検出するためにオンラインで行われることもできる。また、キャリブレータ409による較正は、センサの内因性パラメータ(例えば、光学的歪み、ビーム角度など)および外因性パラメータを含み得ることに留意されたい。いくつかの事例において、キャリブレータ409は、例として、3Dレーザデータにおける深さの断絶と、画像データのエッジとの間の相関を最大化することによって実施され得る。オフラインオブジェクトクラシファイヤ410は、センサデータのようなデータを、センサ470または自律車両コントローラ447の任意の他の構成要素から受信するように構成されている。いくつかの実施形態によれば、オフラインオブジェクトクラシファイヤ410のオフライン分類パイプラインは、オブジェクトを事前にまとめ、(例えば、人間によって手動でおよび/またはオフラインラベル付けアルゴリズムを使用して自動的に)注釈を付けるように構成され得、オンライン自律動作中にオブジェクトタイプのリアルタイムの分類を提供することができるオンラインクラシファイヤ(例えば、オブジェクトクラシファイヤ444)を訓練するようにさらに構成され得る。
【0036】
図5は、いくつかの実施形態による、自律車両を制御するためのフロー図の例である。502において、フロー500は、自律車両にある複数のモダリティのセンサに由来するセンサデータが、例えば、自律車両コントローラによって受信されるときに開始する。センサデータの1つまたは複数のサブセットは、例えば、推定値を改善するために融合されたデータを生成するために統合され得る。いくつかの例において、504において、(例えば、同じまたは異なるモダリティの)1つまたは複数のセンサのセンサストリームが、融合されたセンサデータを形成するために融合され得る。いくつかの例において、ライダセンサデータおよびカメラセンサデータのサブセットが、位置特定を促進するために、504において融合され得る。506において、センサデータの少なくとも2つのサブセットに基づいてオブジェクトを表現するデータが、プロセッサにおいて導出され得る。例えば、静的オブジェクトまたは動的オブジェクトを識別するデータが、少なくともライダおよびカメラデータから(例えば、知覚エンジンにおいて)導出され得る。508において、プランニングされている経路に影響を与える、検出されたオブジェクトが決定され、510において、検出されたオブジェクトに応答して、軌道のサブセットが(例えば、プランナにおいて)評価される。512において、自律車両の規範的動作と関連付けられる許容可能な信頼水準の範囲を超える信頼水準が決定される。それゆえ、この事例において、信頼水準は、最適化された経路を選択する確実性がより可能性が低く、それによって、最適化された経路が、衝突のない走行を促進し、交通法規に準拠し、快適なユーザ経験(例えば、快適な搭乗(comfortable ride))を提供し、および/または、任意の他のファクタに基づいて候補軌道を生成する確率に応じて決定され得るようなものであり得る。そのため、514において、代替の経路を求める要求が、遠隔操作者コンピューティングデバイスに送信され得る。その後、遠隔操作者コンピューティングデバイスは、プランナに、自律車両が走行するようにされる最適な軌道を提供することができる。状況によっては、車両はまた、安全停止操作(例えば、自律車両を、危険の確率が相対的に低い位置に安全かつ自動的に停止させること)が最善の方策であると決定することもできる。フロー図の各部分はこのフロー図および本明細書における他のフロー図に示されている順序は、順次実施されてもよく、またはフロー図の任意の1つまたは複数の他の部分と並列に実施されてもよく、また、独立して実施されてもよく、または、フロー図の他の部分に依存して実施されてもよいため、様々な機能を直線的に実施するための要件を暗示するようには意図されていないことに留意されたい。
【0037】
図6は、いくつかの実施形態による、自律車両コントローラのアーキテクチャの例を示す図である。図600は、モーションコントローラプロセス662、プランナプロセス664、知覚プロセス666、マッピングプロセス640、および位置特定プロセス668を含むいくつかのプロセスを示し、それらのうちのいくつかは、他のプロセスに関するデータを生成または受信し得る。プロセス670および650のような他のプロセスは、自律車両の1つまたは複数の機械的構成要素との相互作用を促進することができる。例えば、知覚プロセス666、マッピングプロセス640、および位置特定プロセス668は、センサ670からセンサデータを受信するように構成されており、一方で、プランナプロセス664および知覚プロセス666は、道路網データのようなルートデータを含み得る案内データ606を受信するように構成されている。さらに図600について、位置特定プロセス668は、他のタイプのマップデータの中でも、マップデータ605a(すなわち、2Dマップデータ)、マップデータ605b(すなわち、3Dマップデータ)、および局所的マップデータ642を受信するように構成されている。例えば、位置特定プロセス668はまた、例えば、エポック決定を含み得る、4Dマップデータのような他の形態のマップデータを受信することもできる。位置特定プロセス668は、局所的位置を表現する局所的位置データ641を生成するように構成されている。局所的位置データ641は、モーションコントローラプロセス662、プランナプロセス664、および知覚プロセス666に提供される。知覚プロセス666は、静的および動的オブジェクトマップデータ667を生成するように構成されており、このマップデータは、プランナプロセス664に送信され得る。いくつかの例において、静的および動的オブジェクトマップデータ667は、意味論的分類情報および予測される物体挙動のような他のデータとともに送信されてもよい。プランナプロセス664は、プランナ664によって生成されるいくつかの軌道を記述する軌道データ665を生成するように構成されている。モーションコントローラプロセスは、ステアリング角度および/または速度の変化を引き起こすためにアクチュエータ650に適用するための低レベルコマンドまたは制御信号を生成するために、軌道データ665を使用する。
【0038】
図7は、いくつかの実施形態による、自律車両の群との信頼可能な通信を維持するために冗長な通信チャネルを実施する自律車両サービスプラットフォームの例を示す図である。図700は、基準データジェネレータ705、車両データコントローラ702、自律車両群マネージャ703、遠隔操作者マネージャ707、シミュレータ740、およびポリシマネージャ742を含む自律車両サービスプラットフォーム701を示す。基準データジェネレータ705は、マップデータおよびルートデータ(例えば、RNDFデータ)を生成および修正するように構成されている。さらに、基準データジェネレータ705は、2Dマップデータリポジトリ720内の2Dマップにアクセスし、3Dマップデータリポジトリ722内の3Dマップにアクセスし、ルートデータリポジトリ724内のルートデータにアクセスするように構成され得る。エポック決定を含む4Dマップデータのような、他のマップ表現データおよびリポジトリが、いくつかの例において実施されてもよい。車両データコントローラ702は、様々な動作を実施するように構成されることができる。例えば、車両データコントローラ702は、チャネル770を介した通信の品質レベルに基づいて、自律車両の群とプラットフォーム701との間でデータが交換されるレートを変更するように構成されてもよい。帯域幅が制約されている期間中、例えば、データ通信は、自律車両730からの遠隔操作要求が、送達を保証するために高く優先順位付けされるように、優先順位付けされ得る。さらに、特定のチャネルにとって利用可能な帯域幅に依存して、可変レベルのデータ抽象化が、チャネル770を介して車両ごとに送信され得る。例えば、ロバストなネットワーク接続の存在下では、全ライダデータ(例えば、実質的にすべてのライダデータであるが、またより少なくてもよい)が送信されてもよく、一方で、劣化されたまたは低速の接続の存在下では、データのより単純なまたはより抽象的な描写(例えば、関連付けられているメタデータを有する境界ボックスなど)が送信されてもよい。自律車両群マネージャ703は、電池電力の効率的な使用、走行時間、電池の低充電状態の間に自律車両730内の空調装置が使用され得るか否かなどを含む、複数の変数を最適化するように、自律車両730の派遣を調整するように構成されており、それらの変数のいずれかまたはすべては、自律車両サービスの動作と関連付けられる費用関数を最適化することを考慮して監視され得る。自律車両の群の走行の費用または時間を最小化する様々な変数を分析するためのアルゴリズムが実施され得る。さらに、自律車両群マネージャ703は、群のアップタイムを最大化することを考慮してサービススケジュールを適合させるために、自律車両および部品の在庫を維持する。
【0039】
遠隔操作者マネージャ707は、遠隔操作者708がそれを用いて入力を提供するいくつかの遠隔操作者コンピューティングデバイス704を管理するように構成されている。シミュレータ740は、1つまたは複数の自律車両730の動作、および、遠隔操作者マネージャ707と自律車両730との間の相互作用をシミュレートするように構成されている。シミュレータ740はまた、自律車両730内に配置されているいくつかのセンサの動作(シミュレートされるノイズの導入を含む)をシミュレートすることもできる。さらに、シミュレートされた自律車両が合成環境に導入されることができ、それによって、シミュレートされたセンサが、シミュレートされたレーザ戻りのようなシミュレートされたセンサデータを受信することができるように、都市のような環境がシミュレートされることができる。シミュレータ740は、ソフトウェア更新および/またはマップデータの検証を含む、他の機能をも提供することができる。ポリシマネージャ742は、道路網を走行している間に自律車両が遭遇する様々な条件またはイベントを考慮して自律車両がそれによって挙動すべきであるデータ表現ポリシまたは規則を維持するように構成されている。いくつかの事例において、更新されたポリシおよび/または規則が、ポリシに対する変更を考慮して自律車両の群の安全な動作を確認するために、シミュレータ740においてシミュレートされてもよい。自律車両サービスプラットフォーム701の上述されている要素のいくつかが、以下においてさらに記述される。
【0040】
通信チャネル770は、自律車両の群730および自律車両サービスプラットフォーム701の間にネットワーク接続されている通信リンクを提供するように構成されている。例えば、通信チャネル770は、自律車両サービスを確実に動作させるために一定レベルの冗長性を保証するために、対応するサブネットワーク(例えば、771a~771n)を有する、いくつかの異なるタイプのネットワーク771、772、773、および774を含む。例えば、通信チャネル770内の異なるタイプのネットワークは、1つまたは複数のネットワーク771、772、773、および774の機能停止に起因する低減されたまたは喪失された通信の場合に、十分な帯域幅を保証するために、異なるセルラネットワークプロバイダ、異なるタイプのデータネットワークなどを含むことができる。
【0041】
図8は、いくつかの実施形態による、様々なアプリケーションの間でデータを交換するように構成されているメッセージングアプリケーションの例を示す図である。図800は、遠隔操作者マネージャ内に配置されている遠隔操作者アプリケーション801、および、自律車両内に配置されている自律車両アプリケーション830を示し、それによって、遠隔操作者アプリケーション801および自律車両アプリケーション830は、ネットワーク871、872、および他のネットワーク873のような様々なネットワークを介した通信を促進するプロトコルを介してメッセージデータを交換する。いくつかの例によれば、通信プロトコルは、Object Management Group consortiumによって維持される仕様を有するData Distribution Service(商標)として実施されるミドルウェアプロトコルである。この通信プロトコルによれば、遠隔操作者アプリケーション801および自律車両アプリケーション830は、メッセージドメイン内に配置されているメッセージルータ854を含むことができ、メッセージルータは、遠隔操作者API 852とインターフェースするように構成されている。いくつかの例において、メッセージルータ854は、ルーティングサービスである。いくつかの例において、遠隔操作者アプリケーション801内のメッセージドメイン850aが、遠隔操作者識別子によって識別され得、一方で、メッセージドメイン850bは、車両識別子と関連付けられるドメインとして識別され得る。遠隔操作者アプリケーション801内の遠隔操作者API 852は、遠隔操作者プロセス803a~803cとインターフェースするように構成されており、それによって、遠隔操作者プロセス803bは、自律車両識別子804と関連付けられ、遠隔操作者プロセス803cは、イベント識別子806(例えば、衝突のない経路のプランニングにとって問題になり得る交差点を指定する識別子)と関連付けられる。自律車両アプリケーション830内の遠隔操作者API 852は、検知アプリケーション842、知覚アプリケーション844、位置特定アプリケーション846、および制御アプリケーション848を含む自律車両オペレーティングシステム840とインターフェースするように構成されている。上記を考慮して、上述されている通信プロトコルは、本明細書において記述されているような遠隔操作を促進するために、データ交換を促進することができる。さらに、上述されている通信プロトコルは、1つまたは複数の自律車両および1つまたは複数の自律車両サービスプラットフォームの間のセキュアなデータ交換を提供するように適合されることができる。例えば、メッセージルータ854は、例えば、遠隔操作者プロセス803と自律車両オペレーティングシステム840との間の安全確保された相互作用を提供するためのメッセージを暗号化および解読するように構成されることができる。
【0042】
図9は、いくつかの例による、図8に記述されている通信プロトコルを使用した遠隔操作を促進するためのデータのタイプを示す図である。図900は、1つまたは複数のネットワーク971内に実施される、データ処理を中心とするメッセージングバス(data-centric messaging bus)972を介してデータを交換するように構成されている、遠隔操作者アプリケーション901に結合されている遠隔操作者コンピューティングデバイス904とインターフェースする遠隔操作者908を示す。データ処理を中心とするメッセージングバス972は、遠隔操作者アプリケーション901と自律車両アプリケーション930との間の通信リンクを提供する。遠隔操作者アプリケーション901の遠隔操作者API 962は、メッセージサービス構成データ964、および、道路網データ(例えば、RNDFのようなデータ)、ミッションデータ(例えば、MDFデータ)などのようなルートデータ960を受信するように構成されている。同様に、メッセージングサービスブリッジ932も、メッセージングサービス構成データ934を受信するように構成されている。メッセージングサービス構成データ934および964は、遠隔操作者アプリケーション901と自律車両アプリケーション930との間のメッセージングサービスを構成するための構成データを提供する。メッセージングサービス構成データ934および964の例は、Data Distribution Service(商標)アプリケーションを構成するために実施されるサービス品質(「QoS」)構成データを含む。
【0043】
通信プロトコルを介した遠隔操作を促進するためのデータ交換の例が以下のように記述される。自律車両コントローラの知覚システムによって、障害物データ920が生成されると考える。さらに、候補軌道のサブセットを遠隔操作者に通知するためのプランナ選択肢データ924がプランナによって生成され、位置データ926がローカライザによって生成される。障害物データ920、プランナ選択肢データ924、および位置データ926は、メッセージングサービスブリッジ932に送信され、メッセージングサービスブリッジ932は、メッセージングサービス構成データ934に従って、テレメトリデータ940およびクエリデータ942を生成し、これらは両方とも、テレメトリデータ950およびクエリデータ952として、データ処理を中心とするメッセージングバス972を介して遠隔操作者アプリケーション901へと送信される。遠隔操作者API 962は、テレメトリデータ950およびクエリデータ952を受信し、これらのデータは、ルートデータ960およびメッセージサービス構成データ964を考慮して処理される。結果もたらされるデータは、その後、遠隔操作者コンピューティングデバイス904および/または協働ディスプレイ(collaborative display)(例えば、協働する遠隔操作者908のグループに見えるダッシュボードディスプレイ)を介して遠隔操作者908に提示される。遠隔操作者908は、遠隔操作者コンピューティングデバイス904のディスプレイ上に提示される候補軌道選択肢を検討し、案内される軌道を選択し、これは、コマンドデータ982およびクエリ応答データ980を生成し、これらは両方とも、クエリ応答データ954およびコマンドデータ956として、遠隔操作者API 962を通過される。その後、クエリ応答データ954およびコマンドデータ956は、クエリ応答データ944およびコマンドデータ946として、データ処理を中心とするメッセージングバス972を介して自律車両アプリケーション930へと送信される。メッセージングサービスブリッジ932は、クエリ応答データ944およびコマンドデータ946を受信し、遠隔操作者コマンドデータ928を生成し、これは、遠隔操作者によって選択された軌道を、プランナによる実施のために生成するように構成されている。上述されているメッセージングプロセスは、限定であるようには意図されておらず、他のメッセージングプロトコルも実施されてもよいことに留意されたい。
【0044】
図10は、いくつかの実施形態による、遠隔操作者が経路プランニングに影響を与えることができる遠隔操作者インターフェースの例を示す図である。図1000は、遠隔操作を促進するように構成されている遠隔操作者マネージャ1007を含む、自律車両サービスプラットフォーム1001と通信する自律車両1030の例を示す。第1の例において、遠隔操作者マネージャ1007は、遠隔操作者1008が前もって課題に対処することが可能であり得るように、遠隔操作者1008に、可能性のある障害物に接近している自律車両の経路、または、プランナ信頼水準の低い領域を前もって見るように要求するデータを受信する。例示のために、自律車両が接近している交差点が、問題があるものとしてタグ付けされ得ると考える。そのため、ユーザインターフェース1010は、プランナによって生成されるいくつかの軌道によって予測されている、経路1012に沿って移動している対応する自律車両1030の表現1014を表示する。また、プランナにおいて十分な混乱を引き起こす可能性があり、それによって遠隔操作者の支持を必要とする、他の車両1011、および、歩行者のような動的オブジェクト1013も表示される。ユーザインターフェース1010はまた、遠隔操作者1008に、現在の速度1022、速度制限1024、および現在の電池内の充電量1026も提示する。いくつかの例によれば、ユーザインターフェース1010は、自律車両1030から取得されるものとしてのセンサデータのような他のデータを表示してもよい。第2の例において、プランナ1064が、検出されている未確認オブジェクト1046にもかかわらず、プランナによって生成された経路1044と同延であるいくつかの軌道が生成されていると考える。プランナ1064はまた、候補軌道1040のサブセットをも生成し得るが、この例では、プランナは、現在の信頼水準を所与として進行することは不可能である。プランナ1064が代替の経路を決定することができない場合、遠隔操作者要求が送信され得る。この事例において、遠隔操作者は、遠隔操作者に基づく経路1042と一致する自律車両1030による走行を促進するために、候補軌道1040のうちの1つを選択することができる。
【0045】
図11は、いくつかの例による、遠隔操作を呼び出すように構成されているプランナの例を示す図である。図1100は、地形マネージャ(topography manager)1110、ルートマネージャ1112、経路ジェネレータ(path generator)1114、軌道エバリュエータ1120、および軌道トラッカ(trajectory tracker)1128を含むプランナ1164を示す。地形マネージャ1110は、地形学的特徴を指定する3Dマップデータまたは他の同様のマップデータのようなマップデータを受信するように構成されている。地形マネージャ1110は、目的地までの経路上の地形学関連特徴に基づいて候補経路を識別するようにさらに構成されている。様々な例によれば、地形マネージャ1110は、群内の1つまたは複数の自律車両と関連付けられるセンサによって生成される3Dマップを受信する。ルートマネージャ1112は、目的地までの経路として選択され得る1つまたは複数のルートと関連付けられる交通関連情報を含むことができる、環境データ1103を受信するように構成されている。経路ジェネレータ1114は、地形マネージャ1110およびルートマネージャ1112からデータを受信し、自律車両を目的地に向けて誘導するのに適した1つまたは複数の経路または経路セグメントを生成する。1つまたは複数の経路または経路セグメントを表現するデータは、軌道エバリュエータ1120へと送信される。
【0046】
軌道エバリュエータ1120は、状態・イベントマネージャ(state and event manager)1122を含み、状態・イベントマネージャ1122は、信頼水準ジェネレータ(confidence level generator)1123を含むことができる。軌道エバリュエータ1120は、案内される軌道のジェネレータ(guided trajectory generator)1126および軌道ジェネレータ(trajectory generator)1124をさらに含む。さらに、プランナ1164は、ポリシデータ1130、知覚エンジンデータ1132、およびローカライザデータ1134を受信するように構成されている。
【0047】
ポリシデータ1130は、いくつかの例によれば、それをもって軌道を生成すべき十分な信頼水準を有する経路を決定するためにプランナ1164が使用する基準を含むことができる。ポリシデータ1130の例は、軌道生成が外部オブジェクトまでの離れた距離によって抑制されることを指定するポリシ(例えば、可能な限り、自転車利用者から3フィートの安全緩衝を維持すること)、または、軌道が中央の二重黄色線をまたいではならないことを要求するポリシ、または、(例えば、一般的にバス停に最も近い車線に集中することのような、過去のイベントに基づいて)4車線道路においては軌道が単一車線に限定されることを必要とするポリシ、および、ポリシによって指定される任意の他の同様の基準を含む。知覚エンジンデータ1132は、対象の静的オブジェクトおよび動的オブジェクトの位置のマップを含み、ローカライザデータ1134は、少なくとも局所的位置または位置を含む。
【0048】
状態・イベントマネージャ1122は、自律車両の動作状態を確率論的に(probabilistically)決定するように構成されることができる。例えば、第1の動作状態(すなわち、「規範的動作」)は、軌道が衝突のないものである状況を記述することができ、一方で、第2の動作状態(すなわち、「非規範的動作」)は、可能性のある軌道と関連付けられる信頼水準が、衝突のない走行を保証するには不十分である別の状況を記述することができる。いくつかの例によれば、状態・イベントマネージャ1122は、規範的または非規範的である自律車両の状態を決定するために、知覚データ1132を使用するように構成されている。信頼水準ジェネレータ1123は、自律車両の状態を決定するために、知覚データ1132を分析するように構成されることができる。例えば、信頼水準ジェネレータ1123は、プランナ1164が安全な方策を決定しているという確実度を強化するために、静的オブジェクトおよび動的オブジェクトと関連付けられる意味情報、および、関連付けられる確率推定(probabilistic estimation)を使用することができる。例えば、プランナ1164は、プランナ1164が安全に動作しているか否かを決定するために、オブジェクトが人間である、または、人間でない確率を指定する知覚エンジンデータ1132を使用することができる(例えば、プランナ1164は、オブジェクトが、98%の人間である確率、および、オブジェクトが人間でないという2%の確率を有する確実度を受信することができる)。
【0049】
信頼水準(例えば、統計および確率論的決定に基づく)が、予測される安全動作に必要とされる閾値を下回るという決定を受けて、相対的に低い信頼水準(例えば、単一の確率スコア)が、自律車両サービスプラットフォーム1101に遠隔操作者の支持を求める要求1135を送信するようにプランナ1164をトリガすることができる。いくつかの事例において、テレメトリデータおよび候補軌道のセットが、この要求に付随してもよい。テレメトリデータの例は、センサデータ、位置特定データ、知覚データなどを含む。遠隔操作者1108は、選択された軌道1137を、遠隔操作者コンピューティングデバイス1104を介して、案内される軌道のジェネレータ1126に送信することができる。そのため、選択された軌道1137は、遠隔操作者からの案内によって形成される軌道である。状態に変化がないという確認を受けて(例えば、非規範的状態が未決)、案内される軌道のジェネレータ1126は、軌道ジェネレータ1124にデータを渡し、軌道ジェネレータ1124は、軌道トラッカ1128に、軌道追跡コントローラとして、制御信号1170(例えば、ステアリング角度、速度など)を生成するために、遠隔操作者によって指定される軌道を使用させる。プランナ1164は、状態が非規範的状態に移行する前に、遠隔操作者の支持を求める要求1135の送信をトリガすることができることに留意されたい。特に、自律車両コントローラおよび/またはその構成要素は、離れた障害物に問題があり得ることを予測し、前もって、プランナ1164に、自律車両が障害物に達する前に遠隔操作を呼び出させることができる。そうでない場合、自律車両は、障害物またはシナリオへの遭遇を受けて安全状態に移行すること(例えば、路肩に寄り、停車すること)によって、遅延を引き起こすことができる。別の例において、遠隔操作は、ナビゲートすることが困難であることが分かっている特定の位置に自律車両が接近する前に、自動的に呼び出されてもよい。そのような状況が、センサ読み値、および様々なソースから導出される交通または事故データの信頼性に対する外乱を引き起こす可能性がある場合、この決定は、任意選択的に、時刻、太陽の位置を含む他のファクタを考慮に入れてもよい。
【0050】
図12は、いくつかの実施形態による、自律車両を制御するように構成されているフロー図の例である。1202において、フロー1200が開始する。自律車両内のプランナにおいて受信されるオブジェクトのサブセットを表現するデータ、オブジェクトのサブセットは、分類タイプの確実度を表現するデータと関連付けられる少なくとも1つのオブジェクトを含む。例えば、知覚エンジンデータは、オブジェクトと関連付けられるメタデータを含むことができ、それによって、メタデータは、特定の分類タイプと関連付けられる確実度を指定する。例えば、動的オブジェクトは、正確であるという85%の信頼水準をもって「若い歩行者」として分類され得る。1204において、ローカライザデータが(例えば、プランナにおいて)受信され得る。ローカライザデータは、自律車両内で局所的に生成されるマップデータを含むことができる。局所的マップデータは、一定の地理的領域においてイベントが発生し得る確実度(不確実度を含む)を指定することができる。イベントは、自律車両の動作に影響を与えるか、または、動作に影響を与える可能性がある条件または状況であり得る。イベントは、自律車両の内部(例えば、機能不全にされたまたは機能が損なわれたセンサ)または外部(例えば、道路の閉塞)であってもよい。イベントの例は、図2ならびに他の図面および節など、本明細書において記述されている。対象の地理的領域と同延の経路が、1206において決定され得る。例えば、イベントが、ラッシュアワーの交通状態の間に太陽光が運転者の視覚の機能を損なう時刻における、空における太陽の位置付けであると考える。そのため、交通は、明るい太陽光に応答して減速し得ると予想または予測される。したがって、プランナは、イベントを回避するための代替の経路の可能性が低い場合、前もって遠隔操作を呼び出すことができる。1208において、プランナにおいて、局所的位置データに基づいて局所的位置が決定される。1210において、例えば、分類タイプの確実度、および、速度、位置、および他の状態情報のような任意の数のファクタに基づき得るイベントの確実度に基づいて、自律車両の動作状態が(例えば、確率論的に)決定され得る。例示のために、他の運転者の視覚が太陽によって機能を損なわれる可能性があり、それによって、若い歩行者にとって安全でない状況が引き起こされるイベントの間に、自律車両によって若い歩行者が検出される例を考える。それゆえ、相対的に安全でない状況が、発生する可能性があり得る確率論的なイベント(すなわち、遠隔操作者が呼び出される可能性がある安全でない状況)として検出され得る。1212において、動作状態が規範的状態である可能性が決定され、この決定に基づいて、次の動作状態への移行に前もって備える(例えば、規範的動作状態から、安全でない動作状態のような非規範的動作状態への移行に前もって備える)ように、遠隔操作者に要求するメッセージが、遠隔操作者コンピューティングデバイスに送信される。
【0051】
図13は、いくつかの例による、プランナが軌道を生成することができる例を示す図である。図1300は、軌道エバリュエータ1320および軌道ジェネレータ1324を含む。軌道エバリュエータ1320は、信頼水準ジェネレータ1322および遠隔操作者クエリマネージャ1329を含む。示されているように、軌道エバリュエータ1320は、静的マップデータ1301、ならびに現在のおよび予測されるオブジェクト状態のデータ1303を受信するために、知覚エンジン1366に結合されている。軌道エバリュエータ1320はまた、ローカライザ1368からの局所的位置データ1305およびグローバルプランナ(global planner)1369からのプランデータ1307をも受信する。1つの動作状態(例えば、非規範的)において、信頼水準ジェネレータ1322は、静的マップデータ1301、ならびに現在のおよび予測されるオブジェクト状態のデータ1303を受信する。このデータに基づいて、信頼水準ジェネレータ1322は、検出された軌道が、許容不可能な信頼水準値と関連付けられることを決定することができる。そのため、信頼水準ジェネレータ1322は、遠隔操作者クエリマネージャ1329を介して遠隔操作者に通知するために、検出された軌道データ1309(例えば、候補軌道を含むデータ)を送信し、遠隔操作者クエリマネージャ1329は、遠隔操作者の支援を求める要求1370を送信する。
【0052】
別の動作状態(例えば、規範的状態)において、静的マップデータ1301、現在のおよび予測されるオブジェクト状態のデータ1303、局所的位置データ1305、およびプランデータ1307(例えば、グローバルプランデータ)が軌道カリキュレータ(trajectory calculator)1325へと受信され、軌道カリキュレータ1325は、最適な1つまたは複数の経路を決定するために、軌道を(例えば、反復的に)計算するように構成されている。次に、少なくとも1つの経路が選択され、選択された経路のデータ1311として送信される。いくつかの実施形態によれば、軌道カリキュレータ1325は、例として軌道の再プランニングを実施するように構成されている。公称運転軌道ジェネレータ(nominal driving trajectory generator)1327が、receding horizon制御技法に基づいて軌道を生成することによってのような、洗練された手法において軌道を生成するように構成されている。公称運転軌道ジェネレータ1327はその後、公称運転軌道経路データ1372を、例えば、ステアリング、加速の物理的変更を実施するための軌道トラッカまたは車両コントローラ、および他の構成要素に送信することができる。
【0053】
図14は、いくつかの実施形態による、自律車両サービスプラットフォームの別の例を示す図である。図1400は、遠隔操作者1408の間の相互作用および/または通信を管理するように構成されている遠隔操作者マネージャ1407、遠隔操作者コンピューティングデバイス1404、ならびに自律車両サービスプラットフォーム1401の他の構成要素を含む自律車両サービスプラットフォーム1401を示す。さらに図1400について、自律車両サービスプラットフォーム1401は、シミュレータ1440、リポジトリ1441、ポリシマネージャ1442、基準データアップデータ(reference data updater)1438、2Dマップデータリポジトリ1420、3Dマップデータリポジトリ1422、およびルートデータリポジトリ1424を含む。4Dマップデータ(例えば、エポック決定を使用する)のような他のマップデータが実施され、リポジトリ(図示せず)に格納されてもよい。
【0054】
遠隔操作者アクション推奨コントローラ(teleoperator action recommendation controller)1412は、遠隔操作者の支援を求める要求ならびにテレメトリデータおよび他のデータを含むことができる自律車両(「AV」)プランナデータ1472を介して遠隔操作サービス要求を受信および/または制御するように構成されている論理を含む。そのため、プランナデータ1472は、遠隔操作者1408が遠隔操作者コンピューティングデバイス1404を介してそこから選択することができる、推奨される候補軌道または経路を含むことができる。いくつかの例によれば、遠隔操作者アクション推奨コントローラ1412は、そこから最適な軌道を選択すべきである、推奨される候補軌道の他のソースにアクセスするように構成されることができる。例えば、自律車両プランナデータ1472内に含まれる候補軌道は、並列に、シミュレータ1440へと導入されてもよく、シミュレータ1440は、遠隔操作者の支援を要求している自律車両によって経験されているイベントまたは条件をシミュレートするように構成されている。シミュレータ1440は、マップデータ、および、候補軌道のセットに関するシミュレーションを実施するために必要な他のデータにアクセスすることができ、それによって、シミュレータ1440は、十分性を確認するためにシミュレーションを徹底的に繰り返す必要がない。むしろ、シミュレータ1440は、候補軌道の妥当性を確認し得、または、そうでなければ遠隔操作者に、それらの選択に注意するよう警告することができる。
【0055】
遠隔操作者相互作用キャプチャアナライザ(teleoperator interaction capture analyzer)1416は、大量の遠隔操作者トランザクションまたは相互作用を、リポジトリ1441内に格納するためにキャプチャするように構成されることができ、リポジトリ1441は、例えば、少なくともいくつかの事例において、いくつかの遠隔操作者トランザクションに関係するデータを、ポリシの分析および生成のために累積することができる。いくつかの実施形態によれば、リポジトリ1441はまた、ポリシマネージャ1442によるアクセスのためにポリシデータを格納するように構成されることもできる。さらに、遠隔操作者相互作用キャプチャアナライザ1416は、遠隔操作者の支援を求める要求を引き起こすイベントまたは条件にいかに最良に応答すべきかを経験的に決定するために、機械学習技法を適用することができる。いくつかの事例において、ポリシマネージャ1442は、(例えば、機械学習技法の適用後に)遠隔操作者相互作用の大きなセットの分析に応答して、特定のポリシを更新し、または、新たなポリシを生成するように構成されることができる。ポリシマネージャ1442は、自律車両コントローラおよびその構成要素が、車両の自律動作に準拠するためにそれに基づいて動作する規則またはガイドラインとして見られ得るポリシを管理する。いくつかの事例において、修正または更新されたポリシが、そのようなポリシ変更を永続的にリリースまたは実施することの有効性を確認するために、シミュレータ1440に適用されてもよい。
【0056】
シミュレータインターフェースコントローラ1414は、シミュレータ1440と遠隔操作者コンピューティングデバイス1404との間のインターフェースを提供するように構成されている。例えば、自律車両の群からのセンサデータが、自律(「AV」)群データ1470を介して基準データアップデータ1438に適用され、それによって、基準データアップデータ1438が更新されたマップおよびルートデータ1439を生成するように構成されると考える。いくつかの実施態様において、更新されたマップおよびルートデータ1439は、事前に、マップデータリポジトリ1420および1422内のデータに対する更新として、または、ルートデータリポジトリ1424内のデータに対する更新としてリリースされることができる。この事例において、そのようなデータは、例えば、事前に更新されている情報を含むマップタイルが自律車両によって使用されるときに、遠隔操作者サービスを要求するためのより低い閾値が実施され得る「ベータバージョン」であるものとしてタグ付けされ得る。さらに、更新されたマップおよびルートデータ1439は、更新されたマップデータを検証するためにシミュレータ1440に導入され得る。(例えば、ベータ試験の終了時の)全リリースを受けて、遠隔操作者サービスを要求するための以前に下げられていた閾値はキャンセルされる。ユーザインターフェースグラフィックスコントローラ1410は、豊富なグラフィックスを遠隔操作者1408に提供し、それによって、自律車両の群が、シミュレータ1440内でシミュレートされることができ、シミュレートされている自律車両の群があたかも現実であるかのように、遠隔操作者コンピューティングデバイス1404を介してアクセスされることができる。
【0057】
図15は、いくつかの実施形態による、自律車両を制御するためのフロー図の例である。1502において、フロー1500が開始する。自律車両の群を管理するためのメッセージデータが、遠隔操作者コンピューティングデバイスにおいて受信され得る。メッセージデータは、自律車両のプランニングされている経路の文脈において非規範的動作状態と関連付けられるイベント属性を指示することができる。例えば、イベントは、例えば信号機に違反して急いで通りを渡っている多数の歩行者に起因して問題になる特定の交差点として特性化(characterize)され得る。イベント属性は、例えば、通りを渡っている人間の数、増大した数の歩行者からもたらされる交通遅延などのようなイベントの特性(characteristic)を記述する。1504において、遠隔操作リポジトリは、自律車両のグループと関連付けられる、集約されているデータのシミュレートされている動作に基づいて、推奨の第1のサブセットを取り出すためにアクセスされることができる。この事例において、シミュレータは、それをもって遠隔操作者が実施することができる推奨のソースであり得る。さらに、遠隔操作リポジトリはまた、同様のイベント属性に応答した遠隔操作者相互作用の集約に基づいて、推奨の第2のサブセットを取り出すためにアクセスされることもできる。特に、遠隔操作者相互作用キャプチャアナライザは、遠隔操作者の支援を求める以前の要求に基づいて同様の属性を有するイベントにいかに最良に応答すべきかを経験的に決定するために、機械学習技法を適用することができる。1506において、推奨の第1のサブセットおよび第2のサブセットが、自律車両に対する推奨される方策のセットを形成するために、組み合わされる。1508において、推奨される方策のセットの表現が、遠隔操作者コンピューティングデバイスのディスプレイ上に、視覚的に提示されることができる。1510において、推奨される方策の選択(例えば、遠隔操作者による)を表現するデータ信号が検出されることができる。
【0058】
図16は、いくつかの例による、群最適化マネージャを実施する自律車両群マネージャの例の図である。図1600は、道路網1650内を移動する自律車両の群1630を管理するように構成されている自律車両群マネージャを示す。自律車両群マネージャ1603は、遠隔操作者コンピューティングデバイス1604を介して遠隔操作者1608に結合されており、また、群管理データリポジトリ1646にも結合されている。自律車両群マネージャ1603は、ポリシデータ1602および環境データ1606、ならびに他のデータを受信するように構成されている。さらに図1600について、群最適化マネージャ1620は、移動要求プロセッサ1631を含むように示されており、移動要求プロセッサ1631は、群データエクストラクタ(fleet data extractor)1632および自律車両派遣最適化カリキュレータ(autonomous vehicle dispatch optimization calculator)1634を含む。移動要求プロセッサ1631は、自律車両サービスを要求しているユーザ1688からのもののような、移動要求を処理するように構成されている。群データエクストラクタ1632は、群内の自律車両に関係するデータを抽出するように構成されている。各自律車両と関連付けられるデータはリポジトリ1646内に格納されている。例えば、各車両に関するデータは、保守管理課題、スケジュールされているサービス依頼、日常の使用状況、電池充電および放電率、および任意の他のデータを記述することができ、これらは、リアルタイムに更新されることができ、休止時間を最小化するために自律車両の群を最適化する目的のために使用されることができる。自律車両派遣最適化カリキュレータ1634は、抽出されたデータを分析し、ステーション1652などからの派遣される次の車両が、自律車両サービスについて、集合の中で最小の走行時間および/または費用を提供することを保証するように、群の最適化された使用状況を計算するように構成されている。
【0059】
群最適化マネージャ1620は、混合自律車両/非自律車両プロセッサ(hybrid autonomous vehicle/non-autonomous vehicle processor)1640を含むように示されており、混合自律車両/非自律車両プロセッサ1640は、AV/非AV最適化カリキュレータ1642および非AVセレクタ1644を含む。いくつかの例によれば、混合自律車両/非自律車両プロセッサ1640は、自律車両および人間によって運転される車両(例えば、独立請負人としての)からなる混合群を管理するように構成されている。そのため、自律車両サービスは、過剰な需要を満たすために、または、地理上のフェンスを越える場合がある非AVサービス領域1690のような領域、または、不満足な通信カバレージの領域において非自律車両を利用することができる。AV/非AV最適化カリキュレータ1642は、自律車両群の使用状況を最適化し、非AV運転者を輸送サービスに(例えば、自律車両サービスに対する損害を最小限にして、または、損害がまったくないように)招聘するように構成されている。非AVセレクタ1644は、AV/非AV最適化カリキュレータ1642によって導出される計算に基づいて、支援するための非AV運転者の数を選択するための論理を含む。
【0060】
図17は、いくつかの実施形態による、自律車両の群を管理するためのフロー図の例である。1702において、フロー1700が開始する。1702において、ポリシデータが受信される。ポリシデータは、移動要求にサービスするために自律車両を選択するためにいかに最良に適用するかを規定するパラメータを含むことができる。1704において、リポジトリからの群管理データが抽出され得る。群管理データは、自律車両のプールに関するデータのサブセットを含む(例えば、データは、輸送要求にサービスするために車両の準備ができているかを記述する)。1706において、移動要求を表現するデータが受信される。例示的な目的のために、移動要求は、第1の地理的位置から第2の地理的位置への輸送手段に対するものであり得る。1708において、ポリシデータに基づく属性が、要求にサービスするために利用可能である自律車両のサブセットを決定するために計算される。例えば、属性は、電池充電レベル、および、次にスケジュールされている保守管理までの時間を含んでもよい。1710において、自律車両が、第1の地理的位置から第2の地理的位置への輸送手段として選択され、自律車両を、移動要求の起点(origination)と関連付けられる第3の地理的位置に派遣するためのデータが生成される。
【0061】
図18は、いくつかの実施形態による、自律車両通信リンクマネージャを実施する自律車両群マネージャを示す図である。図1800は、「低減された通信の領域」1880として識別される通信機能停止と一致する道路網1850内を移動する自律車両の群1830を管理するように構成されている自律車両群マネージャを示す。自律車両群マネージャ1803は、遠隔操作者コンピューティングデバイス1804を介して遠隔操作者1808に結合されている。自律車両群マネージャ1803は、ポリシデータ1802および環境データ1806、ならびに他のデータを受信するように構成されている。さらに図1800について、自律車両通信リンクマネージャ1820が、環境イベントディテクタ(environment event detector)1831、ポリシ適合デタミネータ(policy adaption determinator)1832、および移動要求プロセッサ(transit request processor)1834を含むように示されている。環境イベントディテクタ1831は、自律車両サービスが実施されている環境内の変化を指定する環境データ1806を受信するように構成されている。例えば、環境データ1806は、領域1880が劣化した通信サービスを有し、これによって自律車両サービスに影響を与える可能性があることを指定することができる。ポリシ適合デタミネータ1832は、そのようなイベントの間に(例えば、通信の喪失の間に)移動要求を受信するときに適用すべきパラメータを指定することができる。移動要求プロセッサ1834は、劣化した通信を考慮して移動要求を処理するように構成されている。この例において、ユーザ1888が、自律車両サービスを要求している。さらに、移動要求プロセッサ1834は、不満足な通信に起因する複雑化を回避するように自律車両が派遣される方法を修正するための、適合されたポリシを適用するための論理を含む。
【0062】
通信イベントディテクタ(communication event detector)1840が、ポリシダウンロードマネージャ1842と、通信設定された(「COMM設定された」)AVディスパッチャ(communications-configured ("COMM-configured") AV dispatcher)1844とを含む。ポリシダウンロードマネージャ1842は、低減された通信の領域1880を考慮して自律車両1830に更新されたポリシを提供するように構成されており、それによって、更新されたポリシは、自律車両が領域1880に入る場合に、その領域を迅速に出るためのルートを指定することができる。例えば、自律車両1864は、領域1880に入る前の時点で、更新されたポリシを受信することができる。通信の喪失を受けて、自律車両1864は、更新されたポリシを実施し、領域1880から迅速に出るためのルート1866を選択する。COMM設定されたAVディスパッチャ1844は、領域1880にわたるピアツーピアネットワークの確立に対する中継装置として構成される、自律車両を駐めるためのポイント1865を識別するように構成されることができる。そのため、COMM設定されたAVディスパッチャ1844は、ピアツーピアアドホックネットワークにおける電波塔として動作する目的のために、位置1865に駐めるために自律車両1862(搭乗者なし)を派遣するように構成されている。
【0063】
図19は、いくつかの実施形態による、劣化または喪失した通信のようなイベント中の自律車両に対するアクションを決定するためのフロー図の例である。1901において、フロー1900が開始する。ポリシデータが受信され、それによって、ポリシデータは、イベント中に地理的領域における移動要求に適用するためのパラメータを規定する。1902において、以下のアクションのうちの1つまたは複数が実施され得る。(1)その地理的位置の部分内の地理的位置に自律車両のサブセットを派遣する。自律車両のサブセットは、特定の地理的位置に駐まり、各々が静的通信中継装置としての役割を果たすか、または、各々が移動通信中継装置としての役割を果たすために、地理的領域内で移動する。(2)その地理的領域の部分と関連付けられる自律車両のプールの部分の間でピアツーピア通信を実施する。(3)イベント中のその地理的領域の部分を脱出するためのルートを記述するイベントポリシを、自律車両に提供する。(4)遠隔操作を呼び出す。および(5)その地理的領域を回避するように、経路を再計算する。アクションの実施後、1914において、その自律車両の群が監視される。
【0064】
図20は、いくつかの実施形態による、ローカライザの例を示す図である。図2000は、ライダデータ2072、カメラデータ2074、レーダデータ2076、および他のデータ2078のような、センサ2070からのセンサデータを受信するように構成されているローカライザ2068を含む。さらに、ローカライザ2068は、2Dマップデータ2022、3Dマップデータ2024、および3D局所的マップデータのような基準データ2020を受信するように構成されている。いくつかの例によれば、対応するデータ構造およびリポジトリを含む、4Dマップデータ2025および意味論的マップデータ(図示せず)のような他のマップデータも、実施されてもよい。さらに図2000について、ローカライザ2068は、位置決めシステム2010および位置特定システム2012を含み、これらは両方とも、センサ2070からのセンサデータおよび基準データ2020を受信するように構成されている。位置特定データインテグレータ2014は、位置決めシステム2010からのデータおよび位置特定システム2012からのデータを受信するように構成されており、それによって、位置特定データインテグレータ2014は、局所的位置データ2052を形成するために複数のセンサからのセンサデータを統合または融合するように構成されている。
【0065】
図21は、いくつかの実施形態による、集積センサデータに基づいて局所的位置データを生成するためのフロー図の例である。2101において、フロー2100が開始する。2102において、基準データが受信され、基準データは、三次元マップデータを含む。いくつかの例において、3Dまたは4Dマップデータのような基準データが、1つまたは複数のネットワークから受信されてもよい。2104において、1つまたは複数の位置特定センサからの位置特定データが受信され、位置特定システム内に配置される。2106において、1つまたは複数の位置決めセンサからの位置決めデータが受信され、位置決めシステム内に配置される。2108において、位置特定データおよび位置決めデータが統合される。2110において、自律車両の地理的位置を指定する局所的位置データを形成するために、位置特定データおよび位置決めデータが統合される。
【0066】
図22は、いくつかの実施形態による、ローカライザの別の例を示す図である。図2200はローカライザ2268を含み、ローカライザ2268は、それぞれ位置特定に基づくデータ2250および相対的な位置特定に基づくデータ2251を生成するための位置特定システム2210および相対位置特定システム2212を含む。位置特定システム2210は、他の任意選択のデータ(例えば、4Dマップデータ)の中でも、GPSデータ2273、GPSデータム2211、および3Dマップデータ2222を処理するための投影プロセッサ2254aを含む。位置特定システム2210はまた、他の任意選択のデータの中でも、ホイールデータ2275(例えば、ホイール速度)、車両モデルデータ2213および3Dマップデータ2222を処理するためのオドメトリプロセッサ2254bをも含む。さらにまた、位置特定システム2210は、他の任意選択のデータの中でも、IMUデータ2257、車両モデルデータ2215および3Dマップデータ2222を処理するためのインテグレータプロセッサ2254cを含む。同様に、相対位置特定システム2212は、他の任意選択のデータの中でも、ライダデータ2272、2Dタイルマップデータ2220、3Dマップデータ2222、および3D局所的マップデータ2223を処理するためのライダ位置特定プロセッサ2254dを含む。相対位置特定システム2212はまた、他の任意選択のデータの中でも、カメラデータ2274、3Dマップデータ2222、および3D局所的マップデータ2223を処理するための視覚見当合わせプロセッサ2254eをも含む。さらにまた、相対位置特定システム2212は、他の任意選択のデータの中でも、レーダデータ2276、3Dマップデータ2222、および3D局所的マップデータ2223を処理するためのレーダ戻りプロセッサ2254fを含む。様々な例において、ソナーデータなどのような、他のタイプのセンサデータおよびセンサまたはプロセッサが実施されてもよいことに留意されたい。
【0067】
さらに図2200について、位置特定に基づくデータ2250および相対位置特定に基づくデータ2251は、それぞれデータインテグレータ2266aおよび位置特定データインテグレータ2266に供給され得る。データインテグレータ2266aおよび位置特定データインテグレータ2266は、対応するデータを融合するように構成されることができ、それによって、位置特定に基づくデータ2250は、位置特定データインテグレータ2266において相対位置特定に基づくデータ2251と融合される前に、データインテグレータ2266aにおいて融合されることができる。いくつかの実施形態によれば、データインテグレータ2266aは、位置特定データインテグレータ2266の部分として形成されるか、または、不在である。それに関係なく、位置特定に基づくデータ2250および相対位置特定に基づくデータ2251は両方とも、局所的位置データ2252を生成するためにデータを融合する目的のために、位置特定データインテグレータ2266に供給されることができる。位置特定に基づくデータ2250は、投影プロセッサ2254aからの単項制約データ(および不確定値)、ならびに、オドメトリプロセッサ2254bおよびインテグレータプロセッサ2254cからの二項制約データ(および不確定値)を含むことができる。相対位置特定に基づくデータ2251は、位置特定プロセッサ2254dおよび視覚見当合わせプロセッサ2254e、ならびに、任意選択的にレーダ戻りプロセッサ2254fからの単項制約データ(および不確定値)を含むことができる。いくつかの実施形態によれば、位置特定データインテグレータ2266は、カルマンフィルタ(例えば、ゲートカルマンフィルタ(gated Kalman filter))、相対バンドルアジャスタ(relative bundle adjuster)、位置グラフ緩和、粒子フィルタ、ヒストグラムフィルタなどのような非線形平滑化機能を実施することができる。
【0068】
図23は、いくつかの実施形態による、知覚エンジンの例を示す図である。図2300は、知覚エンジン2366を含み、知覚エンジン2366は、セグメンテーションプロセッサ2310、オブジェクトトラッカ2330、およびクラシファイヤ2360を含む。さらに、知覚エンジン2366は、例えば、局所的位置データ2352、ライダデータ2372、カメラデータ2374、およびレーダデータ2376を受信するように構成されている。ソナーデータのような他のセンサデータが、知覚エンジン2366の機能を提供するためにアクセスされてもよいことに留意されたい。セグメンテーションプロセッサ2310は、グランドプレーンデータを抽出し、および/または、画像の部分をセグメント化して、オブジェクトを互いから、および静的画像(例えば、背景)から区別するように構成されている。いくつかの事例において、3Dブロブが、互いを区別するためにセグメント化されることができる。いくつかの例において、ブロブは、空間的に再生された環境内でオブジェクトを識別する特徴のセットを参照することができ、強度および色のような、同様の特性を有する要素(例えば、カメラデータのピクセル、レーザ戻りデータのポイントなど)から構成されることができる。いくつかの例において、ブロブはまた、ポイントクラウド(例えば、色付けされたレーザ戻りデータから構成される)またはオブジェクトを構成する他の要素を参照することもできる。オブジェクトトラッカ2330は、ブロブ、または他のセグメント化された画像部分の動きのフレームごとの推定を実施するように構成されている。さらに、時刻t1における第1のフレーム内の1つの位置にあるブロブを、時刻t2における第2のフレーム内の異なる位置にあるブロブと関連付けるために、データ関連付けが使用される。いくつかの例において、オブジェクトトラッカ2330は、ブロブのような3Dオブジェクトのリアルタイムの確率的追跡を実施するように構成されている。クラシファイヤ2360は、オブジェクトを識別し、そのオブジェクトを分類タイプ(例えば、歩行者、自転車利用者などとして)によっておよびエネルギー/活動(例えば、オブジェクトが動的であるかまたは静的であるか)によって分類するように構成されており、それによって、分類を表現するデータは、意味ラベルによって記述される。いくつかの実施形態によれば、オブジェクトクラスごとに異なる信頼性で、オブジェクトを車両、自転車利用者、歩行者などとして分類することのような、オブジェクトカテゴリの確率的推定が実施されることができる。知覚エンジン2366は、知覚エンジンデータ2354を決定するように構成されており、知覚エンジンデータ2354は、静的オブジェクトマップおよび/または動的オブジェクトマップを含むことができ、それによって、例えば、プランナは、この情報を使用して、経路プランニングを強化することができる。様々な例によれば、セグメンテーションプロセッサ2310、オブジェクトトラッカ2330、およびクラシファイヤ2360のうちの1つまたは複数は、知覚エンジンデータ2354を生成するために機械学習技法を適用することができる。
【0069】
図24は、いくつかの実施形態による、知覚エンジンデータを生成するためのフロー図の例である。フロー図2400は2402において開始し、自律車両の局所的位置を表現するデータが取り出される。2404において、1つまたは複数の位置特定センサからの位置特定データが受信され、2406において、セグメント化されたオブジェクトを形成するために、自律車両が配置されている環境の特徴がセグメント化される。2408において、動き(例えば、推定される動き)を有する少なくとも1つの追跡されているオブジェクトを形成するために、セグメント化されたオブジェクトの1つまたは複数の部分が空間的に追跡される。2410において、追跡されているオブジェクトが、少なくとも静的オブジェクトまたは動的オブジェクトのいずれかであるものとして分類される。いくつかの事例において、静的オブジェクトまたは動的オブジェクトは、分類タイプと関連付けられることができる。2412において、分類されたオブジェクトを識別するデータが生成される。例えば、分類されたオブジェクトを識別するデータは、意味情報を含むことができる。
【0070】
図25は、いくつかの実施形態による、セグメンテーションプロセッサの例である。図2500は、1つまたは複数のライダ2572からのライダデータおよび1つまたは複数のカメラ2574からのカメラ画像データを受信するセグメンテーションプロセッサ2510を示す。局所的位置データ2552、ライダデータ、およびカメラ画像データが、メタスピンジェネレータ(meta spin generator)2521へと受信される。いくつかの例において、メタスピンジェネレータは、様々な属性(例えば、色、強度など)に基づいて、画像を区別可能な領域(例えば、ポイントクラウドのクラスタまたはグループ)へと分割するように構成されており、そのうちの少なくとも2つ以上は、同時にまたはほぼ同時に更新されることができる。メタスピンデータ2522が、セグメンテーションプロセッサ2523においてオブジェクトセグメンテーションおよびグランドセグメンテーション(ground segmentation)を実施するために使用され、それによって、メタスピンデータ2522とセグメンテーションプロセッサ2523からのセグメンテーション関連データの両方が、走査されている差分のプロセッサ(scanned differencing processor)2513に適用される。走査されている差分のプロセッサ2513は、セグメント化された画像部分の動きおよび/または相対速度を予測するように構成されており、これは、2517において動的オブジェクトを識別するために使用されることができる。2517において検出された速度を有するオブジェクトを指示するデータが、任意選択的に、経路プランニング決定を強化するためにプランナに送信される。加えて、走査されている差分のプロセッサ2513からのデータは、そのようなオブジェクトのマッピングを形成する(また、任意選択的に、動きのレベルを識別する)ためにオブジェクトの位置を近似するために使用することができる。いくつかの例において、占有格子マップ2515が生成されることができる。占有格子マップ2515を表現するデータは、(例えば、不確定性を低減することによって)経路プランニング決定をさらに強化するために、プランナに送信されることができる。さらに図2500について、1つまたは複数のカメラ2574からの画像カメラデータが、ブロブクラシファイヤ2520においてブロブを分類するために使用され、ブロブクラシファイヤ2520はまた、セグメンテーションプロセッサ2523からブロブデータ2524も受信する。セグメンテーションプロセッサ2510はまた、レーダ関連ブロブデータ2516を生成するレーダセグメンテーションプロセッサ2514においてセグメンテーションを実施するために、1つまたは複数のレーダ2576から未処理レーダ戻りデータ2512を受信することもできる。さらに図25について、セグメンテーションプロセッサ2510はまた、レーダデータに関係付けられる、追跡されているブロブのデータ2518を受信および/または生成することもできる。ブロブデータ2516、追跡されているブロブのデータ2518、ブロブクラシファイヤ2520からのデータ、および、ブロブデータ2524はオブジェクトまたはその部分を追跡するために使用されることができる。いくつかの例によれば、以下、すなわち、走査されている差分のプロセッサ2513、ブロブ分類2520、およびレーダ2576からのデータのうちの1つまたは複数は、任意選択であってもよい。
【0071】
図26Aは、様々な実施形態による、オブジェクトトラッカおよびクラシファイヤの例を示す図である。図2600のオブジェクトトラッカ2630は、ブロブデータ2516、追跡されているブロブのデータ2518、ブロブクラシファイヤ2520からのデータ、ブロブデータ2524、および1つまたは複数のカメラ2676からのカメラ画像データを受信するように構成されている。画像トラッカ2633は、追跡されている画像のデータを生成するために、1つまたは複数のカメラ2676からのカメラ画像データを受信するように構成されており、追跡されている画像のデータは、データ関連付けプロセッサ2632に提供されることができる。示されているようにデータ関連付けプロセッサ2632は、ブロブデータ2516、追跡されているブロブのデータ2518、ブロブクラシファイヤ2520からのデータ、ブロブデータ2524、および画像トラッカ2633からの追跡画像データを受信するように構成されており、上述されているタイプのデータの間の1つまたは複数の関連付けを識別するようにさらに構成されている。データ関連付けプロセッサ2632は、とりわけ例えば、動きを推定するために、フレームごとに、例えば、様々なブロブデータを追跡するように構成されている。さらに、データ関連付けプロセッサ2632によって生成されるデータは、トラックアップデータ(track updater)2634によって、1つまたは複数のトラック、または追跡されているオブジェクトを更新するために使用されることができる。いくつかの例において、トラックアップデータ2634は、オンラインでトラックデータベース(「DB」)2636に格納することができる、追跡されているオブジェクトの更新されたデータを形成するために、カルマンフィルタなどを実施することができる。フィードバックデータが、データ関連付けプロセッサ2632とトラックデータベース2636との間で経路2699を介して交換されることができる。いくつかの例において、画像トラッカ2633は、任意選択であってもよく、除外されてもよい。オブジェクトトラッカ2630はまた、例えば、レーダまたはソナー、および、任意の他のタイプのセンサデータのような他のセンサデータを使用してもよい。
【0072】
図26Bは、少なくともいくつかの例による、オブジェクトトラッカの別の例を示す図である。図2601は、1つまたは複数の他の図面(例えば図26A)に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができるオブジェクトトラッカ2631を含む。示されているように、オブジェクトトラッカ2631は、オブジェクト走査見当合わせおよびデータ融合を実施するように構成されているプロセッサ2696を含む任意選択の見当合わせ部分2699を含む。プロセッサ2696は、結果もたらされるデータを3Dオブジェクトデータベース2698に格納するようにさらに構成されている。
【0073】
図26Aに戻って参照すると、図2600はまた、クラシファイヤ2660をも含み、クラシファイヤ2660は、静的障害物データ2672および動的障害物データ2674を生成するためのトラック分類エンジン2662を含むことができ、これらのデータは両方とも、経路プランニング目的のためにプランナに送信されることができる。少なくとも1つの例において、トラック分類エンジン2662は、障害物が静的であるかまたは動的であるか、および、オブジェクトの別の分類タイプ(例えば、オブジェクトが車両、歩行者、樹木、自転車利用者、犬、猫、紙袋などであるか)を決定するように構成されている。静的障害物データ2672は、障害物マップ(例えば、2D占有マップ)の部分として形成されることができ、動的障害物データ2674は、速度および分類タイプを指示するデータを有する境界ボックスを含むように形成されることができる。動的障害物データ2674は、少なくともいくつかの事例において、2D動的障害物マップデータを含む。
【0074】
図27は、いくつかの例による、知覚エンジンのフロントエンドプロセッサの例である。図2700は、様々な例によれば、グランドセグメンテーションを実施するためのグランドセグメンテーションプロセッサ2723aおよび「オーバーセグメンテーション」を実施するためのオーバーセグメンテーションプロセッサ2723bを含む。プロセッサ2723aおよび2723bは、任意選択的に色付けされたライダデータ2775を受信するように構成されている。オーバーセグメンテーションプロセッサ2723bは、第1のブロブタイプ(例えば、相対的に小さいブロブ)のデータ2710を生成し、このデータは、第2のブロブタイプのデータ2714を生成する集約分類・セグメンテーションエンジン(aggregation classification and segmentation engine)2712に提供される。データ2714は、データ関連付けプロセッサ2732に提供され、データ関連付けプロセッサ2732は、データ2714がトラックデータベース2736内に存在するか否かを検出するように構成されている。2740において、第2のブロブタイプ(例えば、1つまたは複数のより小さいブロブを含み得る相対的に大きいブロブ)のデータ2714が新たなトラックであるか否かの決定が行われる。そうである場合、2742においてトラックが初期化され、そうでない場合、トラックデータベース2736に格納されている、追跡されているオブジェクトデータおよびそのトラックが、トラックアップデータ2742によって拡張または更新されることができる。トラック分類エンジン2762は、トラックを識別し、例えば、トラック関連データを追加、除去または修正することによって、トラックを更新/修正するために、トラックデータベース2736に結合されている。
【0075】
図28は、様々な実施形態による、合成環境において自律車両をシミュレートするように構成されているシミュレータを示す図である。図2800は、シミュレートされた環境2803を生成するように構成されているシミュレータ2840を含む。示されているように、シミュレータ2840は、シミュレートされた環境2803内に、シミュレートされた表面2892aおよび2892bのようなシミュレートされた幾何学的形状を生成するために、基準データ2822(例えば、3Dマップデータおよび/もしくは他のマップ、または、RNDFデータもしくは同様の道路網データを含むルートデータ)を使用するように構成されている。シミュレートされた表面2892aおよび2892bは、道路に隣接する建造物の壁または側面をシミュレートすることができる。シミュレータ2840はまた、合成環境において動的な作用因子をシミュレートするために、動的オブジェクトデータを事前に生成または手続き的に生成することもできる。動的な作用因子の例は、シミュレートされた動的オブジェクト2801であり、これは、一定の速度を有するシミュレートされた自転車利用者を表す。シミュレートされた動的な作用因子は、任意選択的に、シミュレートされた自律車両を含む、シミュレートされた環境内の他の静的な作用因子および動的な作用因子に応答することができる。例えば、シミュレートされたオブジェクト2801は、予め設定された起動に従うのではなく、シミュレートされた環境2803内の他の障害物のために減速することができ、それによって、現実世界に存在する実際の動的な環境のより現実的なシミュレーションを生成する。
【0076】
シミュレータ2840は、シミュレートされた自律車両コントローラ2847を生成するように構成されることができ、シミュレートされた自律車両コントローラ2847は、知覚エンジン2866、ローカライザ2868、モーションコントローラ2862、およびプランナ2864の合成適合を含み、これらの各々は、シミュレートされた環境2803内で本明細書において記述されている機能を有することができる。シミュレータ2840はまた、異なるセンサモダリティおよび異なるセンサデータフォーマットとのデータ交換をシミュレートするためのシミュレートされたインターフェース(「I/F」)2849を生成することもできる。そのため、シミュレートされたインターフェース2849は、例えば、シミュレートされたライダセンサ2872から、パケット化されたデータのためのソフトウェアインターフェースをシミュレートすることができる。さらに、シミュレータ2840はまた、シミュレートされたAVコントローラ2847を実施するシミュレートされた自律車両2830を生成するように構成されることもできる。シミュレートされた自律車両2830は、シミュレートされたライダセンサ2872、シミュレートされたカメラまたは画像センサ2874、およびシミュレートされたレーダセンサ2876を含む。示されている例において、シミュレートされたライダセンサ2872は、光線追跡2892と一致するシミュレートされたレーザを生成するように構成されることができ、これによって、シミュレートされたセンサ戻り2891が生成される。シミュレータ2840は、ノイズの追加またはセンサデータに対する他の環境効果(例えば、シミュレートされたセンサ戻り2891に影響を与える追加された拡散または反射)をシミュレートすることができることに留意されたい。さらにまた、シミュレータ2840は、センサ機能不全、センサ誤較正、断続的なデータの機能停止などを含む、様々なセンサ欠陥をシミュレートするように構成されることができる。
【0077】
シミュレータ2840は、シミュレートされた自律車両2830の挙動のシミュレーションに使用するための、自律車両の機械的、静的、動的、および運動学的態様をシミュレートするための物理プロセッサ2850を含む。例えば、物理プロセッサ2850は、接触力学をシミュレートするための接触力学モジュール2851、シミュレートされているボディ間の相互作用をシミュレートするための衝突検出モジュール2852、および、シミュレートされている機械的相互作用間の相互作用をシミュレートするためのマルチボディ動態モジュール2854を含む。
【0078】
シミュレータ2840はまた、とりわけ、因果関係を決定するためにシミュレートされた環境2803の任意の合成的に生成された要素の機能を適合させるようにシミュレーションを制御するように構成されているシミュレータコントローラ2856をも含む。シミュレータ2840は、シミュレートされた環境2803の合成的に生成された要素の性能を評価するためのシミュレータエバリュエータ(simulator evaluator)2858を含む。例えば、シミュレータエバリュエータ2858は、シミュレートされた車両コマンド2880(例えば、シミュレートされたステアリング角度およびシミュレートされた速度)を分析して、そのようなコマンドが、シミュレートされた環境2803内のシミュレートされた活動に対する適切な応答であるか否かを判定することができる。さらに、シミュレータエバリュエータ2858は、遠隔操作者コンピューティングデバイス2804を介した遠隔操作者2808の、シミュレートされた自律車両2830との相互作用を評価することができる。シミュレータエバリュエータ2858は、シミュレートされた自律車両2830の応答を案内するために追加されることができる、更新されたマップタイルおよびルートデータを含む、更新された基準データ2827の効果を評価することができる。シミュレータエバリュエータ2858はまた、ポリシデータ2829が更新、削除、または追加されるときに、シミュレータAVコントローラ2847の応答を評価することもできる。シミュレータ2840の上記の記述は、限定であるようには意図されていない。そのため、シミュレータ2840は、静的特徴と動的特徴の両方を含む、シミュレートされた環境に対する自律車両の様々な異なるシミュレーションを実施するように構成されている。例えば、シミュレータ2840は、信頼性を保証するためにソフトウェアバージョンの変更を検証するために使用されることができる。シミュレータ2840はまた、車両動態特性を決定するために、および、較正目的のために使用されることもできる。さらに、シミュレータ2840は、自己シミュレーションによる学習を行うように、適用可能な制御および結果もたらされる軌道の空間を探索するために使用されることができる。
【0079】
図29は、いくつかの実施形態による、自律車両の様々な態様をシミュレートするためのフロー図の例である。フロー図2900は2902において開始し、三次元マップデータを含む基準データがシミュレータへと受信される。2904において、分類されているオブジェクトの運動パターンを規定する動的オブジェクトデータが取り出されることができる。2906において、シミュレートされた環境が、少なくとも三次元(「3D」)マップデータおよび動的オブジェクトデータに基づいて形成される。シミュレートされた環境は、1つまたは複数のシミュレートされた表面を含むことができる。2908において、シミュレートされた環境の部分を形成するシミュレートされた自律車両コントローラを含む自律車両がシミュレートされる。自律車両コントローラは、センサデータを受信するように構成されているシミュレートされた知覚エンジンおよびシミュレートされたローカライザを含むことができる。2910において、少なくとも1つのシミュレートされたセンサ戻りに関するデータに基づいて、シミュレートされたセンサデータが生成され、2912において、合成環境内のシミュレートされた自律車両によって動き(例えば、ベクトル化された推進)を引き起こすためのシミュレートされた車両コマンドが生成される。2914において、シミュレートされた自律車両が、予想される挙動と一致して(例えば、ポリシと一致して)挙動したか否かを決定するために、シミュレートされた車両コマンドが評価される。
【0080】
図30は、いくつかの実施形態による、マップデータを生成するためのフロー図の例である。フロー図3000は3002において開始し、軌道データが取り出される。軌道データは、一定の時間期間にわたって(例えば、ログ記録された軌道として)キャプチャされた軌道を含むことができる。3004において、少なくとも位置特定データが取り出されることができる。位置特定データは、一定の時間期間にわたって(例えば、ログ記録された位置特定データとして)キャプチャされることができる。3006において、位置特定データのサブセットを生成するために、カメラまたは他の画像センサが実施されることができる。そのため、取り出された位置特定データは、画像データを含むことができる。3008において、位置特定データのサブセットが、全体的場所(global position)(例えば、全体的位置(global pose))を識別するために整列される。3010において、三次元(「3D」)マップデータが、全体的位置に基づいて生成され、3012において、3次元マップデータが、例えば、手動ルートデータエディタ(例えば、RNDFエディタのような手動道路網データエディタを含む)、自動ルートデータジェネレータ(例えば、自動RNDFジェネレータを含む、自動道路網ジェネレータを含む)、自律車両の群、シミュレータ、遠隔操作者コンピューティングデバイス、および、自律車両サービスの任意の他の構成要素による実施のために利用可能である。
【0081】
図31は、いくつかの実施形態による、マッピングエンジンのアーキテクチャを示す図である。図3100は、軌道ログデータ3140、ライダログデータ3172、カメラログデータ3174、レーダログデータ3176、および他の任意選択のログ記録されたセンサデータ(図示せず)を受信するように構成されている3Dマッピングエンジンを含む。論理3141は、とりわけ、空間内の近傍のポイントが以前に訪れられていることをセンサデータが指示するか否かを検出するように構成されている環閉合ディテクタ(loop-closure detector)3150を含む。論理3141はまた、1つまたは複数の見当合わせポイントに対して、いくつかの事例においては3Dマップデータを含むマップデータを整列させるための見当合わせコントローラ3152をも含む。さらに、論理3141は、位置グラフデータ3145を生成するように構成されている全体的位置グラフジェネレータ(global pose graph generator)3143によって使用するための環閉合の状態を表現するデータ3142を提供する。いくつかの例において、位置グラフデータ3145はまた、見当合わせ改良モジュール3146からのデータに基づいて生成されることもできる。論理3144は、3Dマッパー(mapper)3154およびライダ自己較正ユニット3156を含む。さらに、論理3144は、3Dマップデータ3120(または、4Dマップデータのような他のマップデータ)を生成するために、センサデータおよび位置グラフデータ3145を受信する。いくつかの例において、論理3144は、最適な三次元マップを形成するためにセンサデータおよび/またはマップデータを融合するために切断符号付き距離関数(「TSDF」)を実施することができる。さらに、論理3144は、テクスチャおよび反射特性を含むように構成されている。3Dマップデータ3120は、手動ルートデータエディタ3160(例えば、ルートデータまたは他のタイプのルートもしくは基準データを操作するためのエディタ)、自動ルートデータジェネレータ3162(例えば、ルートデータまたは他のタイプの道路網もしくは基準データを生成するように構成されている論理)、自律車両の群3164、シミュレータ3166、遠隔操作者コンピューティングデバイス3168、および、自律車両サービスの任意の他の構成要素による使用のためにリリースされることができる。マッピングエンジン3110は、手動注釈または自動的に生成される注釈、および、ソナーまたは機器を備え付けられた環境(例えば、スマートストップランプ)から意味情報をキャプチャすることができる。
【0082】
図32は、いくつかの実施形態による、自律車両サービスアプリケーションを示す図である。図3200は、自律車両3230を介したユーザ3202の輸送手段を構成するために自律車両サービスプラットフォーム3201に接触するように構成されている自律車両サービスアプリケーション3240を含むモバイルコンピューティングデバイス3203を示す。示されているように、自律車両サービスアプリケーション3240は、コンピューティングデバイス(例えば、携帯電話3203など)上に存在するソフトウェアアプリケーションであってもよい輸送コントローラ3242を含むことができる。輸送コントローラ3242は、ユーザ3202がユーザの位置から目的地までの輸送手段を構成することができる自律車両および/または自律車両群に関係付けられる動作を受信、スケジュール、選択、または実施するように構成されている。例えば、ユーザ3202は、車両3230を要求するためにアプリケーションを開くことができる。アプリケーションは、マップを表示することができ、ユーザ3202は、例えば、地理上のフェンス領域内で自身の目的地を指示するためにピンをドロップすることができる。代替的に、アプリケーションは、近傍の予め指定された乗車位置のリストを表示してもよく、または、ユーザに、住所もしくは名前のいずれかによって目的地をタイプするためのテキスト入力フィールドを提供してもよい。
【0083】
さらに、示されている例について、自律車両サービスアプリケーション3240はまた、自律車両3230が接近しているときに、ユーザ3202が車両の近くの地理的領域、または、近傍にいることを検出するように構成されることができるユーザ識別コントローラ3246を含むこともできる。いくつかの状況において、ユーザ3202は、(例えば、トラック、自動車、タクシーを含む様々な他の車両、および都市環境において一般的である他の障害物に起因して)ユーザ3203による使用のための自律車両3230が接近しているときに、これを容易に知覚または識別しない場合がある。例において、自律車両3230は、(例えば、無線周波数(「RF」)信号の相対方向および信号強度を使用して)自律車両3230に対するユーザ3202の空間位置を通信および/または決定するために、ワイヤレス通信リンク3262(例えば、WiFiまたはBLEを含むBluetooth(登録商標)のようなRF信号を介して)を確立することができる。いくつかの事例において、自律車両3230は、例えば、GPSデータなどを使用して、ユーザ3202の近似の地理的位置を検出することができる。モバイルコンピューティングデバイス3203のGPS受信機(図示せず)は、自律車両サービスアプリケーション3240にGPSデータを提供するように構成されることができる。したがって、ユーザ識別コントローラ3246は、リンク3260を介して自律車両サービスプラットフォーム3201にGPSデータを提供することができ、自律車両サービスプラットフォーム3201は、リンク3261を介して自律車両3230にその位置を提供することができる。その後、自律車両3230は、ユーザのGPSデータを、車両のGPSによって導出される位置と比較することによって、ユーザ3202の相対距離および/または方向を決定することができる。
【0084】
自律車両3230はまた、ユーザの固有の顔特性に基づいて一般的にユーザ3202を検出するか、または、ユーザ3202の識別情報(例えば、名前、電話番号など)を識別するための顔検出アルゴリズムを実施するように構成されている論理のような、ユーザ3202の存在を識別するための追加の論理をも含むことができる。さらに、自律車両3230は、ユーザ3202を識別するためのコードを検出するための論理を含むことができる。そのようなコードの例は、QRコード、カラーコードなどのような特殊化された視覚コード、声によって起動または認識されるコードなどのような特殊化されたオーディオコードなどを含む。いくつかの事例において、コードは、セキュアな進入および/または脱出を保証するためにリンク3262を介して自律車両3230にデジタルに送信されることができる、符号化されたセキュリティキーであってもよい。さらに、ユーザ3202を識別するための、本明細書において記載されている技法のうちの1つまたは複数は、他者が自律車両3230に入るのを防止するように(例えば、ユーザ3202に到達する前に第三者が占有されていない自律車両に入らないことを保証するために)、ユーザ3202に進入および脱出の特権を与えるための安全確保された手段として使用されることができる。様々な例によれば、ユーザ3202を識別し、安全確保された進入および脱出を提供するための任意の他の手段がまた、自律車両サービスアプリケーション3240、自律車両サービスプラットフォーム3201、および自律車両3230のうちの1つまたは複数において実施されてもよい。
【0085】
ユーザ3202がその要求されている輸送手段に到達するのを支援するために、自律車両3230は、自律車両3230がユーザ3202に接近するときにその存在をユーザ3202に通知または他の様態で警告するように構成されることができる。例えば、自律車両3230は、特定の光パターンに従って、1つまたは複数の発光デバイス3280(例えば、LED)を起動することができる。特に、ユーザ3202の輸送手段要求にサービスするために自律車両3230が確保されていることを、ユーザ3202が容易に知覚することができるように、特定の光パターンが生成される。例として、自律車両3230は、ユーザ3202によって、そのような視覚的および時間的方法でその外部および内部ライトの「まばたき」または他のアニメーションとして知覚され得る光パターン3290を生成することができる。光のパターン3290は、ユーザ3202に対して、この車両が、ユーザが予約したものであることを識別するために、音声のパターンを伴ってまたは伴わずに生成されてもよい。
【0086】
いくつかの実施形態によれば、自律車両ユーザコントローラ3244は、自律車両の様々な機能を制御するように構成されているソフトウェアアプリケーションを実施することができる。さらに、アプリケーションは、自律車両を、その最初の目的地への移動中に方向転換またはルート変更するように構成されることができる。さらに、自律車両ユーザコントローラ3244は、内蔵論理に、例えばムード照明を行うために自律車両3230の内部照明を修正させるように構成されることができる。コントローラ3244はまた、オーディオのソース(例えば、Spotifyのような外部ソース、または、モバイルコンピューティングデバイス3203に局所的に格納されているオーディオ)を制御すること、搭乗のタイプを選択すること(例えば、所望される加速およびブレーキの積極性を修正すること、アクティブサスペンションパラメータを修正して「路面対処(road-handling)」特性のセットを選択して、振動を含む積極的な運転特性を実施すること、または、快適性のために振動が減衰されている「穏やかな搭乗(soft-ride)」を選択すること)などもできる。例えば、モバイルコンピューティングデバイス3203は、換気および温度のような、HVAC機能をも制御するように構成されることができる。
【0087】
図33図35は、様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す。いくつかの例において、コンピューティングプラットフォーム3300は、本明細書に記載された技法のいずれかを実行するために、コンピュータプログラム、アプリケーション、方法、プロセス、アルゴリズム、または他のソフトウェアを実装するために使用され得る。
【0088】
図33の様々な構造および/または機能は、図34および図35に適用可能であり、そのため、それらの図面のいくつかの要素は、図33の文脈において論じられ得ることに留意されたい。
【0089】
いくつかの場合において、コンピューティングプラットフォーム3300は、自律車両サービスプラットフォーム内の1つまたは複数のコンピューティングデバイス内に配置され得るコンピューティングデバイス3390a、自律車両3391、および/またはモバイルコンピューティングデバイス3390bなどの、任意のデバイス内に配置され得る。
【0090】
コンピューティングプラットフォーム3300は、情報を通信するためのバス3302または他の通信メカニズムを含み、これは、例えば、プロセッサを有するモバイルコンピューティングデバイスおよび/または通信デバイスを含むコンピューティングデバイスと通信するための通信リンク3321上でのポートを介した通信を促進するために、プロセッサ3304、システムメモリ3306(例えば、RAMなど)、記憶装置3308(例えば、ROMなど)、メモリ内キャッシュ(RAM 3306またはコンピューティングプラットフォーム3300の他の部分内で実施されることができる)、通信インターフェース3313(例えば、Ethernetまたはワイヤレスコントローラ、Bluetoothコントローラ、NFC論理など)のようなサブシステムおよびデバイスを相互接続する。プロセッサ3304は、1つまたは複数のグラフィックスプロセッシングユニット(「GPU」)、Intel(登録商標) Corporationによって製造されるもののような1つまたは複数の中央処理装置(「CPU」)、または1つまたは複数の仮想プロセッサ、およびCPUと仮想プロセッサとの任意の組み合わせによって実施されることができる。コンピューティングプラットフォーム3300は、限定ではないが、キーボード、マウス、オーディオ入力(例えば、発話-テキストデバイス)、ユーザインターフェース、ディスプレイ、モニタ、カーソル、タッチセンサ式ディスプレイ、LCDまたはLEDディスプレイ、および他のI/O関連デバイスを含む入出力デバイス3301を介して入力および出力を表現するデータを交換する。
【0091】
いくつかの例によれば、コンピューティングプラットフォーム3300は、システムメモリ3306に格納されている1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ3304によって特定の動作を実施し、コンピューティングプラットフォーム3300は、クライアント-サーバ構成、ピアツーピア構成において、または、スマートフォンなどを含む任意のモバイルコンピューティングデバイスとして実施されることができる。そのような命令またはデータは、記憶装置3308のような別のコンピュータ可読媒体からシステムメモリ3306へと読み出されることができる。いくつかの例において、ソフトウェア命令の代わりにまたはソフトウェアと組み合わせて、配線回路が実施のために使用されてもよい。命令は、ソフトウェアまたはファームウェアにおいて具現化されることができる。「コンピュータ可読媒体」という用語は、実行のためにプロセッサ3304に命令を提供することに関与する任意の有形媒体を参照する。そのような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む多くの形態をとることができる。不揮発性媒体は、例えば、光または磁気ディスクなどを含む。揮発性媒体は、システムメモリ3306のようなダイナミックメモリを含む。
【0092】
一般的な形態のコンピュータ可読媒体は、例えば、磁気ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気媒体、CDROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップもしくはカートリッジ、または、コンピュータがそこから読み出すことができる任意の他の媒体を含む。命令は、さらに、伝送媒体を使用して送信または受信されることができる。「伝送媒体」という用語は、機械によって実行するための命令を格納、符号化または搬送することが可能である任意の有形または無形媒体を含むことができ、デジタルもしくはアナログ通信信号、または、そのような命令の通信を促進するための他の無形媒体を含む。伝送媒体は、コンピュータデータ信号を伝送するためのバス3302を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。
【0093】
いくつかの例において、命令のシーケンスの実行は、コンピューティングプラットフォーム3300によって実施されることができる。いくつかの例によれば、コンピューティングプラットフォーム3300は、互いに協働して(または互いに対して非同期的に)命令のシーケンスを実施するために、通信リンク3321(例えば、LAN、PSTNのような有線ネットワーク、または、様々な規格およびプロトコルのWiFi、Bluetooth(登録商標)、NFC、Zig-Bee(登録商標)等を含む任意のワイヤレスネットワーク)によって任意の他のプロセッサに結合されることができる。コンピューティングプラットフォーム3300は、通信リンク3321および通信インターフェース3313を通じて、プログラムコード(例えば、アプリケーションコード)を含むメッセージ、データ、および命令を送信および受信することができる。受信されるプログラムコードは、受信されるときにプロセッサ3304によって実行されてもよく、および/または、後の実行のためにメモリ3306または他の不揮発性記憶装置に格納されてもよい。
【0094】
示されている例において、システムメモリ3306は、本明細書において記述されている機能を実施するための実行可能命令を含む様々なモジュールを含むことができる。システムメモリ3306は、オペレーティングシステム(「O/S」)3332、ならびに、アプリケーション3336および/または論理モジュール3359を含むことができる。図33に示されている例において、システムメモリ3306は、自律車両(「AV」)コントローラモジュール3350および/またはその構成要素(例えば、知覚エンジンモジュール、位置特定モジュール、プランナモジュール、および/またはモーションコントローラモジュール)を含み、それらのうちのいずれか、または、それらの1つもしくは複数の部分は、本明細書において記述されている1つまたは複数の機能を実施することによって、自律車両サービスを促進するように構成されることができる。
【0095】
図34に示されている例を参照すると、システムメモリ3306は、自律車両サービスプラットフォームモジュール3450および/またはその構成要素(例えば、遠隔操作者マネージャ、シミュレータなど)を含み、それらのうちのいずれか、または、それらの1つもしくは複数の部分は、本明細書において記述されている1つまたは複数の機能を実施することによって、自律車両サービスの管理を促進するように構成されることができる。
【0096】
図35に示されている例を参照すると、システムメモリ3306は、例えば、モバイルコンピューティングデバイスにおける使用のために、自律車両(「AV」)モジュールおよび/またはその構成要素を含む。モジュール3550の1つまたは複数の部分は、本明細書において記述されている1つまたは複数の機能を実施することによって、自律車両サービスの送達を促進するように構成されることができる。
【0097】
図33に戻って参照すると、本明細書に記載されるか、または参照によって組み込まれた特徴のいずれかの構造および/または機能は、ソフトウェア、ハードウェア、ファームウェア、回路、またはそれらの組み合わせにおいて実装され得る。上記の構造および構成要素ならびにそれらの機能は、1つまたは複数の他の構造または要素とともに集約されてもよいことに留意されたい。代替的に、要素およびそれらの機能は、もしあれば、構成部分要素に分割されることができる。ソフトウェアとして、本明細書に記載されるか、または参照によって組み込まれた技法は、様々なタイプのプログラミングまたはフォーマット言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、または技法を使用して実施されてもよい。ハードウェアおよび/またはファームウェアとして、本明細書に記載されるか、または参照によって組み込まれた技法は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)、または任意の他のタイプの集積回路を設計するように構成されている任意のレジスタ転送言語(「RTL」)のようなハードウェア記述言語を含む、様々なタイプのプログラミングまたは集積回路設計言語を使用して実施されてもよい。いくつかの実施形態によれば、「モジュール」という用語は、例えば、ハードウェア回路もしくはソフトウェアのいずれか、または、それらの組み合わせにおいて実施されるアルゴリズムもしくはその部分、および/または論理を参照することができる。これらは、変更されることができ、提供されている例または記述に限定されない。
【0098】
いくつかの実施形態において、図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550、またはそれらの構成要素のうちの1つもしくは複数、または本明細書において記述されている任意のプロセスもしくはデバイスは、携帯電話またはモバイルコンピューティングデバイスのようなモバイルデバイスと(例えば、有線またはワイヤレスで)通信することができ、または、その中に配置されることができる。
【0099】
いくつかの事例において、モバイルデバイス、または、1つもしくは複数のモジュール3359(図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550)もしくはその構成要素のうちの1つもしくは複数と通信する任意のネットワーク接続されているコンピューティングデバイス(図示せず)(または本明細書において記述されている任意のプロセスまたはデバイス)は、本明細書において記述されている特徴のうちのいずれかの構造および/または機能のうちの少なくともいくつかを提供することができる。本明細書に記載されるか、または参照によって組み込まれた図面に示されているように、本明細書に記載されるか、または参照によって組み込まれた特徴のうちのいずれかの構造および/または機能は、ソフトウェア、ハードウェア、ファームウェア、回路、またはそれらの任意の組み合わせにおいて実施されることができる。上記の構造および構成要素ならびにそれらの機能は、1つまたは複数の他の構造または要素とともに集約され、または、組み合わされてもよいことに留意されたい。代替的に、要素およびそれらの機能は、もしあれば、構成部分要素に分割されることができる。ソフトウェアとして、本明細書に記載されるか、または参照によって組み込まれた技法のうちの少なくともいくつかは、様々なタイプのプログラミングまたはフォーマット言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、または技法を使用して実施されてもよい。例えば、図面のうちのいずれかに示されている要素のうちの少なくとも1つは、1つまたは複数のアルゴリズムを表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能を提供するように構成されているハードウェアの部分を含む、論理の部分を表現することができる。
【0100】
例えば、図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550、またはその構成要素のうちの1つもしくは複数、または本明細書において記述されている任意のプロセスもしくはデバイスは、メモリ内の1つまたは複数のアルゴリズムを実行するように構成されている1つまたは複数のプロセッサを含む1つまたは複数のコンピューティングデバイス(すなわち、装着されるかまたは搬送されるかを問わず、ウェアラブルデバイス、オーディオデバイス(ヘッドフォンまたはヘッドセットなど)または携帯電話のような任意のモバイルコンピューティングデバイス)において実施されることができる。したがって、本明細書に記載されるか、または参照によって組み込まれた図面内の要素のうちの少なくともいくつかは、1つまたは複数のアルゴリズムを表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能を提供するように構成されているハードウェアの部分を含む、論理の部分を表現することができる。これらは、変更されることができ、提供されている例または記述に限定されない。
【0101】
ハードウェアおよび/またはファームウェアとして、本明細書に記載されるか、または参照によって組み込まれた構造および/または技法は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)、マルチチップモジュール、または任意の他のタイプの集積回路を設計するように構成されている任意のレジスタ転送言語(「RTL」)のようなハードウェア記述言語を含む、様々なタイプのプログラミング言語または集積回路設計言語を使用して実施されることができる。
【0102】
例えば、図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550、またはその構成要素のうちの1つもしくは複数、または本明細書において記述されている任意のプロセスもしくはデバイスは、1つまたは複数の回路を含む1つまたは複数のコンピューティングデバイスにおいて実施されることができる。したがって、本明細書に記載されるか、または参照によって組み込まれた図面内の要素のうちの少なくとも1つは、ハードウェアの1つまたは複数の構成要素を表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能を提供するように構成されている回路の部分を含む、論理の部分を表現することができる。
【0103】
いくつかの実施形態によれば、「回路」という用語は、例えば、1つまたは複数の機能を実行するためにそれを通じて電流が流れるいくつかの構成要素を含む任意のシステムを参照することができ、構成要素は、個別のおよび複雑な構成要素を含む。個別の構成要素の例は、トランジスタ、抵抗器、キャパシタ、インダクタ、ダイオードなどを含み、複雑な構成要素の例は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)を含む、メモリ、プロセッサ、アナログ回路、デジタル回路などを含む。それゆえ、回路は、電子構成要素および論理構成要素(例えば、例えばアルゴリズムの実行可能命令のグループのような命令を実行するように構成されており、したがって、回路の構成要素である論理)のシステムを含むことができる。いくつかの実施形態によれば、「モジュール」という用語は、例えば、ハードウェア回路もしくはソフトウェアのいずれか、または、それらの組み合わせにおいて実施されるアルゴリズムもしくはその部分、および/または論理を参照することができる(すなわち、モジュールは回路として実施することができる)。いくつかの実施形態において、アルゴリズムおよび/またはアルゴリズムが格納されているメモリは、回路の「構成要素」である。したがって、「回路」という用語は、例えば、アルゴリズムを含む構成要素のシステムをも参照することができる。これらは、変更されることができ、提供されている例または記述に限定されない。
【0104】
図36は、いくつかの例による、シミュレートされた環境においてシミュレートされた自律車両の1つまたは複数の機能をシミュレートするように構成されたシミュレータを示す図である。図3600は、例えば、自律車両サービスを構成することができる1つまたは複数の自律車両の群3630aのためのハードウェアおよびソフトウェア、またはそれらの組み合わせの有効性を決定するために、自律車両3600(または、センサのようなその構成要素のいずれか)の動作がシミュレートされ得る、シミュレートされた世界または環境3603を合成するように構成されたシミュレータ3640を示す。さらに、シミュレータ3640は、例えば、シミュレートされた自律車両3630が異なる運転状態またはシナリオにおいて走行するように車両ダイナミクスをシミュレートするように構成され得る。例えば、シミュレータ3640は、都市に特有であり得る特有の地形(例えば、サンフランシシコの丘、ニューヨーク市の都市交通など)上の運転、ならびに異なる運転状況(例えば、雨、氷などによる減少された車輪摩擦のシミュレーション)の間の運転を含む運転シナリオにおける自律車両3630の動作をシミュレートすることができる。示された例において、シミュレートされた環境3603は、シミュレートされた自律車両3630の走行の方向において増加している斜面または坂を有する道路セグメントを含み(すなわち、車両3630は、表記3686によって示されているように上り坂を走行している)、シミュレートされた自律車両3630が横断する可能性がある氷3684の形成を有するようにも示されている。
【0105】
さらに、シミュレータ3640は、レーザおよびカメラデータ、ならびに、レーダデータ、ソナーデータなどのような任意の他のデータに基づいて、シミュレートされた環境3603を生成することもできる。シミュレートされた環境3603は、例えば、カメラビジョン/画像データ(または任意の他のセンサデータ)と組み合わせてレーザスキャナを使用して生成された3Dポイントクラウドを含む3Dマップに基づき得る。センサデータの例は、限定はされないが、ライダデータ、画像またはカメラデータ、GPSデータ、慣性測定ユニット(「IMU」)データ、音響データ、オドメトリデータ、車輪角度データ、バッテリ充電レベル、1つまたは複数のドライブトレインまたは電気モータのための駆動電流、任意の構成要素の熱エネルギーデータ(例えば、温度)、加速または減速データ、1つまたは複数の車輪などに適用され得る制動圧力または制動力、ならびに、本明細書に記載された、またはさもなければ参照により本明細書に組み込まれた他のセンサデータを含む。シミュレータ3640は、シミュレートされた自律車両3630上または内に配置されたセンサによって検出され得るセンサ戻りデータをシミュレートすることもできる。シミュレートされたセンサ戻りデータの例は、道路に隣接する建物のファサードのような外部特徴の一部3672から反射されたシミュレートされたライダレーザ戻り3671を含む。
【0106】
図3600は、動的オブジェクト3680および3682a、ならびにシミュレートされた道路状態(例えば、氷3684)を含むシミュレートされた環境3603を生成するために協力して動作することができるデータモデラ3620およびシミュレータ3640を示す。シミュレータ3640は、シミュレートされた自律車両3630の挙動をシミュレートする際に使用するための機械的側面、静的側面、動的側面、および運動学的側面をシミュレートするように構成された物理プロセッサ3650を含むことができる。例えば、物理プロセッサ3650は、シミュレートされた接触機構、ならびに、シミュレートされたボディ間の相互作用、および/またはシミュレートされた機械的相互作用を含むことができる。シミュレータ3640は、数ある中で、因果関係を決定し評価するために、シミュレートされた環境3603の任意の合成的に生成された要素の機能性を適応させるためにシミュレーションを制御するように構成されたシミュレータコントローラ3656を含むこともできる。図36図3600内に示されている要素は、本明細書に記載された、または参照により本明細書に組み込まれた1つまたは複数の他の図面に関連して記述されている、同様に名付けられた要素としての構造および/または機能を含むことができることに留意されたい。
【0107】
いくつかの例において、データモデラ3620は、自律車両の群3630aからのログファイルデータを受信し、ログファイルデータは、限定はされないが、オブジェクトデータ3631、マップデータ3633、センサデータ3635、および車両構成要素データ3637、ならびに、群3630a内の1つまたは複数の自律車両の構造および/または機能を記述する他のデータを含む、様々なタイプのデータを提供する。いくつかの例において、上記で説明されたデータは、その年の異なる時間および季節において、多くの異なる条件の下で走行された多くのマイルにわたって記録され得る。記録されたデータは、道路ネットワークを任意の回数走行することができる任意の数の自律車両から生成され得る。さらに、データモデラ3620は、道路(例えば、斜面、(例えば、隆起、くぼみなどによる)粗さ、道路の端に向かう傾斜角などのような特徴)、摩擦の典型的なもしくは予測される値または表面タイプ、道路ネットワークの1つまたは複数の部分における確率的に予測される動的オブジェクト(例えば、シミュレートされた自律車両3630は、その日の終わっている学校の近くで動的オブジェクトとして多数の子供に遭遇することを予測することができる)、および任意の他の特性を特性化する論理を含むことができる。データモデラ3620は、様々な気象条件の下で道路を特性化する論理をさらに含むことができる。したがって、データモデラ3620は、道路ネットワークまたは任意の他の経路もしくは道路セグメントのデータモデルを形成するために、道路の特性を表すデータを使用することができる。いくつかの場合において、データモデラ3620内の論理は、(例えば、群3630aによって)走行された数十万~数百万マイルに基づくデータ(例えば、センサデータ)、または、同じまたは異なる道路に関するより少ないもしくはより多い量の距離にわたって記録された任意の他の量のデータを集約するか、または他の方法で融合することができる。
【0108】
示されているように、データモデラ3620は、動的オブジェクトデータモデラ3621、環境モデラ3623、センサモデラ3625、および車両モデラ3627、または、シミュレートされた環境3603の1つまたは複数の部分を生成するためにシミュレータ3640によって使用され得る1つまたは複数のデータモデルを生成するための任意の他のハードウェアおよび/もしくはそのソフトウェア実装形態を含む。動的オブジェクトデータモデラ3621は、群3630aの自律車両が特性データを取得する環境内の1つまたは複数のオブジェクトの特性を表すデータ(例えば、記録されたデータ)を受信するように構成され得る。そのようなデータは、オブジェクトのクラスを(例えば、歩行者、ペットまたは動物、自転車に乗っている人、自動車などとして)視覚的に定義することができる3Dポイントクラウドまたは別の他のデータ表現を含むことができ、それによって、分類されたオブジェクトは、(例えば、単位時間あたりの)特定のレベルのダイナミズムおよび/または動きの予測される範囲と関連付けられ得、それによって、動きの予測される範囲は、少なくともいくつかの例において、(例えば、予測される動きのベクトルによって表される)動きの予測される方向を記述することもできる。いくつかの例によれば、動きの予測される範囲は、オブジェクトが静的オブジェクトから動的オブジェクトに遷移することができる確率、および/またはオブジェクトの動きに関連付けられた速度もしくは加速度を記述することができる。
【0109】
上記を考慮して、動的オブジェクトデータモデラ3621は、任意の数のオブジェクトを識別するように構成され得、オブジェクトを任意の数のクラスに分類するようにさらに構成され得る。いくつかの例によれば、動的オブジェクトデータモデラ3621は、ある時点において静的であり得、別の時点において動的であり得るオブジェクトを含む、静的オブジェクトを識別し分類することもできる(例えば、ある時点において道ばたに座っているペットの犬3682bは、別の時点において突然ジャンプして道路に走り込む可能性がある)。例示するために、動的オブジェクトデータモデラ3621が、オブジェクト3682bを犬として分類することができ、動的特性および/または動きの予測される範囲を犬に関連付けることができることを考える。さらに、動的オブジェクトデータモデラ3621は、動的オブジェクト3680、または動いている犬として示された動的オブジェクト3682aのような、他の動的オブジェクトとの相互作用に関してオブジェクト3682bの予測動作を記述するデータモデルを生成することができる。動的オブジェクト3682aの不在において、犬3682bは、アクティビティ(例えば、前方に跳ね、走っている)に関与する第1の確率に関連付けられ得る。しかしながら、犬3682bが(動きの予測される範囲3683を有する)犬3682aと遭遇または相互作用する(または追いかける)イベントにおいて、犬3682bがアクティビティに関与する確率は、急激に増加する可能性がある。例えば、犬3682bが前方に跳ね、犬3682aを本能的に追いかける確率は、(例えば、記録されたデータに基づく)約10%から約85%に増加する可能性がある。このデータモデルに基づいて、シミュレータは、動的オブジェクトデータモデラ3621からの導出されたモデル化された挙動に基づいて、1つの動的オブジェクト3682aではなく、ナビゲーションおよびプランニングにおいて考慮するために2つの動的オブジェクト3682aおよび3682bを含むようにシミュレータされた環境3603を生成することができる。
【0110】
動的オブジェクトデータモデラ3621は、任意のオブジェクトに関する分類を、動きに関連するデータ(例えば、動きの予測される範囲、速度、動きの予測される経路など)として説明するデータモデルを生成することができる。図3600にさらに付け加えると、動的オブジェクトデータモデラ3621は、(例えば、横断歩道内の動きの方向を含む)動きの予測される範囲に関連付けられたシミュレートされた動的オブジェクト3680(例えば、ジョガー)のレートを生成するためにシミュレータ3640が使用することができるデータモデルを生成することができる。他の動的オブジェクトが分類され得、いくつかの場合において、さらにサブ分類され得る。例えば、道路セグメントは、いくつかのバーまたはナイトクラブに隣接する場合があり、それによって、分類された動的オブジェクト(例えば、若い成人の歩行者)は、昼間に第1の予測される挙動または動きを有する可能性があるが、バーおよびナイトクラブが閉まった後の2:00amにおいて、他の予測される挙動(または予測不可能な挙動)を示す可能性があり、または示すように予測され得る。シミュレータ3640は、自律車両3630が物理的に走行する物理的環境に対するシミュレートされた環境3603における強化された精度を提供するために、モデラ3621によって生成された動的オブジェクトデータモデルと共に使用することができる。
【0111】
環境モデラ3623は、いくつかの例においては静的部分のような、シミュレートされた環境3603の様々な部分を生成するように構成され得る。示された例において、環境モデラ3623は、物理的外部環境の幾何学的形状を記述する環境モデルを生成するためにマップデータ3633を受信することができる。環境モデラ3623によって生成された環境モデルデータは、例えば、3Dマップデータ3633に基づいてシミュレートされた環境3603を生成するためにシミュレータ3640によって使用され得る。いくつかの場合において、環境モデラ3623が、3D(または4D)シミュレートされた環境3603を生成するために、本明細書に記載された、または参照により本明細書に組み込まれたようなマッピングエンジンまたはマッパー構造および/もしくは機能の1つまたは複数の部分を含むことができ、またはそれと同様であり得る。
【0112】
センサモデラ3625は、自律車両の群3630aから記録されたデータとして抽出されたセンサデータ3635に基づいて、様々なタイプのセンサの1つまたは複数のセンサデータの様々な機能を表すデータモデルを生成するように構成される。例えば、センサデータ3635は、限定はされないが、ライダデータ、レーダデータ、ソナーデータ、画像/カメラデータ、音響データ、超音波データ、IMUに関連するデータ、オドメトリデータ、車輪角度データ、および任意の他のタイプのセンサデータのような、1つまたは複数のタイプのセンサデータのうちのセンサデータの1つまたは複数のサブセットを含むことができる。シミュレータ3640は、シミュレートされた自律車両3630内に実装された任意の数のセンサをモデル化するために、センサモデラ3625によって生成されたデータを使用することができる。例えば、シミュレートされ得る自律車両コントローラ(図示せず)が、その少なくとも1つが表面部分3672から反射されるようなレーザ戻り3671として示されたレーザスキャンをレイトレースするように構成されたシミュレートされた自律車両3630またはシミュレートされたライダセンサの位置3670を識別するように構成され得ることを考える。さらに、自律車両コントローラは、外部幾何学的形状3672(ならびにそのような幾何学的形状の範囲または位置)を識別するために3Dマップデータにアクセスすることができ、また、シミュレートされたライダセンサの位置を記述するために、x座標、y座標、z座標、ロール値、ピッチ値、およびヨー値のうちの1つまたは複数を識別するように構成され得る。いくつかの例において、シミュレータ3640のシミュレータコントローラ3656は、シミュレーションの精度を決定するために、シミュレートされたレーザ戻り3671に関するシミュレートされた値および測定値(例えば、強度、範囲、反射率など)を、経験的に導出されたライダデータ(例えば、センサデータ3635)に対して比較するように構成され得る。
【0113】
車両モデラ3627は、様々な車両構成要素に関連付けられた様々なタイプおよび値を表すデータを受信するように構成され得、自律車両の機械的および/または電気的構成要素の構造的および/または機能的特性を表すデータを生成するようにさらに構成され得る。さらに、車両モデラ3627は、自律車両のダイナミクスおよびキネマティクス、ならびに、電気的および機械的機能性を記述する車両構成要素データモデルを生成することができる。
【0114】
データモデラ3620はまた、あるタイプのデータの1つまたは複数のサブセットを、別のタイプのデータの1つまたは複数のサブセットに関連付けるように構成され得る。様々な例によれば、データモデラ3620は、自律車両の様々な状態を決定するために、オフラインまたはオンラインの深層学習技法を実施することができる。状態データは、シミュレートされた自律車両3630によるシミュレートされた応答が適切であるかどうかを決定するために、様々な論理モジュールを評価するために、シミュレータ3640および物理プロセッサ3650によって使用され得る。例えば、データモデラ3620は、描画された道路セグメントを上り坂3686の傾斜を有するものとしてモデル化することができ、さらに、上り坂を走行するために車輪によって加えられる加速度および/またはトルクの規範的な範囲を含むことができる。したがって、シミュレートされた自律車両3630は、車輪が氷3684のような「イベント」に遭遇すると、摩擦を失う(すなわち、車輪がスピンする)可能性がある。この場合において、シミュレータコントローラ3656は、シミュレーションの精度を確認し、適切な方策を取るために、車輪の角速度の増加されるレートを予期することができる。別の例として、シミュレートされた自律車両3630が横断歩道の前に停止するまで減速していると考える。そのようにして、シミュレータコントローラ3656は、減速度と特定のレベルの制動(例えば、制動力または圧力)とを検出することを予期し、そうでなければ問題が決定され得る。別の例として、シミュレータコントローラ3656が、シミュレートされた自律車両3630の操舵システムが右またはオフロードに引っ張られていることを決定すると考える。したがって、シミュレータ3640は、(例えば、マップデータ3633に基づいて)道路が右に傾いている道路状況をシミュレートすることができ、フラットタイヤをシミュレートすることができ、またはミスアライメントをシミュレートすることができる。
【0115】
いくつかの例によれば、シミュレータは、走っている犬として示された分類された動的オブジェクト3682aの動きの範囲3683に基づいて、シミュレートされた自律車両3630の1つまたは複数の機能のデータ表現の予測された応答をシミュレートするように構成される。シミュレータ3640は、シミュレートされた自律車両3630と、分類された動的オブジェクト3682aの動きの予測される範囲3683との間の距離3685の変化率を計算するようにさらに構成され得、(例えば、位置、距離、時間などに関して)閾値が超えられた場合、シミュレータ3640は、距離3685の5の計算された変化率に基づいて、シミュレートされた自律車両3630にシミュレートされた環境3603内のシミュレートされた動的オブジェクト3682aを回避させるように構成される。いくつかの場合において、自律車両3630は、動的オブジェクト3682aとの衝突を回避するために運転を停止することができる。いくつかの他の場合において、シミュレータ3640は、シミュレートされた自律車両3630の車内の1つまたは複数の安全システムの使用をシミュレートするために、安全システムシミュレータ3690を実装することができる。安全システムの例は、動的オブジェクト3682aに警告するためにビームフォーミングおよび/またはライトを介して音を誘導することを含み、または、外部および/または内部安全システムを実装することができる。シミュレータ3640によってシミュレートされ得る安全システムの例は、そのすべてが参照により本明細書に組み込まれる、「自律車両の方向性を示すための能動照明を構成するシステム」と題された2015年11月4日に出願された特許文献1(代理人整理番号Z00-012)、「音響ビームフォーミングを介する外部環境とのロボット車両通信のための方法」と題された2015年11月4日に出願された特許文献2(代理人整理番号Z00-013)、「自律車両の状態を周囲環境内のエンティティに通信するための能動的照明制御」と題された2015年11月4日に出願された特許文献3(代理人整理番号Z00-017)、「ロボット車両のための強靭な安全システム」と題された2015年11月4日に出願された特許文献4(代理人整理番号Z00-018)、「ロボット車両のための内部安全システム」と題された2015年11月4日に出願された特許文献5(代理人整理番号Z00-019)、および2015年11月4日に出願された特許文献6(代理人整理番号Z00-022)において記載されている。
【0116】
いくつかの例によれば、シミュレータ3640は、ラベル付け(例えば、意味ラベル付け)のための「グラウンドトルース」データと、どのアルゴリズムがテストまたは検証され得るのかの識別とを生成し使用することができる(例えば、マップデータ3633または任意のモデル化されたデータへの変更を検証すると共に、ソフトウェアの変更を検証する)。さらに、シミュレータ3640は、動的オブジェクト3680および3682aのような、シミュレートされた環境3603内の動的オブジェクトまたはエージェントを識別するために、例えば、コンピュータビジョンクラシファイヤ(computer vision classifier)および深層ニューラルネットワークに基づくクラシファイヤトレーニングのために使用され得る(例えば、ベイジアンまたは確率的推論(probabilistic inference)アルゴリズム、ならびに他の同様の技法を実装する)。データモデラ3620を実装する技法は、シミュレーションの文脈において使用され得るが、データモデラ3620は、本明細書に記載された、または参照により本明細書に組み込まれた任意の構成要素において実装され得ることに留意されたい。例えば、知覚エンジンまたはシステムは、データモデラ3620の1つまたは複数の部分、ならびに、シミュレータ3640の文脈において説明された任意の他の構造および/または機能を含むか、または実装することができる。図36において示された、または、本明細書に記載された、もしくは参照により本明細書に組み込まれた構成要素のいずれかは、ハードウェアもしくはソフトウェア、またはそれらの組み合わせにおいて実装され得ることに留意されたい。
【0117】
図37は、いくつかの例による車両モデラを示す。図3700は、ドライブトレイン(例えば、モータ)3733と、車軸3735と、車輪3737とを含む推進ユニット3732と、ブレーキユニット3720と、操舵ユニット3734とを含む自律車両の部分3700を示し、その例は、参照により本明細書に組み込まれる、「ロボット車両の四分円構成」と題された2015年11月4日に出願された特許文献7(代理人整理番号Z00-021)に記載されている。車両モデラ3727は、感知されたデータ(例えば、車輪角度3711、タイヤの角速度3713など)を含む、部分3700内の車両構成要素の動作性を記述するモデルデータを含む車両構成要素データ3799を受信するように構成される。車両モデラ3727は、自律車両の1つまたは複数の構成要素を表すデータを受信し、自律車両の1つまたは複数の構成要素に関連付けられた構成要素特性(例えば、モータ3733のモータ電流)を表すデータを識別するように構成される。車両モデラ3727は、シミュレータがシミュレートされた自律車両の挙動を予測するためにデータモデルに基づいて1つまたは複数の構成要素(例えば、推進ユニット3732、ブレーキユニット3720、操舵ユニット3734、および類似のもの)の動作をシミュレートするように構成され得る構成要素特性に基づいて、1つまたは複数の構成要素のデータモデルを生成する。いくつかの場合において、シミュレータは、イベント特性(例えば、氷に覆われた道路の部分の特性を記述するイベントモデル)を表すデータを含むイベントデータモデルにアクセスするように構成され得る。次いで、シミュレータは、イベント特性データ(例えば、減少された摩擦)に基づいて、シミュレートされた環境内のイベント(例えば、アイスパッチ)をシミュレートするように構成され得る。
【0118】
図38は、いくつかの例によるセンサモデラの例を示す図である。図3800は、センサモデラ3825を含み、それは、今度は、センサデータ3835に基づいてシミュレートされたセンサタイプデータ3837を生成するためにセンサタイプモデラ3803とセンサ誤差モデラ3805とを含むように示されている。したがって、センサモデラ3825は、対応するシミュレートされたセンサデータ3837を生成するために、異なるタイプおよび異なる量のセンサデータ3835を受信するように構成される。いくつかの例によれば、センサモデラ3825は、1つまたは複数の自律車両が通過する環境において得られたセンサデータ3835を表すデータを受信するように構成され得、特性化されたセンサデータを形成するためにセンサデバイス(例えば、ライダセンサ)を特性化するためにセンサタイプモデラ3803を使用してセンサデータのサブセットをモデル化するようにさらに構成され得る。したがって、センサタイプモデラ3803は、特性化されたセンサデータに基づいて、シミュレートされたセンサデバイスを表すデータ3806を生成することができる。
【0119】
いくつかの場合において、センサ誤差モデラ3805は、センサデバイスに関連付けられた測定偏差(例えば、誤差)のサブセットを表すデータをモデル化するように構成され得る。センサタイプモデラ3803は、(例えば、センサ誤差モデラ3805によって生成されるような)測定偏差のサブセットに基づいて、シミュレートされたセンサデバイスを表すデータを調整するように構成され得る。例として、センサタイプモデラ3803は、特性化されたライダデータを形成するためにライダセンサを特性化するためにライダセンサデータのサブセットをモデル化し、シミュレートされたライダデバイスを表すデータを生成するように構成され得る。さらに、ライダ測定偏差のサブセットに基づいて、シミュレートされたライダデバイスを表すデータを調整するために、ライダ測定偏差または誤差のサブセットがモデル化され使用され得る。
【0120】
図39は、いくつかの例による、動的オブジェクトデータモデラの例を示す図である。図3900は、シミュレートされたオブジェクトデータ3941を生成するためのオブジェクトデータ3931を受信するように構成された動的オブジェクトデータモデラ3921を含む。この例において、動的オブジェクトデータモデラ3921は、動的オブジェクトの分類を識別し、分類に関連付けられた特性(または予測された挙動)のセットを表すデータを識別するように構成されたオブジェクトデータクラシファイヤ(object data classifier)3922(例えば、数ある中でベイズクラシファイヤ)を含む。シミュレータは、次いで、シミュレートされた環境内のシミュレートされた動的オブジェクトの動きの予測される範囲をシミュレートするために特性のセットを使用するように構成され得る。示されているように、オブジェクトデータクラシファイヤ3922は、動的オブジェクト3932、3933、3934、および3938を、第1の動物動的オブジェクト、第2の動物動的オブジェクト、歩行者動的オブジェクト、およびスケートボーダー動的オブジェクトとして分類する。分類に基づいて、オブジェクトデータキャラクタライザ(object data characterizer)3951、3952、3953、および3959は、例えば、識別された動的オブジェクトに基づいて動きの予測される範囲を表すデータを提供するように構成される。いくつかの場合において、オブジェクトデータキャラクタライザは、動きの予測される範囲に関連する確率に基づいて、ランダム化されたデータを実現することができる。ランダム化されたデータに基づいて、シミュレータは、ランダムに跳ね上がって(例えば、ボールなどの後に)街路に駆け込む犬のようなオブジェクトのおそらくはまれな挙動をシミュレートすることができ得る。
【0121】
図40は、いくつかの例による、シミュレートされた環境を生成することの例を示すフロー図である。フロー4000は、1つまたは複数の自律車両からの環境内の動的オブジェクトの特性を表すデータが受信される4002で開始する。4004において、分類された動的オブジェクトが識別される。4006において、分類された動的オブジェクトに関連付けられた動的さに関連する特性を表すデータが識別される。4008において、分類された動的オブジェクトのデータモデルが、分類されたデータオブジェクトの動的さに関連する特性に基づいて形成される。4010において、分類された動的オブジェクトの動きの予測される範囲が、シミュレートされた動的オブジェクトを形成するために、シミュレートされた環境内でシミュレートされる。4012において、シミュレートされた自律車両の1つまたは複数の機能のデータ表現の予測される応答がシミュレートされ得る。フロー図の各部分は、フロー図の他の部分に依存せずにまたは依存して実行され得ると同時に、フロー図の任意の1つまたは複数の他の部分と連続的にまたは同時に実行され得るので、このフロー図または本明細書における他のフロー図に示された順番は、様々な機能を線形的に実行する必要性を暗示することを意図されないことに留意されたい。
【0122】
図41は、様々な実施形態による、自律車両サービスをシミュレートするために、様々なシミュレータに関連する機能性および/または構造を提供するように構成された様々なコンピューティングプラットフォームの例を示す。いくつかの例において、コンピューティングプラットフォーム3300は、上記で説明された技法を実行するために、コンピュータプログラム、アプリケーション、方法、プロセス、アルゴリズム、または他のソフトウェアを実施するために使用され得る。図33の様々な構造および/または機能性は、図41に適用可能であり得、そのようにして、これらの図におけるいくつかの要素は、図33の文脈において議論され得ることに留意されたい。図41図4100において示されている要素は、本明細書において記載された1つまたは複数の他の図面に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができることに留意されたい。
【0123】
図41に示された例を参照すると、システムメモリ3306は、自律車両サービスプラットフォームモジュール4150および/またはその構成要素(例えば、データモデラモジュール4152、シミュレータモジュール4154など)を含み、そのいずれか、またはその1つもしくは複数の部分は、本明細書に記載された1つまたは複数の機能を実装することによって自律車両車両サービスのシミュレーションを促進するように構成され得る。いくつかの場合において、コンピューティングプラットフォーム3300は、自律車両サービスプラットフォーム、自律車両3391、および/またはモバイルコンピューティングデバイス3390b内に配置され得る、コンピューティングデバイス3390aのような任意のデバイス内に配置され得る。
【0124】
図33図35は、様々な実施形態による、自律車両サービスの構成要素に様々な機能性を提供するように構成された様々なコンピューティングプラットフォームの例を示す。いくつかの例において、コンピューティングプラットフォーム3300は、本明細書に記載された技法のいずれかを実行するために、コンピュータプログラム、アプリケーション、方法、プロセス、アルゴリズム、または他のソフトウェアを実装するために使用され得る。
【0125】
図33の様々な構造および/または機能性は、図34および図35に適用可能であり、そのようにして、これらの図におけるいくつかの要素は、図33の文脈において議論され得ることに留意されたい。
【0126】
いくつかの場合において、コンピューティングプラットフォーム3300は、自律車両サービスプラットフォーム、自律車両3391、および/またはモバイルコンピューティングデバイス3390b内の1つまたは複数のコンピューティングデバイス内に配置され得る、コンピューティングデバイス3390aのような任意のデバイス内に配置され得る。
【0127】
コンピューティングプラットフォーム3300は、例えば、プロセッサを有するモバイルコンピューティングデバイスおよび/または通信デバイスを含むコンピューティングデバイスと通信するために通信リンク3321上のポートを介する通信を促進するために、プロセッサ3304、システムメモリ3306(例えば、RAMなど)、記憶装置3308(例えば、ROMなど)、(RAM3306内、またはコンピューティングプラットフォーム3300の他の部分内に実装され得る)インメモリキャッシュ、通信インターフェース3313(例えば、イーサネットまたはワイヤレスコントローラ、Bluetoothコントローラ、NFC論理など)のような、サブシステムおよびデバイスを相互接続する、情報を通信するためのバス3302または他の通信機構を含む。プロセッサ3304は、1つもしくは複数のグラフィックス処理ユニット(「GPU」)、Intel(登録商標)コーポレーションによって製造されたものなどの1つもしくは複数の中央処理装置(「CPU」)、または1つもしくは複数の仮想プロセッサ、ならびにCPUおよび仮想プロセッサの任意の組み合わせを用いて実装され得る。コンピューティングプラットフォーム3300は、限定はされないが、キーボード、マウス、オーディオ入力(例えば、音声-テキストデバイス)、ユーザインターフェース、ディスプレイ、モニタ、カーソル、タッチセンシティブディスプレイ、LCDまたはLEDディスプレイ、および他のI/O関連デバイスを含む入出力デバイス3301を介して、入力および出力を表すデータを交換する。
【0128】
いくつかの例によれば、コンピューティングプラットフォーム3300は、システムメモリ3306内に記憶された1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ3304によって特定の動作を実行し、コンピューティングプラットフォーム3300は、クライアント-サーバ構成、ピアツーピア構成において、または、スマートフォンおよび類似のものを含む任意のモバイルコンピューティングデバイスとして実装され得る。そのような命令またはデータは、記憶装置3308のような別のコンピュータ可読媒体からシステムメモリ3306に読み込まれ得る。いくつかの例において、実装のためのソフトウェア命令の代わりに、またはそれと組み合わせてハードワイヤード回路が使用され得る。命令は、ソフトウェアまたはファームウェア内に埋め込まれ得る。「コンピュータ可読媒体」という用語は、実行のためにプロセッサ3304に命令を提供することに関与する任意の有形の媒体を指す。そのような媒体は、限定はされないが、不揮発性媒体および揮発性媒体を含む多くの形態をとることができる。不揮発性媒体は、例えば、光学ディスクまたは磁気ディスクおよび類似のものを含む。揮発性媒体は、システムメモリ3306のようなダイナミックメモリを含む。
【0129】
コンピュータ可読媒体の一般的な形態は、磁気ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他の磁気媒体、CDROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップもしくはカートリッジ、または、コンピュータが読み取ることができる任意の他の媒体を含む。命令はさらに、送信媒体を使用して送信または受信され得る。「送信媒体」という用語は、機械による実行のための命令を記憶、符号化、または搬送することができる任意の有形または無形の媒体を含むことができ、そのような命令の通信を促進するために、デジタルもしくはアナログ通信信号、または他の無形の媒体を含む。伝送媒体は、コンピュータデータ信号を伝送するためのバス3302を備えるワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。
【0130】
いくつかの例において、命令のシーケンスの実行は、コンピューティングプラットフォーム3300によって実行され得る。いくつかの例によれば、コンピューティングプラットフォーム3300は、互いに協調して(または非同期に)命令のシーケンスを実行するために、通信リンク3321(例えば、LAN、PSTNのような有線ネットワーク、または、様々な規格およびプロトコルのWiFi、Bluetooth(登録商標)、NFC、Zig-Beeなどを含む任意のワイヤレスネットワーク)によって任意の他のプロセッサに結合され得る。コンピューティングプラットフォーム3300は、通信リンク3321および通信インターフェース3313を介して、プログラムコード(例えば、アプリケーションコード)を含む、メッセージ、データ、および命令を送信および受信することができる。受信されたプログラムコードは、それが受信されると、プロセッサ3304によって実行され得、および/または、後の実行のためにメモリ3306もしくは他の不揮発性記憶装置内に記憶され得る。
【0131】
示された例において、システムメモリ3306は、本明細書に記載された機能性を実装するために実行可能な命令を含む様々なモジュールを含むことができる。システムメモリ3306は、オペレーティングシステム(「O/S」)3332、ならびに、アプリケーション3336および/または論理モジュール3359を含むことができる。図33に示された例において、システムメモリ3306は、自律車両(「AV」)コントローラモジュール3350および/またはその構成要素(例えば、知覚エンジンモジュール、位置特定モジュール、プランナモジュール、および/またはモーションコントローラモジュール)を含み、そのいずれか、またはその1つもしくは複数の部分は、本明細書に記載された1つまたは複数の機能を実装することによって自律車両サービスを促進するように構成され得る。
【0132】
図34に示された例を参照すると、システムメモリ3306は、自律車両サービスプラットフォームモジュール3450および/またはその構成要素(例えば、遠隔操作者マネージャ、シミュレータなど)を含み、そのいずれか、またはその1つもしくは複数の部分は、本明細書に記載された1つまたは複数の機能を実装することによって自律車両サービスを管理することを促進するように構成され得る。
【0133】
図35に示された例を参照すると、システムメモリ3306は、例えば、モバイルコンピューティングデバイスにおいて使用するための、自律車両(「AV」)モジュールおよび/またはその構成要素を含む。モジュール3550の1つまたは複数の部分は、本明細書に記載された1つまたは複数の機能を実装することによって自律車両サービスの配車を促進するように構成され得る。
【0134】
図33に戻って参照すると、本明細書に記載された、または参照により本明細書に組み込まれた特徴のうちのいずれかの構造および/または機能は、ソフトウェア、ハードウェア、ファームウェア、回路、またはそれらの組み合わせにおいて実施されることができる。上記の構造および構成要素ならびにそれらの機能性は、1つまたは複数の他の構造または要素と集約されてもよいことに留意されたい。代替的に、要素およびそれらの機能性は、もしあれば、構成部分要素に分割されることができる。ソフトウェアとして、本明細書に記載された技法、または参照により本明細書に組み込まれた技法は、様々なタイプのプログラミングまたはフォーマッティング言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、または技法を使用して実施されてもよい。ハードウェアおよび/またはファームウェアとして、本明細書に記載された、または参照により本明細書に組み込まれた技法は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)、または任意の他のタイプの集積回路を設計するように構成されている任意のレジスタ転送言語(「RTL」)のようなハードウェア設計言語を含む、様々なタイプのプログラミング言語または集積回路設計言語を使用して実施されてもよい。いくつかの実施形態によれば、「モジュール」という用語は、例えば、ハードウェア回路もしくはソフトウェアのいずれか、または、その組み合わせにおいて実装されるアルゴリズムもしくはその部分、および/または論理を参照することができる。これらは、変更されることができ、提供されている例または説明に限定されない。
【0135】
いくつかの実施形態において、図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550、またはそれらの構成要素のうちの1つもしくは複数、または本明細書に記述されている任意のプロセスもしくはデバイスは、携帯電話もしくはコンピューティングデバイスのようなモバイルデバイスと(例えば、有線もしくはワイヤレスで)通信することができ、またはその中に配置されることができる。
【0136】
いくつかの事例において、モバイルデバイス、または、1つもしくは複数のモジュール3359(図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550)またはその構成要素のうちの1つもしくは複数と通信する任意のネットワーク接続されているコンピューティングデバイス(図示せず)(または本明細書において記述されている任意のプロセスまたはデバイス)は、本明細書において記述されている特徴のうちのいずれかの構造および/または機能のうちの少なくともいくつかを提供することができる。本明細書に記載された、または参照により本明細書に組み込まれた図に示されているように、本明細書に記載された、または参照により本明細書に組み込まれた特徴のいずれかの構造および/または機能は、ソフトウェア、ハードウェア、ファームウェア、回路、またはそれらの任意の組み合わせにおいて実施されることができる。上記の構造および構成要素、ならびにそれらの機能性は、1つまたは複数の他の構造または要素とともに集約または組み合わされ得ることに留意されたい。代替的には、要素およびそれらの機能性は、もしあれば、構成部分要素に分割されることができる。ソフトウェアとして、本明細書に記載された技法、または参照により本明細書に組み込まれた技法のうちの少なくともいくつかは、様々なタイプのプログラミングまたはフォーマッティング言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、または技法を使用して実施されてもよい。例えば、図面のうちのいずれかに示されている要素のうちの少なくとも1つは、1つまたは複数のアルゴリズムを表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能性を提供するように構成されているハードウェアの部分を含む、論理の部分を表現することができる。
【0137】
例えば、図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550、またはその構成要素のうちの1つもしくは複数、または本明細書に記載された任意のプロセスもしくはデバイスは、メモリ内の1つまたは複数のアルゴリズムを実行するように構成された1つまたは複数のプロセッサを含む1つまたは複数のコンピューティングデバイス(すなわち、装着されるかまたは搬送されるかを問わず、ウェアラブルデバイスまたはオーディオデバイス(ヘッドフォンまたはヘッドセットなど)または携帯電話のような任意のモバイルコンピューティングデバイス)において実装され得る。したがって、本明細書に記載された、または参照により本明細書に組み込まれた図における要素のうちの少なくともいくつかは、1つまたは複数のアルゴリズムを表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能性を提供するように構成されたハードウェアの部分を含む論理の部分を表現することができる。これらは、変更され得、提供された例または記述に限定されない。
【0138】
ハードウェアおよび/またはファームウェアとして、本明細書に記載された、または参照により本明細書に組み込まれた構造および/または技法は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)、マルチチップモジュール、または任意の他のタイプの集積回路を設計するように構成された任意のレジスタ転送言語(「RTL」)のようなハードウェア記述言語を含む、様々なタイプのプログラミング言語または集積回路設計言語を使用して実装され得る。
【0139】
例えば、図33のモジュール3350、図34のモジュール3450、および図35のモジュール3550、またはその構成要素の1つもしくは複数、または本明細書に記載された任意のプロセスもしくはデバイスは、1つまたは複数の回路を含む1つまたは複数のコンピューティングデバイスにおいて実施され得る。したがって、本明細書に記載された、または参照により本明細書に組み込まれた図面内の要素のうちの少なくとも1つは、ハードウェアの1つまたは複数の構成要素を表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能性を提供するように構成された回路の部分を含む論理の部分を表現することができる。
【0140】
いくつかの実施形態によれば、「回路」という用語は、例えば、1つまたは複数の機能を実行するためにそれを通じて電流が流れるいくつかの構成要素を含む任意のシステムを参照することができ、構成要素は、個別のおよび複雑な構成要素とを含む。個別の構成要素の例は、トランジスタ、抵抗器、キャパシタ、インダクタ、ダイオード、および類似のものを含み、複雑な構成要素の例は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)を含む、メモリ、プロセッサ、アナログ回路、デジタル回路、および類似のものを含む。したがって、回路は、電子構成要素および論理構成要素(例えば、例えばアルゴリズムの実行可能命令のグループのような命令を実行するように構成されており、したがって、回路の構成要素である論理)のシステムを含むことができる。いくつかの実施形態によれば、「モジュール」という用語は、例えば、ハードウェア回路もしくはソフトウェアのいずれか、または、その組み合わせにおいて実施されるアルゴリズムもしくはその部分、および/または論理を参照することができる(すなわち、モジュールは、回路として実施することができる)。いくつかの実施形態において、アルゴリズムおよび/またはアルゴリズムが格納されているメモリは、回路の「構成要素」である。したがって、「回路」という用語は、例えば、アルゴリズムを含む構成要素のシステムをも参照することができる。これらは、変更され得、提供されている例または記述に限定されない。したがって、上記で説明された構造および/または機能のいずれかは、回路を含むハードウェアにおいて実装され得る。
【0141】
上記の例は、理解の明瞭性の目的のためにいくらか詳細に記述されているが、上述されている本発明の技法は、提供されている詳細には限定されない。上述されている本発明の技法を実施する多くの代替的な方法がある。開示されている例は、例示であり、限定ではない。
図1
図2
図3A
図3B
図3C
図3D
図3E
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26A
図26B
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41