(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0006】
以下、検討した詳細を参照して本発明の様々な実施形態及び態様を説明し、添付の図面は、前記様々な実施形態を示す。以下の説明及び図面は、本発明の例示であり、本発明を限定するものとして解釈されるべきではない。本発明の様々な実施形態の完全な理解を提供するために、多くの詳細が記載されている。しかしながら、場合によって、本発明の実施形態の説明の簡潔さから、周知又は従来の詳細は記載されていない。
【0007】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に説明した特定の特徴、構造、又は特性を本発明の少なくとも1つの実施形態に含めることができることを意味する。本明細書を通じて使用される「一実施形態では」という語句は、必ずしもすべて同じ実施形態を指すとは限らない。
【0008】
一部の実施形態によると、自律走行車を製造するとき、システムは、自律走行車に対し特に設計された走行環境を構築して人間の思考過程をエミュレートすることによって、走行環境を理解し、安全かつ適切な決定を下す。走行環境(走行世界とも呼ばれる)は、いくつかのサブ環境(サブ世界とも呼ばれる)により構成されている。各サブ環境は、指定された目的のための特定の時空間領域または走行シナリオをカバーする。一実施形態では、構築される環境は、人間が必要なすべての状況下で感知することができるすべての対象を獲得する。異なるシナリオにおいて、対象は、異なる意味を持つことができ、異なるサブ環境に出現する可能性があるため、対象に対して異なる決定が行われる。各サブ環境からの対象の決定は、実際の最終決定と処理のために、統合される方法で合併される。車両の実際の操作を示す最終決定は、それぞれの対象の最終決定から推定される。サブ環境は、人間の運転経験に似たすべての必要なシナリオをカバーするが、各サブ環境は、特定の目的または走行シナリオのために指定されることが好ましい。これにより、これらのサブ環境は、一定の独立性有して、開発やメインテナンスが容易になり、迅速に並行して構築することができる。
【0009】
一実施形態では、自律走行車に搭載された様々なセンサから受信したセンサデータに応答して、センサデータに基づいて、自律走行車の周辺環境を感知する。周辺環境は、自律走行車を囲む複数のサブ環境を含む。各サブ環境について、サブ環境に対応する走行シナリオに関連する走行シナリオハンドラの1つが識別される。走行シナリオハンドラの各々は、走行サブ環境内の特定の走行シナリオを処理する。識別された走行シナリオハンドラは、対応するサブ環境内の走行条件または走行環境を決定するために呼び出される。走行シナリオハンドラにより提供されたサブ環境の走行条件に基づいて、周辺環境の全体の走行条件が決定される。周辺環境の全体の走行条件の理解に基づいて、ルートセグメントが計画される。自律走行車は、ルートセグメントに従って制御され、走行される。ルートセグメントは、出発地から目的地までのルートの多くのルートセグメントの1つである。上記のプロセスは、ルートに沿ってルートセグメントごとに繰り返し実行されることができる。
【0010】
図1は、本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。
図1を参照して、ネットワーク配置100は、ネットワーク102によって1つ以上のサーバ103〜104に通信可能に接続することができる自律走行車101を含む。1つの自律走行車を示すが、ネットワーク102によって、複数の自律走行車が互いに接続され、及び/又はサーバ103〜104に接続されることができる。ネットワーク102は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク(LAN)、例えばインターネットのようなの広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ103〜104は、任意のタイプのサーバ又はサーバクラスタ、例えばWebサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ103〜104は、データ分析サーバ、内容サーバ、交通情報サーバ、地図(マップ)及び興味のあるポイント(MPOI)サーバ又は位置サーバ等であってもよい。
【0011】
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内されて環境を通過する自律走行モードに設置される車両である。自律走行車は、車両が走行している環境にかかる情報を検出するように配置される1つまたは複数のセンサを含むセンサシステムを備える。車両及びそれに関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車101が手動モード、完全自律走行モードまたは部分自律走行モードで運転されることができる。
【0012】
一実施形態において、自律走行車101は、データ処理システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、インフォテイメントシステム114と、センサシステム115とを含むが、これらに限定されない。自律走行車101は、通常の車両に含まれるある一般的な構成要素(部材)、例えばエンジン、車輪、ハンドル、変速機等をさらに含んでもよく、前記構成要素は、車両制御システム111及び/又はデータ処理システム110により多種の通信信号及び/又はコマンド(例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ(制動)信号又はコマンド等)を使用して制御されることができる。
【0013】
構成要素110〜115は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における多重化された電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境(状況)にも用いられる。
【0014】
図2を参照すると、一実施形態において、センサシステム115は、1つ以上のカメラ211と、全地球測位システム(GPS)ユニット212と、慣性計測ユニット(IMU)213と、レーダーユニット214と、光検出及び測距(LIDAR)ユニット215とを含むが、これらに限定されない。GPS
ユニット212は、送受信機を含んでもよく、前記送受信機は、自律走行車の位置に関する情報を提供するように操作されることができる。IMUユニット213は、慣性加速度に基づいて自律走行車の位置及び方向変化を感知することができる。レーダーユニット214は、無線信号を利用して自律走行車のローカル環境内の対象を感知するシステムを示すことができる。一部の実施形態において、対象を感知する以外、レーダーユニット214は、対象の速度及び/又は走行方向をさらに感知することができる。LIDARユニット215は、レーザを使用して自律走行車の位置する環境における対象を感知することができる。その他のシステム構成要素以外、LIDARユニット215は、1つ以上のレーザ光源、レーザースキャナ及び1つ以上の検出器をさらに含んでもよい。カメラ211は、自律走行車の周辺環境の画像をキャプチャするための1つ以上の装置を含んでもよい。カメラ211は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば回転及び/又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
【0015】
センサシステム115は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリング(転向)センサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロフォン)をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されてもよい。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。一部の場合、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサに一体化されてもよい。
【0016】
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットとも呼ばれる)、ブレーキ(制動)ユニット203、コンピュータビジョンシステム204、ナビゲーションユニット205(ナビゲーションとルートシステム、またはナビゲーション/ルートシステムとも呼ばれる)および衝突回避ユニット206(障害物回避システムとも呼ばれる)を含むが、これに限定されない。ステアリングユニット201は、車両の方向または進路(または行進方向)を調整するものである。スロットルユニット202は、モータやエンジンの速度を制御して、さらに車両の速度と加速度を制御するためのものである。制動ユニット203は、車両の車輪またはタイヤを減速させるように摩擦を提供することで、車両を減速させるものである。
【0017】
コンピュータビジョンユニットまたはシステム204は、自律走行車の環境内の対象および/または特徴を識別するための1つ以上のカメラ211によってキャプチャされた画像を処理し、分析するものである。対象は、交通信号、道路境界、他の車両、歩行者、および/または障害物などを含むことができる。コンピュータビジョンシステム204は、対象認識アルゴリズム、ビデオトラッキング(tracking)および他のコンピュータビジョン技術を使用することができる。一部の実施形態では、コンピュータビジョンシステム204は、環境をマッピングして、対象を追跡し、対象の速度を推定することなどを行うことができる。
【0018】
ナビゲーションユニットまたはシステム205は、自律走行車の走行ルートを決定するものである。例えば、ナビゲーションシステムは、一連の速度と進行方向(directional heading)を決定して、感知された障害物を実質的に避けるルートに沿って自律走行車の移動を行いながら、最終的な目的地に至る車線のルートに基づいて自律走行車を前進させる。目的地は、ユーザインタフェースを介してユーザの入力に応じて設定されてもよい。ナビゲーションシステム205は、自律走行車が走行している間、走行経路を動的に更新することができる。ナビゲーションシステム205は、自律走行車のための走行ルートを決定するように、GPSシステム、および1つ以上のマップからのデータを統合してもよい。
【0019】
衝突回避ユニットまたはシステム206は、自律走行車の環境での潜在的な障害物を識別、評価、回避、交渉(negotiate)するものである。例えば、衝突回避システム206は、緊急回避操作、転向操作、制動操作などを行うために、制御システムの1つ以上のサブシステムを操作して、自律走行車のナビゲーションの変化を行うことができる。衝突回避システム206は、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避操作を自動的に決定することができる。衝突回避システム206は、自律走行車が緊急回避して進入する隣接領域において、車両、建物の障害物などが他のセンサシステムにより検出されるとき、緊急回避操作が行われないように構成することができる。衝突回避システム206が、使用可能でありながら自律走行車の乗員の安全を最大限にする操作を自動的に選択することができる。衝突回避システム206は、自律走行車の乗客室に対して最低限の加速を引き起こすと予想される回避操作を選択することができる。注意すべきなことは、
図2に示すような構成要素は、ハードウェア、ソフトウェア又はその組み合わせで実現されてもよい。
【0020】
図1を再び参照すると、無線通信システム112は、自律走行車101と、例えば装置、センサ、その他の車両等の外部システムとの間の通信を可能にする。例えば、無線通信システム112は、1つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク102によってサーバ103〜104に通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)(例えばWiFi)を使用して他の構成要素やシステムに通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース(登録商標)等を使用して装置(例えば、乗客の移動装置、車両101内の表示装置、スピーカー)に直接に通信することができる。ユーザインターフェースシステム113は、車両101内で実行される周辺装置の一部であってもよく、例えば
キーボード、タッチスクリーン表示装置、マイクロフォン、及びスピーカー等を含む。
【0021】
自律走行車101の一部又は全ての機能は、特に自律走行モードで走行する場合、データ処理システム110により制御されたり管理されたりすることができる。データ処理システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)、及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含み、センサシステム115、車両制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして、計画及び制御情報に基づいて車両101を走行させる。代替的に、データ処理システム110と車両制御システム111とは一体化されてもよい。
【0022】
例えば、乗客であるユーザは、例えばユーザインターフェースによって行程の出発位置及び目的位置を指定することができる。データ処理システム110は、行程に関連するデータを取得する。例えば、データ処理システム110は、MPOIサーバから位置及び経路情報を取得することができ、前記MPOIサーバは、サーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、かつ、MPOIサーバは、マップサービス及びある位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、データ処理システム110の永続記憶装置にローカルでキャッシュされることができる。
【0023】
自律走行車101が経路に沿って走行する期間に、データ処理システム110は、さらに交通情報システムやサーバ(TIS)からリアルタイム交通情報を取得することができる。注意すべきなのは、サーバ103〜104は、第三者のエンティティにより動作されることができる。あるいは、サーバ103〜104の機能は、データ処理システム110と一体化されてもよい。リアルタイム交通情報、MPOI情報、位置情報、及びセンサシステム115が検出又は感知したリアルタイムなローカル環境データ(例えば、障害物、対象、付近車両)に基づいて、データ処理システム110は、指定された目的地に安全で効果的に到達するように、最適な経路を計画し、かつ計画された経路により、例えば車両制御システム111を介して車両101を走行させることができる。
【0024】
一実施形態によると、自律走行車101は、車両101の乗客に情報とエンターテインメント(entertainment)を提供するインフォテイメントシステム114をさらに含むことができる。情報及びエンターテイメントコンテンツは、ローカルおよび/またはリモート(例えば、サーバ103乃至104によって提供される)に記憶されたコンテンツ情報に基づいて、受信され、コンパイルされて、レンダリングされる。情報は、例えば、ネットワーク102を介して任意のサーバ103乃至104からリアルタイムでストリーミングされて車両101の表示装置上に表示される。情報は、例えば、一つまたは複数のカメラでリアルタイムにキャプチャされたローカル情報により増強される(augmented)ことができ、そして、増強されたコンテンツは、仮想現実の方法で表示されることができる。
【0025】
自律走行車は、実際のまたは物理的な窓(またはウィンドウ)がなくてもよい。これに対し、「ウィンドウ(window)」(本明細書では、仮想ウィンドウとも呼ばれる)は、表示装置、すなわち、選択的にタッチスクリーンを備えた、車両のウィンドウの形状に成形された平面または曲面スクリーンディスプレイ装置に表示したり、代替したりすることができる。ディスプレイ装置は、恰もユーザが透明なウィンドウを介して、実際の物理的なコンテンツを見るように、1つ以上の適切なカメラによってリアルタイムに動的にキャプチャされた画像や画像ストリーム(例えば、ビデオ)を表示する。それぞれの「Windows」(例えば、ディスプレイ装置)には、表示される対応のコンテンツをリアルタイムでストリーミングするための対応のディスプレイチャンネルがあり、これは拡張現実システム、例えば、インフォテインメントシステム114および/またはデータ処理システム110によって集中的に処理することができる。このような状況では、増強された画像は、インフォテイメントシステム114を介して仮想現実方法で表示され、これは拡張現実の方法とも呼ばれる。
【0026】
一実施形態では、位置及びルート情報、MPOI情報、および/またはリアルタイムの交通情報に基づいて、インフォテインメントシステム114および/またはデータ処理システム110は、現在の交通環境(例えば、MPOI)に適切なコンテンツの特定のタイプを決定する。システムは、例えば、リアルタイム行程(移動)情報に基づいて、コンテンツアイテムの候補としてリストコンテンツアイテム(例えば、スポンサーされたコンテンツや広告)を識別するために、コンテンツのインデックス(図示せず)からのルックアップ動作を実行する。
【0027】
一実施形態によると、データ処理システム110は、計画モジュールと制御モジュール(図示せず)を含む。計画モジュールは、ルートまたはルートのルートセグメントを計画することによって、制御モジュールにより自律走行車101を制御し走行させて、計画されたルートに沿って移動できるようにする。ルートは、自律走行車101を囲む全体の走行環境に対する理解や感知に基づいて生成され、自律走行車101を囲む全体の走行環境は、自律走行車に装着された様々なセンサから受信されたセンサデータをもとにする。
【0028】
一実施形態では、全体の走行環境を構築または理解するとき、走行環境は、複数のサブ環境に分割または感知され、各サブ環境は、環境のセグメントを示す。各サブ環境は、サブ環境内の走行条件を示す走行パラメータまたはメタデータセットを決定するために、それぞれの走行シナリオハンドラによって処理される。ルートに沿って定期的に(例えば、0.1秒ごとに)移動するとき、自律走行車101は、センサシステム115からのセンサデータを受信し、自律走行車101の周辺環境を感知する。自律走行車101は、周辺環境を感知して、1つ以上のサブ環境に分割する。
【0029】
それぞれのサブ環境については、対応する走行シナリオハンドラが識別及び呼び出され、サブ環境の走行条件または設定を決定する。その後、自律走行車101は、サブ環境の個別の走行条件に基づいて、全体の走行環境の全体の走行条件を把握し決定する。後続のルートセグメントは、全体の周辺環境の走行条件に対する理解を基礎として計画される。その後、自律走行車101は、ルートセグメントに沿って移動する。上述したプロセスは、ルートに沿って、異なる時点で、各ルートセグメントに対して繰り返し実行される。ビデオストリームのビデオフレームと同様に、特定の時点での周辺環境を示す各フレームについて、上述したプロセスが実行されて、後続のルートセグメントに沿って自律走行車101を走行させるための走行条件や走行パラメータを決定する。
【0030】
図3Aは、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。システム300は、
図1の自律走行車101に実装されることができる。
図3Aを参照すると、データ処理システム110は、計画モジュール301、制御モジュール302、マップ及びルートモジュール303、及び、感知モジュール304を含むが、これに限定されない。また、データ処理システム110は、走行シナリオハンドラ
305のリストをさらに含み、各走行シナリオハンドラは、全体の走行環境中の対応するサブ環境内の特定の走行シナリオを処理する。
【0031】
感知モジュール304は、感知された歩行者、車両や障害物などの走行環境を感知するセンサシステム115から受信されたセンサデータを処理し、且つ、マスター車両状態情報(ローカリゼーション(localization)、GPS情報及びシャーシの状態)を収集し変換して、処理及び決定のための計画モジュール301に提供する。感知モジュール304は、「何が見えるのかと、どこに位置しているのか」(「what do I see and where I am」)を処理するモジュールである。マップ及びルートモジュール303は、マップおよびルート情報が記憶されているモジュールである。
走行シナリオハンドラ305は、「どこに行くのか、周りの道は何なのか」(what do I see and where I am」)などの情報を記憶する。
【0032】
計画モジュール301は、センサシステム115から受信されたセンサデータおよび/または様々なソースから受信されたリアルタイムの情報などの様々な情報(例えば、位置、マップ、マップの一部であるPOI、関心ポイントまたはMPOIデータベース303)に基づいて、自律走行車への経路またはルートを計画する。計画及び制御データは、計画モジュール301によって生成される。計画及び制御データに基づいて、制御モジュール302は、計画及び制御データによって定義されたルートまたは経路に沿って、適切なコマンドまたは信号を車両制御システム111に送信することにより、自律走行車を制御するものである。計画及び制御データには、経路またはルートに沿って、異なる時点で、適切な車両設定または走行パラメータ(例えば、スロットル、ブレーキ、および転向コマンド)を使用して、ルートまたは経路の第1地点から第2地点までの車両を走行させる、十分な情報が含まれている。
【0033】
計画モジュール301は、自律走行車により走行決定と計画を決定するコアロジック・モジュール(core logic module)である。マップ、ルート、および感知された対象を考慮し、交通ルールおよび/または以前の経験に基づいて、車両の操作(maneuver)方式を決定し、計画する。軌跡と速度/加速度のような希望する操作状態に関する情報は、制御モジュール302に送信さて追加処理を行う。計画モジュール301と制御モジュール302は、
図2の車両制御システム111のナビゲーションユニット205に通信可能に接続または一体化されてもよい。
【0034】
ルートまたはルートセグメントを計画するとき、計画モジュール301は、感知モジュール304によって決定された周辺環境の中で感知されたサブ環境に対応する1つ以上の走行シナリオハンドラを呼び出す。それぞれの走行シナリオハンドラは、感知されたサブ環境を処理して、サブ環境の走行条件を決定し、これは車両がそのサブ環境に進入することに決定した場合、サブ環境内にどのような対象が位置しているか、車両がどのように動くかを決定することを含む。走行シナリオハンドラから取得された個別の走行条件に基づいて、計画モジュール301は、決定を行う。特に、計画モジュール301は、個別の走行シナリオハンドラによって感知され処理されるサブ環境に基づいて、全体の周辺環境を構築する。計画モジュール301は、個別の走行シナリオハンドラからの個別の決定や提案に基づいて最終的なルートを決定する。計画モジュール301は、後続のルートセグメントを示す計画及び制御データを生成し、計画及び制御データを制御モジュール302に送信する。計画及び制御データに基づいて、制御モジュール302は、制御するための適切な制御コマンドまたは指示をシステム111に発行して、車両を後続ルートセグメント内で移動させるようにする。
【0035】
図3Bは、本発明の一実施形態に係る走行シナリオハンドラの例を示すブロック図である。
図3Bを参照すると、一実施形態では、走行シナリオハンドラは、1)特定のシナリオハンドラ305Aと、2)共通のシナリオハンドラ305Bの2つの層を含む。それぞれの特定のシナリオハンドラ305Aは、サブ環境で対象を識別すること、対象と車両との間の距離、および車両が特定のサブ環境に進入する場合にどのように動くのかを決定することを含む、特定のサブ環境の走行を処理する。それぞれの共通シナリオハンドラ305Bは、特定のシナリオによって共有される所定の共通のシナリオを処理する。それぞれの共通シナリオハンドラ305Bは、特定のシナリオハンドラ305Aのいずれか1つにより呼び出されてもよい。各シナリオハンドラは、基本的に属性(attribute)または所定の属性(attribute)と関連付けられているオブジェクト(object)を抽出する一連のAPIを提供する。これらのAPIは、周辺環境をよりよく理解し、それに基づいて適切な判断を下すように、計画モジュール301によって適用される。
【0036】
一実施形態では、特定のシナリオハンドラ305Aは、前方(head)車両ハンドラ321、右側順方向(forward)車線ハンドラ322、左側順方向車線ハンドラ323、後続(tailgate)車両ハンドラ324、右側近接ハンドラ325、左側逆方向(reverse)車線ハンドラ326、交差路ハンドラ327、車線マージハンドラ328、横断歩道ハンドラ329及びクリアゾーンハンドラ330を含むが、これに限定されない。共通シナリオハンドラ305Bは、マスター車両ハンドラ331、交通信号ハンドラ332、停止標識ハンドラ333及び譲歩標識ハンドラ334を含むが、これに限定されない。
【0037】
マスター車両ハンドラ331は、車両が現在位置している車線、車両の移動方向、位置、マップ、および車両のルート情報を含む、車両自体に関する情報を提供しているが、これに限定されない。前方車両ハンドラ321は、前方車両の速度及び前方車両と自律走行車との間の距離を含む、自律走行車の前の現在移動中の前方車両に関する情報を提供する。前方車両ハンドラ321は、自律走行車が前方車両を追従するか、または前方車両を追い越すかについての提案をさらに提供することができる。
【0038】
右側順方向車線ハンドラ322と左側順方向車線ハンドラ323は、自律走行車の右側順方向車線と左側順方向車線に関する情報をそれぞれ提供する。提供される情報は、右側および/または左側順方向車線のスペース領域に位置するすべての対象または車両を含んでもよい。例えば、順方向車線ハンドラは、自律走行車が車線の変更を希望しない場合は、ナッジ(nudge)する対象を示すことができ、自律走行車が車線の変更を希望する場合は、譲歩または追い越しする対象を示すことができる。左側逆方向車線ハンドラ326は、対象が反対の方向から自律走行車に接近していることを示すことができ、ナッジ(nudge)するかどうかについての提案を示すことができる。車線マージハンドラ328は、自律走行車が譲歩すべきかまたは追い越しすべきかを示す情報を提供することができる。車線マージハンドラ328は、交通信号ハンドラ332と譲歩標識ハンドラ334とにお互いに配合されてもよい。
【0039】
後続車両ハンドラ324は、後続車両の速度及び自律走行車との間の距離を含む、自律走行車を追従する任意の後続車両を識別することができる。右側近接対象ハンドラ325は、任意の実際の車線(レーン)にいないが、現在の右側車線の右側近接領域にある対象の環境を構築する。例示として、自転車レーンの右側にある自転車、右側縁石にある歩行者または右側に駐車された車両や固定物を含んでもよい。
【0040】
交差路ハンドラ327は、車両が一領域から別の指定交差領域に移動する領域を含む全体の交通交差路(traffic junction)を構築する。例えば、右折するとき、計画モジュール301は、交差路ハンドラ327を利用して、交通ルールや条件に応じて、追い越すとか譲歩する必要のある突き当たる可能性があるトラフィックを提供する。交差路ハンドラ327は、実行される特定の経路が指定されると、どのようなオブジェクト(対象)またはオブジェクトたちに対して追い越し、譲歩または停止するかを示すことができる。
【0041】
横断歩道ハンドラ329は、歩行者が歩く可能性がある領域を構築する。横断歩道ハンドラ329は、横断歩道に歩行者がいるかどうかを識別することができる。クリアゾーンハンドラ330は、自律走行車が通過可能な、停止してはいけない領域を構築する。クリアゾーンハンドラ330は、交通信号ハンドラ332と配合して、自律走行車がクリアゾーンに進入する前に通過すべきかまたは停止すべきかを決定することができる。
【0042】
交通信号ハンドラ332は、自律走行車の現在のルートを目的地へ制御する信号情報を提供する。交通信号ハンドラ332は、特定の交通信号が最近の信号変更からどのくらい維持されたかをさらに表示することができる。停止標識ハンドラ333は、現在の車線または他の車線に停止標識があるかどうかを示す情報を提供する。停止標識ハンドラ333は、自律走行車が通行権限を持っているかどうかをさらに表示することができる。停止標識ハンドラ333は、自律走行車が通行権限を持っている対象と持っていない対象とを追加的に識別することができる。停止標識ハンドラ333は、自律走行車が再び移動を開始する前に、自律走行車が十分な期間(例えば、3秒)の時間を停止したかどうかをさらに表示することができる。同様に、譲歩標識ハンドラ334は、現在の車線と他の車線に譲歩標識があるかどうかを示す。ハンドラ332−334は、任意の特定のハンドラ321−330によって呼び出されてもよい。
【0043】
図4Aは、本発明の一実施形態に係る走行シナリオの例を示す図である。
図4Aを参照すると、この例では、(マスター車両ハンドラ331によって表示される)自律走行車401が、中間車線で走行している。センサシステム115から受信されたセンサデータに基づいて、感知されたサブ環境402−405が点線の四角形に表示されている。サブ環境402は、右側順方向車線のシナリオを示す。サブ環境403は、マスター車両401の前の前方車両のシナリオを示す。サブ環境404は、左側順方向車線のシナリオを示す。サブ環境405は、後続車両のシナリオを示す。
図4Bに示されているように、これらのサブ環境402−405が感知され識別されると、これに対応する走行シナリオのハンドラ、例えば、前方車両ハンドラ321、右側順方向車線ハンドラ322、左側順方向車線ハンドラ323及び後続車両ハンドラ324などが、計画モジュール301によって識別かつ呼び出される。
【0044】
関連されるシナリオハンドラによって提供されるサブ環境の走行条件を示す情報に基づいて、計画モジュール301は、自律走行車を制御するために、ルートまたはルートセグメントを計画して、計画及び制御データを生成する。本例では、前方車両ハンドラ321は、速度や自律走行車との距離のようなサブ環境403における前方車両に関する情報を提供することができる。自律走行車が前方車両を従って行くか、それとも車線を変更すべきかに対する提案が提示されてもよい。同様に、後続車両ハンドラ324は、後続車両の速度や自律走行車との間の距離を含むサブ環境405内で自律走行車の後に走行する車両に関する情報を提供する。
【0045】
右側順方向車線ハンドラ322と左側順方向車線ハンドラ323は、各自のサブ環境
402、404における走行条件を提供する。本例では、左側順方向車線ハンドラ323は、近い左側車線で走行する2つの車両があることと、遠い左側車線から近い左側車線線に合流(merge)する別の車両があることを示すことができる。右側順方向車線ハンドラ322は、近い右側車線には車両がないが、遠い右側車線には車両があることを示すことができる。サブ環境402−405に関するすべての情報に基づいて、計画モジュール301は、車線を近い右側車線に変更することを決定することができる。全体の環境を特定の走行シナリオハンドラによって処理される複数のサブ環境に分割することにより、計画モジュール301の決定がより効率的である。
【0046】
図5Aは、本発明の他の実施形態に係る走行シナリオの例を示す図である。
図5Aを参照すると、本例では、センサシステム115によって提供されたセンサデータに基づいて、環境は左側逆方向車線のサブ環境502および右側近接のサブ環境503を有するものであると感知される。したがって、左側逆方向車線ハンドラ326および右側近接ハンドラ325は、
図5Bに示すように、サブ環境502−503内の走行条件を決定するために呼び出される。本例では、左側逆方向車線ハンドラ326は、左側車線に反対方向から対向して来る車両(速度と距離を含む)があることを示すことができる。右側近接ハンドラ325は、マスター車両サブ環境501に表示される自律走行車が走行する車線の縁石に、歩行者及び自転車があることを示すことができる。したがって、計画モジュール301は、自律走行車の速度を減少させたり、歩行者や自転車などを追い越す前に、反対側の車両が通過するようにルートを計画することができる。
【0047】
図6は、本発明の他の実施形態に係る走行シナリオの例を示す図表である。
図6を参照すると、マスター車両501によって示されている自律走行車の観点から、感知された環境は、1つ以上の交通信号サブ環境602、交差路サブ環境603、クリアーゾーンサブ環境604、および横断歩道サブ環境605を含む。その結果、計画モジュール301によって呼び出された対応するハンドラは、交差路ハンドラ327、横断歩道ハンドラ329、クリアーゾーン
ハンドラ330、マスター車両ハンドラ331及び交通信号ハンドラ332を含む。これらのハンドラによって提供された情報に基づいて、計画モジュール301は、それに応じて計画することができる。
【0048】
図7は、本発明の一実施形態に係る自律走行車を走行させるプロセスを示すフローチャートである。プロセス700は、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む処理ロジックによって実行されることができる。例えば、プロセス700は、
図1のデータ処理システム110によって実行されてもよい。
図7を参照すると、ブロック701において、処理ロジックは、自律走行車に装着された様々なセンサを有するセンサシステムからのセンサデータを受信する。ブロック702において、処理ロジックは、1つ以上のサブ環境のリスト(例えば、交差路、横断歩道、左車線、右車線)を決定するために、センサデータに基づいて、自律走行車の周辺環境を感知する。それぞれのサブ環境について、ブロック703において、処理ロジックは、サブ環境の走行条件を決定するために、サブ環境に対応する特定の走行シナリオハンドラを識別し、呼び出す。ブロック704において、処理ロジックは、走行シナリオハンドラによって提供された走行条件に基づいて、ルートまたはルートセグメント
を計画し、制御データ
を生成する。ブロック705において、処理ロジックは、計画及び制御データに基づいて自律走行車を運転および制御する。
【0049】
注意すべきな点は、前記図示された構成要素の一部または全部は、ソフトウェア、ハードウェア、またはこれらの組み合わせにより実現されることができる。たとえば、これらの構成要素は、本明細書全体に記載されたプロセスまたはステップを実行するために、プロセッサ(図示せず)によってメモリにロードされて実行されることができる永続記憶装置にインストールされて記憶されるソフトウェアとして実現ことができる。代案として、これらの構成要素は、集積回路(例えば、特定用途向け集積回路またはASIC)、デジタル信号プロセッサ(DSP)またはフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)のような専用のハードウェアにプログラムされたり内蔵された実行可能コードとして実現されることができ、これは、アプリケーションから対応するドライバおよび/またはオペレーティングシステムを介してアクセスすることができる。さらに、これらの構成要素は、1つ以上の特定のコマンドを使用してソフトウェアコンポーネントによってアクセス可能なコマンドセットの一部であり、プロセッサまたはプロセッサコアの特定のハードウェアロジックとして実現することができる。
【0050】
図8は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、前記プロセス又は方法のいずれか(例えば、
図1のデータ処理システム110、及びサーバ103〜104のいずれか)を実行する前記任意のデータ処理システムを示してもよい。システム1500は、複数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、分散型電子装置又は回路基板(例えば、コンピュータシステムのマザーボード又はアドインカード)に適用された他のモジュール、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることができる。
【0051】
さらに、システム1500は、コンピュータシステムの複数の構成要素の高レベルビューを示すことを目的とする。しかしながら、一部の実現形態では、付加的構成要素が存在する場合があることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント(AP)又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で1つ(又は複数)のコマンドセットを実行することにより本明細書に説明される任意の1種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
【0052】
一実施形態において、システム1500は、バス又はインターコネクト1510によって接続されたプロセッサ1501、メモリ1503及び装置1505〜1508を備える。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような1つ又は複数の汎用プロセッサを示してもよい。より具体的には、プロセッサ1501は、複雑コマンドセット計算(CISC)マイクロプロセッサ、縮小コマンドセットコンピュータ(RISC)マイクロプロセッサ、超長コマンド語(VLIW)マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組合せを実現するプロセッサであってもよい。プロセッサ1501は、さらに、専用集積回路(ASIC)、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ
、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような1つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
【0053】
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種の構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム1504は、ディスプレイコントローラ、グラフィックプロセッサ及び/又はディスプレイデバイスをさらに備えてもよい。
【0054】
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)又は他のタイプのメモリのような1つ又は複数の揮発性記憶装置(又はメモリ)を備えてもよい。メモリ1503は、プロセッサ1501又は任意の他の装置により実行されるコマンド列を含む情報を記憶できる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア(例えば、基本入出力システム又はBIOS)及び/又はアプリケーションの実行可能なコード及び/又はデータは、メモリ1503にロードされて、プロセッサ1501により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)会社からのWindows(登録商標)オペレーティングシステム、アップル会社からのMacOS(登録商標)/iOS(登録商標)、Google(登録商標)会社からのAndroid(登録商標)、Linux(登録商標)、Unix又は他のリアルタイム又は組み込みオペレーティングシステムのような任意のタイプのオペレーティングシステムであってもよい。
【0055】
システム1500は、I
/O装置、例えば装置1505〜1508をさらに備えてもよく、ネットワークインターフェース装置1505、選択可能な入力装置1506及び他の選択可能なI
/O装置1507を備えてもよい。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブ経路ゥース送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)又は他の無線周波数(RF)送受信機又はそれらの組合せであってもよい。NICは、イーサネット(登録商標)カードであってもよい。
【0056】
入力装置1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と集積されてもよい)、ポインタデバイス(例えばスタイラス)及び/又はキーボード(例えば、物理キーボード、又はタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術(容量式、抵抗式、赤外式及び表面音波の技術を含むが、それらに限定されない)のいずれか、及びタッチスクリーンの1つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いて、そのタッチ点及び移動又は断続を検出することができる。
【0057】
I
/O装置1507は、音声装置を備えてもよい。音声装置は、スピーカ及び/又はマイクロホンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び/又は電話機能のような音声サポートの機能を促進する。他のI
/O装置1507は、汎用シリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI〜PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コン経路、近接センサ等のような動きセンサ)又はそれらの組合せをさらに備えてもよい。装置1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真及びビデオ断片の記録)を促進するための電荷カップリング装置(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によってインターコネクト1510に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定配置又は設計により決められる。
【0058】
データ、アプリケーション、1つ又は複数のオペレーティングシステム等のような情報の永続記憶を提供するために、大容量メモリ(図示せず)が、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現しかつシステムの応答能力を向上させるために、このような大容量メモリは、ソリッドステート装置(SSD)によって実現されることができる。なお、他の実施形態において、大容量メモリは、主にハードディスクドライブ(HDD)で実現されてもよく、少量のSSD記憶量は、SSDキャッシュとして、停電イベント期間にコンテキスト状態及び他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOS及び他のファームウェアを備える。
【0059】
記憶装置1508は、任意の1種又は複数種の本明細書に記載の方法又は機能を実現する1つ又は複数のコマンドセット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる)を備えてもよい。処理モジュール/ユニット/ロジック1528は、例えば、計画モジュール301、制御モジュール302、走行シナリオハンドラ321−334のような前記構成要素のいずれかを示してもよい。処理モジュール/ユニット/ロジック1528は、さらにデータ処理システム1500、メモリ1503及びプロセッサ1501により実行される期間に、メモリ1503内及び/又はプロセッサ1501内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ1503及びプロセッサ1501も、機器アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェース装置1505を経由して送受信されてもよい。
【0060】
コンピュータ可読記憶媒体1509は、以上に説明された一部のソフトウェア機能の一部を永続的に記憶してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記1つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュ及びサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行されかつ前記機器に本発明の任意の1種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【0061】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えばASI
C、FPGA、DSP又は類似装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
【0062】
なお、システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本発明の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び/又は他のデータ処理システムは、本発明の実施形態と共に使用されてもよい。
【0063】
前記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用され、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列(sequence of operations)と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
【0064】
ただし、これらの全ての及び類似の用語は、いずれも適切な物理量に関連付けられ、かつただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子算出装置の動作及び処理であり、前記コンピュータシステム又は電子算出装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、かつ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
【0065】
本発明の実施形態は、さらに本明細書における動作を実行するためのコンピュータプログラムに関連付けられる。このようなコンピュータプログラムは、非揮発性のンピュータ可読媒体に記憶される。機械可読媒体は、機械(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ)を備える。
【0066】
前記図面に示される手順又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、非揮発性のコンピュータ可読媒体に具現化される)、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、一部の動作は、順番ではなく並行に実行されてもよい。
【0067】
本発明の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本発明の実施形態の教示を実現できることを理解すべきである。
【0068】
以上の明細書では、本発明の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本発明のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。