(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024105474
(43)【公開日】2024-08-06
(54)【発明の名称】物理的環境の変化に応答して自律車両をナビゲートするための適応マッピング
(51)【国際特許分類】
G01C 21/28 20060101AFI20240730BHJP
G08G 1/0968 20060101ALI20240730BHJP
B60W 30/10 20060101ALI20240730BHJP
B60W 40/02 20060101ALI20240730BHJP
B60W 60/00 20200101ALI20240730BHJP
【FI】
G01C21/28
G08G1/0968
B60W30/10
B60W40/02
B60W60/00
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2024076594
(22)【出願日】2024-05-09
(62)【分割の表示】P 2022020682の分割
【原出願日】2016-11-03
(31)【優先権主張番号】14/932,963
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】14/932,959
(32)【優先日】2015-11-04
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジェシー ソル レヴィンソン
(72)【発明者】
【氏名】ガブリエル サーストン シブリー
(57)【要約】 (修正有)
【課題】自律車両、ならびに、自律車両のためのマップデータを提供するための関連付けられる機械的、電気的および電子的ハードウェア、コンピュータソフトウェアおよびシステム、ならびに、有線およびワイヤレスネットワーク通信に関係する。
【解決手段】方法は、複数のタイプのセンサデータのサブセットにアクセスするステップと、整列されたセンサデータを形成するために、複数のタイプのセンサデータに基づいて、グローバル座標系に対してセンサデータのサブセットを整列させるステップと、三次元マップデータのデータセットを生成するステップとを含むことができる。方法は、三次元マップデータの少なくとも2つのデータセットに関するデータにおける変化を検出するステップと、更新された三次元マップデータを形成するためにデータにおける変化を適用するステップとをさらに含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
道路網を走行する自律車両に関連付けられたセンサを介して、前記自律車両が走行する環境に関連する、第1のタイプのセンサによって生成された第1のタイプのセンサデータ、および第2のタイプのセンサによって生成された第2のタイプのセンサデータを含むセンサデータを生成するステップと、
前記自律車両で、前記センサデータに少なくとも部分的に基づいてローカルマップデータを生成するステップと、
前記自律車両に関連付けられた軌道データに少なくとも部分的に基づいて、前記第1のタイプのセンサデータの複数の部分を位置合わせするステップと、
前記軌道データに少なくとも部分的に基づいて、前記第2のタイプのセンサデータの複数の部分を位置合わせするステップと、
前記位置合わせされた第1のタイプのセンサデータおよび前記位置合わせされた第2のタイプのセンサデータを精密化して、アーティファクトを低減するステップと、
前記位置合わせされた第1のタイプのセンサデータおよび前記位置合わせされた第2のタイプのセンサデータに少なくとも部分的に基づいて、3次元マップに関連付けられたグローバル座標系の座標に関連する前記自律車両を位置特定するステップと、
位置グラフデータを生成して、閉ループを識別するために1つまたは複数のループ閉鎖プロセスを実行して、前記自律車両が以前に走行した前記位置グラフデータの1つまたは複数の部分を検出することによって、前記自律車両の位置を指定するステップと、
前記自律車両の前記位置に少なくとも部分的に基づいて、前記自律車両を制御するステップと
を含む方法。
【請求項2】
グローバルマップデータを受信するステップと、前記ローカルマップデータを前記グローバルマップデータと比較して、前記ローカルマップデータの部分が前記グローバルマップデータに関連して変化するかどうかを決定するステップとをさらに含む請求項1に記載の方法。
【請求項3】
前記グローバルマップデータに関連する前記ローカルマップデータ内の変化を検出するステップをさらに含み、前記変化を検出するステップは、統計的変更検出戦略を使用して、前記グローバルマップデータに関連して変化した前記ローカルマップデータの部分を検出するステップを含む請求項2に記載の方法。
【請求項4】
前記統計的変更検出戦略を使用するステップは、深層学習計算の1つまたは複数の反復にわたって境界を識別することによって、変化する前記グローバルマップデータに関連する前記ローカルマップデータの部分を検出するステップを含む請求項3に記載の方法。
【請求項5】
前記変化に関連するマップタイルをシミュレータコンピューティングデバイスに送信して、前記変化に少なくとも部分的に基づいてシミュレーションを実施することを介して、前記グローバルマップデータに関連する前記ローカルマップデータ内の前記変化を検証するステップをさらに含む請求項3に記載の方法。
【請求項6】
検証後、前記自律車両で、前記変化を組み込んだ更新されたグローバルマップデータを受信するステップをさらに含む請求項5に記載の方法。
【請求項7】
グローバルマップデータを受信するステップと、
前記ローカルマップデータを前記グローバルマップデータと比較することに基づいて、前記ローカルマップデータの部分が前記グローバルマップデータに関連して変化するかどうかを決定するステップと、
変化を決定することに基づいて、比較的少ない量のデータを送信して、遠隔操作者に警告を提供し、前記ローカルマップデータと前記グローバルマップデータとの間の軽微な変更を含む環境を通って走行する前記自律車両を少なくとも監視するステップと
をさらに含む請求項1に記載の方法。
【請求項8】
自律車両と、
前記自律車両に関連付けられた1つまたは複数のセンサと、
1つまたは複数のプロセッサと、
コンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読媒体と
を備え、前記コンピュータ実行可能命令は、実行されると、前記1つまたは複数のプロセッサに、
前記1つまたは複数のプロセッサから、第1のタイプのセンサによって生成された第1のタイプのセンサデータおよび第2のタイプのセンサによって生成された第2のタイプのセンサデータを受信することと、
前記自律車両で、前記センサデータに少なくとも部分的に基づいて、ローカルマップデータを生成することと、
前記自律車両に関連付けられた軌道データに少なくとも部分的に基づいて、前記第1のタイプのセンサデータの複数の部分を位置合わせすることと、
前記軌道データに少なくとも部分的に基づいて、前記第2のタイプのセンサデータの複数の部分を位置合わせすることと、
前記位置合わせされた第1のタイプのセンサデータおよび前記位置合わせされた第2のタイプのセンサデータを精密化して、アーティファクトを低減することと、
前記位置合わせされた第1のタイプのセンサデータおよび前記位置合わせされた第2のタイプのセンサデータに少なくとも部分的に基づいて、3次元マップに関連付けられたグローバル座標系の座標に関連する前記自律車両を位置特定することと、
位置グラフデータを生成して、閉ループを識別するために1つまたは複数のループ閉鎖プロセスを実行して、前記自律車両が以前に走行した前記位置グラフデータの1つまたは複数の部分を検出することによって、前記自律車両の位置を指定することと、
前記自律車両の前記位置に少なくとも部分的に基づいて、前記自律車両を制御することと
を含む動作を実施させるシステム。
【請求項9】
前記動作は、
グローバルマップデータを受信することと、前記ローカルマップデータを前記グローバルマップデータと比較して、前記ローカルマップデータの部分が前記グローバルマップデータに関連して変化するかどうかを決定することと、
変化を決定することに基づいて、比較的少ない量のデータを送信して、遠隔操作者に警告を提供し、前記ローカルマップデータと前記グローバルマップデータとの間の軽微な変更を含む環境を通って走行する前記自律車両を少なくとも監視することと
をさらに含む請求項8に記載のシステム。
【請求項10】
前記動作は、
グローバルマップデータを受信することと、
前記ローカルマップデータを前記グローバルマップデータと比較することに基づいて、前記ローカルマップデータの部分が前記グローバルマップデータに関連して変化するかどうかを決定することと、
変化を決定することに基づいて、前記変化に関連するマップタイルをシミュレータコンピューティングデバイスに送信して、前記変化に少なくとも部分的に基づいてシミュレーションを実施することを介して、前記グローバルマップデータに関連する前記ローカルマップデータ内の前記変化を検証することと
をさらに含む請求項8に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
様々な実施形態は、一般に、自律車両、ならびに関連付けられた機械的、電気的、および電子的ハードウェアと、コンピュータソフトウェアおよびシステムと、サービスとして自律車両群を提供する有線およびワイヤレスのネットワーク通信とに関する。より具体的には、システム、デバイス、および方法は、車両が通過する環境における変化に適合されたこの車両の1つまたは複数をナビゲートするための、三次元(「3D」)マップのようなマップに、局所的(例えば、自律車両の原位置において)または遠隔的に、またはその両方で更新を提供するように構成される。
【背景技術】
【0002】
関連出願の相互参照
本PCT国際出願は、2015年11月4日に出願された「AUTONOMOUS VEHICLE FLEET SERVICE AND SYSTEM」と題する米国出願第14/932,963号および2016年11月4日に出願された「AUTONOMOUS VEHICLE FLEET SERVICE AND SYSTEM」と題する米国特許出願第14/932,959号の継続出願であり、本出願は、2015年11月4日に出願された「TELEOPERATION SYSTEM AND METHOD FOR TRAJECTORY MODIFICATION OF AUTONOMOUS VEHICLES」と題する米国特許出願第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日に出願された「SENSOR-BASED OBJECT-DETECTION OPTIMIZATION FOR AUTONOMOUS VEHICLES」と題する米国特許出願第14/756,991号、および2015年11月4日に出願された「CALIBRATION FOR AUTONOMOUS VEHICLE OPERATION」と題する米国特許出願第14/756,996号に関係付けられ、これらはすべて本明細書において、参照によりそれらの全体が本明細書に組み込まれる。
【0003】
無人運転車両を開発するための様々な手法は、主に、消費者が購入するための無人運転車両を製造するという目的をもって従来の車両(例えば、手動運転される自動車両)を自動化することに焦点を当てている。例えば、いくつかの自動車会社および関連会社は、消費者に、運転者なしで動作することができる車両を所有する能力を提供するために、従来の自動車、および、ステアリングのような制御メカニズムを修正している。いくつかの手法において、従来の無人運転車両は、いくつかの条件において安全を重要視すべき運転機能を実施するが、運転者が、乗員の安全を危険にさらすおそれがある特定の課題を車両コントローラが解決することができない場合に、運転者が制御(例えば、ステアリングなど)を担うことを必要とする。
【0004】
機能的ではあるが、従来の無人運転車両は、一般的に、いくつかの欠点を有する。例えば、開発中の多数の無人運転車は、手動(すなわち、人間によって制御される)ステアリングおよび他の同様の自動車機能を必要とする車両から発展している。それゆえ、多数の無人運転車は、特定の座席またはロケーションが車両内で確保されている免許を受けた運転者に対応するように設計されるべきであるというパラダイムに基づく。そのため、無人運転車両は、準最適に設計されており、一般的に、車両設計を単純化し、資源を節約する(例えば、無人運転車両を製造する費用を低減する)機会を逸している。従来の無人運転車両には、他の欠点も存在する。
【0005】
他の欠点は従来の輸送サービスにも存在し、これらは、例えば、実効的に、従来の輸送および相乗りサービスを提供する一般的な手法に起因して車両の在庫を管理するのにあまり適合されていない。1つの従来の手法において、搭乗者は、人間の運転者および車両(例えば、個人が所有している)を搭乗者に割り当てる集中型サービスを介して輸送サービスを要求するために、モバイルアプリケーションにアクセスすることを要求される。異なる所有者によって所有されている車両を使用することによって、自家用車および安全システムの保守管理は検査されないままになる。別の従来の手法において、会員として登録している運転者が、会員の間で共有されている車両にアクセスすることを可能にすることによって、何らかのエンティティが、車両のグループの相乗りを可能にする。運転者は特定のロケーションにある、共有されている車両に乗車し、下車する必要があり、これは都市環境においては希少で少なく、相乗りされる車両を駐車するための相対的に高価な不動産(すなわち、駐車場)にアクセスすることを必要とするため、この手法は、従来の輸送サービスを提供するにはあまり適合されていない。上述されている従来の手法において、輸送サービスを提供するために使用される従来の車両は、運転者が離れると車両が動けなくされるため、一般的に在庫の観点から十分に利用されていない。さらに、相乗り手法(および個人によって所有されている車両の輸送サービス)は一般的に、使用状況および一般的な走行パターンに適合させるために輸送サービスの需要に合わせるために在庫のバランスを取り戻すのにはあまり適合されていない。また、自動運転自動化機能が制限されている、いくつかの従来記述されている車両もまた、人間の運転者が一般的に必要とされ得るため、在庫のバランスを取り戻すのにはあまり適合されていない。自動運転自動化機能が制限されている車両の例は、米国運輸省道路交通安全局(「NHTSA」)による、レベル3(「L3」)車両として指定されている車両である。
【0006】
別の欠点として、無人運転車両に対する一般的な手法は、一般的に、走行中の車両と、車両の他の運転者または個人との間の相互作用(例えば、社会的相互作用)に関して車両を検出およびナビゲートするのにはあまり適合されていない。例えば、いくつかの従来の手法は、無人運転車両の乗員および他の車両の運転者、歩行者などに対する安全性のリスクに対処する目的のために、歩行者、自転車利用者など、および、アイコンタクト、ジェスチャなどのような関連付けられる相互作用を識別することが十分に可能ではない。
【0007】
したがって、必要とされているものは、従来の技法の制限なしに、自律車両の実施を促進するための解決策である。
【図面の簡単な説明】
【0008】
本発明の様々な実施形態または例(「例」)が、以下の詳細な説明および添付の図面において開示される。
【0009】
【
図1】いくつかの実施形態による、自律車両サービスプラットフォームに通信可能にネットワーク接続されている自律車両の群の実施を示す図である。
【
図2】いくつかの実施形態による、自律車両の群を監視するためのフロー図の例である。
【
図3A】いくつかの例による、センサおよび他の自律車両構成要素の例を示す図である。
【
図3B】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
【
図3C】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
【
図3D】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
【
図3E】いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
【
図4】いくつかの例による、通信レイヤを介して自律車両コントローラに通信可能に結合されている自律車両サービスプラットフォームを含むシステムを示す基本ブロック図である。
【
図5】いくつかの実施形態による、自律車両を制御するためのフロー図の例である。
【
図6】いくつかの実施形態による、自律車両コントローラのアーキテクチャの例を示す図である。
【
図7】いくつかの実施形態による、自律車両の群との信頼可能な通信を維持するために冗長な通信チャネルを実施する自律車両サービスプラットフォームの例を示す図である。
【
図8】いくつかの実施形態による、様々なアプリケーションの間でデータを交換するように構成されているメッセージングアプリケーションの例を示す図である。
【
図9】いくつかの例による、
図8に記述されている通信プロトコルを使用した遠隔操作を促進するためのデータのタイプを示す図である。
【
図10】いくつかの実施形態による、遠隔操作者が経路プランニングに影響を与えることができる遠隔操作者インターフェースの例を示す図である。
【
図11】いくつかの例による、遠隔操作を呼び出すように構成されているプランナ(planner)の例を示す図である。
【
図12】いくつかの実施形態による、自律車両を制御するように構成されているフロー図の例である。
【
図13】いくつかの例による、プランナが軌道を生成することができる例を示す図である。
【
図14】いくつかの実施形態による、自律車両サービスプラットフォームの別の例を示す図である。
【
図15】いくつかの実施形態による、自律車両を制御するためのフロー図の例である。
【
図16】いくつかの例による、群最適化マネージャ(fleet optimization manager)を実施する自律車両群マネージャ(autonomous vehicle fleet manager)の例の図である。
【
図17】いくつかの実施形態による、自律車両の群を管理するためのフロー図の例である。
【
図18】いくつかの実施形態による、自律車両通信リンクマネージャを実施する自律車両群マネージャを示す図である。
【
図19】いくつかの実施形態による、イベント中の自律車両に対するアクションを決定するためのフロー図の例である。
【
図20】いくつかの実施形態による、ローカライザの例を示す図である。
【
図21】いくつかの実施形態による、集積センサデータに基づいて局所的位置(local pose)データを生成するためのフロー図の例である。
【
図22】いくつかの実施形態による、ローカライザの別の例を示す図である。
【
図23】いくつかの実施形態による、知覚エンジンの例を示す図である。
【
図24】いくつかの実施形態による、知覚エンジンデータを生成するためのフロー図の例である。
【
図25】いくつかの実施形態による、セグメンテーションプロセッサ(segmentation processor)の例を示す図である。
【
図26A】様々な実施形態による、オブジェクトトラッカ(object tracker)およびクラシファイヤ(classifier)の例を示す図である。
【
図26B】少なくともいくつかの例による、オブジェクトトラッカの別の例を示す図である。
【
図27】いくつかの例による、知覚エンジンのフロントエンドプロセッサの例の図である。
【
図28】いくつかの実施形態による、合成環境において自律車両をシミュレートするように構成されているシミュレータを示す図である。
【
図29】いくつかの実施形態による、自律車両の様々な態様をシミュレートするためのフロー図の例である。
【
図30】いくつかの実施形態による、マップデータを生成するためのフロー図の例である。
【
図31】いくつかの実施形態による、マッピングエンジンのアーキテクチャを示す図である。
【
図32】いくつかの実施形態による、自律車両アプリケーションを示す図である。
【
図33】様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す図である。
【
図34】様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す図である。
【
図35】様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す図である。
【
図36】いくつかの例による、物理的環境における変化に応答する自律車両のためのマッピングデータを適応的に生成するように構成されたマッピングエンジンを示す図である。
【
図37】いくつかの例による、更新されたマップデータを実装する自律車両コントローラの例を示す図である。
【
図38】いくつかの例による、マップデータを生成することの例を示すフロー図である。
【
図39】いくつかの例による、マップデータと局所的に生成されたマップデータとを実装するように構成されたローカライザの例を示す図である。
【
図40】いくつかの例による、局所的に生成されたセンサおよび/またはマップデータの送信レートまたは量を変更するように構成されたローカライザの例を示す図である。
【
図41】いくつかの例による、自律車両を位置特定するために局所的に生成された様々な量のマップデータを使用する例を示すフロー図である。
【
図42】様々な実施形態による、自律車両サービスの構成要素に様々なマッピングに関連する機能性を提供するように構成された様々なコンピューティングプラットフォームの例を示す図である。
【
図43】様々な実施形態による、自律車両サービスの構成要素に様々なマッピングに関連する機能性を提供するように構成された様々なコンピューティングプラットフォームの例を示す図である。
【発明を実施するための形態】
【0010】
様々な実施形態または例は、システム、プロセス、装置、ユーザインターフェース、コンピュータ可読記憶媒体または光、電子、もしくはワイヤレス通信リンクを介してプログラム命令が送信されるコンピュータネットワークのようなコンピュータ可読媒体上の一連のプログラム命令としてを含む、いくつかの方法で実施されてもよい。一般に、開示されているプロセスの動作は、特許請求の範囲において別途提供されない限り、任意の順序で実施されてもよい。
【0011】
1つまたは複数の例の詳細な説明が、添付の図面とともに下記に提供される。詳細な説明は、そのような例と関連して提供されるが、いかなる特定の例にも限定されない。その範囲は、特許請求の範囲、ならびにいくつかのその代替形態、修正形態、および均等物によってのみ限定される。完全な理解を提供するために、以下の説明において、いくつかの特定の詳細が記載されている。これらの詳細は、例の目的のために提供されており、記述されている技法は、これらの特定の詳細のいくつかまたはすべてなしに、特許請求の範囲に従って実践されることができる。明瞭化のために、例に関係付けられる技術分野において知られている技術的資料は、説明を不必要に曖昧にすることを回避するために、詳細には記述されていない。
【0012】
図1は、いくつかの実施形態による、自律車両サービスプラットフォームに通信可能にネットワーク接続されている自律車両の群の実施を示す図である。
図100は、サービスとして動作している自律車両の群109(例えば、自律車両109a~109eのうちの1つまたは複数)を示し、各自律車両109は、道路網110を自動運転し、自律車両サービスプラットフォーム101との通信リンク192を確立するように構成されている。自律車両の群109がサービスを構成する例において、ユーザ102は、自律輸送手段を求める要求103を、1つまたは複数のネットワーク106を介して自律車両サービスプラットフォーム101に送信することができる。応答して、自律車両サービスプラットフォーム101は、ユーザ102を地理的ロケーション119から地理的ロケーション111へと自律的に輸送するために、自律車両109の1つを派遣することができる。自律車両サービスプラットフォーム101は、ステーション190から地理的ロケーション119へと自律車両を派遣してもよく、または、ユーザ102の輸送要求にサービスするために、すでに移動中の(例えば、乗員なしで)自律車両109cを転用してもよい。自律車両サービスプラットフォーム101は、ユーザ102(例えば、搭乗者としての)からの要求に応答して、搭乗者を乗せて移動中の自律車両109cを転用するようにさらに構成されてもよい。加えて、自律車両サービスプラットフォーム101は、既存の搭乗者が下車した後にユーザ102の要求にサービスするために転用するために、搭乗者を乗せて移動中の自律車両109cを確保するように構成されてもよい。複数の自律車両サービスプラットフォーム101(図示せず)および1つまたは複数のステーション190が、道路網110に関連して1つまたは複数の自律車両109をサービスするために実施されてもよい。1つまたは複数のステーション190は、自律車両109の在庫を格納、サービス、管理、および/または維持するように構成されてもよい(例えばステーション190は、自律車両サービスプラットフォーム101を実施する1つまたは複数のコンピューティングデバイスを含んでもよい)。
【0013】
いくつかの例によれば、自律車両109a~109eのうちの少なくともいくつかは、双方向性自律車両(「AV」)130のような双方向性自律車両として構成される。双方向性自律車両130は、限定ではないが、主に長手方向軸131に沿っていずれかの方向に走行するように構成されてもよい。したがって、双方向性自律車両130は、隣接した周辺の他者(例えば、他の運転者、歩行者、自転車利用者など)、および、双方向性自律車両130が走行している方向を警告するために、車両の外部のアクティブな照明を実施するように構成されてもよい。例えば、アクティブ光源136が、第1の方向に走行しているときはアクティブライト(active light)138aとして実施されてもよく、または、第2の方向に走行しているときはアクティブライト138bとして実施されてもよい。アクティブライト138aは、任意選択のアニメーション(例えば、可変強度の光の光パターンまたは経時的に変化し得る色)を伴う、1つまたは複数の色からなる第1のサブセットを使用して実施されてもよい。同様に、アクティブライト138bは、1つまたは複数の色からなる第2のサブセット、および、アクティブライト138aのものとは異なってもよい光パターンを使用して実施されてもよい。例えば、アクティブライト138aは、「ヘッドライト」としての白色光を使用して実施されてもよく、一方、アクティブライト138bは、「テールライト」としての赤色光を使用して実施されてもよい。アクティブライト138aおよび138b、またはその部分は、(例えば、黄色光を使用して)「ターンシグナル指示」機能を提供することのような、他の色に光関連機能を提供するように構成されてもよい。様々な例によれば、自律車両130内の論理は、任意の数の管轄に関する様々な安全性要件および交通規制または法律に準拠するように、アクティブライト138aおよび138bを適応させるように構成されてもよい。
【0014】
いくつかの実施形態において、双方向性自律車両130は、四半部194のような各四半部内に、同様の構造的要素および構成要素を有するように構成されてもよい。四半部は、少なくともこの例においては、両方とも、平面132および134の各側に2つの同様の半部を形成するのに車両を通過する平面132および134の交差によって規定される双方向性自律車両130の部分として示されている。さらに、双方向性自律車両130は、他の機能の中でも運転制御(例えば、推進、ステアリングなど)およびアクティブ光源136を含む主要ないくつかの車両機能を制御するように構成されている論理(例えば、ハードウェアもしくはソフトウェア、またはそれらの組み合わせ)を含む自律車両コントローラ147を含むことができる。双方向性自律車両130はまた、車両上の様々なロケーションに配置されているいくつかのセンサ139をも含む(他のセンサは図示されていない)。
【0015】
自律車両コントローラ147は、自律車両109のローカル体勢(例えば、ローカル位置)を決定し、車両に対する外部オブジェクトを検出するようにさらに構成されてもよい。例えば、双方向性自律車両130が、道路網110内で方向199に走行していると考える。自律車両コントローラ147のローカライザ(図示せず)が、地理的ロケーション111における局所的位置を決定することができる。そのため、ローカライザは、建造物115および117の表面と関連付けられるセンサデータのような、取得されるセンサデータを使用することができ、これは、局所的位置を決定するために、マップデータ(例えば、反射データを含む3Dマップデータ)のような基準データに対して比較されることができる。さらに、自律車両コントローラ147の知覚エンジン(図示せず)が、外部オブジェクト112(「樹木」)および外部オブジェクト114(「歩行者」)のような外部オブジェクトの挙動を検出、分類、および予測するように構成されてもよい。そのような外部オブジェクトの分類は、外部オブジェクト112のような静的オブジェクト、および、外部オブジェクト114のような動的オブジェクトとして、オブジェクトを広範に分類することができる。ローカライザおよび知覚エンジン、ならびにAVコントローラ147の他の構成要素は、協働して、自律車両109に自律的に運転させる。
【0016】
いくつかの例によれば、自律車両サービスプラットフォーム101は、自律車両109が遠隔操作を要求する場合に、遠隔操作者サービスを提供するように構成されている。例えば、自律車両109d内の自律車両コントローラ147が、挿入
図120に示されているように、ポイント191において道路122上の経路124を閉塞しているオブジェクト126を検出すると考える。自律車両コントローラ147が、車両109dが相対的に高い確実度で安全に移動することができる経路または軌道を確定することができない場合、自律車両コントローラ147は、遠隔操作サービスを求める要求メッセージ105を送信することができる。応答して、遠隔操作者コンピューティングデバイス104が、障害物126を首尾よく(かつ安全に)切り抜けるための方策を実施するための命令を、遠隔操作者108から受信することができる。その後、車両に、例えば、代替の経路121に沿って移動するときに二重線のセットを安全にまたがせるために、自律車両109dに応答データ107が返信され得る。いくつかの例において、遠隔操作者コンピューティングデバイス104は、経路のプランニングから除外するために、地理的領域を識別する応答を生成することができる。特に、追従するための経路を提供するのではなく、遠隔操作者108は、自律車両が回避すべき領域またはロケーションを規定することができる。
【0017】
上記を考慮して、自律車両130および/または自律車両コントローラ147、ならびにそれらの構成要素の構造および/または機能は、自律車両109が自動運転することを可能にするために、位置特定および知覚のような自律関連動作を通じてリアルタイム(またはほぼリアルタイム)の軌道計算を実施することができる。
【0018】
いくつかの事例において、双方向性自律車両130の双方向性は、互いに同様または実質的に同様である四半部194(または任意の他の数の対称な部分)を有する車両を提供する。そのような対称性は、設計の複雑度を低減し、相対的に、固有の構成要素または構造の数を低減し、それによって、在庫および製造の複雑度を低減する。例えば、駆動系およびホイールシステムは、それら四半部のいずれに配置されてもよい。さらに、自律車両コントローラ147は、そうでなければ乗員の安全性に影響を与える可能性があるイベントまたは課題を解決しながら、自律車両109が移動中に遅延される可能性を低減するために、遠隔操作サービスを呼び出すように構成されている。いくつかの事例において、道路網110の可視部分は、自律車両109の
図1に示す道路網に対する動きを限定または他の様態で制御することができる地理上のフェンス領域を示す。様々な例によれば、自律車両109、およびその群は、共有されている車両の効率を提供しながら、ポイント間の人の移動の簡便性およびプライバシーを伴って需要に応じた輸送手段を提供することができるレベル4(「完全自動運転」またはL4)車両として動作するように構成可能であり得る。いくつかの例において、自律車両109、または、本明細書において記述されている任意の自律車両は、ステアリングホイール、または、自律車両109の手動(すなわち、人間によって制御される)ステアリングを提供する任意の他の機械的手段を省略するように構成されてもよい。さらに、自律車両109、または本明細書に記載された任意の自律車両は、乗員がステアリングホイール、または任意の機械的ステアリングシステムと係合するために車両内に確保されたシートまたは場所を省略するように構成され得る。
【0019】
図2は、いくつかの実施形態による、自律車両の群を監視するためのフロー図の例である。202において、フロー200は、自律車両の群が監視されるときに開始する。少なくとも1つの自律車両が、車両に、第1の地理的領域から第2の地理的領域へと自律的に移動させるように構成されている自律車両コントローラを含む。204において、車両の計算されている信頼水準と関連付けられるイベントを表すデータが検出される。イベントは、自律車両の動作に影響を与えるか、または、動作に影響を与える可能性がある条件または状況であり得る。イベントは、自律車両の内部または外部であってもよい。例えば、道路を閉塞している障害物、および、通信の低減または喪失が、イベントとして見られ得る。イベントは、交通条件または渋滞、および、知覚エンジンによって知覚される、予想外のまたは異常な数またはタイプの外部オブジェクト(またはトラック)を含み得る。イベントは、天候関連条件(例えば、氷または雨に起因する摩擦の喪失)、または、他の車両の人間の運転者の目に明るく陽が差すようにする水平線に対する低い角度のような、陽が差している角度(例えば、日没時)を含み得る。これらのおよび他の条件は、遠隔操作者サービスの呼び出しを引き起こすか、または、車両に安全停止軌道を実行させるイベントとして見られ得る。
【0020】
206において、候補軌道のサブセットを表すデータが、イベントの検出に応答して自律車両から受信され得る。例えば、自律車両コントローラのプランナが、1秒のような単位時間あたりに多数の軌道(例えば、数千以上)を計算および評価することができる。いくつかの実施形態において、候補軌道は、自律車両がイベントを考慮して(例えば、遠隔操作者によって提供される代替の経路を使用して)安全に前進することができる相対的により高い信頼水準を提供する軌道のサブセットである。いくつかの候補軌道は、他の候補軌道よりも高くランク付けされ、または、他の候補軌道よりも高い信頼度と関連付けられ得ることに留意されたい。いくつかの例によれば、候補軌道のサブセットは、プランナ、遠隔操作者コンピューティングデバイス(例えば、遠隔操作者が、近似の経路を決定および提供することができる)などのような任意の数のソースに由来することができ、または、候補軌道のサブセットとして組み合わされることができる。208において、経路案内データが、1つまたは複数のプロセッサにおいて識別され得る。経路案内データは、遠隔操作者が、候補軌道のうちの1つまたは複数から案内される軌道を選択するのを補助するように構成されてもよい。いくつかの事例において、経路案内データは、特定の候補軌道が、イベントが自律車両の動作に影響を与え得る可能性を低減または無視することができる確実度を指示する信頼水準または確率を指示する値を指定する。選択される候補軌道としての案内される軌道は、210において、遠隔操作者からの入力(例えば、遠隔操作者は、別様にランク付けされている候補軌道のグループから少なくとも1つの候補軌道を、案内される軌道として選択することができる)に応答して受信され得る。選択は、いくつかの候補軌道を、例えば、最も高い信頼水準から最も低い信頼水準への順序においてリストしている操作者インターフェースを介して行われてもよい。212において、案内される軌道としての候補軌道の選択が、車両に送信され得、これは、車両に、遠隔操作者によって指定される操作を実施させることによって、条件を解決するための案内される軌道を実施する。そのため、自律車両は、非規範的動作状態から移行することができる。
【0021】
図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上のいずれの場所に配置および配向されてもよいことに留意されたい。
【0022】
いくつかの実施形態によれば、自律車両(「AV」)制御論理347の部分は、グラフィックスプロセッシングユニット(「GPU」)のクラスタをプログラミングするのに適したフレームワークおよびプログラミングモデルを実施するGPUのクラスタを使用して実施されてもよい。例えば、compute unified device architecture(「CUDA(商標)」)に準拠したプログラミング言語およびアプリケーションプログラミングインターフェース(「API」)モデルが、GPUをプログラミングするために使用されてもよい。CUDA(商標)は、カリフォルニア州サンタクララ所在のNVIDIAによって製造および維持されている。OpenCL、または任意の他の並列プログラミング言語のような他のプログラミング言語が実施されてもよいことに留意されたい。
【0023】
いくつかの実施形態によれば、自律車両制御論理347は、モーションコントローラ362、プランナ364、知覚エンジン366、およびローカライザ368を含むように示されている自律車両コントローラ347aとして、ハードウェアおよび/またはソフトウェアにおいて実施されてもよい。示されているように、自律車両コントローラ347aは、カメラデータ340a、ライダデータ346a、およびレーダデータ348a、または、ソナーデータ341a等を含む任意の他の範囲検知または位置特定データを受信するように構成されている。自律車両コントローラ347aはまた、GPSデータ352、IMUデータ354、および他の位置検知データ(例えば、ステアリング角度、角速度などのようなホイール関連データ)のような測位データを受信するようにも構成されている。さらに、自律車両コントローラ347aは、任意の他のセンサデータ356および基準データ339を受信してもよい。いくつかの事例において、基準データ339は、マップデータ(例えば、3Dマップデータ、2Dマップデータ、4Dマップデータ(例えば、エポック決定(Epoch Determination))を含む)およびルートデータ(例えば、限定ではないが、RNDFデータ(または同様のデータ)、MDFデータ(または同様のデータ))を含む道路網データなどを含む。
【0024】
ローカライザ368は、GPSデータ352、ホイールデータ、IMUデータ354、ライダデータ346a、カメラデータ340a、レーダデータ348aなどのような1つまたは複数のソースからのセンサデータ、および基準データ339(例えば、3Dマップデータおよびルートデータ)を受信するように構成されている。ローカライザ368は、双方向性自律車両330の局所的位置(または位置)を決定するために、センサデータをマップデータと比較することによって、データを統合(例えば、センサデータを融合)および分析する。いくつかの実施形態によれば、ローカライザ368は、任意の自律車両の場所または位置をリアルタイムまたはほぼリアルタイムに生成または更新することができる。ローカライザ368およびその機能は、「双方向性」車両に限定される必要はなく、任意のタイプの任意の車両において実施され得ることに留意されたい。それゆえ、ローカライザ368(およびAVコントローラ347aの他の構成要素)は、「一方向性」車両または任意の非自律車両において実施されてもよい。いくつかの実施形態によれば、局所的位置を記述するデータは、x座標、y座標、z座標(または、極座標系または円筒座標系などを含む任意の座標系の任意の座標)、ヨー値、ロール値、ピッチ値(例えば、角度値)、レート(例えば、速度)、高度などのうちの1つまたは複数を含んでもよい。
【0025】
知覚エンジン366は、ライダデータ346a、カメラデータ340a、レーダデータ348aなどのような1つまたは複数のソースからのセンサデータ、および局所的位置データを受信するように構成されている。知覚エンジン366は、センサデータおよび他のデータに基づいて外部オブジェクトのロケーションを決定するように構成され得る。例えば、外部オブジェクトは、運転可能な表面の部分でないオブジェクトであり得る。例えば、知覚エンジン366は、外部オブジェクトを、歩行者、自転車利用者、犬、他の車両などとして検出および分類することが可能であり得る(例えば、知覚エンジン366は、ラベルを含む意味情報と関連付けられ得る分類のタイプに従ってオブジェクトを分類するように構成される)。これらの外部オブジェクトの分類に基づいて、外部オブジェクトは、動的オブジェクトまたは静的オブジェクトとしてラベル付けされ得る。例えば、樹木として分類されている外部オブジェクトは静的オブジェクトとしてラベル付けされ得、一方、歩行者として分類されている外部オブジェクトは、動的オブジェクトとしてラベル付けされ得る。静的としてラベル付けされている外部オブジェクトは、マップデータ内に記述されてもよく、または、記述されなくてもよい。静的としてラベル付けされる可能性がある外部オブジェクトの例は、道路を横切って配置されているセメント壁、車線閉鎖標識、新たに配置された郵便ポスト、または、道路に隣接するごみ箱などを含む。動的としてラベル付けされる可能性がある外部オブジェクトの例は、自転車利用者、歩行者、動物、他の車両などを含む。外部オブジェクトが動的としてラベル付けされる場合、外部オブジェクトに関するさらなるデータが、分類タイプと関連付けられる一般的なレベルの活動および速度、ならびに、挙動パターンを指示し得る。外部オブジェクトに関するさらなるデータは、外部オブジェクトを追跡することによって生成され得る。そのため、分類タイプは、外部オブジェクトが、例えば、プランニングされている経路に沿って走行している自律車両と干渉し得る可能性を予測または他の様態で決定するために使用され得る。例えば、歩行者として分類される外部オブジェクトは、(例えば、追跡データに基づいて)何らかの最大速度、および、平均速度と関連付けられ得る。自律車両の速度に対する歩行者の速度は、衝突の可能性があるか否かを決定するために使用されることができる。さらに、知覚エンジン364は、オブジェクトの現在および未来の状態と関連付けられる不確定度を決定することができる。いくつかの例において、不確定度は、推定値(または確率)として表現されてもよい。
【0026】
プランナ364は、知覚エンジン366から知覚データを受信するように構成されており、また、ローカライザ368からのローカライザデータをも含むことができる。いくつかの例によれば、知覚データは、自律車両の近傍に配置されている静的オブジェクトおよび動的オブジェクトを指定する障害物マップを含むことができ、一方で、ローカライザデータは、局所的位置または位置を含むことができる。動作時、プランナ364は、多数の軌道を生成し、少なくとも、外部の動的オブジェクトおよび静的オブジェクトの相対ロケーションに対する自律車両のロケーションに基づいて、軌道を評価する。プランナ364は、衝突のない走行を提供するように自律車両を誘導する最適な軌道を、様々な基準に基づいて選択する。いくつかの例において、プランナ364は、確率的に決定される軌道として軌道を計算するように構成されてもよい。さらに、プランナ364は、ステアリングおよび推進コマンド(ならびに減速またはブレーキコマンド)をモーションコントローラ362に送信することができる。モーションコントローラ362はその後、ステアリングコマンド、スロットルまたは推進コマンド、およびブレーキコマンドのようなコマンドのいずれかを、ステアリングまたはホイール角度および/または速度353の変更を実施するための制御信号(例えば、アクチュエータまたは他の機械的インターフェースに対する適用のための)に変換することができる。
【0027】
図3B~
図3Eは、いくつかの例による、センサフィールド冗長性およびセンサフィールドの喪失に対する自律車両の適合の例を示す図である。
図3Bの
図391は、センサ310aがオブジェクトを(例えば、範囲もしくは距離または他の情報を決定するために)検出するセンサフィールド301aを示す。センサ310aは、任意のタイプのセンサまたはセンサモダリティを実施することができるが、センサ310a、ならびに、センサ310b、310c、および310dのような同様に記述されているセンサは、ライダデバイスを含んでもよい。それゆえ、センサフィールド301a、301b、301c、および301dは各々、レーザが延伸するフィールドを含む。
図3Cの
図392は、各々が対応するライダセンサ310(図示せず)によって生成される4つの重なり合うセンサフィールドを示す。示されているように、センサフィールドの部分301は、重なり合うセンサフィールドを含まず(例えば、単一のライダフィールド)、センサフィールドの部分302は、2つの重なり合うセンサフィールドを含み、部分303は3つの重なり合うセンサフィールドを含み、それによって、そのようなセンサは、ライダセンサが機能不全になった場合に複数レベルの冗長性を提供する。
【0028】
図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を回復する。さらに、上述した双方向性操作は、交通量の多い車道に戻ることを必要とするより複雑化された操作の必要性を取り除く。
【0029】
図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と、局所的マップジェネレータ440とを含む。
図4の
図400に示されている要素は、1つまたは複数の他の図面に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができることに留意されたい。
【0030】
ローカライザ468は、マップデータ、ルートデータ(例えば、RNDFのようなデータのような、道路網データ)などを含んでもよい基準データに対して自律車両を位置特定する(すなわち、局所的位置を決定する)ように構成されている。いくつかの事例において、ローカライザ468は、例えば、環境の表現の特徴に対する自律車両430のロケーションを表現することができる、空間内のポイントを識別するように構成されている。ローカライザ468は、各個々のタイプのセンサに関係付けられる不確実性を低減するために(例えば、異なるセンサモダリティの)センサデータの複数のサブセットを統合するように構成され得るセンサデータインテグレータ(sensor data integrator)469を含むように示されている。いくつかの例によれば、センサデータインテグレータ469は、局所的位置を決定するための統合されたセンサデータ値を形成するために、センサデータ(例えば、ライダデータ、カメラデータ、レーダデータなど)を融合するように構成されている。いくつかの例によれば、ローカライザ468は、2Dマップデータ、3Dマップデータ、4Dマップデータなどを格納するためのマップデータリポジトリ(map data repository)405aを含む、基準データリポジトリ(reference data repository)405に由来する基準データを取り出す。ローカライザ468は、自律車両430の位置を識別、または、他の様態で確認するためにマップデータと照合するために、環境内の特徴の少なくともサブセットを識別するように構成され得る。いくつかの例によれば、ローカライザ468は、特徴のセットが1つまたは複数の特徴、またはすべての特徴を含むことができるように、環境内の任意の量の特徴を識別するように構成されてもよい。特定の例において、任意の量のライダデータ(例えば、ほとんどのまたは実質的にすべてのライダデータ)が、位置特定の目的のためにマップを表現するデータと比較され得る。一般的に、環境特徴とマップデータとの比較からもたらされる一致しないオブジェクトは、車両、自転車利用者、歩行者などのような動的オブジェクトであり得る。障害物を含む動的オブジェクトの検出は、マップデータを用いてまたは用いずに実施され得ることに留意されたい。特に、動的オブジェクトは、マップデータから独立して(すなわち、マップデータがない状態で)検出および追跡されてもよい。いくつかの事例において、2Dマップデータおよび3Dマップデータは、「グローバルマップデータ」、または、自律車両サービスプラットフォーム401によってある時点において認証されているマップデータとして見られ得る。マップデータリポジトリ405a内のマップデータは定期的に更新および/または認証され得るため、マップデータと、自律車両が位置決めされる実際の環境との間には逸脱が存在する場合がある。それゆえ、ローカライザ468は、位置特定を強化するために、局所的マップジェネレータ440によって生成される、ローカルに導出されたマップデータを取り出すことができる。局所的マップジェネレータ440は、局所的マップデータをリアルタイムまたはほぼリアルタイムに生成するように構成されている。任意選択的に、局所的マップジェネレータ440は、例えば、位置特定において動的オブジェクトを無視することによって、ローカルに生成されるマップの精度を強化するために、静的および動的オブジェクトマップデータを受信してもよい。少なくともいくつかの実施形態によれば、局所的マップジェネレータ440は、ローカライザ468と統合されてもよく、または、その部分として形成されてもよい。少なくとも1つの事例において、局所的マップジェネレータ440は、独立してまたはローカライザ468と協働してのいずれかで、simultaneous localization and mapping(「SLAM」)などに基づいてマップおよび/または基準データを生成するように構成され得る。ローカライザ468は、マップデータの使用に対する「混合」手法を実施することができ、それによって、ローカライザ468内の論理は、マップデータの各ソースの信頼度に応じて、マップデータリポジトリ405aからのマップデータまたは局所的マップジェネレータ440からの局所的マップデータのいずれかから様々な量のマップデータを選択するように構成されることができることに留意されたい。それゆえ、ローカライザ468は依然として、ローカルに生成されるマップデータを考慮して古いマップデータを使用することができる。
【0031】
知覚エンジン466は、例えば、プランナ464が、自律車両430が移動している周囲環境内の対象のオブジェクトを識別することによってルートをプランニングし、軌道を生成するのを補助するように構成されている。さらに、対象のオブジェクトの各々と確率が関連付けられ得、それによって、確率は、対象のオブジェクトが安全な走行に対する脅威となり得る可能性を表現することができる(例えば、高速で動くオートバイは、新聞を読みながらバス停のベンチに座っている人よりも強化された追跡を必要とし得る)。示されているように、知覚エンジン466は、オブジェクトディテクタ442およびオブジェクトクラシファイヤ444を含む。オブジェクトディテクタ442は、環境内の他の特徴に対してオブジェクトを区別するように構成されており、オブジェクトクラシファイヤ444は、オブジェクトを動的オブジェクトまたは静的オブジェクトのいずれかとして分類し、プランニングの目的のために、自律車両430に対する動的オブジェクトまたは静的オブジェクトのロケーションを追跡するように構成されることができる。さらに、知覚エンジン466は、静的または動的オブジェクトに、オブジェクトがプランナ464における経路プランニングに影響を与える可能性がある障害物である(またはそうなる可能性を有する)か否かを指定する識別子を割り当てるように構成されることができる。
図4には示されていないが、知覚エンジン466はまた、セグメンテーションおよび追跡のような、他の知覚関連機能を実施することもできることに留意されたい。それらの例は後述する。
【0032】
プランナ464は、利用可能であるいくつかの経路またはルートを介して目的地に達するという目標を達成するためのいくつかの候補軌道を生成するように構成されている。軌道エバリュエータ(trajectory evaluator)465が、候補軌道を評価し、候補軌道のいずれのサブセットが目的地までの衝突のない経路を提供する最も高い程度の信頼水準と関連付けられるかを識別するように構成されている。そのため、軌道エバリュエータ465は、コマンドに、車両構成要素450(例えば、アクチュエータまたは他のメカニズム)に対する制御信号を生成させるための関連する基準に基づいて最適な軌道を選択することができる。関連する基準は、最適な軌道を規定する任意の数のファクタを含んでもよく、その選択は、衝突を低減することに限定される必要はないことに留意されたい。例えば、軌道の選択は、ユーザ経験(例えば、ユーザ快適性)、および、交通規制および法律に準拠する衝突のない軌道を最適化するように行われてもよい。ユーザ経験は、(例えば、けいれんのような走行または他の不快な動きを低減するために)様々な直線方向および角度方向における加速を加減することによって最適化され得る。いくつかの事例において、関連する基準の少なくとも部分は、最適化された衝突のない走行を維持しながら、他の基準のいずれに優越または優先すべきかを指定することができる。例えば、限定された状況において軌道を生成するときに(例えば、自転車利用者と併走するために二重黄色線をまたぐとき、または、交通流量に合わせるために提示されている速度制限よりも高速で走行しているとき)、法的な制約は一時的に撤廃または緩和され得る。そのため、制御信号は、駆動系および/またはホイールにおける推進および方向の変化を引き起こすように構成される。この例において、モーションコントローラ462は、コマンドを、自律車両430の移動を制御するための制御信号(例えば、速度、ホイール角度など)に変換するように構成されている。軌道エバリュエータ465が、衝突のない最適化された走行を提供するために十分に高い信頼水準を保証するためには不十分な情報を有する場合、プランナ464は、遠隔操作者404に対する、遠隔操作者の支持を求める要求を生成することができる。
【0033】
自律車両サービスプラットフォーム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がマップデータの更新を実施する頻度を制御することができる。
【0034】
キャリブレータ409は、同じまたは異なるタイプの様々なセンサの較正を実施するように構成されている。キャリブレータ409は、センサの相対的な位置(例えば、デカルト空間(x、y、z)における)およびセンサの向き(例えば、ロール、ピッチおよびヨー)を決定するように構成され得る。カメラ、ライダセンサ、レーダセンサなどのようなセンサの位置および向きは、他のセンサに対して、および、グローバルに車両の基準フレームに対して較正され得る。オフライン自己較正はまた、車両慣性テンソル、軸距、ホイール半径または路面摩擦のような他のパラメータを較正または推定することもできる。較正はまた、いくつかの例によれば、パラメータ変化を検出するためにオンラインで行われることもできる。また、キャリブレータ409による較正は、センサの内因性パラメータ(例えば、光学的歪み、ビーム角度など)および外因性パラメータを含み得ることに留意されたい。いくつかの事例において、キャリブレータ409は、例として、3Dレーザデータにおける深さの断絶と、画像データのエッジとの間の相関を最大化することによって実施され得る。オフラインオブジェクト分類410は、センサデータのようなデータを、センサ470または自律車両コントローラ447の任意の他の構成要素から受信するように構成されている。いくつかの実施形態によれば、オフラインオブジェクトクラシファイヤ410のオフライン分類パイプラインは、オブジェクトを事前にまとめ、(例えば、人間によって手動でおよび/またはオフラインラベル付けアルゴリズムを使用して自動的に)注釈を付けるように構成され得、オンライン自律動作中にオブジェクトタイプのリアルタイムの分類を提供することができるオンラインクラシファイヤ(例えば、オブジェクトクラシファイヤ444)を訓練するようにさらに構成され得る。
【0035】
図5は、いくつかの実施形態による、自律車両を制御するためのフロー図の例である。502において、フロー500は、自律車両にある複数のモダリティのセンサに由来するセンサデータが、例えば、自律車両コントローラによって受信されるときに開始する。センサデータの1つまたは複数のサブセットは、例えば、推定値を改善するために融合されたデータを生成するために統合され得る。いくつかの例において、504において、(例えば、同じまたは異なるモダリティの)1つまたは複数のセンサのセンサストリームが、融合されたセンサデータを形成するために融合され得る。いくつかの例において、ライダセンサデータおよびカメラセンサデータのサブセットが、位置特定を促進するために、504において融合され得る。506において、センサデータの少なくとも2つのサブセットに基づいてオブジェクトを表現するデータが、プロセッサにおいて導出され得る。例えば、静的オブジェクトまたは動的オブジェクトを識別するデータが、少なくともライダおよびカメラデータから(例えば、知覚エンジンにおいて)導出され得る。508において、プランニングされている経路に影響を与える、検出されたオブジェクトが決定され、510において、検出されたオブジェクトに応答して、軌道のサブセットが(例えば、プランナにおいて)評価される。512において、自律車両の規範的動作と関連付けられる許容可能な信頼水準の範囲を超える信頼水準が決定される。それゆえ、この事例において、信頼水準は、最適化された経路を選択する確実性がより可能性が低く、それによって、最適化された経路が、衝突のない走行を促進し、交通法規に準拠し、快適なユーザ経験(例えば、快適な搭乗)を提供し、および/または、任意の他のファクタに基づいて候補軌道を生成する確率に応じて決定され得るようなものであり得る。そのため、514において、代替の経路を求める要求が、遠隔操作者コンピューティングデバイスに送信され得る。その後、遠隔操作者コンピューティングデバイスは、プランナに、自律車両が走行するようにされる最適な軌道を提供することができる。状況によっては、車両はまた、安全停止操作(例えば、自律車両を、危険の確率が相対的に低いロケーションに安全かつ自動的に停止させること)が最善の方策であると決定することもできる。フロー図の各部分はこのフロー図および本明細書における他のフロー図に示されている順序は、順次実施されてもよく、またはフロー図の任意の1つまたは複数の他の部分と並列に実施されてもよく、また、独立して実施されてもよく、または、フロー図の他の部分に依存して実施されてもよいため、様々な機能を直線的に実施するための要件を暗示するようには意図されていないことに留意されたい。
【0036】
図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を使用する。
【0037】
図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は、群のアップタイムを最大化することを考慮してサービススケジュールを適合させるために、自律車両および部品の在庫を維持する。
【0038】
遠隔操作者マネージャ707は、遠隔操作者708がそれを用いて入力を提供するいくつかの遠隔操作者コンピューティングデバイス704を管理するように構成されている。シミュレータ740は、1つまたは複数の自律車両730の動作、および、遠隔操作者マネージャ707と自律車両730との間の相互作用をシミュレートするように構成されている。シミュレータ740はまた、自律車両730内に配置されているいくつかのセンサの動作(シミュレートされるノイズの導入を含む)をシミュレートすることもできる。さらに、シミュレートされた自律車両が合成環境に導入されることができ、それによって、シミュレートされたセンサが、シミュレートされたレーザ戻りのようなシミュレートされたセンサデータを受信することができるように、都市のような環境がシミュレートされることができる。シミュレータ740は、ソフトウェア更新および/またはマップデータの検証を含む、他の機能をも提供することができる。ポリシマネージャ742は、道路網を走行している間に自律車両が遭遇する様々な条件またはイベントを考慮して自律車両がそれによって挙動すべきであるデータ表現ポリシまたは規則を維持するように構成されている。いくつかの事例において、更新されたポリシおよび/または規則が、ポリシに対する変更を考慮して自律車両の群の安全な動作を確認するために、シミュレータ740においてシミュレートされてもよい。自律車両サービスプラットフォーム701の上述されている要素のいくつかが、以下においてさらに記述される。
【0039】
通信チャネル770は、自律車両の群730および自律車両サービスプラットフォーム701の間にネットワーク接続されている通信リンクを提供するように構成されている。例えば、通信チャネル770は、自律車両サービスを確実に動作させるために一定レベルの冗長性を保証するために、対応するサブネットワーク(例えば、771a~771n)を有する、いくつかの異なるタイプのネットワーク771、772、773、および774を含む。例えば、通信チャネル770内の異なるタイプのネットワークは、1つまたは複数のネットワーク771、772、773、および774の機能停止に起因する低減されたまたは喪失された通信の場合に、十分な帯域幅を保証するために、異なるセルラネットワークプロバイダ、異なるタイプのデータネットワークなどを含むことができる。
【0040】
図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との間の安全確保された相互作用を提供するためのメッセージを暗号化および解読するように構成されることができる。
【0041】
図9は、いくつかの例による、
図8に記述されている通信プロトコルを使用した遠隔操作を促進するためのデータのタイプを示す図である。
図900は、1つまたは複数のネットワーク971内に実施される、データ処理を中心とするメッセージングバス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」)構成データを含む。
【0042】
通信プロトコルを介した遠隔操作を促進するためのデータ交換の例が以下のように記述される。自律車両コントローラの知覚システムによって、障害物データ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を生成し、これは、遠隔操作者によって選択された軌道を、プランナによる実施のために生成するように構成されている。上述されているメッセージングプロセスは、限定であるようには意図されておらず、他のメッセージングプロトコルも実施されてもよいことに留意されたい。
【0043】
図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つを選択することができる。
【0044】
図11は、いくつかの例による、遠隔操作を呼び出すように構成されているプランナの例を示す図である。
図1100は、地形マネージャ(topography manager)1110、ルートマネージャ1112、経路ジェネレータ(path generator)1114、軌道エバリュエータ1120、および軌道トラッカ1128を含むプランナ1164を示す。地形マネージャ1110は、地形学的特徴を指定する3Dマップデータまたは他の同様のマップデータのようなマップデータを受信するように構成されている。地形マネージャ1110は、目的地までの経路上の地形学関連特徴に基づいて候補経路を識別するようにさらに構成されている。様々な例によれば、地形マネージャ1110は、群内の1つまたは複数の自律車両と関連付けられるセンサによって生成される3Dマップを受信する。ルートマネージャ1112は、目的地までの経路として選択され得る1つまたは複数のルートと関連付けられる交通関連情報を含むことができる、環境データ1103を受信するように構成されている。経路ジェネレータ1114は、地形マネージャ1110およびルートマネージャ1112からデータを受信し、自律車両を目的地に向けて誘導するのに適した1つまたは複数の経路または経路セグメントを生成する。1つまたは複数の経路または経路セグメントを表現するデータは、軌道エバリュエータ1120へと送信される。
【0045】
軌道エバリュエータ1120は、状態・イベントマネージャ(state and event manager)1122を含み、状態・イベントマネージャ1122は、信頼水準ジェネレータ1123を含むことができる。軌道エバリュエータ1120は、案内される軌道のジェネレータ(guided trajectory generator)1126および軌道ジェネレータ(trajectory generator)1124をさらに含む。さらに、プランナ1164は、ポリシデータ1130、知覚エンジンデータ1132、およびローカライザデータ1134を受信するように構成されている。
【0046】
ポリシデータ1130は、いくつかの例によれば、それをもって軌道を生成すべき十分な信頼水準を有する経路を決定するためにプランナ1164が使用する基準を含むことができる。ポリシデータ1130の例は、軌道生成が外部オブジェクトまでの離れた距離によって抑制されることを指定するポリシ(例えば、可能な限り、自転車利用者から3フィートの安全緩衝を維持すること)、または、軌道が中央の二重黄色線をまたいではならないことを要求するポリシ、または、(例えば、一般的にバス停に最も近い車線に集中することのような、過去のイベントに基づいて)4車線道路においては軌道が単一車線に限定されることを必要とするポリシ、および、ポリシによって指定される任意の他の同様の基準を含む。知覚エンジンデータ1132は、対象の静的オブジェクトおよび動的オブジェクトのロケーションのマップを含み、ローカライザデータ1134は、少なくとも局所的位置または位置を含む。
【0047】
状態・イベントマネージャ1122は、自律車両の動作状態を確率論的に決定するように構成されることができる。例えば、第1の動作状態(すなわち、「規範的動作」)は、軌道が衝突のないものである状況を記述することができ、一方で、第2の動作状態(すなわち、「非規範的動作」)は、可能性のある軌道と関連付けられる信頼水準が、衝突のない走行を保証するには不十分である別の状況を記述することができる。いくつかの例によれば、状態・イベントマネージャ1122は、規範的または非規範的である自律車両の状態を決定するために、知覚データ1132を使用するように構成されている。信頼水準ジェネレータ1123は、自律車両の状態を決定するために、知覚データ1132を分析するように構成されることができる。例えば、信頼水準ジェネレータ1123は、プランナ1164が安全な方策を決定しているという確実度を強化するために、静的オブジェクトおよび動的オブジェクトと関連付けられる意味情報、および、関連付けられる確率推定を使用することができる。例えば、プランナ1164は、プランナ1164が安全に動作しているか否かを決定するために、オブジェクトが人間である、または、人間でない確率を指定する知覚エンジンデータ1132を使用することができる(例えば、プランナ1164は、オブジェクトが、98%の人間である確率、および、オブジェクトが人間でないという2%の確率を有する確実度を受信することができる)。
【0048】
信頼水準(例えば、統計および確率論的決定に基づく)が、予測される安全動作に必要とされる閾値を下回るという決定を受けて、相対的に低い信頼水準(例えば、単一の確率スコア)が、自律車両サービスプラットフォーム1101に遠隔操作者の支持を求める要求1135を送信するようにプランナ1164をトリガすることができる。いくつかの事例において、テレメトリデータおよび候補軌道のセットが、この要求に付随してもよい。テレメトリデータの例は、センサデータ、位置特定データ、知覚データなどを含む。遠隔操作者1108は、選択された軌道1137を、遠隔操作者コンピューティングデバイス1104を介して、案内される軌道のジェネレータ1126に送信することができる。そのため、選択された軌道1137は、遠隔操作者からの案内によって形成される軌道である。状態に変化がないという確認を受けて(例えば、非規範的状態が未決)、案内される軌道のジェネレータ1126は、軌道ジェネレータ1124にデータを渡し、軌道ジェネレータ1124は、軌道トラッカ1128に、軌道追跡コントローラとして、制御信号1170(例えば、ステアリング角度、速度など)を生成するために、遠隔操作者によって指定される軌道を使用させる。プランナ1164は、状態が非規範的状態に移行する前に、遠隔操作者の支持を求める要求1135の送信をトリガすることができることに留意されたい。特に、自律車両コントローラおよび/またはその構成要素は、離れた障害物に問題があり得ることを予測し、前もって、プランナ1164に、自律車両が障害物に達する前に遠隔操作を呼び出させることができる。そうでない場合、自律車両は、障害物またはシナリオへの遭遇を受けて安全状態に移行すること(例えば、路肩に寄り、停車すること)によって、遅延を引き起こすことができる。別の例において、遠隔操作は、ナビゲートすることが困難であることが分かっている特定のロケーションに自律車両が接近する前に、自動的に呼び出されてもよい。そのような状況が、センサ読み値、および様々なソースから導出される交通または事故データの信頼性に対する外乱を引き起こす可能性がある場合、この決定は、任意選択的に、時刻、太陽の位置を含む他のファクタを考慮に入れてもよい。
【0049】
図12は、いくつかの実施形態による、自律車両を制御するように構成されているフロー図の例である。1202において、フロー1200が開始する。オブジェクトのサブセットを表現するデータは自律車両内のプランナにおいて受信され、オブジェクトのサブセットは、分類タイプの確実度を表現するデータと関連付けられる少なくとも1つのオブジェクトを含む。例えば、知覚エンジンデータは、オブジェクトと関連付けられるメタデータを含むことができ、それによって、メタデータは、特定の分類タイプと関連付けられる確実度を指定する。例えば、動的オブジェクトは、正確であるという85%の信頼水準をもって「若い歩行者」として分類され得る。1204において、ローカライザデータが(例えば、プランナにおいて)受信され得る。ローカライザデータは、自律車両内でローカルに生成されるマップデータを含むことができる。局所的マップデータは、一定の地理的領域においてイベントが発生し得る確実度(不確実度を含む)を指定することができる。イベントは、自律車両の動作に影響を与えるか、または、動作に影響を与える可能性がある条件または状況であり得る。イベントは、自律車両の内部(例えば、機能不全にされたまたは機能が損なわれたセンサ)または外部(例えば、道路の閉塞)であってもよい。イベントの例は、
図2ならびに他の図面および節など、本明細書において記述されている。対象の地理的領域と同延の経路が、1206において決定され得る。例えば、イベントが、ラッシュアワーの交通状態の間に太陽光が運転者の視覚の機能を損なう時刻における、空における太陽の位置付けであると考える。そのため、交通は、明るい太陽光に応答して減速し得ると予想または予測される。したがって、プランナは、イベントを回避するための代替の経路の可能性が低い場合、前もって遠隔操作を呼び出すことができる。1208において、プランナにおいて、局所的位置データに基づいてローカル位置が決定される。1210において、例えば、分類タイプの確実度、および、速度、位置、および他の状態情報のような任意の数のファクタに基づき得るイベントの確実度に基づいて、自律車両の動作状態が(例えば、確率論的に)決定され得る。例示のために、他の運転者の視覚が太陽によって機能を損なわれる可能性があり、それによって、若い歩行者にとって安全でない状況が引き起こされるイベントの間に、自律車両によって若い歩行者が検出される例を考える。それゆえ、相対的に安全でない状況が、発生する可能性があり得る確率論的なイベント(すなわち、遠隔操作者が呼び出される可能性がある安全でない状況)として検出され得る。1212において、動作状態が規範的状態である可能性が決定され、この決定に基づいて、次の動作状態への移行に前もって備える(例えば、規範的動作状態から、安全でない動作状態のような非規範的動作状態への移行に前もって備える)ように、遠隔操作者に要求するメッセージが、遠隔操作者コンピューティングデバイスに送信される。
【0050】
図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を送信する。
【0051】
別の動作状態(例えば、規範的状態)において、静的マップデータ1301、現在のおよび予測されるオブジェクト状態のデータ1303、局所的位置データ1305、およびプランデータ1307(例えば、グローバルプランデータ)が軌道カリキュレータ1325へと受信され、軌道カリキュレータ1325は、最適な1つまたは複数の経路を決定するために、軌道を(例えば、反復的に)計算するように構成されている。次に、少なくとも1つの経路が選択され、選択された経路のデータ1311として送信される。いくつかの実施形態によれば、軌道カリキュレータ1325は、例として軌道の再プランニングを実施するように構成されている。公称運転軌道ジェネレータ(nominal driving trajectory generator)1327が、receding horizon制御技法に基づいて軌道を生成することによってのような、洗練された手法において軌道を生成するように構成されている。公称運転軌道ジェネレータ1327はその後、公称運転軌道経路データ1372を、例えば、ステアリング、加速の物理的変更を実施するための軌道トラッカまたは車両コントローラ、および他の構成要素に送信することができる。
【0052】
図14は、いくつかの実施形態による、自律車両サービスプラットフォームの別の例を示す図である。
図1400は、遠隔操作者1408の間の相互作用および/または通信を管理するように構成されている遠隔操作者マネージャ1407、遠隔操作者コンピューティングデバイス1404、ならびに自律車両サービスプラットフォーム1401の他の構成要素を含む自律車両サービスプラットフォーム1401を示す。さらに
図1400について、自律車両サービスプラットフォーム1401は、シミュレータ1440、リポジトリ1441、ポリシマネージャ1442、基準データアップデータ(reference data updater)1438、2Dマップデータリポジトリ1420、3Dマップデータリポジトリ1422、およびルートデータリポジトリ1424を含む。4Dマップデータ(例えば、エポック決定を使用する)のような他のマップデータが実施され、リポジトリ(図示せず)に格納されてもよい。
【0053】
遠隔操作者アクション推奨コントローラ(teleoperator action recommendation controller)1412は、遠隔操作者の支援を求める要求ならびにテレメトリデータおよび他のデータを含むことができる自律車両(「AV」)プランナデータ1472を介して遠隔操作サービス要求を受信および/または制御するように構成されている論理を含む。そのため、プランナデータ1472は、遠隔操作者1408が遠隔操作者コンピューティングデバイス1404を介してそこから選択することができる、推奨される候補軌道または経路を含むことができる。いくつかの例によれば、遠隔操作者アクション推奨コントローラ1412は、そこから最適な軌道を選択すべきである、推奨される候補軌道の他のソースにアクセスするように構成されることができる。例えば、自律車両プランナデータ1472内に含まれる候補軌道は、並列に、シミュレータ1440へと導入されてもよく、シミュレータ1440は、遠隔操作者の支援を要求している自律車両によって経験されているイベントまたは条件をシミュレートするように構成されている。シミュレータ1440は、マップデータ、および、候補軌道のセットに関するシミュレーションを実施するために必要な他のデータにアクセスすることができ、それによって、シミュレータ1440は、十分性を確認するためにシミュレーションを徹底的に繰り返す必要がない。むしろ、シミュレータ1440は、候補軌道の妥当性を確認し得、または、そうでなければ遠隔操作者に、それらの選択に注意するよう警告することができる。
【0054】
遠隔操作者相互作用キャプチャアナライザ(teleoperator interaction capture analyzer)1416は、大量の遠隔操作者トランザクションまたは相互作用を、リポジトリ1441内に格納するためにキャプチャするように構成されることができ、リポジトリ1441は、例えば、少なくともいくつかの事例において、いくつかの遠隔操作者トランザクションに関係するデータを、ポリシの分析および生成のために累積することができる。いくつかの実施形態によれば、リポジトリ1441はまた、ポリシマネージャ1442によるアクセスのためにポリシデータを格納するように構成されることもできる。さらに、遠隔操作者相互作用キャプチャアナライザ1416は、遠隔操作者の支援を求める要求を引き起こすイベントまたは条件にいかに最良に応答すべきかを経験的に決定するために、機械学習技法を適用することができる。いくつかの事例において、ポリシマネージャ1442は、(例えば、機械学習技法の適用後に)遠隔操作者相互作用の大きなセットの分析に応答して、特定のポリシを更新し、または、新たなポリシを生成するように構成されることができる。ポリシマネージャ1442は、自律車両コントローラおよびその構成要素が、車両の自律動作に準拠するためにそれに基づいて動作する規則またはガイドラインとして見られ得るポリシを管理する。いくつかの事例において、修正または更新されたポリシが、そのようなポリシ変更を永続的にリリースまたは実施することの有効性を確認するために、シミュレータ1440に適用されてもよい。
【0055】
シミュレータインターフェースコントローラ1414は、シミュレータ1440と遠隔操作者コンピューティングデバイス1404との間のインターフェースを提供するように構成されている。例えば、自律車両の群からのセンサデータが、自律(「AV」)群データ1470を介して基準データアップデータ1438に適用され、それによって、基準データアップデータ1438が更新されたマップおよびルートデータ1439を生成するように構成されると考える。いくつかの実施態様において、更新されたマップおよびルートデータ1439は、事前に、マップデータリポジトリ1420および1422内のデータに対する更新として、または、ルートデータリポジトリ1424内のデータに対する更新としてリリースされることができる。この事例において、そのようなデータは、例えば、事前に更新されている情報を含むマップタイルが自律車両によって使用されるときに、遠隔操作者サービスを要求するためのより低い閾値が実施され得る「ベータバージョン」であるものとしてタグ付けされ得る。さらに、更新されたマップおよびルートデータ1439は、更新されたマップデータを検証するためにシミュレータ1440に導入され得る。(例えば、ベータ試験の終了時の)全リリースを受けて、遠隔操作者サービスを要求するための以前に下げられていた閾値はキャンセルされる。ユーザインターフェースグラフィックスコントローラ1410は、豊富なグラフィックスを遠隔操作者1408に提供し、それによって、自律車両の群が、シミュレータ1440内でシミュレートされることができ、シミュレートされている自律車両の群があたかも現実であるかのように、遠隔操作者コンピューティングデバイス1404を介してアクセスされることができる。
【0056】
図15は、いくつかの実施形態による、自律車両を制御するためのフロー図の例である。1502において、フロー1500が開始する。自律車両の群を管理するためのメッセージデータが、遠隔操作者コンピューティングデバイスにおいて受信され得る。メッセージデータは、自律車両のプランニングされている経路の文脈において非規範的動作状態と関連付けられるイベント属性を指示することができる。例えば、イベントは、例えば信号機に違反して急いで通りを渡っている多数の歩行者に起因して問題になる特定の交差点として特性化され得る。イベント属性は、例えば、通りを渡っている人間の数、増大した数の歩行者からもたらされる交通遅延などのようなイベントの特性を記述する。1504において、遠隔操作リポジトリは、自律車両のグループと関連付けられる、集約されているデータのシミュレートされている動作に基づいて、推奨の第1のサブセットを取り出すためにアクセスされることができる。この事例において、シミュレータは、それをもって遠隔操作者が実施することができる推奨のソースであり得る。さらに、遠隔操作リポジトリはまた、同様のイベント属性に応答した遠隔操作者相互作用の集約に基づいて、推奨の第2のサブセットを取り出すためにアクセスされることもできる。特に、遠隔操作者相互作用キャプチャアナライザは、遠隔操作者の支援を求める以前の要求に基づいて同様の属性を有するイベントにいかに最良に応答すべきかを経験的に決定するために、機械学習技法を適用することができる。1506において、推奨の第1のサブセットおよび第2のサブセットが、自律車両に対する推奨される方策のセットを形成するために、組み合わされる。1508において、推奨される方策のセットの表現が、遠隔操作者コンピューティングデバイスのディスプレイ上に、視覚的に提示されることができる。1510において、推奨される方策の選択(例えば、遠隔操作者による)を表現するデータ信号が検出されることができる。
【0057】
図16は、いくつかの例による、群最適化マネージャを実施する自律車両群マネージャの例の図である。
図1600は、道路網1650内を移動する自律車両の群1630を管理するように構成されている自律車両群マネージャを示す。自律車両群マネージャ1603は、遠隔操作者コンピューティングデバイス1604を介して遠隔操作者1608に結合されており、また、群管理データリポジトリ1646にも結合されている。自律車両群マネージャ1603は、ポリシデータ1602および環境データ1606、ならびに他のデータを受信するように構成されている。さらに
図1600について、群最適化マネージャ1620は、移動要求プロセッサ1631を含むように示されており、移動要求プロセッサ1631は、群データエクストラクタ(fleet data extractor)1632および自律車両派遣最適化カリキュレータ1634を含む。移動要求プロセッサ1631は、自律車両サービスを要求しているユーザ1688からのもののような、移動要求を処理するように構成されている。群データエクストラクタ1632は、群内の自律車両に関係するデータを抽出するように構成されている。各自律車両と関連付けられるデータはリポジトリ1646内に格納されている。例えば、各車両に関するデータは、保守管理課題、スケジュールされているサービス依頼、日常の使用状況、電池充電および放電率、および任意の他のデータを記述することができ、これらは、リアルタイムに更新されることができ、休止時間を最小化するために自律車両の群を最適化する目的のために使用されることができる。自律車両派遣最適化カリキュレータ1634は、抽出されたデータを分析し、ステーション1652などからの派遣される次の車両が、自律車両サービスについて、集合の中で最小の走行時間および/または費用を提供することを保証するように、群の最適化された使用状況を計算するように構成されている。
【0058】
群最適化マネージャ1620は、混合自律車両/非自律車両プロセッサ1640を含むように示されており、混合自律車両/非自律車両プロセッサ1640は、AV/非AV最適化カリキュレータ1642および非AVセレクタ1644を含む。いくつかの例によれば、混合自律車両/非自律車両プロセッサ1640は、自律車両および人間によって運転される車両(例えば、独立請負人としての)からなる混合群を管理するように構成されている。そのため、自律車両サービスは、過剰な需要を満たすために、または、地理上のフェンスを越える場合がある非AVサービス領域1690のような領域、または、不満足な通信カバレージの領域において非自律車両を利用することができる。AV/非AV最適化カリキュレータ1642は、自律車両群の使用状況を最適化し、非AV運転者を輸送サービスに(例えば、自律車両サービスに対する損害を最小限にして、または、損害がまったくないように)招聘するように構成されている。非AVセレクタ1644は、AV/非AV最適化カリキュレータ1642によって導出される計算に基づいて、支援するための非AV運転者の数を選択するための論理を含む。
【0059】
図17は、いくつかの実施形態による、自律車両の群を管理するためのフロー図の例である。1702において、フロー1700が開始する。1702において、ポリシデータが受信される。ポリシデータは、移動要求にサービスするために自律車両を選択するためにいかに最良に適用するかを規定するパラメータを含むことができる。1704において、リポジトリからの群管理データが抽出され得る。群管理データは、自律車両のプールに関するデータのサブセットを含む(例えば、データは、輸送要求にサービスするために車両の準備ができているかを記述する)。1706において、移動要求を表現するデータが受信される。例示的な目的のために、移動要求は、第1の地理的ロケーションから第2の地理的ロケーションへの輸送手段に対するものであり得る。1708において、ポリシデータに基づく属性が、要求にサービスするために利用可能である自律車両のサブセットを決定するために計算される。例えば、属性は、電池充電レベル、および、次にスケジュールされている保守管理までの時間を含んでもよい。1710において、自律車両が、第1の地理的ロケーションから第2の地理的ロケーションへの輸送手段として選択され、自律車両を、移動要求の起点と関連付けられる第3の地理的ロケーションに派遣するためのデータが生成される。
【0060】
図18は、いくつかの実施形態による、自律車両通信リンクマネージャを実施する自律車両群マネージャを示す図である。
図1800は、「低減された通信の領域」1880として識別される通信機能停止と一致する道路網1850内を移動する自律車両の群1830を管理するように構成されている自律車両群マネージャを示す。自律車両群マネージャ1803は、遠隔操作者コンピューティングデバイス1804を介して遠隔操作者1808に結合されている。自律車両群マネージャ1803は、ポリシデータ1802および環境データ1806、ならびに他のデータを受信するように構成されている。さらに
図1800について、自律車両通信リンクマネージャ1820が、環境イベントディテクタ(environment event detector)1831、ポリシ適合デタミネータ1832、および移動要求プロセッサ1834を含むように示されている。環境イベントディテクタ1831は、自律車両サービスが実施されている環境内の変化を指定する環境データ1806を受信するように構成されている。例えば、環境データ1806は、領域1880が劣化した通信サービスを有し、これによって自律車両サービスに影響を与える可能性があることを指定することができる。ポリシ適合デタミネータ(policy adaption determinator)1832は、そのようなイベントの間に(例えば、通信の喪失の間に)移動要求を受信するときに適用すべきパラメータを指定することができる。移動要求プロセッサ1834は、劣化した通信を考慮して移動要求を処理するように構成されている。この例において、ユーザ1888が、自律車両サービスを要求している。さらに、移動要求プロセッサ1834は、不満足な通信に起因する複雑化を回避するように自律車両が派遣される方法を修正するための、適合されたポリシを適用するための論理を含む。
【0061】
通信イベントディテクタ1840が、ポリシダウンロードマネージャ1842と、通信設定された(「COMM設定された」)AVディスパッチャ1844とを含む。ポリシダウンロードマネージャ1842は、低減された通信の領域1880を考慮して自律車両1830に更新されたポリシを提供するように構成されており、それによって、更新されたポリシは、自律車両が領域1880に入る場合に、その領域を迅速に出るためのルートを指定することができる。例えば、自律車両1864は、領域1880に入る前の時点で、更新されたポリシを受信することができる。通信の喪失を受けて、自律車両1864は、更新されたポリシを実施し、領域1880から迅速に出るためのルート1866を選択する。COMM設定されたAVディスパッチャ1844は、領域1880にわたるピアツーピアネットワークの確立に対する中継装置として構成される、自律車両を駐めるためのポイント1865を識別するように構成されることができる。そのため、COMM設定されたAVディスパッチャ1844は、ピアツーピアアドホックネットワークにおける電波塔として動作する目的のために、ロケーション1865に駐めるために自律車両1862(搭乗者なし)を派遣するように構成されている。
【0062】
図19は、いくつかの実施形態による、劣化または喪失した通信のようなイベント中の自律車両に対するアクションを決定するためのフロー図の例である。1901において、フロー1900が開始する。ポリシデータが受信され、それによって、ポリシデータは、イベント中に地理的領域における移動要求に適用するためのパラメータを規定する。1902において、以下のアクションのうちの1つまたは複数が実施され得る。(1)その地理的ロケーションの部分内の地理的ロケーションに自律車両のサブセットを派遣する。自律車両のサブセットは、特定の地理的ロケーションに駐まり、各々が静的通信中継装置としての役割を果たすか、または、各々が移動通信中継装置としての役割を果たすために、地理的領域内で移動する。(2)その地理的領域の部分と関連付けられる自律車両のプールの部分の間でピアツーピア通信を実施する。(3)イベント中のその地理的領域の部分を脱出するためのルートを記述するイベントポリシを、自律車両に提供する。(4)遠隔操作を呼び出す。および(5)その地理的領域を回避するように、経路を再計算する。アクションの実施後、1914において、その自律車両の群が監視される。
【0063】
図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を形成するために複数のセンサからのセンサデータを統合または融合するように構成されている。
【0064】
図21は、いくつかの実施形態による、集積センサデータに基づいて局所的位置データを生成するためのフロー図の例である。2101において、フロー2100が開始する。2102において、基準データが受信され、基準データは、三次元マップデータを含む。いくつかの例において、3Dまたは4Dマップデータのような基準データが、1つまたは複数のネットワークから受信されてもよい。2104において、1つまたは複数の位置特定センサからの位置特定データが受信され、位置特定システム内に配置される。2106において、1つまたは複数の位置決めセンサからの位置決めデータが受信され、位置決めシステム内に配置される。2108において、位置特定データおよび位置決めデータが統合される。2110において、自律車両の地理的位置を指定するローカル位置データを形成するために、位置特定データおよび位置決めデータが統合される。
【0065】
図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を含む。様々な例において、ソナーデータなどのような、他のタイプのセンサデータおよびセンサまたはプロセッサが実施されてもよいことに留意されたい。
【0066】
さらに
図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)、ポーズグラフ緩和、粒子フィルタ、ヒストグラムフィルタなどのような非線形平滑化機能を実施することができる。
【0067】
図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を生成するために機械学習技法を適用することができる。
【0068】
図24は、いくつかの実施形態による、知覚エンジンデータを生成するためのフロー図の例である。フロー
図2400は2402において開始し、自律車両のローカル位置を表現するデータが取り出される。2404において、1つまたは複数の位置特定センサからの位置特定データが受信され、2406において、セグメント化されたオブジェクトを形成するために、自律車両が配置されている環境の特徴がセグメント化される。2408において、動き(例えば、推定される動き)を有する少なくとも1つの追跡されているオブジェクトを形成するために、セグメント化されたオブジェクトの1つまたは複数の部分が空間的に追跡される。2410において、追跡されているオブジェクトが、少なくとも静的オブジェクトまたは動的オブジェクトのいずれかであるものとして分類される。いくつかの事例において、静的オブジェクトまたは動的オブジェクトは、分類タイプと関連付けられることができる。2412において、分類されたオブジェクトを識別するデータが生成される。例えば、分類されたオブジェクトを識別するデータは、意味情報を含むことができる。
【0069】
図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つまたは複数は、任意選択であってもよい。
【0070】
図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はまた、例えば、レーダまたはソナー、および、任意の他のタイプのセンサデータのような他のセンサデータを使用してもよい。
【0071】
図26Bは、少なくともいくつかの例による、オブジェクトトラッカの別の例を示す図である。
図2601は、1つまたは複数の他の図面(例えば
図26A)に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができるオブジェクトトラッカ2631を含む。示されているように、オブジェクトトラッカ2631は、オブジェクト走査見当合わせおよびデータ融合を実施するように構成されているプロセッサ2696を含む任意選択の見当合わせ部分2699を含む。プロセッサ2696は、結果もたらされるデータを3Dオブジェクトデータベース2698に格納するようにさらに構成されている。
【0072】
図26Aに戻って参照すると、
図2600はまた、クラシファイヤ2660をも含み、クラシファイヤ2660は、静的障害物データ2672および動的障害物データ2674を生成するためのトラック分類エンジン2662を含むことができ、これらのデータは両方とも、経路プランニング目的のためにプランナに送信されることができる。少なくとも1つの例において、トラック分類エンジン2662は、障害物が静的であるかまたは動的であるか、および、オブジェクトの別の分類タイプ(例えば、オブジェクトが車両、歩行者、樹木、自転車利用者、犬、猫、紙袋などであるか)を決定するように構成されている。静的障害物データ2672は、障害物マップ(例えば、2D占有マップ)の部分として形成されることができ、動的障害物データ2674は、速度および分類タイプを指示するデータを有する境界ボックスを含むように形成されることができる。動的障害物データ2674は、少なくともいくつかの事例において、2D動的障害物マップデータを含む。
【0073】
図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に結合されている。
【0074】
図28は、様々な実施形態による、合成環境において自律車両をシミュレートするように構成されているシミュレータを示す図である。
図2800は、シミュレートされた環境2803を生成するように構成されているシミュレータ2840を含む。示されているように、シミュレータ2840は、シミュレートされた環境2803内に、シミュレートされた表面2892aおよび2892bのようなシミュレートされた幾何学的形状を生成するために、基準データ2822(例えば、3Dマップデータおよび/もしくは他のマップ、または、RNDFデータもしくは同様の道路網データを含むルートデータ)を使用するように構成されている。シミュレートされた表面2892aおよび2892bは、道路に隣接する建造物の壁または側面をシミュレートすることができる。シミュレータ2840はまた、合成環境において動的な作用因子をシミュレートするために、動的オブジェクトデータを事前に生成または手続き的に生成することもできる。動的な作用因子の例は、シミュレートされた動的オブジェクト2801であり、これは、一定の速度を有するシミュレートされた自転車利用者を表す。シミュレートされた動的な作用因子は、任意選択的に、シミュレートされた自律車両を含む、シミュレートされた環境内の他の静的な作用因子および動的な作用因子に応答することができる。例えば、シミュレートされたオブジェクト2801は、予め設定された起動に従うのではなく、シミュレートされた環境2803内の他の障害物のために減速することができ、それによって、現実世界に存在する実際の動的な環境のより現実的なシミュレーションを生成する。
【0075】
シミュレータ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は、センサ機能不全、センサ誤較正、断続的なデータの機能停止などを含む、様々なセンサ欠陥をシミュレートするように構成されることができる。
【0076】
シミュレータ2840は、シミュレートされた自律車両2830の挙動のシミュレーションに使用するための、自律車両の機械的、静的、動的、および運動学的態様をシミュレートするための物理プロセッサ2850を含む。例えば、物理プロセッサ2850は、接触力学をシミュレートするための接触力学モジュール2851、シミュレートされているボディ間の相互作用をシミュレートするための衝突検出モジュール2852、および、シミュレートされている機械的相互作用間の相互作用をシミュレートするためのマルチボディ動態モジュール2854を含む。
【0077】
シミュレータ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は、自己シミュレーションによる学習を行うように、適用可能な制御および結果もたらされる軌道の空間を探索するために使用されることができる。
【0078】
図29は、いくつかの実施形態による、自律車両の様々な態様をシミュレートするためのフロー図の例である。フロー
図2900は2902において開始し、三次元マップデータを含む基準データがシミュレータへと受信される。2904において、分類されているオブジェクトの運動パターンを規定する動的オブジェクトデータが取り出されることができる。2906において、シミュレートされた環境が、少なくとも三次元(「3D」)マップデータおよび動的オブジェクトデータに基づいて形成される。シミュレートされた環境は、1つまたは複数のシミュレートされた表面を含むことができる。2908において、シミュレートされた環境の部分を形成するシミュレートされた自律車両コントローラを含む自律車両がシミュレートされる。自律車両コントローラは、センサデータを受信するように構成されているシミュレートされた知覚エンジンおよびシミュレートされたローカライザを含むことができる。2910において、少なくとも1つのシミュレートされたセンサ戻りに関するデータに基づいて、シミュレートされたセンサデータが生成され、2912において、合成環境内のシミュレートされた自律車両によって動き(例えば、ベクトル化された推進)を引き起こすためのシミュレートされた車両コマンドが生成される。2914において、シミュレートされた自律車両が、予想される挙動と一致して(例えば、ポリシと一致して)挙動したか否かを決定するために、シミュレートされた車両コマンドが評価される。
【0079】
図30は、いくつかの実施形態による、マップデータを生成するためのフロー図の例である。フロー
図3000は3002において開始し、軌道データが取り出される。軌道データは、一定の時間期間にわたって(例えば、ログ記録された軌道として)キャプチャされた軌道を含むことができる。3004において、少なくとも位置特定データが取り出されることができる。位置特定データは、一定の時間期間にわたって(例えば、ログ記録された位置特定データとして)キャプチャされることができる。3006において、位置特定データのサブセットを生成するために、カメラまたは他の画像センサが実施されることができる。そのため、取り出された位置特定データは、画像データを含むことができる。3008において、位置特定データのサブセットが、グローバル場所(例えば、グローバル位置)を識別するために整列される。3010において、三次元(「3D」)マップデータが、グローバル位置に基づいて生成され、3012において、三次元マップデータが、例えば、手動ルートデータエディタ(例えば、RNDFエディタのような手動道路網データエディタを含む)、自動ルートデータジェネレータ(例えば、自動RNDFジェネレータを含む、自動道路網ジェネレータを含む)、自律車両の群、シミュレータ、遠隔操作者コンピューティングデバイス、および、自律車両サービスの任意の他の構成要素による実施のために利用可能である。
【0080】
図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マッパ3154およびライダ自己較正ユニット3156を含む。さらに、論理3144は、3Dマップデータ3120(または、4Dマップデータのような他のマップデータ)を生成するために、センサデータおよびポーズグラフデータ3145を受信する。いくつかの例において、論理3144は、最適な三次元マップを形成するためにセンサデータおよび/またはマップデータを融合するために切断符号付き距離関数(「TSDF」)を実施することができる。さらに、論理3144は、テクスチャおよび反射特性を含むように構成されている。3Dマップデータ3120は、手動ルートデータエディタ3160(例えば、ルートデータまたは他のタイプのルートもしくは基準データを操作するためのエディタ)、自動ルートデータジェネレータ3162(例えば、ルートデータまたは他のタイプの道路網もしくは基準データを生成するように構成されている論理)、自律車両の群3164、シミュレータ3166、遠隔操作者コンピューティングデバイス3168、および、自律車両サービスの任意の他の構成要素による使用のためにリリースされることができる。マッピングエンジン3110は、手動注釈または自動的に生成される注釈、および、ソナーまたは機器を備え付けられた環境(例えば、スマートストップランプ)から意味情報をキャプチャすることができる。
【0081】
図32は、いくつかの実施形態による、自律車両アプリケーションを示す図である。
図3200は、自律車両3230を介したユーザ3202の輸送手段を構成するために自律車両サービスプラットフォーム3201に接触するように構成されている自律サービスアプリケーション3240を含むモバイルコンピューティングデバイス3203を示す。示されているように、自律サービスアプリケーション3240は、コンピューティングデバイス(例えば、携帯電話3203など)上に存在するソフトウェアアプリケーションであってもよい輸送コントローラ3242を含むことができる。輸送コントローラ3242は、ユーザ3202がユーザのロケーションから目的地までの輸送手段を構成することができる自律車両および/または自律車両群に関係付けられる動作を受信、スケジュール、選択、または実施するように構成されている。例えば、ユーザ3202は、車両3230を要求するためにアプリケーションを開くことができる。アプリケーションは、マップを表示することができ、ユーザ3202は、例えば、地理上のフェンス領域内で自身の目的地を指示するためにピンをドロップすることができる。代替的に、アプリケーションは、近傍の予め指定された乗車ロケーションのリストを表示してもよく、または、ユーザに、住所もしくは名前のいずれかによって目的地をタイプするためのテキスト入力フィールドを提供してもよい。
【0082】
さらに、示されている例について、自律車両アプリケーション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の相対距離および/または方向を決定することができる。
【0083】
自律車両3230はまた、ユーザの固有の顔特性に基づいて一般的にユーザ3202を検出するか、または、ユーザ3202の識別情報(例えば、名前、電話番号など)を識別するための顔検出アルゴリズムを実施するように構成されている論理のような、ユーザ3202の存在を識別するための追加の論理をも含むことができる。さらに、自律車両3230は、ユーザ3202を識別するためのコードを検出するための論理を含むことができる。そのようなコードの例は、QRコード、カラーコードなどのような特殊化された視覚コード、声によって起動または認識されるコードなどのような特殊化されたオーディオコードなどを含む。いくつかの事例において、コードは、セキュアな進入および/または脱出を保証するためにリンク3262を介して自律車両3230にデジタルに送信されることができる、符号化されたセキュリティキーであってもよい。さらに、ユーザ3202を識別するための、上記で識別された技法のうちの1つまたは複数は、他者が自律車両3230に入るのを防止するように(例えば、ユーザ3202に到達する前に第三者が占有されていない自律車両に入らないことを保証するために)、ユーザ3202に進入および脱出の特権を与えるための安全確保された手段として使用されることができる。様々な例によれば、ユーザ3202を識別し、安全確保された進入および脱出を提供するための任意の他の手段がまた、自律車両サービスアプリケーション3240、自律車両サービスプラットフォーム3201、および自律車両3230のうちの1つまたは複数において実施されてもよい。
【0084】
ユーザ3302がその要求されている輸送手段に到達するのを支援するために、自律車両3230は、自律車両3230がユーザ3202に接近するときにその存在をユーザ3202に通知または他の様態で警告するように構成されることができる。例えば、自律車両3230は、特定の光パターンに従って、1つまたは複数の発光デバイス3280(例えば、LED)を起動することができる。特に、ユーザ3202の輸送手段要求にサービスするために自律車両3230が確保されていることを、ユーザ3202が容易に知覚することができるように、特定の光パターンが生成される。例として、自律車両3230は、ユーザ3202によって、そのような視覚的および時間的方法でその外部および内部ライトの「まばたき」または他のアニメーションとして知覚され得る光パターン3290を生成することができる。光のパターン3290は、ユーザ3202に対して、この車両がユーザが予約したものであることを識別するために、音声のパターンを伴ってまたは伴わずに生成されてもよい。
【0085】
いくつかの実施形態によれば、自律車両ユーザコントローラ3244は、自律車両の様々な機能を制御するように構成されているソフトウェアアプリケーションを実施することができる。さらに、アプリケーションは、自律車両を、その最初の目的地への移動中に方向転換またはルート変更するように構成されることができる。さらに、自律車両ユーザコントローラ3244は、内蔵論理に、例えばムード照明を行うために自律車両3230の内部照明を修正させるように構成されることができる。コントローラ3244はまた、オーディオのソース(例えば、Spotifyのような外部ソース、または、モバイルコンピューティングデバイス3203にローカルに格納されているオーディオ)を制御すること、搭乗のタイプを選択すること(例えば、所望される加速およびブレーキの積極性を修正すること、アクティブサスペンションパラメータを修正して「路面対処(road-handling)」特性のセットを選択して、振動を含む積極的な運転特性を実施すること、または、快適性のために振動が減衰されている「穏やかな搭乗(soft-ride)」を選択すること)などもできる。例えば、モバイルコンピューティングデバイス3203は、換気および温度のような、HVAC機能をも制御するように構成されることができる。
【0086】
図33~
図35は、様々な実施形態による、自律車両サービスの構成要素に様々な機能を提供するように構成されている様々なコンピューティングプラットフォームの例を示す。いくつかの例において、コンピューティングプラットフォーム3300は、コンピュータプログラム、アプリケーション、方法、プロセス、アルゴリズム、または上述されている技法を実施するための他のソフトウェアを実施するために使用されることができる。
【0087】
図33の様々な構造および/または機能は、
図34および
図35に適用可能であり、そのため、それらの図面のいくつかの要素は、
図33の文脈において論じられ得ることに留意されたい。
【0088】
いくつかの場合において、コンピューティングプラットフォーム3300は、自律車両サービスプラットフォーム内の1つまたは複数のコンピューティングデバイス内に配置され得るコンピューティングデバイス3390a、自律車両3391、および/またはモバイルコンピューティングデバイス3390bなどの、任意のデバイス内に配置され得る。
【0089】
コンピューティングプラットフォーム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を介して入力および出力を表現するデータを交換する。
【0090】
いくつかの例によれば、コンピューティングプラットフォーム3300は、システムメモリ3306に格納されている1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ3304によって特定の動作を実施し、コンピューティングプラットフォーム3300は、クライアント-サーバ構成、ピアツーピア構成において、または、スマートフォンなどを含む任意のモバイルコンピューティングデバイスとして実施されることができる。そのような命令またはデータは、記憶装置3308のような別のコンピュータ可読媒体からシステムメモリ3306へと読み出されることができる。いくつかの例において、ソフトウェア命令の代わりにまたはソフトウェアと組み合わせて、配線回路が実施のために使用されてもよい。命令は、ソフトウェアまたはファームウェアにおいて具現化されることができる。「コンピュータ可読媒体」という用語は、実行のためにプロセッサ3304に命令を提供することに関与する任意の有形媒体を参照する。そのような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む多くの形態をとることができる。不揮発性媒体は、例えば、光または磁気ディスクなどを含む。揮発性媒体は、システムメモリ3306のようなダイナミックメモリを含む。
【0091】
一般的な形態のコンピュータ可読媒体は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH‐EPROM、任意の他のメモリチップもしくはカートリッジ、または、コンピュータがそこから読み出すことができる任意の他の媒体を含む。命令は、さらに、伝送媒体を使用して送信または受信されることができる。「伝送媒体」という用語は、機械によって実行するための命令を格納、符号化または搬送することが可能である任意の有形または無形媒体を含むことができ、デジタルもしくはアナログ通信信号、または、そのような命令の通信を促進するための他の無形媒体を含む。伝送媒体は、コンピュータデータ信号を伝送するためのバス3302を含むワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。
【0092】
いくつかの例において、命令のシーケンスの実行は、コンピューティングプラットフォーム3300によって実施されることができる。いくつかの例によれば、コンピューティングプラットフォーム3300は、互いに協働して(または互いに対して非同期的に)命令のシーケンスを実施するために、通信リンク3321(例えば、LAN、PSTNのような有線ネットワーク、または、様々な規格およびプロトコルのWiFi、Bluetooth(登録商標)、NFC、Zig-Bee等を含む任意のワイヤレスネットワーク)によって任意の他のプロセッサに結合されることができる。コンピューティングプラットフォーム3300は、通信リンク3321および通信インターフェース3313を通じて、プログラムコード(例えば、アプリケーションコード)を含むメッセージ、データ、および命令を送信および受信することができる。受信されるプログラムコードは、受信されるときにプロセッサ3304によって実行されてもよく、および/または、後の実行のためにメモリ3306または他の不揮発性記憶装置に格納されてもよい。
【0093】
示されている例において、システムメモリ3306は、本明細書において記述されている機能を実施するための実行可能命令を含む様々なモジュールを含むことができる。システムメモリ3306は、オペレーティングシステム(「O/S」)3332、ならびに、アプリケーション3336および/または論理モジュール3359を含むことができる。
図33に示されている例において、システムメモリ3306は、自律車両(「AV」)コントローラモジュール3350および/またはその構成要素(例えば、知覚エンジンモジュール、位置特定モジュール、プランナモジュール、および/またはモーションコントローラモジュール)を含み、それらのうちのいずれか、または、それらの1つもしくは複数の部分は、本明細書において記述されている1つまたは複数の機能を実施することによって、自律車両サービスを促進するように構成されることができる。
【0094】
図34に示されている例を参照すると、システムメモリ3306は、自律車両サービスプラットフォームモジュール3450および/またはその構成要素(例えば、遠隔操作者マネージャ、シミュレータなど)を含み、それらのうちのいずれか、または、それらの1つもしくは複数の部分は、本明細書において記述されている1つまたは複数の機能を実施することによって、自律車両サービスの管理を促進するように構成されることができる。
【0095】
図35に示されている例を参照すると、システムメモリ3306は、例えば、モバイルコンピューティングデバイスにおける使用のために、自律車両(「AV」)モジュールおよび/またはその構成要素を含む。モジュール3550の1つまたは複数の部分は、本明細書において記述されている1つまたは複数の機能を実施することによって、自律車両サービスの送達を促進するように構成されることができる。
【0096】
図33に戻って参照すると、上述されている特徴のうちのいずれかの構造および/または機能は、ソフトウェア、ハードウェア、ファームウェア、回路、またはそれらの組み合わせにおいて実施されることができる。上記の構造および構成要素ならびにそれらの機能は、1つまたは複数の他の構造または要素とともに集約されてもよいことに留意されたい。代替的に、要素およびそれらの機能は、もしあれば、構成部分要素に分割されることができる。ソフトウェアとして、上述されている技法は、様々なタイプのプログラミングまたはフォーマット言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、または技法を使用して実施されてもよい。ハードウェアおよび/またはファームウェアとして、上述されている技法は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)、または任意の他のタイプの集積回路を設計するように構成されている任意のレジスタ転送言語(「RTL」)のようなハードウェア記述言語を含む、様々なタイプのプログラミングまたは集積回路設計言語を使用して実施されてもよい。いくつかの実施形態によれば、「モジュール」という用語は、例えば、ハードウェア回路もしくはソフトウェアのいずれか、または、それらの組み合わせにおいて実施されるアルゴリズムもしくはその部分、および/または論理を参照することができる。これらは、変更されることができ、提供されている例または記述に限定されない。
【0097】
いくつかの実施形態において、
図33のモジュール3350、
図34のモジュール3450、および
図35のモジュール3550、またはそれらの構成要素のうちの1つもしくは複数、または本明細書において記述されている任意のプロセスもしくはデバイスは、携帯電話またはモバイルコンピューティングデバイスのようなモバイルデバイスと(例えば、有線またはワイヤレスで)通信することができ、または、その中に配置されることができる。
【0098】
いくつかの事例において、モバイルデバイス、または、1つもしくは複数のモジュール3359(
図33のモジュール3350、
図34のモジュール3450、および
図35のモジュール3550)もしくはその構成要素のうちの1つもしくは複数と通信する任意のネットワーク接続されているコンピューティングデバイス(図示せず)(または本明細書において記述されている任意のプロセスまたはデバイス)は、本明細書において記述されている特徴のうちのいずれかの構造および/または機能のうちの少なくともいくつかを提供することができる。上述されている図面に示されているように、上述されている特徴のうちのいずれかの構造および/または機能は、ソフトウェア、ハードウェア、ファームウェア、回路、またはそれらの任意の組み合わせにおいて実施されることができる。上記の構造および構成要素ならびにそれらの機能は、1つまたは複数の他の構造または要素とともに集約され、または、組み合わされてもよいことに留意されたい。代替的に、要素およびそれらの機能は、もしあれば、構成部分要素に分割されることができる。ソフトウェアとして、上述されている技法のうちの少なくともいくつかは、様々なタイプのプログラミングまたはフォーマット言語、フレームワーク、構文、アプリケーション、プロトコル、オブジェクト、または技法を使用して実施されてもよい。例えば、図面のうちのいずれかに示されている要素のうちの少なくとも1つは、1つまたは複数のアルゴリズムを表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能を提供するように構成されているハードウェアの部分を含む、論理の部分を表現することができる。
【0099】
例えば、
図33のモジュール3350、
図34のモジュール3450、および
図35のモジュール3550、またはその構成要素のうちの1つもしくは複数、または本明細書において記述されている任意のプロセスもしくはデバイスは、メモリ内の1つまたは複数のアルゴリズムを実行するように構成されている1つまたは複数のプロセッサを含む1つまたは複数のコンピューティングデバイス(すなわち、装着されるかまたは搬送されるかを問わず、ウェアラブルデバイス、オーディオデバイス(ヘッドフォンまたはヘッドセットなど)または携帯電話のような任意のモバイルコンピューティングデバイス)において実施されることができる。したがって、上述されている図面内の要素のうちの少なくともいくつかは、1つまたは複数のアルゴリズムを表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能を提供するように構成されているハードウェアの部分を含む、論理の部分を表現することができる。これらは、変更されることができ、提供されている例または記述に限定されない。
【0100】
ハードウェアおよび/またはファームウェアとして、上述されている構造技法は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)、マルチチップモジュール、または任意の他のタイプの集積回路を設計するように構成されている任意のレジスタ転送言語(「RTL」)のようなハードウェア記述言語を含む、様々なタイプのプログラミング言語または集積回路設計言語を使用して実施されることができる。
【0101】
例えば、
図33のモジュール3350、
図34のモジュール3450、および
図35のモジュール3550、またはその構成要素のうちの1つもしくは複数、または本明細書において記述されている任意のプロセスもしくはデバイスは、1つまたは複数の回路を含む1つまたは複数のコンピューティングデバイスにおいて実施されることができる。したがって、上述されている図面内の要素のうちの少なくとも1つは、ハードウェアの1つまたは複数の構成要素を表現することができる。または、それらの要素のうちの少なくとも1つは、構成構造および/または機能を提供するように構成されている回路の部分を含む、論理の部分を表現することができる。
【0102】
いくつかの実施形態によれば、「回路」という用語は、例えば、1つまたは複数の機能を実行するためにそれを通じて電流が流れるいくつかの構成要素を含む任意のシステムを参照することができ、構成要素は、個別のおよび複雑な構成要素を含む。個別の構成要素の例は、トランジスタ、抵抗器、キャパシタ、インダクタ、ダイオードなどを含み、複雑な構成要素の例は、フィールドプログラマブルゲートアレイ(「FPGA」)、特定用途向け集積回路(「ASIC」)を含む、メモリ、プロセッサ、アナログ回路、デジタル回路などを含む。それゆえ、回路は、電子構成要素および論理構成要素(例えば、例えばアルゴリズムの実行可能命令のグループのような命令を実行するように構成されており、したがって、回路の構成要素である論理)のシステムを含むことができる。いくつかの実施形態によれば、「モジュール」という用語は、例えば、ハードウェア回路もしくはソフトウェアのいずれか、または、それらの組み合わせにおいて実施されるアルゴリズムもしくはその部分、および/または論理を参照することができる(すなわち、モジュールは回路として実施することができる)。いくつかの実施形態において、アルゴリズムおよび/またはアルゴリズムが格納されているメモリは、回路の「構成要素」である。したがって、「回路」という用語は、例えば、アルゴリズムを含む構成要素のシステムをも参照することができる。これらは、変更されることができ、提供されている例または記述に限定されない。
【0103】
図36は、いくつかの例による、物理的環境における変化に応答する自律車両のためのマッピングデータを適応的に生成するように構成されたマッピングエンジンを示す図である。
図3600は、通信レイヤ(図示せず)を介して1つまたは複数の自律車両3630に通信可能に結合された自律車両サービスプラットフォーム3601内に配置されたマッピングエンジン3654を示す。マッピングエンジン3654は、マップデータを生成し、自律車両3630が通行する物理的環境における変化に応答してマップデータを適応的に修正するように構成される。示された例において、マッピングエンジン3654は、それぞれ、センサタイプ3602a、センサタイプ3602b、およびセンサタイプ3602cの任意の数のセンサまたはセンサデバイス3604a、3604b、および3604cを有するものとして示された自律車両3630から受信されたセンサデータに基づいてマッピングデータを生成することができる。自律車両3630は、任意の他のセンサタイプ3602nを有する任意の数の他のセンサまたはセンサデバイス3604nを含むことができる。センサ3604a、3604b、3604c、および3604nは、それぞれ、センサデータ3607a、3607b、3607c、および3607nを生成し、その1つまたは複数は、マップデータ3659(例えば、2D、3D、および/または4Dマップデータ)を生成するためのマッピングエンジン3654に受信され得る。マップデータ3659は、マップリポジトリ3605aに記憶するため、および、位置特定ならびに他の機能性を促進するために使用するために、自律車両3630に送信され得る。具体的には、自律車両3630は、通行中を含む任意の時点での自律車両の位置および/または局所的位置を決定するためにマップリポジトリ3605a内のマップデータを使用するローカライザ(図示せず)を含むことができる。
【0104】
前述のことを考慮して、マッピングエンジン3654の構造および/または機能性、ならびにその構成要素は、例えば、経時的なマップデータの一部における変化を検出し、自律車両3630が通行する物理的環境に対する変動または変化を含む更新されたマップ(すなわち、更新されたマップデータ)を生成することによって、「自己修復」マップおよびマップデータの生成を促進することができる。いくつかの実装形態において、マッピングエンジン3654は、自律車両の群が走行する経路および道路のネットワークに隣接する都市景観の適応三次元モデルを生成することができる。都市景観の一部の3Dモデルは、建物(商業用看板を含む)、樹木、ガードレール、障壁、街灯、交通標識および信号、ならびに、センサ3604a、3604b、3605c、および3604nによって検出され得る任意の他の物理的特徴のような、オブジェクトのファサードまたは外面を構成する表面(および、表面の形状、サイズ、テクスチャ、色などのような他の表面属性)を表すデータを識別することによって導出され得る。したがって、マッピングエンジン3654は、マップデータの一部に関連付けられたオブジェクト(またはオブジェクトが存在しないこと)、ならびに、オブジェクトにおける変化(例えば、色、サイズなどにおける変化)を検出するように構成され得、マップデータの更新された部分を(例えば、自動的に)適応的に形成するために、オブジェクトへの変化をマップデータに組み込むようにさらに構成され得る。したがって、マップデータの更新された部分は、数ある中で、自律車両3630に関する位置特定機能(ならびに、計画することなどを含む他の自律車両コントローラ機能)の精度を高めるために、マップリポジトリ3605a内に記憶され得る。
【0105】
いくつかの場合において、マッピングエンジン3654によって生成されたマップデータ3659は、自律車両3630内の局所的マップジェネレータ(local map generator)(図示せず)によって生成されるような局所的に生成されたマップデータ(図示せず)と組み合わせて使用され得る。例えば、自律車両コントローラ(図示せず)は、マップリポジトリ3605a内のマップデータの1つまたは複数の部分が局所的に生成されたマップデータの1つまたは複数の部分から変化することを検出することができる。自律車両コントローラ内の論理は、物理的環境における変化(例えば、静的オブジェクトにおける追加、除去、または変化)を識別するために、マップデータ内の差異(例えば、変動データ)を分析することができる。いくつかの例において、「変動データ」という用語は、遠隔的に生成されたマップデータと局所的に生成されたマップデータとの間の差異を指す場合がある。環境の変更された部分に基づいて、自律車両コントローラは、局所化を最適化するために、マップリポジトリ3605a内のマップデータおよび局所的に生成されたマップデータの様々な比例量を実装することができる。例えば、自律車両コントローラは、自律車両3630の位置または局所的位置の決定を最適化するために、遠隔的に生成されたマップデータと局所的に生成されたマップデータの両方から構成される混合マップデータを生成することができる。さらに、自律車両コントローラは、変動データを検出すると、様々な量のセンサに基づくデータまたは他のデータの自律車両サービスプラットフォーム3601への(様々な帯域幅またはデータレートにおける)送信を引き起こすことができる。例えば、自律車両サービスプラットフォーム3601は、例えば、遠隔操作者からの案内を受信する重要度に基づいて、異なるデータレートにおいて異なるタイプのデータを受信することができる。別の例として、センサデータ3607a、3607b、3607c、および3607nのサブセットは、例えば、リアルタイムにおいて(またはほぼリアルタイムにおいて)様々な程度の更新されたマップデータを形成するためにマップデータを修正するため、ならびに、以下の(1)マップデータにおける差異を評価し特性化すること、(2)群内の他の自律車両にマップデータの更新された部分を伝播させること、(3)マップデータの差異を検出することに応答して、遠隔操作者コンピューティングデバイスへの通知を生成すること、(4)遠隔操作者コンピューティングデバイスのユーザインターフェースにおいて任意の十分な解像度で表示するために、様々なセンサデバイス3604a、3604b、3604c、および3604nによって感知されるような環境(およびその変化された部分)の描写を生成することのうちの1つまたは複数をさらに実行するために(例えば、適切なデータレートにおいて)送信され得る。上記で説明された例は、限定ではなく、自律車両の群を管理するための任意の他のマップに関連する機能性が、マップデータと比較して物理的環境において検出された変化を考慮してマッピングエンジン3654を使用して実装され得ることに留意されたい。
【0106】
いくつかの例によれば、センサタイプ3602a、センサタイプ3602b、およびセンサタイプ3602cは、それぞれ、レーザに基づくセンサと、画像に基づくセンサと、レーダに基づくセンサとを含むことができる。そのようにして、センサ3604a、3604b、および3604cは、それぞれ、ライダと、カメラと、レーダデバイスとを含むことができる。
図3600内に示されているように、複数のセンサデバイス(例えば、ライダ)3604aは、各々、地理的位置において異なるレーザに基づいて感知されたデータ3607aを生成する。例えば、各ライダ3604aは、自律車両3630上の異なる位置において配置され得、各々は、異なって方向付けされ得る(
図3Aおよび
図3C参照、その両方は、異なるビューとセンサ視野とを有する異なるライダを示す)。投射するレーザビームの指向性の性質を仮定すれば、異なるライダ3604aの異なるレーザ戻りは、異なる時間において共通点(または、例えば、交通標識に関連付けられた点の共通セット)から戻る場合がある。マッピングエンジン3654および/または自律車両サービスプラットフォーム3601の構成要素は、環境内の表面からのレーザ戻りの共通点に対して、異なるライダ3604aのレーザ戻りを整列させ、マッピングし、変換し、または相関させるように構成され得る。マッピングエンジン3654および/または自律車両サービスプラットフォーム3601の構成要素はまた、センサデータ3607bとセンサデータ3607cとを同様に処理することができる。
【0107】
いくつかの例において、1つまたは複数のセンサ3604nは、センサデータ3607nの様々な異なるサブセットを生成するために、様々な異なるセンサタイプ(「n」)3602nを含むことができる。センサ3604nの例は、1つまたは複数の全地球測位システム(「GPS」)データ受信機-センサ、1つまたは複数の慣性測定ユニット(「IMU」)、1つまたは複数のオドメトリセンサ(例えば、ホイールエンコーダセンサ、ホイール速度センサ、および類似のもの)、1つまたは複数のホイール角度センサ、ならびに、自律車両の位置および姿勢データを提供する類似のもののような、測位センサを含む。そのような姿勢データは、1つまたは複数の座標(例えば、x座標、y座標、および/もしくはz座標)、ヨー値、ロール値、ピッチ値(例えば、角度値)、レート(例えば、速度)、高度、ならびに類似のものを含むことができる。
【0108】
自律車両サービスプラットフォーム3601内のログデータリポジトリ3609は、少なくとも1つの例において、それぞれ、生のライダデータと、生のカメラデータと、生のレーダデータと、他の生のセンサデータとを有する、センサデータ3607a、3607b、3607c、および3607nのサブセットを受信し記憶するように構成される。
図3600において示されているように、共通の時点において、または共通の時間期間中に、センサデータ3607a、3607b、および3607cのサブセットは、データセット(「1」)3610a、データセット(「2」)3610b、およびデータセット(「n」)3610nとして、または任意の数のデータセットとして記憶または記録され得る。データセット3610a、3610b、および3610nは、いくつかの例によれば、ログファイルのデータ構造内に記憶され得る。さらに、センサデータ3607a、3607b、および3607cのサブセットと同時に感知され得るセンサデータ3607nも、データセット3610a、3610b、および3610nのためのログファイルの一部として記憶され得る。
【0109】
整列コントローラ3640は、センサデータ3607a、3607b、3607c、および3607n、ならびに他のデータ3603mのうちの1つまたは複数を受信するように構成され得る。整列コントローラ3640はまた、センサデータ3607a、3607b、3607c、および3607nの整列されたサブセットを表すデータを生成するように構成され得る。いくつかの場合において、センサデータ3607は、測位データを含むセンサデータ3607nのサブセットを含むことができる(例えば、センサデータ3607mは、GPS、IMU、およびオドメトリデータを含むことができる)。センサデータ整列に関して、センサデータの整列されたサブセットを表すデータの例は、少なくとも整列されたライダデータと整列されたカメラデータとを表すデータを含む。いくつかの例によれば、整列コントローラ3640は、ライダセンサデータの部分またはフレームを位置合わせし、カメラデータの部分またはフレームを位置合わせする「位置合わせ」ポイントを識別することによってセンサデータを整列させるために、位置合わせアルゴリズムを実施するように構成され得る。例えば、整列コントローラ3640は、1つのライダからのレーザ戻りを他のライダにマッピングまたは関連付けることができ、1つのカメラからのピクセルデータを他のカメラにマッピングまたは関連付けることができる。さらに、整列コントローラ3640は、測位マップデータを生成することができ、そのようなデータは、個々の姿勢(例えば、局所的位置)を指定するデータがセンサ3607nから収集された測位センサデータ(例えば、GPSデータ、IMUデータ、オドメトリデータなど)に基づいて空間的に相互に関係付けられ得る姿勢グラフモデルに基づいてデータ構造内に記憶され得る。
【0110】
マッピングエンジン3654は、センサデータ3607a、3607b、3607c、および3607nのサブセットの統合に基づいて道路のネットワークに隣接する都市景観の高精細(「HD」)三次元モデルを生成するために、上記で説明された整列されたセンサデータ(例えば、位置合わせされたセンサデータ)と測位マップデータ(例えば、姿勢グラフに関連するデータ)とを受信するように構成され得る。
図3600に示されているように、マッピングエンジン3654は、以下の、様々な例による、センサデータを統合するためのインテグレータ3651、センサデータを較正するためのキャリブレータ3652、マップデータの部分における変化を検出するためのデータ変化ディテクタ(data change detector)3653、フォーマットされたマップデータを生成するためのタイルジェネレータ(tile generator)3656、および、変更されたマップデータの実施態様を管理するためのデータ変更マネージャ3657のうちの1つまたは複数を含むことができる。
【0111】
インテグレータ3651は、自律車両が走行する環境の3Dモデルとして高解像度(例えば、比較的高い解像度)の画像データを生成するために、(例えば、同じまたは異なるセンサモダリティ)のセンサデータの複数のサブセットを統合するように構成され得、センサの個々のタイプに関連付けられた誤差を低減するようにさらに構成され得る。いくつかの例によれば、インテグレータ3651は、統合されたセンサデータを形成するためにセンサデータ(例えば、ライダデータ、カメラデータ、レーダデータなど)を融合するように構成される。さらに、生のセンサデータセット3610a、3610b、および3610nは、自律車両3630の群からの1つまたは複数のセンサモダリティのセンサデータの1つまたは複数のサブセットの集合を融合するように、1つまたは複数の自律車両3630から受信され得る。生のセンサデータセット3610a、3610b、および3610nからのデータを融合することによって、インテグレータ3651は、データセット(「1」)3655aおよびデータセット(「2」)3655bのような融合されたセンサデータを含む3Dデータセットを生成することができる。インテグレータ3651は、レーザ戻りデータのサブセットと画像データのサブセットとを含む、少なくとも2つのタイプのセンサデータを統合するか、または他の方法で融合することができる。いくつかの例において、レーザおよび画像データの融合は、画像データのサブセットのピクセルデータをレーザ戻りデータのサブセットに相関させることを含むことができる。オプションとして、インテグレータ3651は、1つまたは複数のピクセルのピクセルデータを1つまたは複数のレーザ戻りに関連付けることができ、それによって、レーザデータは、三次元タイルデータ内の表面の一部に関連付けられ得る。ピクセルデータは、テクスチャ、色、反射率、透明度などを含む1つまたは複数の表面特性を指定することができる。いくつかの例によれば、インテグレータ3651は、カルマンフィルタリングプロセスもしくはその変形(例えば、拡張されたカルマンフィルタリングプロセス)、または、センサデータを融合する任意の他のプロセスを実施することができる。インテグレータ3651はまた、オブジェクト(例えば、建物、樹木、駐車された自動車など)の表面、または特徴、ならびに、センサデータが獲得され得る自律車両の姿勢に関係する表面特性を抽出または他の方法で決定するための論理を含むことができる。
【0112】
インテグレータ3651は、自律車両の環境内の物理的オブジェクトの表面に関連するデータを抽出するために、センサデータセット3655aおよび3655bを使用するように構成され得る。データセット3655aおよびデータセット3655b、ならびに図示されていない他のものは、異なる時点または異なる時間間隔に関係する三次元モデルを表す融合されたセンサデータを含むことができる。したがって、データセット3655は、物理的環境またはその部分に経時的な変化があるかどうかを検出するために使用され得る。少なくともいくつかの実装形態において、インテグレータ3651は、自律車両の外部の1つまたは複数の表面を決定するために、符号付き距離関数(「SDF」)のような距離変換を実施することもできることに留意されたい。一例において、丸め(truncated)符号付き距離関数(「TSDF」)または同等物が、基準点に関係する表面上の1つまたは複数の点(例えば、局所的位置に関係する外部オブジェクトの表面上の点までの1つまたは複数の距離)を識別するために実施され得る。
【0113】
インテグレータ3651は、確率マップとして都市景観(または任意の外部のオブジェクトの特徴)の3Dモデルを生成するように構成され得、それによって、マップデータは、1つまたは複数の環境特性にわたる確率分布を表すことができる。例えば、確率マップは、自律車両の姿勢に関係する距離または空間内の点におけるレーザ強度(例えば、平均レーザ強度または反射率)と赤外線送信(remittance)値の変動とを使用して形成され得る。マップデータを記憶するためのデータ構造は、例えば、強度平均値および分散値を含む、いくつかのセルを含むことができる。いくつかの例において、このデータ構造または任意の他のデータ構造はまた、色データ(例えば、RGB値もしくは他の色空間値)、テクスチャデータ、反射率データ、または任意の他の表面特性もしくは属性データ(例えば、鏡面データ)のような3Dマップデータを記憶するためのいくつかのセルを含むことができる。マップに関係するデータを記憶するように構成されたセルは、いくつかの例によれば、ボクセルとしてまたは3Dタイルとして実装され得る。
【0114】
マッピングエンジン3654および/またはインテグレータ3651、ならびにマッピングエンジン3654の他の構成要素は、動作の「オフライン」モードにおいて3Dマップを生成するように構成され得る。例えば、マッピングエンジン3654は、マップデータを生成するために記録されたデータセット(例えば、静的データ)に基づいてデータセット3655を分析するアルゴリズム(例えば、深層学習アルゴリズムを含む機械学習)を実装することができる。しかしながら、マッピングエンジン3654は、オフラインマップ生成に限定されなくてもよく、マップデータを生成するか、またはそれに対する変更を識別するために、生のセンサデータの1つまたは複数の部分がリアルタイム(またはほぼリアルタイム)において受信され得る、「オンライン」マップ生成技法を実施することもできる。マッピングエンジン3654は、同時位置特定およびマッピング(「SLAM」)または任意の適切なマッピング技法を実行するように構成された論理を実装することができる。
【0115】
データ変更ディテクタ3653は、3Dマップデータの任意の数のデータセットの例であるデータセット3655aおよび3655bにおける変化を検出するように構成される。データ変更ディテクタ3653はまた、変更されたマップデータの部分を識別すると共に、オプションで、マップデータの変更された部分に関連付けられたオブジェクトを識別または分類するデータを生成するように構成される。示されている例において、データセット3655aを含むいくつかのデータセットは、3Dモデルデータ3660(例えば、マップデータ3664の部分を含む時間T1における道路)として概念的に示されたマップデータを生成するように構成されたマップデータを含む。しかしながら、時間T2において、データ変更ディテクタ3653は、データセット3655bを含む別の数のデータセットが3Dモデルデータ3661のマップデータ3665の部分内の外部オブジェクトの存在を表すデータを含むことを検出することができ、それによって、マップデータ3665の部分は、異なる時間におけるマップデータ3664の部分と一致する。したがって、データ変更ディテクタ3653は、マップデータにおける変更を検出することができ、変更されたマップデータを(例えば、更新されたマップデータとして)含むようにマップデータをさらに適応的に変更することができる。
【0116】
いくつかの例によれば、データ変更ディテクタ3653は、物理的環境における変化を検出するために1つまたは複数の統計的変更検出アルゴリズムを実行するように構成される。多重時間分析技法または他の適切なアルゴリズムも使用され得る。データセット3655aおよび3655bの構造は、3Dマップデータ構造内に記憶されたセンサデータ(例えば、その測定値)をインデックスするための累積データ構造として実装され得る。例として、統計的変更検出アルゴリズムは、深層学習計算の1つまたは複数の反復にわたって境界を識別することによって、変更されたマップデータの部分を検出するように構成され得る。具体的には、データ変更ディテクタ3653は、2つ以上のデータセットにわたる(例えば、統計的変更検出アルゴリズムまたは深層学習アルゴリズムへのデータセットの適用の1つまたは複数のパスまたはエポックにわたる)ような、時間にわたってマップデータ部分3664および3665の境界を検出するように構成され得る。エポック決定はまた、例えば、4Dマップおよび関連する4Dマップデータを構築するために適用され得る。いくつかの例において、データ変更ディテクタ3653は、オブジェクトが静的であるか動的であるかを識別するために、マップデータの部分ならびにその中のオブジェクトを分類することができる。いくつかの場合において、動的オブジェクトがマップデータ生成から除外され得る。
【0117】
マッピングエンジン3654は、マップデータ3659を基準データリポジトリ3605内のマップデータリポジトリ3605aに提供するように構成される。マッピングエンジン3654は、自律車両の群内の基準データストア(すなわち、リポジトリ)に送信するための基準データとして更新された三次元(「3D」)マップデータを形成するために、マップデータにおける変更を適用するように構成され得る。データにおける変化は、様々なタイプのセンサデータが感知される環境の状態変化を表すことができる。したがって、環境の状態変化は、その中に位置するオブジェクトの状態における変化(例えば、1つまたは複数のオブジェクトの存在または不在を表すデータの包含)を示すことができる。いくつかの例において、データ変更マネージャ3657は、マップデータの一部が変更されたマップデータ3658(またはその表示)を含むことを(例えば、識別子またはインジケータデータ3658を介して)識別または他の方法で指定するように構成され得る。示されているように、マップリポジトリ3605aに記憶されたマップデータ3692は、マップデータの関連する部分が変更されたことを示す表示データ(「デルタデータ」)3694に関連付けられるか、またはリンクされる。示された例にさらに付け加えると、表示データ3694は、自律車両が走行する3Dモデル3661に関連付けられた物理的環境内に配置された交通コーンのセットを、マップデータ3665の変更された部分として識別することができる。
【0118】
タイルジェネレータ3656は、データセット3655aおよび3655bからのマップデータに基づいて、二次元または三次元マップタイルを生成するように構成され得る。マップタイルは、マップリポジトリ3605a内に記憶するために送信され得る。タイルジェネレータ3656は、マップの一部がマップデータの更新された部分であることを示すためのインジケータデータを含むマップタイルを生成することができる。さらに、更新されたマップ部分は、自律車両内の基準データリポジトリ3605に組み込まれ得る。したがって、自律車両3630が物理的環境を通って走行し、環境内の最近追加されたオブジェクト(例えば、交通コーン)の近くを走行することを計画する例を考える。ローカライザ(図示せず)は、自律車両を位置特定するために、マップデータの変更された部分(例えば、マップデータの更新された部分)に関連付けられたマップデータにアクセスすることができる。更新されたマップバージョンによる位置特定の実行を検出すると、論理は、更新されたマップデータの使用が、自律車両3630を効率的かつ安全にナビゲートするために使用され得ることを確実にするために、追加の処理を実施することができる。例えば、変更されたマップデータを含むマップタイルが、位置特定中にアクセスまたは実施されるとき、遠隔操作者に対する監視または支援の要求が生成され得る。いくつかの例において、マップデータの変更された部分はまた、そのようなデータが、例えば、検証されたマップデータよりも少ない状況において使用され得るので、一時的なマップデータを指す場合もあることに留意されたい。
【0119】
しかしながら、マップデータの変更された部分はまた、マップデータへの統合のために検証され得、それによって、変更されたマップデータの状態は、「一時的」から「検証された」に移行されることに留意されたい。そのようなデータを検証することの例を例示するために、マップデータにおける変更が、更新された三次元マップデータとしてシミュレータコンピューティングデバイスにエクスポートされ得ることを考える。シミュレータコンピューティングデバイスは、次いで、更新された三次元マップデータに基づいて、シミュレートされた環境内の自律車両の群の一部の性能をシミュレートすることができる。更新された三次元マップデータを検証するとすぐに、変更されたマップ部分は、新しい三次元マップデータを形成するために組み込まれ得る。「新しい」三次元マップデータは、変更されたマップデータの表示(すなわち、変更されたマップデータ3694の表示)が、遠隔操作者の支援に対する要求(例えば、自動要求)の呼び出しと共に除去され得るように、信頼され得る三次元マップデータとして見られ得る。
【0120】
いくつかの例によれば、マッピングエンジン3654は、
図31において示されているような3Dマッピングエンジンおよび/もしくはマッパを含むことができ、または
図31において示されているような3Dマッピングエンジンおよび/もしくはマッパとして実装され得る。さらに、マッピングエンジン3654の構成要素は、マッピングエンジン3654内にまたはマッピングエンジン3654なしで組み合わされ得、さもなければ分散され得る。マッピングエンジン3654およびその構成要素のいずれかは、ハードウェアもしくはソフトウェア、またはそれらの任意の組み合わせにおいて実装され得る。さらに、マッピングエンジン3654は、オブジェクトの検出、セグメント化、および/または分類を実行するための知覚エンジンの1つまたは複数の構成要素を含む、本明細書において説明される任意の機能性および/または構造を含むことができる。
【0121】
さらなる例として、整列コントローラ3640が、
図31のマッピングエンジン3110の1つまたは複数の構成要素を含むことができることを考える。例えば、整列コントローラ3640は、ループ閉鎖ディテクタ(loop-closure detector)3150と、位置合わせコントローラ3152と、グローバル位置ジェネレータ(global pose generator)3143と、位置合わせ精密化モジュール3146とを含むことができる。
図36において示された例において、自律車両サービスプラットフォーム3601は、
図36の自律車両3630が以前に走行した位置グラフの1つまたは複数の部分を検出するように構成され得る
図31のループ閉鎖ディテクタ3150を、整列コントローラ3640の一部として実装することができる(例えば、
図31のループ閉鎖ディテクタ3150は、閉ループを識別するための1つまたは複数のループ閉鎖プロセスを実行することができる)。位置合わせコントローラ3152は、同じまたは異なるセンサデータの複数の部分またはフレームを整列または位置合わせするように構成され得る。例えば、画像データの1つまたは複数のデータセットは、互いに、ならびに、レーザ戻りデータおよび/またはレーダ戻りデータの1つまたは複数のデータセットに変換または他の方法でマッピングされ得る。位置合わせコントローラ3152は、グローバル座標系の相対座標を識別するために、位置データを表す軌道データに基づいて、レーザ戻りデータのサブセット、画像データのサブセット、および類似のものを整列させるように構成され得る。軌道データの例は、GPSデータ、IMUデータ、オドメトリデータなどを含む。グローバル位置グラフジェネレータ(global pose graph generator)3143は、グローバル座標系に対して
図36の自律車両3630の位置を指定するように位置グラフデータ3145を生成するように構成され得る。したがって、位置グラフの局所的に検出された位置は、グローバル座標系に参照付けられ得る。例えば、
図31のグローバル位置グラフジェネレータ3143は、グローバル座標系に参照付けられたグローバル位置グラフを形成するように構成され得る。グローバル位置グラフは、第1のタイプのセンサデータ(例えば、レーザ戻りデータのサブセット)および第2のタイプのセンサデータ(例えば、画像データのサブセット)ならびに他のオプションのセンサデータ(例えば、レーダデータのサブセット)に基づいて形成され得る。さらに、グローバル位置グラフジェネレータ3143はまた、レーザ戻りデータのサブセットと画像データのサブセットとを、グローバル座標系の座標に関連する位置に整列させるように構成され得る。位置合わせ精密化モジュール3146は、キャプチャされた画像データ、キャプチャされたレーザ戻りデータ、または、レーダデータおよび類似のもののような他のキャプチャされたセンサデータのうちの1つまたは複数の位置合わせを精密化するように構成される。いくつかの例において、位置合わせ精密化モジュール3146は、例えば、3Dマップ化表面上への色データの投影に続いて、マップデータのアーティファクト(例えば、ぼかしアーティファクトまたは類似のもの)を低減または除去するように構成される。
【0122】
図37は、いくつかの例による、更新されたマップデータを実装する自律車両コントローラの例を示す図である。
図3700は、三次元マップタイルとして実装され得るマップデータ3759を生成するように構成されたマッピングエンジン3754を示す。示されている例において、マップデータ3759はまた、変更されたマップデータの部分(例えば、マップデータの変更されていない部分と共に使用するためのマップデータの更新された部分)、もしくは変更されたマップデータの更新された部分を識別する表示(例えば、インジケータデータもしくはポインタ)のいずれか、またはその両方を含む変更されたマップデータ3758を含むことができる。
図3700にさらに付け加えると、自律車両サービスプラットフォーム3701は、ネットワーク3702を介して、マップデータ3786と変更されたマップデータ3788とを送信するように構成され得る。自律車両コントローラ3747は、自律車両3730を位置特定するために、マップデータ3786および/または変更されたマップデータ3788を使用する。いくつかの例において、自律車両コントローラ3747は、変更されたマップデータ3788が位置特定中にアクセスされていることを検出することができる。次に、自律車両コントローラ3747は、遠隔操作者に支援を要求するために、遠隔操作者要求データ3770を生成することができる。遠隔操作者要求データ3770はまた、マップデータの更新された部分がアクセスまたは実装される位置特定中に(または、自律車両3730がマップデータの更新された部分に関連付けられた物理的位置に近づくか、またはその近くを走行するとき)、遠隔操作者が、少なくとも自律車両3730の性能を監視することを要求するように構成され得る。
【0123】
いくつかの例において、マッピングエンジン3754によって生成されたマッピングデータは、RNDFのようなデータのような、ルートデータ(例えば、道路ネットワークデータ)のような他の基準データと、MDFのようなデータのようなミッションデータと、自律車両の群をナビゲートするために使用され得る他の基準データとを生成するために使用され得る。示されているように、ルートデータジェネレータ(route data generator)3780は、変更されていないマップデータおよび/または検証されたマップデータに基づいてルートデータ3782を生成するように構成され得る。さらに、ルートデータジェネレータ3780は、変更されたおよび/または検証されていないマップデータを使用して生成され得る変更されたルートデータ3784を生成するように構成され得る。いくつかの場合において、自律車両コントローラ3747は、変更されたルートデータ3784の使用を検出することに応答して、遠隔操作者要求データ3770を生成することができる。したがって、変更されたルートデータ3784(例えば、検証されていない、または一時的なマップデータ)は、遠隔操作者によって生成された案内データの支援を用いて、またはなしで、自律車両をナビゲートするために使用され得る。
【0124】
図38は、いくつかの実施形態による、マップデータを生成することの例を示すフロー図である。フロー3800は、3802において開始する。複数のタイプのセンサデータのサブセットが、3802において(例えば、ログファイルを含むことができるデータストアまたはリポジトリ内で)アクセスされる。複数のタイプのセンサデータのサブセットは、複数のセンサまたはセンサデバイスのグループに対応することができる。例えば、ライダセンサデータのサブセットは、レーザ戻りデータが受信される異なるライダセンサのグループに対応することができる。3804において、センサデータは、整列されたセンサデータを形成するために、グローバル座標系に対して整列され得る。例えば、位置決めプロセスまたはアルゴリズムは、センサデータを整列または位置決めするように構成され得る。3806において、三次元マップデータのデータセットは、整列されたセンサデータに基づいて生成され得る。3808において、マップデータにおける変更は、三次元マップデータの少なくとも2つのデータセットに対して検出され得る。マップデータにおける変更は、更新された三次元マップデータを形成するために、3810において適用され得る。3Dマップデータの1つまたは複数の更新された部分は、自律車両の群内の1つまたは複数の車両への送信のために、基準データとしてフォーマットされ得る。3812において、更新された(例えば、変更された)三次元マップデータは、少なくとも1つの自律車両に送信され得る。フロー図の各部分は、フロー図の他の部分に依存せずにまたは依存して実行され得ると同時に、フロー図の任意の1つまたは複数の他の部分と連続的にまたは同時に実行され得るので、このフロー図または本明細書における他のフロー図に示された順番は、様々な機能を線形的に実行する必要性を暗示することを意図されないことに留意されたい。
【0125】
図39は、いくつかの例による、マップデータと局所的に生成されたマップデータとを実装するように構成されたローカライザの例を示す図である。様々な例によれば、自律車両(「AV」)コントローラ3947のローカライザ3968は、局所的に生成されたマップデータ3941またはマップデータ3943のいずれか、またはそれらの組み合わせに基づいて、局所的位置データ3920を生成するように構成され得る。局所的位置データ3920は、自律車両3930のローカル位置を記述するデータを含むことができ、マップデータ3943は、自律車両サービスプラットフォーム3901のマッピングエンジン3954において生成され得る。したがって、ローカライザ3968は、局所的に生成されたマップデータ3941とマップデータ3943との間の変更、偏差、または変動を考慮して位置特定を実行するためにマップデータ3943を使用することができる。
【0126】
図3900は、自律車両コントローラ3947と、局所的マップジェネレータ3940と、基準データリポジトリ3905とを含む自律車両3930を示す。
図3900はまた、マッピングエンジン3954と、遠隔操作者コンピューティングデバイス3904とを含む自律車両サービスプラットフォーム3901を示す。基準データリポジトリ3905は、三次元マップデータ3943を記憶するように構成されたマップストア3905aと、ルートデータを(例えば、ルートデータまたは道路ネットワークデータの一部が変更された道路ネットワークデータまたは更新された道路ネットワークデータに関連付けられることの表示と共に、またはなしで)記憶するためのデータリポジトリであり得るルートデータストア3905bとを含む。
【0127】
局所的マップジェネレータ3940は、センサタイプ3902a、3902b、および3902cからのセンサデータのような、複数の量およびタイプのセンサデータを受信するように構成され得る。様々な例によれば、局所的マップジェネレータ3940は、(例えば、ライダセンサのグループ、カメラのグループ、レーダのグループなどからの)センサタイプ3902a、3902b、および3902cからのセンサデータに基づいて、マップデータ(例えば、三次元マップデータ)をリアルタイムで(またはほぼリアルタイムで)局所的に生成するように構成され得る。局所的マップジェネレータ3940は、同時位置特定およびマッピング(「SLAM」)または任意の適切なマッピング技法を実行するように構成された論理を実装することができる。少なくともいくつかの例において、局所的マップジェネレータ3940は、センサタイプ3902a~3902cからの生のセンサデータの1つまたは複数の部分が、自律車両3930をナビゲートするためのマップデータ(またはそれに対するアイデンティティの変更)を生成するためにリアルタイム(またはほぼリアルタイム)で受信され得る、「オンライン」マップ生成技法を実施することができる。局所的マップジェネレータ3940はまた、自律車両の外部の表面を決定するために、符号付き距離関数(「SDF」)のような距離変換を実施することもできる。一例において、丸め符号付き距離関数(「TSDF」)または同等物が、基準点に関係する表面上の1つまたは複数の点(例えば、外部オブジェクトの表面上の点までの1つまたは複数の距離)を識別するために実施され得、それによって、TSDF関数は、三次元局所的マップデータ3941を形成するために、センサデータと表面データとを融合するために使用され得る。
【0128】
ローカライザ3968は、三次元マップデータ3943(または任意の他の基準データ)に関連付けられたグローバル座標系の座標に対して自律車両3930を位置特定するために、センサデータ、ならびに局所的に生成されたマップデータ3941およびマップデータ3943を受信するように構成され得る。また、ローカライザ3968は、変動ディテクタ3969aと、混合マップ選択コントローラ3969bとを含むように示されている。変動ディテクタ(variant detector)3969aは、空間内の特定の表面または点に関連付けられたマップデータの部分が変化するかどうかを決定するために、局所的に生成されたマップデータ3941をマップデータ3943と比較するように構成される。具体的には、変動ディテクタ3969aは、局所的マップデータ3941の2つまたは複数のマップ部分を表すデータ(例えば、変動データ)が三次元マップデータ3943から変動することを検出することができる。
【0129】
ローカライザ3968は、変動するマップデータ部分または変動データを検出すると、局所的に生成されたマップデータ3941およびマップデータ3943からの混合マップデータを使用して自律車両3930を位置特定するように構成され得る。示されている例において、混合マップ選択コントローラ3969bは、局所的に生成されたマップデータ3941もしくはマップデータ3943、またはそれらの組み合わせが位置特定のために使用され得るかどうかを制御するように構成される。いくつかの例によれば、例えば、各々の信頼性または精度を示すことができる対応する確率分布に基づいて、異なる量の局所的に生成されたマップデータ3941およびマップデータ3943が使用され得る。いくつかの例において、混合マップ選択コントローラ3969bは、変動データを形成するために、マップデータ3943の1つまたは複数のマップ部分と、局所的マップデータ3941の1つまたは複数の部分との間の差を特性化するように構成され得る。変動データに基づいて、混合マップ選択コントローラ3969bは、局所的マップデータ3941を使用する優先度と、マップデータ3943を使用する優先度とを決定するように構成され得、変動データに基づいて、ローカライザ3968に、第1の優先度付けされた量の局所的マップデータ3941と、第2の優先度付けされた量の三次元マップデータ3943とを使用させるようにさらに構成され得る。例として、変動ディテクタ3969aが、局所的マップデータ3941の対応する部分から変動するマップデータ3943のいくつかの部分に関する変動データを検出する例を考える。局所的マップデータ3941が変動データのほとんどの部分についてより正確であると決定されることをさらに考える。しかしながら局所的マップデータ3941の少なくとも1つの部分は、マップデータ3943の対応する部分よりも比較的低い、正確である可能性を有する。この場合において、混合マップ選択コントローラ3969bは、(マップデータ3943にある程度依存して)位置特定に関して局所的マップデータ3941により依存することができるが、(例えば、より低い優先度を有する)局所的マップデータ3941の対応する部分よりも位置特定について(例えば、より高い優先度を有する)マップデータ3943の特定の部分により依存することもできる。
【0130】
図40は、いくつかの例による、局所的に生成されたセンサデータおよび/またはマップデータの送信レートまたは量を変化させるように構成されたローカライザの例を示す図である。
図4000は、自律車両4030a、4030b、4030c、および4030nを含むいくつかの自律車両を示し、
図4000はまた、遠隔操作者4008からのデータ信号(例えば、ユーザ入力)を受け入れる遠隔操作者コンピューティングデバイス4006に関連して実装される、マッピングエンジン4054と遠隔操作者論理4004とを含む自律車両サービスプラットフォーム4001を示す。遠隔操作者論理4004は、サーバコンピューティングデバイス(図示せず)または遠隔操作者コンピューティングデバイス4006内に配置され得る。示されているように、自律車両4030aは、自律車両コントローラ4047と、基準データリポジトリ4005(例えば、マップデータ4046を記憶するためのマップストアまたはリポジトリ4005aと、ルートデータストアまたはリポジトリ4005bとを含む)と、自律車両4030aと自律車両サービスプラットフォーム4001との間でデータを交換するように構成されたトランシーバ4044とを含むことができる。
図4000にさらに付け加えると、自律車両コントローラ4070は、異なるタイプのセンサ4002a~4002cからのセンサデータに基づいて局所的マップデータ4041を生成するように構成され得る局所的マップジェネレータ4040を含むことができる。自律車両コントローラ4070は、局所的位置データ4020を生成するための、変動ディテクタ4069aと通信コントローラ4069bとを含むように示されているローカライザ4068も含むように示されている。
図40の
図4000において示されている要素は、数ある中で
図39のような1つまたは複数の他の図面に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができることに留意されたい。
【0131】
局所的マップデータ4041と(マッピングエンジン4054によって生成された)マップデータ4043との間の変動を検出することに続いて、通信コントローラ4069bは、トランシーバ4044、ならびに、自律車両サービスプラットフォーム4001に送信されるデータのタイプまたは量を制御するように構成され得る。したがって、通信コントローラ4069bは、様々な例によれば、検出されたマップデータ変動を解決するために、遠隔操作論理4004および/または遠隔操作者4008が案内データの最適セットを選択するのに十分なデータを提供するように構成される。通信コントローラ4069bは、帯域幅を節約するために、最適なデータの量またはデータレートを提供するように構成される。通信コントローラ4069bの動作を例示するために、変動ディテクタ4069aが、マップデータ4043と局所的マップデータ4041との間の比較的軽微なまたは少量の差を検出することを考える。この場合において、通信コントローラ4069bは、軽微な変更を含む環境を通って走行する際に、自律車両4030aを少なくとも監視するように遠隔操作者に促すために遠隔操作者4008に警告を提供するために、比較的少ない量のデータを送信することができる。さらに、劣化されたまたは低速度のデータ通信接続の間、より大量のデータではなく、より単純なまたはより抽象的なデータの描写が送信され得る(例えば、関連付けられたメタデータを有する境界ボックスなど)。
【0132】
別の例として、変動ディテクタ4069aが、マップデータ4043と局所的マップデータ4041との間の比較的穏やかな量の差を検出することを考える。この場合において、通信コントローラ4069bは、遠隔操作者論理4004による評価のために自律車両サービスプラットフォーム4001に局所的マップデータ4041の1つまたは複数の部分を送信するために、トランシーバ4044の送信帯域幅を増加するように構成され得る。さらに別の例において、変動ディテクタ4069aが、マップデータ4043と局所的マップデータ4041との間の比較的大きい量の差を検出することを考える。この場合において、通信コントローラ4069bは、ディスプレイ4009上の物理的環境の視覚的提示のために、自律車両サービスプラットフォーム4001に高解像度センサデータ4047の1つまたは複数の部分を送信するために、トランシーバ4044による送信帯域幅をさらに増加するように構成され得る。例えば、すべてのまたは実質的にすべてのライダデータは、送信され得るが、すべてのライダデータよりも少ない任意の量が送信され得る。センサに基づくデータ4002は、遠隔操作者4008がマップデータにおける変更を視覚的に識別することができるように、リアルタイムで(またはほぼリアルタイムで)三次元ビューを生成するために使用され得る。示されているように、最近配置された交通コーン4011は、変動データの原因であるとして、または、マップデータ4043の部分と局所的マップデータ4041との間の差であるとして識別される。上記で説明された実装形態は、
図4000内に示された要素の任意の数の実装形態のうちのほんの少数の例であり、そのようにして、
図4000の上記の説明は、限定であることを意図されないことに留意されたい。
【0133】
図41は、いくつかの例による、自律車両を位置特定するために様々な量の局所的に生成されたマップデータを使用する例示的なプロセスを示すフロー図である。フロー4100は、三次元マップデータに関連してグローバル座標系の座標に対して自律車両を位置特定することを含む4102において開始する。4104において、変動データが検出され得る。すなわち、複数のセンサタイプによって生成されたセンサデータ(例えば、ライダデータ、カメラデータなど)から変動した三次元マップデータの1つまたは複数のマップ部分を表すデータが検出され得る。一例において、混合マップデータが、局所的マップおよび三次元マップからのマップデータを使用して実装され得る。局所的マップの異なる量および三次元マップからの異なる量が、例えば、マップデータの部分の予測される精度に基づいて使用され得ることに留意されたい。別の例において、4106において、フロー4100は、局所的マップおよび三次元マップから混合マップデータを実装することができ、遠隔操作者要求が4108において生成され得る。4110において、三次元マップデータと感知されたデータ(例えば、局所的マップデータを生成するために使用されるデータ)との間の差が特性化され得、特性に基づいて、センサに関連するデータ(例えば、生のセンサデータ、局所的マップデータなど)を自律車両サービスプラットフォームに送信するレートは、4112において調整され得る。4114において、自律車両が遠隔操作者コンピューティングデバイスのディスプレイ上にイベントを描画するためにデータを取得する環境の三次元表現が生成される。したがって、マップデータと局所的に生成されたマップデータとの間の差を引き起こすオブジェクトの追加または不在は、遠隔操作者に視覚的に提示され得る。
【0134】
図42~
図43は、様々な実施形態による、自律車両サービスの構成要素に、様々なマッピングに関連する機能性を提供するように構成された様々なコンピューティングプラットフォームの例を示す。いくつかの例において、コンピューティングプラットフォーム3300は、上記で説明された技法を実行するために、コンピュータプログラム、アプリケーション、方法、プロセス、アルゴリズム、または他のソフトウェアを実施するために使用され得る。
図33の様々な構造および/または機能性は、
図42および
図43に適用可能であり、そのため、それらの図面におけるいくつかの要素は、
図33の文脈において論じられ得ることに留意されたい。
図42の
図4200および
図43の
図4300において示された要素は、数ある中で
図33~
図35のような1つまたは複数の他の図面に関連して記述されている、同様に名付けられている要素としての構造および/または機能を含むことができることにさらに留意されたい。
【0135】
図42において示された例を参照すると、システムメモリ3306は、自律車両サービスプラットフォームモジュール4250および/またはその構成要素(例えば、マッピングエンジンモジュール4252など)を含み、そのいずれか、またはその1つもしくは複数の部分は、本明細書で説明された1つまたは複数の機能を実装することによって自律車両サービスのためのナビゲーションを促進するように構成され得る。
【0136】
図43において示された例を参照すると、システムメモリ3306は、自律車両(「AV」)モジュール4350および/またはその構成要素(例えば、局所的マップジェネレータモジュール4352、混合マップ選択制御モジュール4354、通信制御モジュール4356など)を含み、例えば、自律車両4391内に実装され得る。いくつかの場合において、システムメモリ3306またはその一部は、モバイルコンピューティングデバイス4390a内に配置され得る。モジュール4350の1つまたは複数の部分は、本明細書に記載された1つまたは複数の機能を実装することによって、自律車両サービスのナビゲーションを促進するように構成され得る。
【0137】
上記の例は、理解の明瞭性の目的のためにいくらか詳細に記述されているが、上述されている本発明の技法は、提供されている詳細には限定されない。上述されている本発明の技法を実施する多くの代替的な方法がある。開示されている例は、例示であり、限定ではない。