(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、検討した詳細を参照して本発明の様々な実施形態及び態様を説明し、添付の図面は、前記様々な実施形態を示す。以下の説明及び図面は、本発明の例示であり、本発明を限定するものとして解釈されるべきではない。本発明の様々な実施形態の完全な理解を提供するために、多くの詳細が記載されている。しかしながら、場合によって、本発明の実施形態の説明の簡潔さから、周知又は従来の詳細は記載されていない。
【0010】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態に説明した特定の特徴、構造、又は特性を本発明の少なくとも1つの実施形態に含めることができることを意味する。本明細書にわたって記載の「一実施形態では/一実施形態において」という語句は、必ずしもすべて同じ実施形態を指すとは限らない。
【0011】
一部の実施形態によれば、車線逸脱検出システムは、ADVが減速縁石に接触したとき(例えば、車線に配置された減速バンプを通り越すとき)にキャプチャされたセンサデータに基づいて、ADVの走行中の車線からADVが逸脱していることを検出するように構成されている。ADVが減速縁石と接触したときに、車線逸脱検出システムは、ADVの移動方向と、減速縁石の長さ方向又は車線の車線方向との間の角度を検出して算出する。角度に基づいて、システムは、ADVの移動方向が車線の車線方向と比較してどのように外れているかを計算する。車線方向は、通常、減速縁石の長さ方向に基本的に垂直する。ADVの移動方向を校正するためには、該角度に基づいて速度制御コマンド及び/又はステアリング制御コマンドのような制御コマンドが生成される。
【0012】
一実施形態によれば、第1の時点において、ADVの第1の車輪(例えば、左側前輪又は左側後輪)がADVが移動している車線に配置された減速縁石に接触することが検出される。第2の時点において、ADVの第2の車輪(例えば、右側前輪又は左後輪)が減速縁石に接触することが感知される。第1の車輪と減速縁石の間の接触は、タイヤ圧力センサ又は動きセンサなど、第1の車輪に関連するセンサを使用して検出される。第2の車輪と減速縁石の間の接触は、タイヤ圧力センサ又は動きセンサなど、第2の車輪に関連するセンサを使用して検出される。
【0013】
ADVの第1の車輪と第2の車輪に連結された車軸と車線の車線方向との間の角度が算出される。角度はADVの現在速度を考慮して、第1の時点と第2時点との間の差に基づいて算出される。角度を算出することにおいて、ADVが第1の時点から第2時点に移動する車線方向を沿う第1の距離は、ADVの現在速度に基づいて算出される。車軸上でADVの第1の車輪と第2の車輪との間の第2の距離が決定される。その後、角度は、第1の距離と第2の距離に基づいて、例えば、第1の距離と第2の距離との間の
正切関係(tangent relationship)に基づいて算出される。この角度に基づいて制御コマンド(例えば、速度制御コマンド、ステアリング制御コマンド)が生成され、車線の車線方向に沿ってADVが車線内に維持されるようにADVの移動方向を調整する。
【0014】
図1は本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。
図1を参照して、ネットワーク配置100はネットワーク102によって1つ以上のサーバ103〜104に通信可能に接続することができる自律走行車101を含む。1つの自律走行車を示すが、ネットワーク102によって複数の自律走行車は互いに接続され、及び/又はサーバ103〜104に接続されることができる。ネットワーク102は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク(LAN)、例えばインターネットのようなの広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ103〜104は任意のタイプのサーバ又はサーバクラスタ、例えばWebサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ103〜104は、データ分析サーバ、内容サーバ、交通情報サーバ、地図(マップ)及び興味のあるポイント(MPOI)サーバ又は位置サーバ等であってもよい。
【0015】
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内して環境を通過する自律走行モードに設置される車両である。自律走行車は、車両が走行している環境にかかる情報を検出するように配置される1つ又は複数のセンサを含むセンサシステムを備える。車両及びその関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車101が手動モード、完全自律モード又は部分自律モードで運行される。
【0016】
一実施形態において、自律走行車101は、感知及び計画システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、インフォテイメントシステム114と、センサシステム115とを含むが、これらに制限されない。自律走行車101は、通常の車両に含まれるある一般的な構成要素(部材)、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム111及び/又は感知及び計画システム110により多種の通信信号及び/又はコマンド(例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等)を使用して制御されることができる。
【0017】
構成要素110〜115は、相互接続部材、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における複数の電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境(状況)にも用いられる。
【0018】
図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は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば回転及び/又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
【0019】
センサシステム115は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えばマイクロフォン)をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサに一体化されてもよい。
【0020】
一実施形態においては、センサシステム115は、1つ以上のタイヤ圧力センサ216及び/又は複数の動きセンサ217をさらに含む。タイヤ圧力センサ216のそれぞれは、車両の車輪のいずれかのタイヤの圧力を検出及び測定するように構成されている。車輪のタイヤの圧力の急激な変化は、車輪が減速縁石と接触するとき、車輪に加えられた衝撃を比例して示す。動きセンサ217のそれぞれは、車輪又はADVによって発生された動き量を検出し測定するように構成されている。検出された突然の動きの量、ADVが減速縁石に接触するか否かを決定するのに使用することができる。一実施形態においては、動きセンサは、それぞれの車輪又は各車輪に関連するサスペンション継手の付近に位置することができる。タイヤ圧力データと動きセンサデータとは連結されて、当該車輪が減速縁石に接触したか否かを決定することができる。
【0021】
一実施形態において、車両制御システム111は、ステアリングユニット201と、スロットルユニット202(加速ユニットとも呼ばれる)と、ブレーキユニット203とを含むが、これらに制限されない。ステアリングユニット201は、車両の方向又は走行方向を調整することに用いられる。スロットルユニット202は、モーター又はエンジンの速度を制御して、さらに車両の速度及び加速度を制御することに用いられる。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。注意すべきなのは、
図2に示すような構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されることができる。
【0022】
図1を再び参照すると、無線通信システム112は、自律走行車101と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを可能にさせる。例えば、無線通信システム112は、1つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク102によってサーバ103〜104に通信できる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)(例えばWiFi)を使用して他の構成要素やシステムに通信できる。無線通信システム112は、例えば赤外線リンク、ブルートゥース等を使用して装置(例えば、乗客の移動装置、表示装置、車両101内のスピーカー)に直接に通信できる。ユーザインターフェースシステム113は、車両101内で実行される周辺装置の一部であってもよく、例えばキーボード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカー等を含む。
【0023】
自律走行車101の一部又は全ての機能は、特に自律走行モードで操作する場合、感知及び計画システム110により制御されたり管理されたりすることができる。感知及び計画システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)、及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含み、センサシステム115、車両制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までの経路や経路を計画し、そして計画及び制御情報に基づいて車両101を運行させる。あるいは、感知及び計画システム110と車両制御システム111とは一体化されてもよい。
【0024】
例えば、乗客とするユーザは、例えばユーザインターフェースによって旅程の出発位置及び目的位置を指定することができる。感知及び計画システム110は旅程関連データを取得する。例えば、感知及び計画システム110は、MPOIサーバから位置及び経路情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、かつMPOIサーバは地図サービス及びある位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、感知及び計画システム110の永続記憶装置にローカルでキャッシュされることができる。
【0025】
自律走行車101が経路に沿って走行する期間に、感知及び計画システム110は、さらに交通情報システムやサーバ(TIS)からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ103〜104は、第三者エンティティにより動作されることができる。あるいは、サーバ103〜104の機能は、感知及び計画システム110と一体化されてもよい。リアルタイム交通情報、MPOI情報、位置情報、及びセンサシステム115が検出又は感知したリアルタイムなローカル環境データ(例えば、障害物、対象、付近車両)に基づいて、感知及び計画システム110は、安全で効果的に指定した目的地に到達するように、最適な経路を計画し、かつ計画した経路により例えば車両制御システム111を介して車両101を運行することができる。
【0026】
サーバ103は、様々のクライアントにデータ分析サービスを提供するデータ分析システムであっても良い。1つの実施形態において、データ分析システム103は、データコレクタ121と、機械学習エンジン122とを含む。データコレクタ121は、様々の車両(自律走行車又は運転者(human drivers)による一般車両)からの走行統計123を収集する。走行統計123は、異なる時点での発行された走行指示情報(例えば、スロットル、ブレーキ及びステアリングコマンド)及び車両のセンサで取得された車両のレスポンス(例えば、速度、加速度、減速度、方向)を含む。走行統計123は、異なる時点での走行環境の情報、例えば、経路(出発地及び目的地の位置を含む)、MPOI、道路条件、天気条件等を更に含む。
【0027】
走行統計123に基づいて、機械学習エンジン122は、様々な目的のために、ルール、アルゴリズム及び/又は予測モデルのセット124を実行したり、訓練させる。一実施形態においては、アルゴリズム124は、ADVの移動方向と、ADVが移動している車線の車線方向との間の角度を算出するためのアルゴリズムを含む。角度はADVの物理的な次元(例えば、2つの前輪又は後輪の間の距離は、1つの前輪と1つの後輪との間の距離)を考慮して算出できる。そのような角度は、ADVが車線を逸脱したか否かを決定するために使用され、そのような車線逸脱を校正するために、適切な制御措置が取られる。その後、アルゴリズム124は、潜在的な車線逸脱を検出するために、リアルタイムで利用されるようにADV上にアップロードされる。
【0028】
図3は、本発明の一実施形態に係る自律走行車とともに使用される感知及び計画システムの一例を示すブロック図である。システム300は、
図1の自律走行車101の一部として実装することができ、感知及び計画システム110、制御システム111と、センサシステム115を含むが、これに限定されない。
図3に示すように、感知及び計画システム110は、位置決め(localization)モジュール301、感知モジュール302、決定モジュール303、計画モジュール304、制御モジュール305及び車線逸脱検出器又はモジュール(モニタ)306を含むが、これに限定されない。
【0029】
モジュール301〜306の一部又は全部は、ソフトウェア、ハードウェア、又はそれらの組み合わせによって実現されてもよい。例えば、これらのモジュールが不揮発性の記憶装置352にインストールされ、メモリ351にロードされて1つ又は複数のプロセッサ(図示せず)によって実行されてもよい。一部又はすべてのモジュールは、
図2に示す車両制御システム111における一部又はすべてのモジュールに通信可能に連結されたり、統合されたりしてもよい。また、モジュール301〜306の一部、1つの集積モジュールとして一体化されてもよい。
【0030】
位置決めモジュール301は、(例えば、GPSユニット212を利用して)自律走行車300の現在の位置を決定し、ユーザの行程や経路に関連する任意のデータを管理する。位置決めモジュール301(地図及び経路モジュールとも呼ばれる)は、ユーザの行程や経路に関連する任意のデータを管理する。ユーザは、例えば、ユーザインタフェースを介してログインして行程の出発位置と目的地を指定することができる。位置決めモジュール301は、地図及び経路情報311のような自律走行車300の他の構成要素と通信して行程関連データを取得する。例えば、位置決めモジュール301は、位置サーバ、及び地図とPOI(MPOI)サーバから位置と経路情報を獲得することができる。位置サーバは、位置情報サービスを提供し、MPOIサーバは地図サービスと、地図及び経路情報311との一部としてキャッシュすることができる特定位置のPOIを提供する。自律走行車300が経路に沿って移動する間に、位置決め(localization)モジュール301は、交通情報システム、又はサーバからリアルタイムの交通情報も取得することができる。
【0031】
センサシステム115により提供されたセンサデータ、及び位置決めモジュール301により得られた位置決め情報に基づいて、感知モジュール302は周辺環境に対する感知を決定する。感知情報は、普通の運転者が自分で運転している車両周辺から感知したもの(状況)を示すことができる。感知情報は、例えば対象形式で現される車線配置(例えば、直線又はカーブ)、交通信号、他の車両の相対位置、歩行者、建築物、横断歩道又はその他の交通関連標識(例えば、停止標識、譲り標識)などを含んでもよい。例えば、対象の形により含むことができる。
【0032】
感知モジュール302は、自律走行車の環境で対象及び/又は特徴を識別するために、1つ以上のカメラによってキャプチャされた画像を処理及び分析するためのコンピュータビジョンシステム、又はコンピュータビジョンシステムの機能を含んでもよい。対象は、交通信号、道路境界、他の車両、歩行者、及び/又は障害物などを含んでもよい。コンピュータビジョンシステムは、対象感知アルゴリズム、ビデオ追跡、及び他のコンピュータビジョン技術を使用することができる。一部の実施形態においては、コンピュータビジョンシステムは、環境をマッピングし、対象を追跡し、対象の速度推定などを行うことができる。感知モジュール302は、レーダー及び/又はLIDARのような他のセンサによって提供される他のセンサのデータに基づいて対象を検出することもできる。
【0033】
それぞれの対象について、決定モジュール303は、対象をどのように扱うかについての決定をする。例えば、特定の対象(例えば、交差ルートにある他の車)だけでなく、対象を記述するメタデータ(例えば、速度、方向、ステアリング角度)に対して、決定モジュール303は、対象をどの式で対処するかを決定する(例えば、追い越し、譲歩、停止、通過)。決定モジュール303は、永続記憶装置352に記憶できる交通ルール又は走行ルール312のようなルールのセットに基づいて、これらの決定を下すことができる。
【0034】
感知された各対象に対する決定に基づいて、計画モジュール304は、自律走行車に対するパス又は経路だけでなく、走行パラメータ(例えば、距離、速度、及び/又は回転角度)を計画する。つまり、与えられた対象については、決定モジュール303は、対象の処理を決定し、計画モジュール304は、それをどのように実行するかを決定する。例えば、与えられた対象については、決定モジュール303は、対象を通過することに決定し、これに対し、計画モジュール304は、対象の左側又は右側から通過するかを決定することができる。計画及び制御データは、計画モジュール304によって生成され、自律走行車300が、次の移動のサイクル(例えば、次のパス/経路セグメント)でどのように動くのかを記述する情報を含む。例えば、計画及び制御データは、自律走行車300が時速30マイル(mph)の速度で10m移動し、25 mphの速度で右側車線に変更するよう指示することができる。
【0035】
計画及び制御データに基づいて、制御モジュール305は、計画及び制御データによって定義された経路又はパスに沿って、車両制御システム111に適切なコマンド又は信号を送信することにより、自律走行車を制御し走行させる。計画及び制御データには、パス、又は経路上の異なる時点において、適切な車両設定又は走行パラメータ(例えば、スロットル、ブレーキ、及びステアリングコマンド)を使用して、経路又はパスの第1地点から第2地点まで車両を走行させることができる十分な情報が含まれている。
【0036】
決定モジュール303及び計画モジュール304は、1つの集積モジュールとして一体化されてもよい。決定モジュール303/計画モジュール304は、自律走行車の走行経路を決定するためのナビゲーションシステムやナビゲーションシステムの機能を含んでもよい。例えば、ナビゲーションシステムは、一連の速度及び進行方向(directional heading)を決定して、大体において最終的な目的地に至る車線経路に沿って自律走行車を進ませる同時に、感知された障害物を実質的に避ける経路に沿って自律走行車を移動することができる。目的地は、ユーザインタフェースシステム113を介してユーザ入力に応じて設定されることができる。ナビゲーションシステムは、自律走行車が運行されている間、走行経路を動的に更新することができる。ナビゲーションシステムは、自律走行車のための走行経路を決定するためにGPSシステム、及び1つ又は複数の地図からのデータを統合することができる。
【0037】
決定モジュール303/計画モジュール304は、自律走行車の環境での潜在的な障害物を識別、評価、回避したり交渉したりするための衝突回避システム又は衝突回避システムの機能をさらに含むことができる。例えば、衝突回避システムは、緊急回避操作、ステアリング操作、制動操作などを行うために、制御システム111の複数のサブシステムを操作して、自律走行車のナビゲーションの変化を実行することができる。衝突回避システムは、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避操作を自動的に決定することができる。衝突回避システムは、自律走行車が緊急回避して進入する隣接領域で、車両、建築の障害物などを、他のセンサシステムが検出したときに、緊急回避操作が行われないように構成することができる。衝突回避システムが、使用可能であり、自律走行車両の乗員の安全を最大限にする操作を自動的に選択することができる。衝突回避システムは、自律走行車両の乗客室において最低限の加速を引き起こすと予想される回避操作を選択することができる。
【0038】
車線逸脱検出器又は車線逸脱検出モジュール306は、ADVが移動している車線から逸脱しているか、ドリフティング(drifting)しているか否かを検出するように構成されている。一実施形態においては、車線逸脱検出器306は、
図2のタイヤ圧力センサ216及び/又は動きセンサ217などの1つ以上のセンサに連結されて、ADVが、例えば減速バンプのような車線にわたって配置された減速縁石に接触することに対する応答として、突然の衝撃や振動を経験するかを検出する。これらの突然の衝撃や振動に応答して、車線逸脱検出器306は、その時点でADVの移動方向と車線の車線方向との間の角度を決定する。この角度は、ADVの移動方向が車線の車線方向に比べてどのくらい外れているか(例えば、移動方向と車線方向との間の差)を示す。角度に基づいて、計画モジュール304及び/又は制御モジュール305は、移動方向の校正が必要か否かを決定し、校正が必要な場合は、新しい制御コマンドが生成されADVに発行され、ADVの移動方向を校正する。
【0039】
一実施形態においては、ADVの移動方向の校正は、移動方向と車線方向との間の差を示す角度が所定のしきい値よりも大きい場合に必要である。所定のしきい値は、様々な車両から一定期間にわたって収集された大量の走行統計に基づいて、オフラインでのデータ分析システム(例えば、データ分析システム103)によって決定され、構成される。そのような所定のしきい値は、安全上の理由及び/又は運転者の運転姿勢や好み(例えば、快適)を考慮して決定することができる。
【0040】
一実施形態によれば、車線逸脱検出器306は、動き検出器又は検出モジュール321と角度計算器322を含む。車線逸脱検出器306は、ADVが車線にわたって配置された減速バンプのような減速縁石に接触したときにキャプチャされたセンサデータに基づいて、ADVの走行中の車線からADVが逸脱していることを検出するように構成されている。ADVが減速縁石と接触したときに、車線逸脱検出器306の動き検出器321は、タイヤ圧力センサ及び/又は動きセンサを介して、このような急激な動き(例えば、衝撃、振動)を検出する。角度計算器322は、ADVの移動方向と減速縁石の長手方向の間の角度を算出する。角度に基づいて、車線逸脱検出器306は、車線の車線方向に比べてADVの移動方向がどの程度外れているかを算出する。車線方向は、典型的に減速縁石の長さ方向に基本的に垂直する。速度制御コマンド及び/又はステアリング制御コマンドのような制御コマンドは、ADVの移動方向を校正するための角度に基づいて計画モジュール304及び/又は制御モジュール305によって生成される。
【0041】
図4は、本発明の一実施形態に係る自律走行車の車線逸脱を検出し、校正する処理の流れを示す処理フローチャートである。
図3及び
図4に示すように、前述したように、感知モジュール303から受信された感知データに基づいて、計画モジュール304は、ルートを計画し、目標位置、及び目標位置に達する時間などを特定する。計画モジュール304によって提供される計画及び制御データに基づいて、制御モジュール305は、必要な制御コマンド(例えば、速度制御コマンド、ステアリング制御コマンド)を決定し、車両プラットフォーム405に制御コマンドを発行する。
【0042】
車線逸脱検出器410は、ADVが減速縁石(例えば、減速バンプ)に接触したか否かと、これらの接触の時点とを検出するためには、タイヤ圧力センサ216及び/又は動きセンサ217のような車線プラットフォーム405と連結される。ADVの1つの車輪による接触時点に基づいて、ADVの移動方向と車線の車線方向との間の差を示す角度が算出される。ADVの移動方向と車線の車線方向との間の差についての車線逸脱情報は、計画モジュール304及び/又は制御モジュール305にフィードバックされる。計画モジュール304及び/又は制御モジュール305は、車線逸脱検出器410によって提供される車線逸脱情報に基づいて校正動作が必要か否かを決定することができる。校正動作が必要であると判断されると、制御コマンドが生成され、車両プラットフォーム405に発行され、ADVの移動方向を校正する。
【0043】
本発明の一実施形態によれば、動き検出器321は、ADVの第1の車輪がADVの移動している車線をわたって配置された減速縁石に接触する第1の時点を検出する。動き検出器321は、ADVの第2の車輪が減速縁石に接触する第2の時点を検出する。第1の車輪と減速縁石の間の接触は、タイヤ圧力センサ又は動きセンサのような第1の車輪に関連するセンサを使用して検出される。第2の車輪と減速縁石の間の接触は、タイヤ圧力センサ又は動きセンサのような第2の車輪に関連するセンサを使用して検出される。一実施形態においては、第1の車輪と第2の車輪は、一対の前輪又は一対の後輪の同一の車軸に連結される。
【0044】
角度計算器322は、ADVの第1の車輪と第2の車輪に連結された車軸と車線の車線方向との間の角度を算出する。車軸の長手方向は、通常、大体においてADVの移動方向に垂直する。角度はADVの現在速度を考慮して、第1の時点と第2時点との間の差に基づいて算出される。角度を算出することにおいて、角度計算器322は、ADVの現在速度に基づいて、ADVが第1の時点から第2時点に移動する車線方向に沿う第1の距離を算出する。角度計算器322は、ADVの第1の車輪と第2の車輪との間の第2の距離(例えば、車軸又は軸距(wheelbase)の長さ)を算出する。その後、角度計算器322は、例えば、第1の距離と第2の距離との間の
正切関係に基づいて、第1の距離と第2の距離とに基づいて角度を算出する。この角度に基づいて制御コマンド(例えば、速度制御コマンド、ステアリング制御コマンド)が生成され、車線の車線方向に沿ってADVが車線内に維持されるようにADVの移動方向を調整する。
【0045】
図5は、車両が減速縁石に接触するときの典型的なシナリオを示す図である。
図5に示すように、ADV501の車輪に(例えば、一対の前輪又は後輪)が車線500の減速縁石502と接触したときに、突然の動きは動きセンサ及び/又はタイヤ圧力センサを用いて検出される。また、ADV502の車輪と減速縁石502との間の接触時点が記録される。接触時点に基づいて、車線500の車線方向503とADV501の移動方向504との間の角度505が算出される。角度505は、車線方向503と移動方向504との間の差を示す。角度505が所定のしきい値よりも大きい場合には、移動方向504を校正するために、適切な動作が実行される。
【0046】
一実施形態においては、校正が行われるか否かは、走行環境又はその時点での走行環境に応じて異なる場合がある。例えば、車線500がより狭く、且つ交通量の多い車線である場合、車線逸脱のエラーマージンが低いので、校正動作をトリガするための角度505のしきい値は、より低いことができる。同様に、より高いエラー率(error margin)のために、交通量が多く、あるいはより広い車線に対しては、より高いしきい値を使用することができる。また、双方向車線に対しては、より低いしきい値を適用し、一方向車線に対しては、より高いしきい値を適用することができる。しきい値を決定するルールは、過去の走行統計に基づいて、データの分析システム(例えば、データ分析システム103)によってオフラインで決定することができる。
【0047】
図6Aは、本発明の一実施形態に沿って移動方向と車線方向との間の差を決定するための図である。
図6Aに示すように、ADVの第1の車輪は、この例では、左前輪601が減速縁石610と接触したときに、これらの突然の動きは、例えば、タイヤ圧力センサ及び/又は動きセンサによって検出される。第1の車輪の接触時間(T1と呼ばれる)が記録される。同様に、ADVの第2の車輪(例えば、右側前輪602)が減速縁石610と接触したときに、第2の車輪の接触時間(T2と呼ばれる)が記録される。接触時間T1とT2との間の差に基づいて、接触時間T1とT2との間の移動方向504に沿った移動距離603(Sと呼ばれる)がADVの現在速度Vを考慮して算出することができる。
S = V * |T2−T1|
【0048】
一実施形態においては、距離S、及び車輪601と車輪602とを連結する車軸の長さ604(例えば、車輪601と車輪602との間の距離で、長さや距離Rと呼ばれる)に基づいて、車線500の車線方向503とADVの移動方向504との間の角度505(θとも呼ばれる)は、次のようにそれらの
正切関係に基づいて算出できる。
tan(θ)=S/R、 又は
θ=arctan(S/R)
この形態では、減速縁石610が車線方向503に基本的に垂直すると仮定する。同様に、車輪601と車輪602とを連結する車軸の長さ方向は、ADVの移動方向504に基本的に垂直する。角度θに基づいて、
図6Bに示すように、必要に応じて校正が行われてADVの移動方向504を校正する。
【0049】
ここで、
図6Bに示すように、左側前輪601の接触時間T1から右側後輪612の接触時間T2の移動距離Sは、S=V*| T2 − T1|で測定でき、ここで、VはADVの現在速度である。したがって、角度は次のように算出できる。
tan(θ)=(S−D)/R、 又は
θ=arctan((S−D)/R)
式中、D 605は、ADVの前方車軸と後方車軸との間の距離を示す。
【0050】
前記形態では、一対の前方車輪又は一対の後方車輪と減速縁石との接触により、ADVの移動方向と車線の車線方向との差を示す角度を算出する。しかしながら、角度は1つの前輪及び1つの後輪と減速縁石との接触に基づいて算出さてもよい。例えば、ADVの一側(例えば、運転者側)の前輪及びADVの他側(例えば、助手席側)の後輪となる場合は、車軸の間の距離、及び前輪と後輪との間の距離により、角度を算出することができる。
【0051】
図7は、本発明の一実施形態に係る自律走行車を動作させるプロセスを示すフローチャートである。プロセス700は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行される。例えば、プロセス700は、
図3の車線逸脱検出器306によって実行される。
図7に示すように、動作701において、処理ロジックは、第1の時点でADVの第1の車輪(例えば、左側前輪又は左側後輪)がADVの移動している車線の減速縁石(例えば、スピードリカンベント)と接触するか否かを検出する。動作702において、処理ロジックは、第2の時点でADVの第2の車輪(例えば、右側前輪又は右側後輪)が減速縁石と接触するか否かを検出する。動作703において、処理ロジックは、ADVの現在速度を考慮して、第1の時点及び第2時点に基づいてADVの移動方向と車線の車線方向との間の角度を算出する。動作704において、処理ロジックは、算出された角度に基づいて制御コマンドを生成し、ADVの移動方向を調整して、ADVが車線の車線方向に沿って車線内に維持されるようにする。
【0052】
上記図示された構成要素の一部又は全部は、ソフトウェア、ハードウェア、又はこれらの組み合わせにより実現されることができる。例えば、これらの構成要素は、本明細書全体に記載されたプロセス又はステップを実行するためには、プロセッサ(図示せず)によってメモリにロードされて実行されることができる永続記憶装置にインストールされて記憶されるソフトウェアとして実現ことができる。代案として、これらの構成要素は、集積回路(例えば、特定用途向け集積回路又はASIC)、デジタル信号プロセッサ(DSP)又はフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、 FPGA)のような専用のハードウェアにプログラムされたり内蔵された実行可能コードとして実現されることができ、これは、アプリケーションから対応するドライバ及び/又はオペレーティングシステムを介してアクセスすることができる。さらに、これらの構成要素は1つ以上の特定のコマンドを使用してソフトウェア構成要素によってアクセス可能なコマンドセットの一部としてプロセッサ又はプロセッサコアの特定のハードウェアロジックとして実現することができる。
【0053】
図8は、本出願の一実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセス又は方法のいずれか(例えば、
図1の感知及び計画システム110、及びサーバ103〜104のいずれか)を実行する上記任意のデータ処理システムを示してもよい。システム1500は、複数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、分散型電子装置又は回路基板(例えば、コンピュータシステムのマザーボード又はアドインカード)に適用された他のモジュール、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることができる。
【0054】
さらに、システム1500は、コンピュータシステムの複数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合があることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント(AP)又はリピーター、セットトップボックス、又はそれらの組み合わせを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で1つ(又は複数)のコマンドセットを実行することにより本明細書に説明される任意の1種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
【0055】
一実施形態において、システム1500は、バス又は相互接続部材1510によって接続されたプロセッサ1501、メモリ1503及び装置1505〜1508を備える。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような1つ又は複数の汎用プロセッサを示してもよい。より具体的には、プロセッサ1501は、複雑コマンドセット計算(CISC)マイクロプロセッサ、縮小コマンドセットコンピュータ(RISC)マイクロプロセッサ、超長コマンド語(VLIW)マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組み合わせを実現するプロセッサであってもよい。プロセッサ1501は、さらに、専用集積回路(ASIC)、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような1つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
【0056】
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種の構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ及び/又は表示装置をさらに備えてもよい。
【0057】
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)又は他のタイプのメモリのような1つ又は複数の揮発性記憶装置(又はメモリ)を備えてもよい。メモリ1503は、プロセッサ1501又は任意の他の装置により実行されるコマンド列を含む情報を記憶できる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア(例えば、基本入出力システム又はBIOS)及び/又はアプリケーションの実行可能なコード及び/又はデータはメモリ1503にロードされて、プロセッサ1501により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム(ROS)、Microsoft
(R)会社からのWindows
(R)オペレーティングシステム、アップル会社からのMacOS
(R)/iOS
(R)、Google
(R)会社からのAndroid
(R)、Linux、Unix又は他のリアルタイム又は組み込みオペレーティングシステムのような任意のタイプのオペレーティングシステムであってもよい。
【0058】
システム1500は、IO装置、例えば装置1505〜1508をさらに備えてもよく、ネットワークインターフェース装置1505、選択可能な入力装置1506及び他の選択可能なIO装置1507を備えてもよい。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)又は他の無線周波数(RF)送受信機又はそれらの組み合わせであってもよい。NICはイーサネットカードであってもよい。
【0059】
入力装置1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と集積されてもよい)、ポインタデバイス(例えばスタイラス)及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術(静電容量技術、抵抗技術、赤外技術及び表面音波技術を含むが、それらに限定されない)のいずれか、及びタッチスクリーンの1つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
【0060】
IO装置1507は音声装置を備えてもよい。音声装置は、スピーカ及び/又はマイクロホンを含んでもよく、それにより音声感知、音声コピー、デジタル記録及び/又は電話機能のような音声サポートの機能を促進する。他のIO装置1507は、汎用シリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI〜PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ)又はそれらの組み合わせをさらに備えてもよい。装置1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真及びビデオ断片の記録)を促進するための電荷カップリング装置(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によって相互接続部材1510に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定配置又は設計により決められる。
【0061】
データ、アプリケーション、1つ又は複数のオペレーティングシステム等のような情報の永続記憶を提供するために、大容量メモリ(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現しかつシステムの応答能力を向上させるために、このような大容量メモリは、ソリッドステート装置(SSD)によって実現されることができる。なお、他の実施形態において、大容量メモリは、主にハードディスクドライブ(HDD)で実現されてもよく、少量のSSD記憶量は、SSDキャッシュとして、停電イベント期間にコンテキスト状態及び他のこのような情報の不揮発性記憶を実現し、それによりシステム動作が再開する時に通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOS及び他のファームウェアを備える。
【0062】
記憶装置1508は、任意の1種又は複数種の本明細書に記載の方法又は機能を実現する1つ又は複数のコマンドセット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読記憶媒体とも呼ばれる)を備えてもよい。処理モジュール/ユニット/ロジック1528は、例えば、計画モジュール304及び/又は制御モジュール305のような上記構成要素のいずれかを示してもよい。処理モジュール/ユニット/ロジック1528は、さらにデータ処理システム1500、メモリ1503及びプロセッサ1501により実行される期間にメモリ1503内及び/又はプロセッサ1501内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ1503及びプロセッサ1501も、機器アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェース装置1505を経由して送受信されてもよい。
【0063】
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能の一部を永続的に記憶してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記1つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュ及びサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行されかつ前記機器に本発明の任意の1種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
【0064】
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えばASICS、FPGA、DSP又は類似装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置及びソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【0065】
なお、システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本発明の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び/又は他のデータ処理システムは、本発明の実施形態と共に使用されてもよい。
【0066】
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用され、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列(sequence of operations)と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
【0067】
ただし、これらの全ての及び類似の用語は、いずれも適切な物理量に関連付けられ、かつただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、かつ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
【0068】
本発明の実施形態は、さらに本明細書における動作を実行するためのコンピュータプログラムに関する。このようなコンピュータプログラムは、非揮発性のンピュータ可読媒体に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ)を備える。
【0069】
上記図面に示される手順又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、非揮発性のコンピュータ可読記憶媒体に具現化される)、又は両方の組み合わせを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
【0070】
本発明の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本発明の実施形態の教示を実現できることを理解すべきである。
【0071】
以上の明細書では、本発明の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本発明のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。