JP2019503294A - 自律走行車を制御するためのシステム遅延推定方法 - Google Patents

自律走行車を制御するためのシステム遅延推定方法 Download PDF

Info

Publication number
JP2019503294A
JP2019503294A JP2018517309A JP2018517309A JP2019503294A JP 2019503294 A JP2019503294 A JP 2019503294A JP 2018517309 A JP2018517309 A JP 2018517309A JP 2018517309 A JP2018517309 A JP 2018517309A JP 2019503294 A JP2019503294 A JP 2019503294A
Authority
JP
Japan
Prior art keywords
delay
autonomous vehicle
time
vehicle
steering control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018517309A
Other languages
English (en)
Other versions
JP6630822B2 (ja
Inventor
チュー,ファン
コン,チー
ヤン,コアン
ワン,チンカオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu USA LLC filed Critical Baidu USA LLC
Publication of JP2019503294A publication Critical patent/JP2019503294A/ja
Application granted granted Critical
Publication of JP6630822B2 publication Critical patent/JP6630822B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/06Improving the dynamic response of the control system, e.g. improving the speed of regulation or avoiding hunting or overshoot
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/10Path keeping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/14Adaptive cruise control
    • B60W30/143Speed control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/14Adaptive cruise control
    • B60W30/16Control of distance between vehicles, e.g. keeping a distance to preceding vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/002Integrating means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/0022Gains, weighting coefficients or weighting functions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/0042Transfer function lag; delays
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0062Adapting control system settings
    • B60W2050/0075Automatic parameter input, automatic initialising or calibrating means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2720/00Output or target parameters relating to overall vehicle dynamics
    • B60W2720/10Longitudinal speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Regulating Braking Force (AREA)

Abstract

一実施形態では、ステアリング制御遅延を測定し、ここで、ステアリング遅延は、ステアリング制御コマンドを発行する時間と自律走行車の1つ以上の車輪から受信された応答時間との間の遅延を示す。速度制御遅延は、速度制御コマンドを発行した時間と、自律走行車の1つ以上の車輪からの応答時間或はガスペダル又はブレーキペダルに圧力を与える時間との間で測定される。その後、定められたルートに応答して、全体のシステム遅延は、予め決められたアルゴリズムを使用してステアリング制御遅延又は速度制御遅延に基づいて決定される。自律走行車を走行させるための計画及び制御データは、システム遅延を考慮して生成される。【選択図】図3

Description

本発明の実施形態は、一般的に、自律走行車を走行させることに関するものである。特に、本発明の実施形態は、自律走行車を走行させるときに自律走行車のシステム遅延を推定することに関するものである。
車両が自律走行モード(例えば、無人運転)で走行している場合、乗員、特に運転者を運転に関連するいくつかの責任から解放することができる。自律走行モードで走行している場合、当該車両が車載センサを利用して様々な場所へ案内されることができ、それによりヒューマン・インタラクションの最も少ない場合、又は乗客なしの場合に走行することを可能にする。
モーション計画及び制御は、自律走行において重要な動作である。しかし、システムのある構成又は設計の原因で、あるシステム遅延が、制御コマンドを発行することと、車両からの応答との間に発生する可能性がある。このようなシステム遅延を原因として、ある状況では、車両を計画及び制御する精度などの問題が発生する可能性がある。このようなシステム遅延を判断したり、推定したりすることは困難である。
本発明の実施形態は図面の各図において限定的ではなく例示的な形態で示され、図面における同じ図面符号が類似する素子を示す。
本発明の一実施形態に係るネットワークシステムを示すブロック図である。 本発明の一実施形態に係る自律走行車の一例を示すブロック図である。 本発明の一実施形態に係る自律走行車に使用されるデータ処理システムの一例を示すブロック図である。 システム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の一実施形態に係る運転シナリオ−システム遅延マッピングテーブルの一例を示すブロック図である。 本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。 本発明の他の実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。 本発明の一実施形態に係るシステム遅延の補償を利用して自律走行車を走行させる手順を示すフローチャートである。 一実施形態に係るデータ処理システムを示すブロック図である。
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
本明細書では「一実施形態」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一つの実施形態に含まれてもよい。語句「一実施形態では」は、本明細書全体において同一の実施形態を指すとは限らない。
本発明の一実施形態によると、遅延推定機構を使用して異なる走行状況において自律走行車で発生した異なる種類の遅延を推定する。遅延推定機構は、これらの遅延を利用して遅延補償(delay corrected)された位置を最もよく反映する最良の車両位置を推論する。一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車のステアリング制御遅延、速度制御遅延、計算遅延、及び通信遅延を含むが、これらに限定されるものではない。これらの遅延におけるいくつかの遅延(例えば、ステアリング制御遅延と速度制御遅延)は、特定のセンサを使用して測定されることができる。計算遅されることができる。そして、システム遅延は、予め決定された公式(例えば、加重アルゴリズム(weighted algorithm))を使用して、これらの遅延のうちの少なくとも一部に基づいて決定されることができる。その後、システム遅延を利用して、自律走行車を走行させる間に制御コマンドが発行されるタイミングを調整することができる。
一実施形態では、ステアリング制御遅延が測定され、ここでステアリング遅延は、ステアリング制御コマンドを発行した時間と自律走行車の1つ以上の車輪から受信された応答時間との間の遅延を示す。速度制御遅延は、速度制御コマンドを発行した時間と、自律走行車の1つ以上の車輪から受信された応答時間(或は、アクセルペダル又はブレーキペダルへ圧力を与える時間)との間で測定される。その後、既定のルートに応答して、全体のシステム遅延は、予め決められたアルゴリズムを使用してステアリング制御遅延及び速度制御遅延に基づいて決定される。自律走行車を走行させるための計画及び制御データは、システム遅延に基づいて生成される。
本発明の他の実施形態によると、異なる車両のある運転パラメータが異なる運転シナリオで記録される。運転シナリオは、特定の速度(例えば、一定の速度、加速度、又は減速を維持する)で特定の距離を走行させること、特定の速度で特定の回転角度により回転すること、特定の速度及び/又は角度で車線を変更することなどの具体的な走行パターンを指す。ガスペダル及び/又はブレーキペダルに適用される圧力も記録することができる。また、ステアリング制御遅延、速度制御遅延、演算遅延及び/又は通信遅延を含む、各車両が各運転シナリオにおいて関連制御コマンドを発行することと関連するシステム遅延が決定されたり、推定されたりする。データベース又は運転シナリオ−システム遅延(シナリオ/遅延)マッピングテーブルが生成される。シナリオ/遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。その後、同じ又は類似の運転シナリオや走行環境で自律走行車を計画及び制御する際に、シナリオ/遅延マッピングテーブルは、リアルタイムの走行期間に適用されてシステム遅延を補償する。
一実施形態では、運転シナリオは、自律走行車の次のルートセグメント(route segment)又はルートに対して決定される。それに応答して、ルックアップ動作は、シナリオ/遅延マッピングテーブルにおいてルックアップ処理を実行して決定された運転シナリオとマッチングするマッピングエントリを位置決めする。シナリオ/遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、当該特定の運転シナリオについて算出されたシステム遅延にマッピングする。その後、自律走行車は、その時点での運転シナリオに対応するシステム遅延に基づいて制御かつ走行され、これは、当該状況下で、システム遅延を補償するタイミングに応じて制御コマンドを発行することを含む。
図1は本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図1を参照して、ネットワーク配置100はネットワーク102によって1つ以上のサーバ103〜104に通信可能に接続することができる自律走行車101を含む。1つの自律走行車が示されているが、ネットワーク102によって複数の自律走行車は互いに接続され、及び/又はサーバ103〜104に接続されることができる。ネットワーク102は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク(LAN)、例えばインターネットのような広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ103〜104は任意のタイプのサーバ又はサーバクラスタ、例えばWebサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ103〜104は、データ分析サーバ、内容サーバ、交通情報サーバ、地図(マップ)及び興味のあるポイント(POI)サーバ又は位置サーバ等であってもよい。
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内して環境を通過する自律走行モードに設置される車両である。このような自律走行車は、車両が走行している環境にかかる情報を検出するように配置される1つ又は複数のセンサを含むセンサシステムを備える。車両及びその関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車101が手動モード、完全自律走行モード又は部分自律走行モードで運転されることができる。
一実施形態では、自律走行車101は、データ処理システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、インフォテイメントシステム114と、センサシステム115とを含むが、これらに制限されない。自律走行車101は、通常の車両に含まれるある一般的な構成要素(部材)、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム111及び/又はデータ処理システム110により多種の通信信号及び/又はコマンド(例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等)を使用して制御されることができる。
構成要素110〜115は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における多重(multiplex)電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境(状況)にも用いられる。
ここで、図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は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば回転及び/又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
センサシステム115は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えばマイクロフォン)をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサに一体化されてもよい。
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットでも呼ばれる)、ブレーキユニット203、コンピュータビジョンシステム204、ナビゲーションユニット205(ナビゲーションとルートシステム、又はナビゲーション/ルートシステムとも呼ばれる)及び衝突回避ユニット206(障害物回避システムでも呼ばれる)を含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は走行方向を調整することに用いられる。スロットルユニット202は、モーター又はエンジンの速度を制御して、さらに車両の速度及び加速度を制御することに用いられる。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。
コンピュータビジョンユニット又はシステム204は、自律走行車の環境内の対象及び/又は特徴を認識するために1つ以上のカメラ211によってキャプチャされた画像を処理し、分析するものである。対象は、交通信号、道路境界、他の車両、歩行者、及び/又は障害物などを含むことができる。コンピュータビジョンシステム204は、対象認識アルゴリズム、ビデオ追跡及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステム204は、環境をマッピングして、対象を追跡し、対象の速度を推定することなどができる。
ナビゲーションユニット又はシステム205は、自律走行車の走行経路を決定するものである。例えば、ナビゲーションシステムは、自律走行車を最終的な目的地に至る車道ベースの経路に沿って一般的に前進させるとともに、感知された障害物をだいたい避けるような経路に沿って移動する一連の速度と進行方向(directional heading)を決定することができる。目的地は、ユーザインタフェースを介してユーザ入力に応じて設定されてもよい。ナビゲーションシステム205は、自律走行車が走行している間、走行経路を動的に更新することができる。ナビゲーションシステム205は、自律走行車に用いられる走行経路を決定するためにGPSシステム、及び1つ以上のマップからのデータを統合してもよい。
衝突回避ユニット又はシステム206は、自律走行車の環境での潜在的な障害物を識別、評価、回避又は他の方法で乗り越えるものである。例えば、衝突回避システム206は、緊急回避(swerve)処理、回転処理、制動処理などを行うために、制御システムの1つ以上のサブシステムを処理することで、自律走行車のナビゲーションにおける変化を実現することができる。衝突回避システム206は、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避処理を自動的に決定することができる。衝突回避システム206は、自律走行車が緊急回避して進入しようとする隣接領域における車両、建築の障害物などが他のセンサシステムにより検出されたとき、緊急回避処理が行われないように構成されることができる。衝突回避システム206が、使用可能でありながら自律走行車の乗員の安全性を最大化する処理を自動的に選択することができる。衝突回避システム206は、自律運行車両の乗客室に対して最低限の加速を引き起こすと予想される回避処理を選択することができる。注意すべきなことは、図2に示される構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されてもよい。
図1を再び参照して、無線通信システム112は、自律走行車101と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを可能にする。例えば、無線通信システム112は、1つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク102によってサーバ103〜104に通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)(例えばWiFi)を使用して他の構成要素やシステムに通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース等を使用して装置(例えば、乗客の移動装置、表示装置、車両101内のスピーカ)に直接に通信することができる。ユーザインターフェースシステム113は、車両101内で実行される周辺装置の一部であってもよく、例えばキーワード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカ等を含む。
自律走行車101全ての一部の機能は、特に自律走行モードで処理される場合、データ処理システム110により制御されたり管理されたりすることができる。データ処理システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)、及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含み、センサシステム115、制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして計画及び制御情報に基づいて車両101を走行させる。あるいは、データ処理システム110と車両制御システム111とは一体化されてもよい。
例えば、乗客であるユーザは、例えばユーザインタフェースによって旅程の出発位置及び目的位置を指定することができる。データ処理システム110は、自律走行車101の他の構成要素と通信して旅程関連データを取得する。例えば、データ処理システム110は、位置サーバ及び地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、かつMPOIサーバはマップサービス及びある位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、感知及び計画システム110の不揮発性記憶装置にローカルにキャッシュされることができる。
自律走行車101がルートに沿って走行する期間に、データ処理システム110は、さらに交通情報システムやサーバ(TIS)からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ103〜104は、第三者エンティティにより動作されることができる。あるいは、サーバ103〜104の機能は、データ処理システム110と一体化されてもよい。リアルタイム交通情報、MPOI情報、位置情報、及びセンサシステム115が検出又は感知したリアルタイムなローカル環境データ(例えば、障害物、対象、付近車両)に基づいて、データ処理システム110は、指定された目的地に安全で効果的に到達するように、最適なルートを計画し、かつ計画したルートにより例えば制御システム111を介して車両101を運転することができる。
一実施形態によると、自律走行車101は、車両101の乗客に情報とエンターテインメントを提供するインフォテイメントシステム114をさらに含むことができる。情報及びエンターテイメントコンテンツは、ローカル及び/又はリモートに(例えば、サーバ103乃至104によって提供される)記憶されたコンテンツ情報に基づいて、受信、コンパイル、及びレンダリングされる。例えば、情報はネットワーク102を介して任意のサーバ103乃至104からリアルタイムでストリーミングされて車両101のディスプレイ装置上に表示される。情報は、例えば、1つ以上のカメラでリアルタイムにキャプチャされたローカル情報によって拡張される(augmented)ことができ、それから、拡張されたコンテンツは、仮想現実の方法で表示されてもよい。
一実施形態では、位置及びルート情報、MPOI情報、及び/又はリアルタイムの交通情報に基づいて、インフォテインメントシステム114及び/又はデータ処理システム110は、現在の交通環境(例えば、MPOI)に適切なあるタイプのコンテンツを決定する。システムは、例えばリアルタイムの走行情報に基づいて、リストコンテンツアイテム(例えば、スポンサーされたコンテンツや広告)をコンテンツアイテムの候補として認識するために、コンテンツのインデックス(図示せず)においてルックアップ処理を実行する。
一実施形態では、システムは、様々なランキングアルゴリズムを使用してリスト内のコンテンツアイテムの順位を決定する。コンテンツアイテムは、ユーザのユーザプロファイルに基づいて、順位を決定してもよい。例えば、コンテンツアイテムは、ユーザプロファイルから導出できる、ユーザの好み(preference)に基づいて、順位を決定してもよい。ユーザプロファイルは、過去のユーザ操作の履歴に基づいて、コンパイルされることができる。一実施形態では、システムは、各コンテンツアイテムのランキングスコアを決定するために、1つ以上のコンテンツのランキングモデルをコンテンツアイテムのそれぞれに適用する。所定のしきい値を超えるランキングスコアを有するコンテンツアイテムを選択することができる。コンテンツランキングモデルは、過去の類似する移動環境や交通状況を表す既知の特徴のセットによってトレーニングされることができる。コンテンツランキングモデルは、類似するユーザのユーザプロファイルに基づいて訓練されてもよい。
選択されたコンテンツアイテムをレンダリングして、自律走行車内のディスプレイ装置上に表示する。一実施形態では、システムは、自律走行車の1つ以上のカメラを使用してある時点でキャプチャされた画像上に、選択されたコンテンツアイテムを追加して拡張させる。一実施形態では、画像に画像認識を実行し、画像によって表現されたコンテンツを導出したり理解したりする。例えば、画像やPOIを記述するために、1つ以上のキーワードが導出される。コンテンツアイテムのリストは、画像によって表現された1つ以上のキーワード又はPOIに基づいて認識されてもよい。その後、システムは、選択されたコンテンツアイテムをイメージに拡張して、コンテンツアイテムが画像上に重畳される拡張画像を生成する。拡張画像は、自律走行車のディスプレイ装置上に表示される。いくつかの実施形態によれば、インフォテイメントシステム114は、データ処理システム110と一体化されてもよい。
代案としては、ユーザは、ネットワーク(例えば、クラウドネットワーク)を介してコンテンツプロバイダのコンテンツサーバから定期的に更新できる、コンテンツ記憶装置又はデータベースからのプリコンパイルされたコンテンツ(例えば、ビデオ、映画)のリストから特に選択することができる。したがって、ユーザは、例えば、データ記憶装置125から取得されたディスプレイ装置上に表示しようとする、リアルタイムでキャプチャされたリアルタイムの実際コンテンツ又は事前レンダリングされたコンテンツを特に選択することができる。例えば、自律走行車101が、ニューヨーク市で雪の降る日に走行する場合には、ユーザはハワイで明るい環境を表示するようにディスプレイ装置をスイッチングすることができ、まるで自律走行車101が晴れた日に走行するようである。コンテンツは、協力又は協調の方法で(つまり、仮想現実方法で)複数のディスプレイ装置(例えば、複数のウィンドウ)に表示されてもよい。
図1を再び参照すると、一実施形態によると、次のルート又は次のルートセグメントを計画するとき、データ処理システム110は、システム遅延を考慮する。具体的には、次の移動を計画するとき、システムはその時点の運転シナリオを決定し、運転シナリオに対応するシステム遅延を取得する。システムは、(例えば、システム遅延を考慮して適切なタイミング、大きさ、及び/又は回転角度に関する制御コマンドを発行することにより)関連するシステム遅延をもとに計画及び制御データを生成する。システム遅延は、自律走行車の走行期間にオンラインで決定されてもよい。代案として、システム遅延は、様々な運転シナリオ又は条件下での大量の車両の多くの運転統計に基づいてオフラインで決定されてもよい。
一実施形態によると、システム遅延は、大量の異なる車両の大量の走行統計に基づいて、サーバ103のような分析システムによって決定されてもよい。そして、システム遅延は、リアルタイム又はオンラインの走行期間に使用されるように、データベースやテーブルのようなデータ構造で自律走行車101上にロードされる。一実施形態では、サーバとして動作するデータ分析システム103は、データコレクタ151と、データ分析モジュール152とを含むが、これらに限定されるものではない。データコレクタ151は、異なる運転シナリオ及び/又は条件下で、様々な車両から記録されキャプチャされた様々な走行統計153を収集する。また、走行統計153は、走行動作の間に、車両の様々なセンサによって測定及び/又は推定された特定のシステム遅延をさらに含む。
一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車におけるステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延を含むが、これらに限定されない。これらの遅延のうちのいくつかの遅延(ステアリング制御遅延及び速度制御遅延など)は、特定のセンサ(例えば、ステアリングセンサ、ホイールセンサ、スロットルセンサやブレーキセンサなど)によって測定されることができる。演算遅延や通信遅延のような他の遅延が推定されてもよい。そして、システム遅延は、予め決定された公式(例えば、加重アルゴリズム)によって、これらの遅延に基づいて決定される。
走行統計153に基づいて、分析モジュール152は、異なる運転シナリオや状況に対応するシステム遅延を決定する分析を実行する。分析モジュール152は、異なる運転シナリオに対応するシステム遅延を記憶するシナリオ/遅延マッピングテーブル150を生成する。一実施形態では、シナリオ/遅延マッピングテーブル150は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。システム遅延は、ステアリング制御遅延、速度制御遅延、演算遅延又は通信遅延など、様々な種類の遅延に基づいて計算されることができる。代案としては、それぞれのマッピングエントリは、特定の運転シナリオを個別のステアリング制御遅延、速度制御遅延、演算遅延と通信遅延のセットにマッピングする。
そして、シナリオ/遅延マッピングテーブル150は、自律走行車にアップロードされ、ここで、シナリオ/遅延マッピングテーブル150は、自律走行車を制御して走行させるための制御コマンドを発行するタイミングを決定することによるシステム遅延を補償するように適用されてもよい。代案として、ステアリング制御遅延、速度制御遅延、演算遅延や通信遅延などのシステム遅延は、自律走行車を走行させる間に、リアルタイムで測定されたり推定されたりすることができる。これらのシステム遅延は、当該時点での具体的な運転シナリオの影響を受けずに制御コマンドを発行する処理を補償するために適用されてもよい。シナリオ/遅延マッピングテーブル150は、データベース又は他のルックアップテーブルのような、様々なデータ構造で実現されてもよい。
図3は、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。システム300は、図1のシステム101の一部として実現されてもよい。図3を参照すると、データ処理システム110は、計画モジュール301、制御モジュール302、マップ及びルートモジュール303及びシステム遅延決定モジュール(又はシステム遅延決定計算機)304を含むが、これらに限定されない。モジュール301〜304は、ソフトウェア、ハードウェア、又はこれらの組み合わせで実現されてもよい。例えば、任意のモジュール301〜304は、永続記憶装置312(例えば、ハードディスク)に設置され、メモリ311にロードされ、1つ以上のプロセッサ(図示せず)によって実行されることができる。
計画モジュール301は、センサシステム115から受信されたセンサデータ及び/又は様々なソース(例えば、位置、地図、地図と興味点の一部としてのPOI、又はマップとルートモジュール303によって提供されるMPOIデータベース)から受信されたリアルタイム情報のような様々な情報に基づいて、自律走行車のための経路又はルートを計画するものである。計画及び制御データは、計画モジュール301によって生成される。計画及び制御データに基づいて、制御モジュール302は、計画及び制御データによって定義されたルート又は経路に沿って、車両制御システム111に適切なコマンド又は信号を送信することにより、自律走行車を制御するものである。計画及び制御データには、経路、又はルートに沿って異なる時点において、適切な車両設定又は運転パラメータ(例えば、スロットル、ブレーキ、及び回転コマンド)を使用して、ルート又は経路の第1点から第2点まで車両を走行させることができる十分な情報が含まれている。計画モジュール301と制御モジュール302は、図2の車両制御システム111のナビゲーションユニット205に通信可能に接続されたり、ナビゲーションユニット205と一体化されたりしてもよい。
一実施形態によると、システム遅延決定モジュール304(単に遅延計算機とも称する)は、自律走行車300のシステム全体の遅延を決定する。一実施形態では、これらのシステム遅延は、特定の状況におけるステアリング制御遅延321、速度制御遅延322、演算遅延323、通信遅延324又は他の遅延に(個別の遅延とも呼ばれる)のうちの少なくとも一つに基づいて算出されたり決定されたりすることができる。これらの遅延321〜324は、大量の異なる運転シナリオ又は運転条件で大量の車両による大量の走行記録に基づいて測定されたり推定されたりすることができる。これらの遅延321〜324は、大量の走行統計を収集し、分析することで、データ分析システム103のようなデータ分析システムによってオフラインで決定されてもよい。例えば、特定のタイプの遅延は、同一又は類似のタイプの大量の車両から発生する同じタイプの平均遅延に基づいて決定されることができる。
代案として、遅延321〜324は、遅延決定モジュール304によってリアルタイムで決定されたり測定されたりすることができる。しかし、このような方法は、オンライン走行の間に性能が低下したり、計算する時間が長くかかる可能性がある。これとは反対に、専用のデータ分析システムによってオフラインで遅延321〜324を算出することにより、オンラインで遅延321〜324を使用することができ、遅延321〜324を決定する時間を短縮することができる。一実施形態では、遅延321〜324は、自律走行車300内のオンライン測定及び/又はデータ分析システムによって様々な車両のオフライン遅延計算に基づいて定期的に更新されてもよい。
一実施形態では、システム遅延決定モジュール304は、ステアリング制御遅延321を決定するためのステアリング制御遅延決定モジュール(図示せず)を含む。ステアリング制御遅延321は、ステアリング制御コマンドが発行される時間と、車両300の1つ以上の車輪から応答が受信された時間との間で測定されることができる。ステアリング制御遅延321は、ステアリング制御コマンドが発行されることと、車両の車輪がステアリング制御コマンドによって指定される角度で位置決められることとの間の時間に基づいて測定されることができ、これは1つ以上のステアリングセンサによって感知されてもよい。
システム遅延決定モジュール304は、加速のとき、減速のとき又は同じ速度を維持するときの遅延を含む速度制御遅延322を決定するための速度制御遅延決定モジュール(図示せず)をさらに含むことができる。速度制御遅延322は、速度制御コマンド(例えば、加速、減速又は制動)を発行する時間と、車両が速度の変更を開始することを示す応答を車両の車輪から受信した時間との間で測定されてもよい。速度制御遅延322は、加速又はスロットルコマンドを発行する時間と、車両が加速を開始する時間との差を示す加速遅延を含む。速度制御遅延322は、減速又は制動コマンドを発行する時間と、車両が減速を開始する時間との差を示す減速遅延を含むことができる。
演算遅延323は、システム(例えば、計画モジュール301、制御モジュール302、制御システム111及びCANバスなどの通信バス)が制御コマンドを生成して発行するのにかかる演算時間を指す。演算遅延はスリープ時間をさらに含むことができる。例えば、演算が10ヘルツ(Hz)の周波数で実行される場合(例えば、運転パラメータを0.1秒ごとに演算する)、平均スリープ時間は50ミリ秒(ms)である。このスリープ時間は、演算遅延の一部としてみなされ、スリープ時間の間に、システムが如何なるコマンドや応答を処理する可能性が低いためである。通信遅延324は、制御システム、通信バスと車からの応答の間の遅延又は通信コストを指す。演算遅延323及び通信遅延324は、同一又は類似のタイプの一つ以上の車両の前の動作に基づいて推定されることができる。
一実施形態では、システム遅延決定モジュール304は、予め決定された遅延アルゴリズムを使用して、ステアリング制御遅延321、速度制御遅延322、演算遅延323又は通信遅延324のうちの1つ以上の遅延に基づいて、全体又は最終システム遅延を算出する。一実施形態では、予め決定されたアルゴリズムは、加重アルゴリズムであり、計算においてかかるステアリング制御遅延321、速度制御遅延322、演算遅延323又は通信遅延324のそれぞれは、加重因子又は係数が割り当てられる。具体的な運転シナリオ又は環境によって、計算においてかかる個別の遅延のそれぞれの加重係数又は係数は異なってもよい。例えば、車両が曲がろうとすると、ステアリング制御遅延321に対応する加重係数をより高く調整することができる。車両が直進すると、速度制御遅延322に対応する加重係数を、特に、車両の現在速度と目標速度との差が比較的に大きいとき(例えば、予め決定されたしきい値よりも大きい場合)に、より高く調整ことができる。具体的な状況に応じて上記の調整をリアルタイムで適用することができる。算出されたシステム遅延は、制御コマンドを発行する時点と車両からの遅延応答の時点を補償するのに使用することができる。
例えば、ここで、図4を参照すると、車両が位置401にあると仮定する。システム遅延が考慮されると、制御コマンドが発行されるとき、車両は位置402で制御コマンドを受信し応答することができる。この遅延は、運転パラメータ(例えば、スロットル、ブレーキパラメータ)を決定するときに誤差を発生させる可能性があり、したがって、乗客に不快感を与える可能性がある。車両が制御コマンドを受信するとき、車両は、制御コマンドが決定された元の位置401に位置しない可能性がある。もっと正確に言えば、車両が位置402にある可能性がある。その結果、車両が受信された制御コマンドを実行するとき、たいへん遅くなる可能性があり、制御システムは、他のコマンドを発行することにより、このような状況を補正しなければならない。システム遅延を算出して了解することにより、システム遅延に基づいて制御コマンドに関連する時点及び運転パラメータを調整し計画して、システム遅延を補償することができる。たとえば、この例では、制御コマンドは、システム遅延を考慮してより早く発行されることができる。
図3を再び参照すると、一実施形態では、データ処理システム110は、図1のシステム103のようなデータ分析システムによってオフラインで生成されることができるシナリオ/遅延マッピングテーブル150をさらに維持(maintain)することができる。前述したように、異なる運転状況において、ステアリング、スロットルとブレーキの時間遅延は、大量の走行データに基づいて測定され、記録される。例えば、異なる運転状況は、100mにおいて時速5マイル(mph)で加速すること、速度を維持して100メートルを走行すること、100メートルにおいて10mphで減速すること、100mにおいて40mphで右車線に合流すること、アスファルト道路及びセメント道路で走行すること、30℃又は70℃温度下で動作すること、高性能のコンピュータ又は低性能のコンピュータで実行されるアルゴリズムを制御することなどを含むことができるが、これらに限定されない。スロットル圧力、ブレーキ圧力、ホイールの角度、ギアのような自律走行コマンドが記録されてもよい。現在速度、ホイールの角度などを含む状態が記録されてもよい。
シナリオ/遅延マッピングテーブル150は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。一実施形態に係るシナリオ/遅延マッピングテーブルの例が図5に示されている。運転シナリオは、特定の速度で特定の距離を走行すること、特定の速度及び特定の回転角度で曲がることのような具体的な走行パターンを指す。ガスペダル及び/又はブレーキペダルに与えられる圧力が記録されてもよい。また、各運転シナリオにおいて各車両がかかる制御コマンドを発行することに関連するシステム遅延(ステアリング制御遅延、速度制御遅延、演算遅延及び/又は通信遅延を含む)が決定又は推定される。その後、類似する運転シナリオ又は環境で自律走行車を計画及び制御する際に、シナリオ/遅延マッピングテーブル150は、リアルタイムの走行期間に適用されてシステム遅延を補償する。
一実施形態では、次のルート又はルートセグメントを計画するとき、計画モジュール301は、自律走行車の次のルートセグメント又はルートに対応する運転シナリオを決定する。ルックアップ動作はシナリオ/遅延マッピングテーブルで実行され、決定された運転シナリオとマッチングするマッピングエントリを位置決めする。その後、計画モジュール301及び/又は制御モジュール302は、その時点での運転シナリオに対応するシステム遅延を考慮して自律走行車を制御し、ここで、当該状況におけるシステム遅延を補償するためのタイミングに応じて、制御コマンドを発行することを含む。
これにより、オンライン走行の期間に、システムは、まず状況や運転シナリオをチェックして、例えば、シナリオ/遅延マッピングテーブルに検索することにより、オフラインデータ及びリアルタイム記録に基づいて、システムの時間遅延を決定する。そして、システムは、リアルタイムではなく、当該時間遅延を使用して、将来のステアリング、スロットル及びブレーキを計算する。たとえば、図6A及び図6Bを参照すると、点線で示すように、現在の走行計画は30mにおいて車線を右車線に変更することを仮定する。遅延補償なしにステアリング角度コマンド(この例では、5度)が発行されると、車両は0.1秒の遅延で応答し、図6Aに示される実線の通り、実際のルートは、予想又は計画されるルートから外れる。上記した技術を使用して、決定されたシステム遅延を考慮することにより、実際の行動をとるための0.1秒の遅延があるため(例えば、シナリオ/遅延マッピングテーブルからのマッチング運転シナリオに基づいて)、コマンドは0.9秒(きちんと1秒でない)に送られるべきである。その結果、図6Bに示すように、車両は期待どおりに応答して、実際のルートと計画ルートがだいたいマッチングすることができる。
類似して、図7A及び図7Bを参照すると、車両が回転するとき、システム遅延は、図7Aに示す実線で示されたように、車両に遅延された方式で反応させる可能性がある。ある状況では、車両が計画されたルートに従わないことを検出するとき、実線で示されたような過剰反応を行う可能性があり、乗客に不快感を引き起こす可能性がある。ルートを計画する際に、システム遅延及び他の運転パラメータ(例えば、速度、回転角度)を考慮することで、コマンドは早く及び/又は異なる回転角度で発行されることができるので、車が図7Bで示されたような計画されたルートを厳密に従うことができる。
図8は、本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。手順800は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順800は、図3のシステム遅延決定モジュール304によって実行されてもよい。代案として、手順800は、様々な車両から収集された走行統計に基づいて、データ分析システム103によって実行されてもよい。図8を参照すると、ブロック801において、処理ロジックは、車両のステアリング制御遅延を測定する。ステアリング制御遅延はステアリング制御コマンドを発行する時間と車両のステアリングセンサから応答を受信した時間との差を示す。ブロック802において、処理ロジックは、車両の速度制御遅延を測定する。速度制御遅延は速度制御コマンド(例えば、加速、減速/制動、一定の速度を維持すること)を発行する時間と車両からの応答時間(例えば、加速、減速を開始する時間)との差を示す。
ブロック803において、処理ロジックは、車両の演算遅延を推定する。演算遅延は、車両の制御システムが制御コマンドを生成し発行するのにかかる時間を指す。ブロック804において、処理ロジックは、車両の通信遅延を推定する。通信遅延は、制御システム、通信バス(例えばCANバス)と車両からの応答の間の遅延を示す。そして、ステアリング制御遅延、速度制御遅延、演算遅延及び/又は通信遅延は、データ構造に記憶され、当該データ構造は、後続の制御コマンドを調整して、それらのコマンドを発行する時点を補償するために使用されることができる。
図9は、本発明の他の実施形態に係る自律走行車のシステム遅延を決定する手順を示すフローチャートである。手順900は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順900は、図3のシステム遅延決定モジュール304によって実行されてもよい。代案として、手順900は、様々な車両から収集された走行統計に基づいて、データ分析システム103によって実行されてもよい。図9を参照すると、ブロック901において、処理ロジックは、特定のタイプの自律走行車について複数の運転シナリオを決定する。ブロック902において、それぞれの運転シナリオについて、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行中のテアリング制御遅延を測定し記録する。
ブロック903において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのスロットル制御遅延(例えば、加速遅延)を測定し記録する。ブロック904において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのブレーキ制御遅延(例えば、減速遅延)を測定し記録する。ブロック905において、ステアリング制御遅延、スロットル制御遅延及びブレーキ制御遅延は、特定のタイプの自律走行車のシナリオ/遅延マッピングデータ構造に記憶される。前記動作は、同じタイプ又は類似するタイプの大量の車両に対して繰り返し実行されてもよい。そして、遅延は、様々な車両の平均遅延をもとに計算されることができる。
図10は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。手順1000は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順1000は、図1のシステム110によって実行されてもよい。図10を参照すると、ブロック1001において、処理ロジックは、自律走行車に装着された様々なセンサのセンサデータに基づいて決定された、走行環境に対する感知に基づいて、運転シナリオを決定する。ブロック1002において、処理ロジックは、シナリオ/遅延マッピングテーブルにおいてルックアップ動作を実行して、運転シナリオに対応するマッピングエントリを位置決めする。シナリオ/遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、同一又は類似する運転シナリオにおいて様々な車両によって測定された1つ以上の遅延セットにマッピングする。ブロック1003において、処理ロジックは、マッピングエントリからシステム遅延を検出して決定する。システム遅延は、前述したようなステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延のうち少なくとも一つに基づいて決定されることができる。ブロック1004において、処理ロジックは、システム遅延を考慮してルート又はルートセグメントを計画し、計画及び制御データを生成する。ブロック1005において、処理ロジックは、計画及び制御データに基づいて、ルート又はルートセグメントに沿って自律走行車を走行させて制御する。
注意すべきな点は、前記の示されたとともに記述された一部又は全部の構成要素は、ソフトウェア、ハードウェア又はその組み合わせで実現されることができる。例えば、このような構成要素は、永続記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本出願にわたって記載の手順又は動作を実施するように、プロセッサ(図示せず)でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば特定用途向けIC又はASIC)、デジタル信号プロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA、Field Programmable Gate Array)にプログラミングされ又は嵌め込みされた専用ハードウェアにおける実行可能なコードとして実現されてもよく、前記実行可能なコードは、対応するドライバープログラム及び/又はオペレーティングシステムによってアプリケーションからアクセスされてもよい。なお、このような構成要素は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が1つ以上の特定コマンドによってアクセス可能なコマンドセットの一部とする。
図11は、本発明の一つの実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセス又は方法のいずれかを実行する上記任意のデータ処理システム(例えば、図1のデータ処理システム110、及びサーバ103〜104のいずれか)を示してもよい。システム1500は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール(例えばコンピュータシステムのマザーボード又はアドインカード)、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることできる。
さらに、システム1500は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合もあることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント(AP)又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で一つ(又は複数)のコマンドセットを実行することにより本明細書に説明される任意の1種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
一つの実施形態において、システム1500は、バス又は相互接続部材1510によって接続されたプロセッサ1501、メモリ1503及び装置1505〜1508を備える。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような一つ又は複数の汎用プロセッサであってもよい。より具体的には、プロセッサ1501は、複雑コマンドセット計算(CISC)マイクロプロセッサ、縮小コマンドセットコンピュータ(RISC)マイクロプロセッサ、超長コマンド語(VLIW)マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組合せを実現するプロセッサであってもよい。プロセッサ1501は、さらに、専用集積回路(ASIC)、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような一つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、コマンドを実行することにより本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ及び/又は表示装置をさらに備えてもよい。
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一つの実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)又は他のタイプの記憶装置のような一つ又は複数の揮発性記憶(又はメモリ)装置を備えてもよい。メモリ1503は、プロセッサ1501又は任意の他の装置により実行されるコマンド列を含む情報を記憶することができる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア(例えば、基本入出力システム又はBIOS)及び/又はアプリケーションの実行可能なコード及び/又はデータはメモリ1503にロードされてもよく、プロセッサ1501により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)会社からのWindows(登録商標)オペレーティングシステム、アップル会社からのMac OS(登録商標)/iOS(登録商標)、Google(登録商標)会社からのAndroid(登録商標)、Linux(登録商標)、Unix(登録商標)又は他のリアルタイム又は組み込みオペレーティングシステム(のような任意のタイプのオペレーティングシステムであってもよい。
システム1500は、I/O装置、例えば装置1505〜1508をさらに備えてもよく、ネットワークインターフェース装置1505、選択可能な入力装置1506及び他の選択可能なI/O装置1507を備える。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)又は他の無線周波数(RF)送受信機又はそれらの組合せであってもよい。NICはイーサネットカードであってもよい。
入力装置1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と集積されてもよい)、ポインタデバイス(例えばスタイラス)及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術(容量式、抵抗式、赤外式及び表面音波技術を含むが、それらに限定されない)のいずれか、及びタッチスクリーンの一つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
I/O装置1507は音声装置を備えてもよい。音声装置は、スピーカ及び/又はマイクロフォンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び/又は電話機能のような音声サポートの機能を促進する。他のI/O装置1507は、汎用シリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ)又はそれらの組合せをさらに備えてもよい。装置1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真及びビデオ断片の記録)を促進するための電荷カップリング装置(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によって相互接続部材1510に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定配置又は設計により決められる。
データ、アプリケーション、一つ又は複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現されることができる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)で実現されてもよく、容量が小さいSSD記憶装置は、SSDキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の永久記憶を実現し、それによりシステム動作が再開するときに通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOS及び他のファームウェアを備える。
記憶装置1508は、任意の1種又は複数種の本明細書に記載の方法又は機能を体現する一つ又は複数のコマンドセット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる)を備えてもよい。モジュール/ユニット/ロジック1528は、計画モジュール301、制御モジュール302、システム遅延決定モジュール304、データコレクタ151又は分析モジュール152のような上記構成要素のいずれかを示してもよい。モジュール/ユニット/ロジック1528は、さらにデータ処理システム1500により実行される期間にメモリ1503内及び/又はプロセッサ1501内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ1503及びプロセッサ1501も、機器アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェース装置1505を経由して送受信されてもよい。
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記一つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュ及びサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行され且つ前記機器に本出願の任意の1種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えばASICS、FPGA、DSP又は類似装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
なお、システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び/又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列(sequence of operations)と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
本出願の実施形態は、さらに本明細書における動作を実行するための装置に関する。このようなコンピュータプログラムは、不揮発性のコンピュータ可読媒体に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ)を備える。
上記図面に示される手順又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、不揮発性のコンピュータ可読媒体に具現化される)、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。
本発明の実施形態は、一般的に、自律走行車を走行させることに関するものである。特に、本発明の実施形態は、自律走行車を走行させるときに自律走行車のシステム遅延を推定することに関するものである。
車両が自律走行モード(例えば、無人運転)で走行している場合、乗員、特に運転者を運転に関連するいくつかの責任から解放することができる。自律走行モードで走行している場合、当該車両が車載センサを利用して様々な場所へ案内されることができ、それによりヒューマン・インタラクションの最も少ない場合、又は乗客なしの場合に走行することを可能にする。
モーション計画及び制御は、自律走行において重要な動作である。しかし、システムのある構成又は設計の原因で、あるシステム遅延が、制御コマンドを発行することと、車両からの応答との間に発生する可能性がある。このようなシステム遅延を原因として、ある状況では、車両を計画及び制御する精度などの問題が発生する可能性がある。このようなシステム遅延を判断したり、推定したりすることは困難である。
本発明の一つの実施形態によると、自動運転車両を運転するためのコンピュータ実施方法を提供し、この方法は、ステアリング制御コマンドを発行する時間と、自律走行車の1つ以上の車輪からの第1の応答時間との間のステアリング制御遅延を測定するステップと、速度制御コマンドを発行する時間と、前記自律走行車の1つ以上の車輪からの第2の応答時間との間の速度制御遅延を測定するステップと、定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定するステップと、前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成するステップと、を含む。
本発明の他の実施形態によると、コマンドが記憶されており、前記コマンドがプロセッサにより実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、不発揮性の機械可読媒体を提供し、前記処理は、ステアリング制御コマンドを発行する時間と、自律走行車の1つ以上の車輪からの第1の応答時間との間のステアリング制御遅延を測定することと、速度制御コマンドを発行する時間と、前記自律走行車の1つ以上の車輪からの第2の応答時間との間の速度制御遅延を測定することと、定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することと、を含む。
本発明の他の実施形態によると、プロセッサと、前記プロセッサに連結されてコマンドを記憶するメモリと、を含み、前記コマンドが前記プロセッサによって実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、データ処理システムを提供し、前記処理は、ステアリング制御コマンドを発行する時間と、自律走行車の1つ以上の車輪からの第1の応答時間との間のステアリング制御遅延を測定することと、速度制御コマンドを発行する時間と、前記自律走行車の1つ以上の車輪からの第2の応答時間との間の速度制御遅延を測定することと、定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することとを含む。
本発明の一実施形態に係るネットワークシステムを示すブロック図である。 本発明の一実施形態に係る自律走行車の一例を示すブロック図である。 本発明の一実施形態に係る自律走行車に使用されるデータ処理システムの一例を示すブロック図である。 システム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の一実施形態に係る運転シナリオ−システム遅延マッピングテーブルの一例を示すブロック図である。 本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の一実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の他の実施形態に係るシステム遅延のある場合とシステム遅延のない場合に、自律走行車を走行させることを説明する図である。 本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。 本発明の他の実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。 本発明の一実施形態に係るシステム遅延の補償を利用して自律走行車を走行させる手順を示すフローチャートである。 一実施形態に係るデータ処理システムを示すブロック図である。
以下、説明の詳細を参照しながら、本出願の様々な実施形態及び方法を説明し、図面は、前記様々な実施形態を示す。以下の説明及び図面は、本出願を説明するためのものであり、本出願を限定するものではない。本出願の様々な実施形態を完全に把握するために、多数の特定の詳細を説明する。なお、いくつかの例では、本出願の実施形態に対する簡単な説明を提供するために、周知又は従来技術の詳細について説明していない。
本明細書では「一実施形態」又は「実施形態」とは、当該実施形態について組み合わせて説明された特定特徴、構造又は特性が、本出願の少なくとも一つの実施形態に含まれてもよい。語句「一実施形態では」は、本明細書全体において同一の実施形態を指すとは限らない。
本発明の一実施形態によると、遅延推定機構を使用して異なる走行状況において自律走行車で発生した異なる種類の遅延を推定する。遅延推定機構は、これらの遅延を利用して遅延補償(delay corrected)された位置を最もよく反映する最良の車両位置を推論する。一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車のステアリング制御遅延、速度制御遅延、計算遅延、及び通信遅延を含むが、これらに限定されるものではない。これらの遅延におけるいくつかの遅延(例えば、ステアリング制御遅延と速度制御遅延)は、特定のセンサを使用して測定されることができる。計算遅されることができる。そして、システム遅延は、予め決定された公式(例えば、加重アルゴリズム(weighted algorithm))を使用して、これらの遅延のうちの少なくとも一部に基づいて決定されることができる。その後、システム遅延を利用して、自律走行車を走行させる間に制御コマンドが発行されるタイミングを調整することができる。
一実施形態では、ステアリング制御遅延が測定され、ここでステアリング遅延は、ステアリング制御コマンドを発行した時間と自律走行車の1つ以上の車輪から受信された応答時間との間の遅延を示す。速度制御遅延は、速度制御コマンドを発行した時間と、自律走行車の1つ以上の車輪から受信された応答時間(或は、アクセルペダル又はブレーキペダルへ圧力を与える時間)との間で測定される。その後、既定のルートに応答して、全体のシステム遅延は、予め決められたアルゴリズムを使用してステアリング制御遅延及び速度制御遅延に基づいて決定される。自律走行車を走行させるための計画及び制御データは、システム遅延に基づいて生成される。
本発明の他の実施形態によると、異なる車両のある運転パラメータが異なる運転シナリオで記録される。運転シナリオは、特定の速度(例えば、一定の速度、加速度、又は減速を維持する)で特定の距離を走行させること、特定の速度で特定の回転角度により回転すること、特定の速度及び/又は角度で車線を変更することなどの具体的な走行パターンを指す。ガスペダル及び/又はブレーキペダルに適用される圧力も記録することができる。また、ステアリング制御遅延、速度制御遅延、演算遅延及び/又は通信遅延を含む、各車両が各運転シナリオにおいて関連制御コマンドを発行することと関連するシステム遅延が決定されたり、推定されたりする。データベース又は運転シナリオ−システム遅延(シナリオ/遅延)マッピングテーブルが生成される。シナリオ/遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。その後、同じ又は類似の運転シナリオや走行環境で自律走行車を計画及び制御する際に、シナリオ/遅延マッピングテーブルは、リアルタイムの走行期間に適用されてシステム遅延を補償する。
一実施形態では、運転シナリオは、自律走行車の次のルートセグメント(route segment)又はルートに対して決定される。それに応答して、ルックアップ動作は、シナリオ/遅延マッピングテーブルにおいてルックアップ処理を実行して決定された運転シナリオとマッチングするマッピングエントリを位置決めする。シナリオ/遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、当該特定の運転シナリオについて算出されたシステム遅延にマッピングする。その後、自律走行車は、その時点での運転シナリオに対応するシステム遅延に基づいて制御かつ走行され、これは、当該状況下で、システム遅延を補償するタイミングに応じて制御コマンドを発行することを含む。
図1は本発明に係る一実施形態に係る自律走行車のネットワーク配置を示すブロック図である。図1を参照して、ネットワーク配置100はネットワーク102によって1つ以上のサーバ103〜104に通信可能に接続することができる自律走行車101を含む。1つの自律走行車が示されているが、ネットワーク102によって複数の自律走行車は互いに接続され、及び/又はサーバ103〜104に接続されることができる。ネットワーク102は、任意のタイプのネットワーク、例えば有線又は無線のローカルエリアネットワーク(LAN)、例えばインターネットのような広域ネットワーク(WAN)、セルラーネットワーク、衛星ネットワーク又はその組み合わせであってもよい。サーバ103〜104は任意のタイプのサーバ又はサーバクラスタ、例えばWebサーバ又はクラウドサーバ、アプリケーションサーバ、バックエンドサーバ又はその組み合わせであってもよい。サーバ103〜104は、データ分析サーバ、内容サーバ、交通情報サーバ、地図(マップ)及び興味のあるポイント(POI)サーバ又は位置サーバ等であってもよい。
自律走行車とは、運転者からの入力が非常に少ない又はない場合に案内して環境を通過する自律走行モードに設置される車両である。このような自律走行車は、車両が走行している環境にかかる情報を検出するように配置される1つ又は複数のセンサを含むセンサシステムを備える。車両及びその関連しているコントローラが、検出された情報で案内して環境を通過する。自律走行車101が手動モード、完全自律走行モード又は部分自律走行モードで運転されることができる。
一実施形態では、自律走行車101は、データ処理システム110と、車両制御システム111と、無線通信システム112と、ユーザインターフェースシステム113と、インフォテイメントシステム114と、センサシステム115とを含むが、これらに制限されない。自律走行車101は、通常の車両に含まれるある一般的な構成要素(部材)、例えばエンジン、車輪、ハンドル、変速器等をさらに含んでもよく、前記構成要素は、車両制御システム111及び/又はデータ処理システム110により多種の通信信号及び/又はコマンド(例えば加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンド等)を使用して制御されることができる。
構成要素110〜115は、インターコネクト、バス、ネットワーク又はそれらの組み合わせを介して互いに通信可能に接続することができる。例えば、構成要素110〜115は、コントローラローカルエリアネットワーク(CAN)バスを介して互いに通信可能に接続することができる。CANバスは、マイクロコントローラ及び装置がホストコンピューターのない応用において互いに通信することを許可するような車両バス標準として設計される。それは、最初に自動車内における多重(multiplex)電線のために設計されたメッセージに基づくプロトコルであるが、他のたくさんの環境(状況)にも用いられる。
ここで、図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は、スチルカメラ及び/又はビデオカメラであってもよい。カメラは、例えば回転及び/又は傾斜のプラットフォームに取り付けられる、機械的に移動可能なものであってもよい。
センサシステム115は、その他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えばマイクロフォン)をさらに含んでもよい。オーディオセンサは、自律走行車周辺の環境から音をキャプチャするように配置されてもよい。ステアリングセンサは、ハンドル、車両の車輪又はその組み合わせのステアリング角を感知するように配置されることができる。スロットルセンサ及びブレーキセンサは、それぞれ車両のスロットル位置及びブレーキ位置を感知する。いくつかの場合、スロットルセンサ及びブレーキセンサは、集積型スロットル/ブレーキセンサに一体化されてもよい。
一実施形態では、車両制御システム111は、ステアリングユニット201、スロットルユニット202(加速ユニットでも呼ばれる)、ブレーキユニット203、コンピュータビジョンシステム204、ナビゲーションユニット205(ナビゲーションとルートシステム、又はナビゲーション/ルートシステムとも呼ばれる)及び衝突回避ユニット206(障害物回避システムでも呼ばれる)を含むが、これらに限定されない。ステアリングユニット201は、車両の方向又は走行方向を調整することに用いられる。スロットルユニット202は、モーター又はエンジンの速度を制御して、さらに車両の速度及び加速度を制御することに用いられる。ブレーキユニット203は、摩擦を提供することによって車両の車輪又はタイヤをスローダウンして車両を減速させることに用いられる。
コンピュータビジョンシステム204は、自律走行車の環境内の対象及び/又は特徴を認識するために1つ以上のカメラ211によってキャプチャされた画像を処理し、分析するものである。対象は、交通信号、道路境界、他の車両、歩行者、及び/又は障害物などを含むことができる。コンピュータビジョンシステム204は、対象認識アルゴリズム、ビデオ追跡及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステム204は、環境をマッピングして、対象を追跡し、対象の速度を推定することなどができる。
ナビゲーションシステム205は、自律走行車の走行経路を決定するものである。例えば、ナビゲーションシステムは、自律走行車を最終的な目的地に至る車道ベースの経路に沿って一般的に前進させるとともに、感知された障害物をだいたい避けるような経路に沿って移動する一連の速度と進行方向(directional heading)を決定することができる。目的地は、ユーザインタフェースを介してユーザ入力に応じて設定されてもよい。ナビゲーションシステム205は、自律走行車が走行している間、走行経路を動的に更新することができる。ナビゲーションシステム205は、自律走行車に用いられる走行経路を決定するためにGPSシステム、及び1つ以上のマップからのデータを統合してもよい。
衝突回避システム206は、自律走行車の環境での潜在的な障害物を識別、評価、回避又は他の方法で乗り越えるものである。例えば、衝突回避システム206は、緊急回避(swerve)処理、回転処理、制動処理などを行うために、制御システムの1つ以上のサブシステムを処理することで、自律走行車のナビゲーションにおける変化を実現することができる。衝突回避システム206は、周辺の交通パターン、道路状況等に基づいて、実現可能な障害物回避処理を自動的に決定することができる。衝突回避システム206は、自律走行車が緊急回避して進入しようとする隣接領域における車両、建築の障害物などが他のセンサシステムにより検出されたとき、緊急回避処理が行われないように構成されることができる。衝突回避システム206が、使用可能でありながら自律走行車の乗員の安全性を最大化する処理を自動的に選択することができる。衝突回避システム206は、自律運行車両の乗客室に対して最低限の加速を引き起こすと予想される回避処理を選択することができる。注意すべきなことは、図2に示される構成要素はハードウェア、ソフトウェア又はその組み合わせで実現されてもよい。
図1を再び参照して、無線通信システム112は、自律走行車101と、例えば装置、センサ、その他の車両等の外部システムとの間に通信することを可能にする。例えば、無線通信システム112は、1つ以上の装置に直接に又は通信ネットワークを介して無線通信し、例えばネットワーク102によってサーバ103〜104に通信することができる。無線通信システム112は、任意のセルラー通信ネットワーク又は無線ローカルエリアネットワーク(WLAN)(例えばWiFi)を使用して他の構成要素やシステムに通信することができる。無線通信システム112は、例えば赤外線リンク、ブルートゥース等を使用して装置(例えば、乗客の移動装置、表示装置、車両101内のスピーカ)に直接に通信することができる。ユーザインターフェースシステム113は、車両101内で実行される周辺装置の一部であってもよく、例えばキーボード、タッチスクリーンディスプレイ装置、マイクロフォン、及びスピーカ等を含む。
自律走行車101の一部又は全ての機能は、特に自律走行モードで処理される場合、データ処理システム110により制御されたり管理されたりすることができる。データ処理システム110は、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)、及びソフトウェア(例えば、オペレーティングシステム、計画及びルーティングプログラム)を含み、センサシステム115、車両制御システム111、無線通信システム112、及び/又はユーザインターフェースシステム113から情報を受信し、受信された情報を処理し、出発地から目的地までのルートや経路を計画し、そして計画及び制御情報に基づいて車両101を走行させる。あるいは、データ処理システム110と車両制御システム111とは一体化されてもよい。
例えば、乗客であるユーザは、例えばユーザインタフェースによって旅程の出発位置及び目的位置を指定することができる。データ処理システム110は、自律走行車101の他の構成要素と通信して旅程関連データを取得する。例えば、データ処理システム110は、位置サーバ及び地図及びPOI(MPOI)サーバから位置及びルート情報を取得することができ、前記MPOIサーバはサーバ103〜104の一部であってもよい。位置サーバは、位置サービスを提供し、かつMPOIサーバはマップサービス及びある位置のPOIを提供する。あるいは、このような位置及びMPOI情報は、感知及び計画システム110の不揮発性記憶装置にローカルにキャッシュされることができる。
自律走行車101がルートに沿って走行する期間に、データ処理システム110は、さらに交通情報システムやサーバ(TIS)からリアルタイム交通情報を取得できる。注意すべきなのは、サーバ103〜104は、第三者エンティティにより動作されることができる。あるいは、サーバ103〜104の機能は、データ処理システム110と一体化されてもよい。リアルタイム交通情報、MPOI情報、位置情報、及びセンサシステム115が検出又は感知したリアルタイムなローカル環境データ(例えば、障害物、対象、付近車両)に基づいて、データ処理システム110は、指定された目的地に安全で効果的に到達するように、最適なルートを計画し、かつ計画したルートにより例えば車両制御システム111を介して車両101を運転することができる。
一実施形態によると、自律走行車101は、車両101の乗客に情報とエンターテインメントを提供するインフォテイメントシステム114をさらに含むことができる。情報及びエンターテイメントコンテンツは、ローカル及び/又はリモートに(例えば、サーバ103乃至104によって提供される)記憶されたコンテンツ情報に基づいて、受信、コンパイル、及びレンダリングされる。例えば、情報はネットワーク102を介して任意のサーバ103乃至104からリアルタイムでストリーミングされて車両101のディスプレイ装置上に表示される。情報は、例えば、1つ以上のカメラでリアルタイムにキャプチャされたローカル情報によって拡張される(augmented)ことができ、それから、拡張されたコンテンツは、仮想現実の方法で表示されてもよい。
一実施形態では、位置及びルート情報、MPOI情報、及び/又はリアルタイムの交通情報に基づいて、インフォテインメントシステム114及び/又はデータ処理システム110は、現在の交通環境(例えば、MPOI)に適切なあるタイプのコンテンツを決定する。システムは、例えばリアルタイムの走行情報に基づいて、リストコンテンツアイテム(例えば、スポンサーされたコンテンツや広告)をコンテンツアイテムの候補として認識するために、コンテンツのインデックス(図示せず)においてルックアップ処理を実行する。
一実施形態では、システムは、様々なランキングアルゴリズムを使用してリスト内のコンテンツアイテムの順位を決定する。コンテンツアイテムは、ユーザのユーザプロファイルに基づいて、順位を決定してもよい。例えば、コンテンツアイテムは、ユーザプロファイルから導出できる、ユーザの好み(preference)に基づいて、順位を決定してもよい。ユーザプロファイルは、過去のユーザ操作の履歴に基づいて、コンパイルされることができる。一実施形態では、システムは、各コンテンツアイテムのランキングスコアを決定するために、1つ以上のコンテンツのランキングモデルをコンテンツアイテムのそれぞれに適用する。所定のしきい値を超えるランキングスコアを有するコンテンツアイテムを選択することができる。コンテンツランキングモデルは、過去の類似する移動環境や交通状況を表す既知の特徴のセットによってトレーニングされることができる。コンテンツランキングモデルは、類似するユーザのユーザプロファイルに基づいて訓練されてもよい。
選択されたコンテンツアイテムをレンダリングして、自律走行車内のディスプレイ装置上に表示する。一実施形態では、システムは、自律走行車の1つ以上のカメラを使用してある時点でキャプチャされた画像上に、選択されたコンテンツアイテムを追加して拡張させる。一実施形態では、画像に画像認識を実行し、画像によって表現されたコンテンツを導出したり理解したりする。例えば、画像やPOIを記述するために、1つ以上のキーワードが導出される。コンテンツアイテムのリストは、画像によって表現された1つ以上のキーワード又はPOIに基づいて認識されてもよい。その後、システムは、選択されたコンテンツアイテムをイメージに拡張して、コンテンツアイテムが画像上に重畳される拡張画像を生成する。拡張画像は、自律走行車のディスプレイ装置上に表示される。いくつかの実施形態によれば、インフォテイメントシステム114は、データ処理システム110と一体化されてもよい。
代案としては、ユーザは、ネットワーク(例えば、クラウドネットワーク)を介してコンテンツプロバイダのコンテンツサーバから定期的に更新できる、コンテンツ記憶装置又はデータベースからのプリコンパイルされたコンテンツ(例えば、ビデオ、映画)のリストから特に選択することができる。したがって、ユーザは、例えば、データ記憶装置125から取得されたディスプレイ装置上に表示しようとする、リアルタイムでキャプチャされたリアルタイムの実際コンテンツ又は事前レンダリングされたコンテンツを特に選択することができる。例えば、自律走行車101が、ニューヨーク市で雪の降る日に走行する場合には、ユーザはハワイで明るい環境を表示するようにディスプレイ装置をスイッチングすることができ、まるで自律走行車101が晴れた日に走行するようである。コンテンツは、協力又は協調の方法で(つまり、仮想現実方法で)複数のディスプレイ装置(例えば、複数のウィンドウ)に表示されてもよい。
図1を再び参照すると、一実施形態によると、次のルート又は次のルートセグメントを計画するとき、データ処理システム110は、システム遅延を考慮する。具体的には、次の移動を計画するとき、システムはその時点の運転シナリオを決定し、運転シナリオに対応するシステム遅延を取得する。システムは、(例えば、システム遅延を考慮して適切なタイミング、大きさ、及び/又は回転角度に関する制御コマンドを発行することにより)関連するシステム遅延をもとに計画及び制御データを生成する。システム遅延は、自律走行車の走行期間にオンラインで決定されてもよい。代案として、システム遅延は、様々な運転シナリオ又は条件下での大量の車両の多くの運転統計に基づいてオフラインで決定されてもよい。
一実施形態によると、システム遅延は、大量の異なる車両の大量の走行統計に基づいて、サーバ103のような分析システムによって決定されてもよい。そして、システム遅延は、リアルタイム又はオンラインの走行期間に使用されるように、データベースやテーブルのようなデータ構造で自律走行車101上にロードされる。一実施形態では、サーバとして動作するデータ分析システム103は、データコレクタ151と、データ分析モジュール152とを含むが、これらに限定されるものではない。データコレクタ151は、異なる運転シナリオ及び/又は条件下で、様々な車両から記録されキャプチャされた様々な走行統計153を収集する。また、走行統計153は、走行動作の間に、車両の様々なセンサによって測定及び/又は推定された特定のシステム遅延をさらに含む。
一実施形態では、システム遅延は、様々な異なる遅延に基づいて決定されることができ、様々な異なる遅延は、自律走行車におけるステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延を含むが、これらに限定されない。これらの遅延のうちのいくつかの遅延(ステアリング制御遅延及び速度制御遅延など)は、特定のセンサ(例えば、ステアリングセンサ、ホイールセンサ、スロットルセンサやブレーキセンサなど)によって測定されることができる。演算遅延や通信遅延のような他の遅延が推定されてもよい。そして、システム遅延は、予め決定された公式(例えば、加重アルゴリズム)によって、これらの遅延に基づいて決定される。
走行統計153に基づいて、分析モジュール152は、異なる運転シナリオや状況に対応するシステム遅延を決定する分析を実行する。分析モジュール152は、異なる運転シナリオに対応するシステム遅延を記憶するシナリオ/遅延マッピングテーブル150を生成する。一実施形態では、シナリオ/遅延マッピングテーブル150は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。システム遅延は、ステアリング制御遅延、速度制御遅延、演算遅延又は通信遅延など、様々な種類の遅延に基づいて計算されることができる。代案としては、それぞれのマッピングエントリは、特定の運転シナリオを個別のステアリング制御遅延、速度制御遅延、演算遅延と通信遅延のセットにマッピングする。
そして、シナリオ/遅延マッピングテーブル150は、自律走行車にアップロードされ、ここで、シナリオ/遅延マッピングテーブル150は、自律走行車を制御して走行させるための制御コマンドを発行するタイミングを決定することによるシステム遅延を補償するように適用されてもよい。代案として、ステアリング制御遅延、速度制御遅延、演算遅延や通信遅延などのシステム遅延は、自律走行車を走行させる間に、リアルタイムで測定されたり推定されたりすることができる。これらのシステム遅延は、当該時点での具体的な運転シナリオの影響を受けずに制御コマンドを発行する処理を補償するために適用されてもよい。シナリオ/遅延マッピングテーブル150は、データベース又は他のルックアップテーブルのような、様々なデータ構造で実現されてもよい。
図3は、本発明の一実施形態に係る自律走行車とともに使用されるデータ処理システムの一例を示すブロック図である。システム300は、図1のシステム101の一部として実現されてもよい。図3を参照すると、データ処理システム110は、計画モジュール301、制御モジュール302、マップ及びルートモジュール303及びシステム遅延決定モジュール(又はシステム遅延決定計算機)304を含むが、これらに限定されない。モジュール301〜304は、ソフトウェア、ハードウェア、又はこれらの組み合わせで実現されてもよい。例えば、任意のモジュール301〜304は、永続記憶装置312(例えば、ハードディスク)に設置され、メモリ311にロードされ、1つ以上のプロセッサ(図示せず)によって実行されることができる。
計画モジュール301は、センサシステム115から受信されたセンサデータ及び/又は様々なソース(例えば、位置、地図、地図と興味点の一部としてのPOI、又はマップとルートモジュール303によって提供されるMPOIデータベース)から受信されたリアルタイム情報のような様々な情報に基づいて、自律走行車のための経路又はルートを計画するものである。計画及び制御データは、計画モジュール301によって生成される。計画及び制御データに基づいて、制御モジュール302は、計画及び制御データによって定義されたルート又は経路に沿って、車両制御システム111に適切なコマンド又は信号を送信することにより、自律走行車を制御するものである。計画及び制御データには、経路、又はルートに沿って異なる時点において、適切な車両設定又は運転パラメータ(例えば、スロットル、ブレーキ、及び回転コマンド)を使用して、ルート又は経路の第1点から第2点まで車両を走行させることができる十分な情報が含まれている。計画モジュール301と制御モジュール302は、図2の車両制御システム111のナビゲーションユニット205に通信可能に接続されたり、ナビゲーションユニット205と一体化されたりしてもよい。
一実施形態によると、システム遅延決定モジュール304(単に遅延計算機とも称する)は、自律走行車300のシステム全体の遅延を決定する。一実施形態では、これらのシステム遅延は、特定の状況におけるステアリング制御遅延321、速度制御遅延322、演算遅延323、通信遅延324又は他の遅延に(個別の遅延とも呼ばれる)のうちの少なくとも一つに基づいて算出されたり決定されたりすることができる。これらの遅延321〜324は、大量の異なる運転シナリオ又は運転条件で大量の車両による大量の走行記録に基づいて測定されたり推定されたりすることができる。これらの遅延321〜324は、大量の走行統計を収集し、分析することで、データ分析システム103のようなデータ分析システムによってオフラインで決定されてもよい。例えば、特定のタイプの遅延は、同一又は類似のタイプの大量の車両から発生する同じタイプの平均遅延に基づいて決定されることができる。
代案として、遅延321〜324は、遅延決定モジュール304によってリアルタイムで決定されたり測定されたりすることができる。しかし、このような方法は、オンライン走行の間に性能が低下したり、計算する時間が長くかかる可能性がある。これとは反対に、専用のデータ分析システムによってオフラインで遅延321〜324を算出することにより、オンラインで遅延321〜324を使用することができ、遅延321〜324を決定する時間を短縮することができる。一実施形態では、遅延321〜324は、自律走行車300内のオンライン測定及び/又はデータ分析システムによって様々な車両のオフライン遅延計算に基づいて定期的に更新されてもよい。
一実施形態では、システム遅延決定モジュール304は、ステアリング制御遅延321を決定するためのステアリング制御遅延決定モジュール(図示せず)を含む。ステアリング制御遅延321は、ステアリング制御コマンドが発行される時間と、車両300の1つ以上の車輪から応答が受信された時間との間で測定されることができる。ステアリング制御遅延321は、ステアリング制御コマンドが発行されることと、車両の車輪がステアリング制御コマンドによって指定される角度で位置決められることとの間の時間に基づいて測定されることができ、これは1つ以上のステアリングセンサによって感知されてもよい。
システム遅延決定モジュール304は、加速のとき、減速のとき又は同じ速度を維持するときの遅延を含む速度制御遅延322を決定するための速度制御遅延決定モジュール(図示せず)をさらに含むことができる。速度制御遅延322は、速度制御コマンド(例えば、加速、減速又は制動)を発行する時間と、車両が速度の変更を開始することを示す応答を車両の車輪から受信した時間との間で測定されてもよい。速度制御遅延322は、加速又はスロットルコマンドを発行する時間と、車両が加速を開始する時間との差を示す加速遅延を含む。速度制御遅延322は、減速又は制動コマンドを発行する時間と、車両が減速を開始する時間との差を示す減速遅延を含むことができる。
演算遅延323は、システム(例えば、計画モジュール301、制御モジュール302、車両制御システム111及びCANバスなどの通信バス)が制御コマンドを生成して発行するのにかかる演算時間を指す。演算遅延はスリープ時間をさらに含むことができる。例えば、演算が10ヘルツ(Hz)の周波数で実行される場合(例えば、運転パラメータを0.1秒ごとに演算する)、平均スリープ時間は50ミリ秒(ms)である。このスリープ時間は、演算遅延の一部としてみなされ、スリープ時間の間に、システムが如何なるコマンドや応答を処理する可能性が低いためである。通信遅延324は、制御システム、通信バスと車のにコマンドを発行する及び応答を受信する遅延又は通信コストを指す。演算遅延323及び通信遅延324は、同一又は類似のタイプの一つ以上の車両の前の動作に基づいて推定されることができる。
一実施形態では、システム遅延決定モジュール304は、予め決定された遅延アルゴリズムを使用して、ステアリング制御遅延321、速度制御遅延322、演算遅延323又は通信遅延324のうちの1つ以上の遅延に基づいて、全体又は最終システム遅延を算出する。一実施形態では、予め決定されたアルゴリズムは、加重アルゴリズムであり、計算においてかかるステアリング制御遅延321、速度制御遅延322、演算遅延323又は通信遅延324のそれぞれは、加重因子又は係数が割り当てられる。具体的な運転シナリオ又は環境によって、計算においてかかる個別の遅延のそれぞれの加重係数又は係数は異なってもよい。例えば、車両が曲がろうとすると、ステアリング制御遅延321に対応する加重係数をより高く調整することができる。車両が直進すると、速度制御遅延322に対応する加重係数を、特に、車両の現在速度と目標速度との差が比較的に大きいとき(例えば、予め決定されたしきい値よりも大きい場合)に、より高く調整ことができる。具体的な状況に応じて上記の調整をリアルタイムで適用することができる。算出されたシステム遅延は、制御コマンドを発行する時点と車両からの遅延応答の時点を補償するのに使用することができる。
例えば、ここで、図4を参照すると、車両が位置401にあると仮定する。システム遅延が考慮されると、制御コマンドが発行されるとき、車両は位置402で制御コマンドを受信し応答することができる。この遅延は、運転パラメータ(例えば、スロットル、ブレーキパラメータ)を決定するときに誤差を発生させる可能性があり、したがって、乗客に不快感を与える可能性がある。車両が制御コマンドを受信するとき、車両は、制御コマンドが決定された元の位置401に位置しない可能性がある。もっと正確に言えば、車両が位置402にある可能性がある。その結果、車両が受信された制御コマンドを実行するとき、たいへん遅くなる可能性があり、制御システムは、他のコマンドを発行することにより、このような状況を補正しなければならない。システム遅延を算出して了解することにより、システム遅延に基づいて制御コマンドに関連する時点及び運転パラメータを調整し計画して、システム遅延を補償することができる。たとえば、この例では、制御コマンドは、システム遅延を考慮してより早く発行されることができる。
図3を再び参照すると、一実施形態では、データ処理システム110は、図1のシステム103のようなデータ分析システムによってオフラインで生成されることができるシナリオ/遅延マッピングテーブル150をさらに維持(maintain)することができる。前述したように、異なる運転状況において、ステアリング、スロットルとブレーキの時間遅延は、大量の走行データに基づいて測定され、記録される。例えば、異なる運転状況は、100mにおいて時速5マイル(mph)で加速すること、速度を維持して100メートルを走行すること、100メートルにおいて10mphで減速すること、100mにおいて40mphで右車線に合流すること、アスファルト道路及びセメント道路で走行すること、30℃又は70℃温度下で動作すること、高性能のコンピュータ又は低性能のコンピュータで実行されるアルゴリズムを制御することなどを含むことができるが、これらに限定されない。スロットル圧力、ブレーキ圧力、ホイールの角度、ギアのような自律走行コマンドが記録されてもよい。現在速度、ホイールの角度などを含む状態が記録されてもよい。
シナリオ/遅延マッピングテーブル150は、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオをシステム遅延にマッピングする。一実施形態に係るシナリオ/遅延マッピングテーブルの例が図5に示されている。運転シナリオは、特定の速度で特定の距離を走行すること、特定の速度及び特定の回転角度で曲がることのような具体的な走行パターンを指す。ガスペダル及び/又はブレーキペダルに与えられる圧力が記録されてもよい。また、各運転シナリオにおいて各車両がかかる制御コマンドを発行することに関連するシステム遅延(ステアリング制御遅延、速度制御遅延、演算遅延及び/又は通信遅延を含む)が決定又は推定される。その後、類似する運転シナリオ又は環境で自律走行車を計画及び制御する際に、シナリオ/遅延マッピングテーブル150は、リアルタイムの走行期間に適用されてシステム遅延を補償する。
一実施形態では、次のルート又はルートセグメントを計画するとき、計画モジュール301は、自律走行車の次のルートセグメント又はルートに対応する運転シナリオを決定する。ルックアップ動作はシナリオ/遅延マッピングテーブルで実行され、決定された運転シナリオとマッチングするマッピングエントリを位置決めする。その後、計画モジュール301及び/又は制御モジュール302は、その時点での運転シナリオに対応するシステム遅延を考慮して自律走行車を制御し、ここで、当該状況におけるシステム遅延を補償するためのタイミングに応じて、制御コマンドを発行することを含む。
これにより、オンライン走行の期間に、システムは、まず状況や運転シナリオをチェックして、例えば、シナリオ/遅延マッピングテーブルに検索することにより、オフラインデータ及びリアルタイム記録に基づいて、システムの時間遅延を決定する。そして、システムは、リアルタイムではなく、当該時間遅延を使用して、将来のステアリング、スロットル及びブレーキを計算する。たとえば、図6A及び図6Bを参照すると、点線で示すように、現在の走行計画は30mにおいて車線を右車線に変更することを仮定する。遅延補償なしにステアリング角度コマンド(この例では、5度)が発行されると、車両は0.1秒の遅延で応答し、図6Aに示される実線の通り、実際のルートは、予想又は計画されるルートから外れる。上記した技術を使用して、決定されたシステム遅延を考慮することにより、実際の行動をとるための0.1秒の遅延があるため(例えば、シナリオ/遅延マッピングテーブルからのマッチング運転シナリオに基づいて)、コマンドは0.9秒(きちんと1秒でない)に送られるべきである。その結果、図6Bに示すように、車両は期待どおりに応答して、実際のルートと計画ルートがだいたいマッチングすることができる。
類似して、図7A及び図7Bを参照すると、車両が回転するとき、システム遅延は、図7Aに示す実線で示されたように、車両に遅延された方式で反応させる可能性がある。ある状況では、車両が計画されたルートに従わないことを検出するとき、実線で示されたような過剰反応を行う可能性があり、乗客に不快感を引き起こす可能性がある。ルートを計画する際に、システム遅延及び他の運転パラメータ(例えば、速度、回転角度)を考慮することで、コマンドは早く及び/又は異なる回転角度で発行されることができるので、車が図7Bで示されたような計画されたルートを厳密に従うことができる。
図8は、本発明の一実施形態に係る自律走行車のシステム遅延を推定する手順を示すフローチャートである。手順800は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順800は、図3のシステム遅延決定モジュール304によって実行されてもよい。代案として、手順800は、様々な車両から収集された走行統計に基づいて、データ分析システム103によって実行されてもよい。図8を参照すると、ブロック801において、処理ロジックは、車両のステアリング制御遅延を測定する。ステアリング制御遅延はステアリング制御コマンドを発行する時間と車両のステアリングセンサから応答を受信した時間との差を示す。ブロック802において、処理ロジックは、車両の速度制御遅延を測定する。速度制御遅延は速度制御コマンド(例えば、加速、減速/制動、一定の速度を維持すること)を発行する時間と車両からの応答時間(例えば、加速、減速を開始する時間)との差を示す。
ブロック803において、処理ロジックは、車両の演算遅延を推定する。演算遅延は、車両の制御システムが制御コマンドを生成し発行するのにかかる時間を指す。ブロック804において、処理ロジックは、車両の通信遅延を推定する。通信遅延は、制御システム、通信バス(例えばCANバス)と車両のにコマンドを発行する及び応答を受信する遅延を示す。そして、ブロック805において、ステアリング制御遅延、速度制御遅延、演算遅延及び/又は通信遅延は、データ構造に記憶され、当該データ構造は、後続の制御コマンドを調整して、それらのコマンドを発行する時点を補償するために使用されることができる。
図9は、本発明の他の実施形態に係る自律走行車のシステム遅延を決定する手順を示すフローチャートである。手順900は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順900は、図3のシステム遅延決定モジュール304によって実行されてもよい。代案として、手順900は、様々な車両から収集された走行統計に基づいて、データ分析システム103によって実行されてもよい。図9を参照すると、ブロック901において、処理ロジックは、特定のタイプの自律走行車について複数の運転シナリオを決定する。ブロック902において、それぞれの運転シナリオについて、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行中のテアリング制御遅延を測定し記録する。
ブロック903において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのスロットル制御遅延(例えば、加速遅延)を測定し記録する。ブロック904において、処理ロジックは、車両が同一又は類似する運転シナリオ又は運転条件において走行しているときのブレーキ制御遅延(例えば、減速遅延)を測定し記録する。ブロック905において、ステアリング制御遅延、スロットル制御遅延及びブレーキ制御遅延は、特定のタイプの自律走行車のシナリオ/遅延マッピングデータ構造に記憶される。前記動作は、同じタイプ又は類似するタイプの大量の車両に対して繰り返し実行されてもよい。そして、遅延は、様々な車両の平均遅延をもとに計算されることができる。
図10は、本発明の一実施形態に係る自律走行車を動作させる手順を示すフローチャートである。手順1000は、ソフトウェア、ハードウェア、又はこれらの組み合わせを含む処理ロジックによって実行されてもよい。例えば、手順1000は、図1のシステム110によって実行されてもよい。図10を参照すると、ブロック1001において、処理ロジックは、自律走行車に装着された様々なセンサのセンサデータに基づいて決定された、走行環境に対する感知に基づいて、運転シナリオを決定する。ブロック1002において、処理ロジックは、シナリオ/遅延マッピングテーブルにおいてルックアップ動作を実行して、運転シナリオに対応するマッピングエントリを位置決めする。シナリオ/遅延マッピングテーブルは、複数のマッピングエントリを含む。各マッピングエントリは、特定の運転シナリオを、同一又は類似する運転シナリオにおいて様々な車両によって測定された1つ以上の遅延セットにマッピングする。ブロック1003において、処理ロジックは、マッピングエントリからシステム遅延を検出して決定する。システム遅延は、前述したようなステアリング制御遅延、速度制御遅延、演算遅延及び通信遅延のうち少なくとも一つに基づいて決定されることができる。ブロック1004において、処理ロジックは、システム遅延を考慮してルート又はルートセグメントを計画し、計画及び制御データを生成する。ブロック1005において、処理ロジックは、計画及び制御データに基づいて、ルート又はルートセグメントに沿って自律走行車を走行させて制御する。
注意すべき点は、前記の示されたとともに記述された一部又は全部の構成要素は、ソフトウェア、ハードウェア又はその組み合わせで実現されることができる。例えば、このような構成要素は、永続記憶装置にインストールされるとともに記憶されたソフトウェアとして実現されてもよく、前記ソフトウェアは、本出願にわたって記載の手順又は動作を実施するように、プロセッサ(図示せず)でメモリにロードして実行されてもよい。あるいは、このような構成要素は、集積回路(例えば特定用途向けIC又はASIC)、デジタル信号プロセッサ(DSP)、又はフィールドプログラマブルゲートアレイ(FPGA、Field Programmable Gate Array)にプログラミングされ又は嵌め込みされた専用ハードウェアにおける実行可能なコードとして実現されてもよく、前記実行可能なコードは、対応するドライバープログラム及び/又はオペレーティングシステムによってアプリケーションからアクセスされてもよい。なお、このような構成要素は、プロセッサ又はプロセッサコアにおける特定のハードウェアロジックとして実現されてもよく、ソフトウェア構成要素が1つ以上の特定コマンドによってアクセス可能なコマンドセットの一部とする。
図11は、本発明の一つの実施形態と組み合わせて使用されるデータ処理システムを例示的に示すブロック図である。例えば、システム1500は、上記プロセス又は方法のいずれかを実行する上記任意のデータ処理システム(例えば、図1のデータ処理システム110、及びサーバ103〜104のいずれか)を示してもよい。システム1500は、多数の異なる構成要素を含んでもよい。これらの構成要素は、集積回路(IC)、集積回路の一部、分散型電子装置又は回路基板に適用された他のモジュール(例えばコンピュータシステムのマザーボード又はアドインカード)、又は他の方式でコンピュータシステムのシャシーに組み込まれた構成要素として実現されることできる。
さらに、システム1500は、コンピュータシステムの多数の構成要素の高レベルビューを示すことを目的とする。しかしながら、いくつかの実現形態では、付加的構成要素が存在する場合もあることを理解すべきである。また、他の実現形態において示される構成要素が異なる配置を有してもよい。システム1500は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルディジタルアシスタント(PDA)、スマート腕時計、パーソナルコミュニケーター、ゲーム装置、ネットワークルータ又はハブ、無線アクセスポイント(AP)又はリピーター、セットトップボックス、又はそれらの組合せを示してもよい。また、単一の機器又はシステムのみを示したが、用語「機器」又は「システム」は、さらに、独立又は共同で一つ(又は複数)のコマンドセットを実行することにより本明細書に説明される任意の1種又は複数種の方法を実行する機器又はシステムの任意のセットを含むことを理解すべきである。
一つの実施形態において、システム1500は、バス又は相互接続部材1510によって接続されたプロセッサ1501、メモリ1503及び装置1505〜1508を備える。プロセッサ1501は、単一のプロセッサコア又は複数のプロセッサコアを含む単一のプロセッサ又は複数のプロセッサを示してもよい。プロセッサ1501は、マイクロプロセッサ、中央処理装置(CPU)等のような一つ又は複数の汎用プロセッサであってもよい。より具体的には、プロセッサ1501は、複雑コマンドセット計算(CISC)マイクロプロセッサ、縮小コマンドセットコンピュータ(RISC)マイクロプロセッサ、超長コマンド語(VLIW)マイクロプロセッサ、又は他のコマンドセットを実現するプロセッサ、又はコマンドセットの組合せを実現するプロセッサであってもよい。プロセッサ1501は、さらに、専用集積回路(ASIC)、セルラ又はベースバンドプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、グラフィックプロセッサ、ネットワークプロセッサ、通信プロセッサ、暗号プロセッサ、コプロセッサ、組み込みプロセッサのような一つ又は複数の専用プロセッサ、あるいはコマンド処理可能な任意の他のタイプのロジックであってもよい。
プロセッサ1501(超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよい)は、前記システムの各種構成要素と通信するための主処理ユニット及び中央ハブとして用いられてもよい。このようなプロセッサは、システムオンチップ(SoC)として実現されることができる。プロセッサ1501は、コマンドを実行することにより本明細書に説明される動作及びステップを実行するためのコマンドを実行するように構成される。また、システム1500は、選択可能なグラフィックサブシステム1504と通信するグラフィックインターフェースをさらに含んでもよく、グラフィックサブシステム1504は、表示コントローラ、グラフィックプロセッサ及び/又は表示装置をさらに備えてもよい。
プロセッサ1501は、メモリ1503と通信してもよく、メモリ1503は、一つの実施形態において複数のメモリによって所定量のシステムメモリを提供する。メモリ1503は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)又は他のタイプの記憶装置のような一つ又は複数の揮発性記憶(又はメモリ)装置を備えてもよい。メモリ1503は、プロセッサ1501又は任意の他の装置により実行されるコマンド列を含む情報を記憶することができる。例えば、複数種のオペレーティングシステム、装置ドライバー、ファームウェア(例えば、基本入出力システム又はBIOS)及び/又はアプリケーションの実行可能なコード及び/又はデータはメモリ1503にロードされてもよく、プロセッサ1501により実行されてもよい。オペレーティングシステムは、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)会社からのWindows(登録商標)オペレーティングシステム、アップル会社からのMac OS(登録商標)/iOS(登録商標)、Google(登録商標)会社からのAndroid(登録商標)、Linux(登録商標)、Unix(登録商標)又は他のリアルタイム又は組み込みオペレーティングシステム(のような任意のタイプのオペレーティングシステムであってもよい。
システム1500は、I/O装置、例えば装置1505〜1508をさらに備えてもよく、ネットワークインターフェース装置1505、選択可能な入力装置1506及び他の選択可能なI/O装置1507を備える。ネットワークインターフェース装置1505は、無線送受信機及び/又はネットワークインターフェースカード(NIC)を備えてもよい。前記無線送受信機は、WiFi送受信機、赤外送受信機、ブルートゥース送受信機、WiMax送受信機、無線セルラーホン送受信機、衛星送受信機(例えば、全地球測位システム(GPS)送受信機)又は他の無線周波数(RF)送受信機又はそれらの組合せであってもよい。NICはイーサネットカードであってもよい。
入力装置1506は、マウス、タッチパッド、タッチスクリーン(それは表示装置1504と集積されてもよい)、ポインタデバイス(例えばスタイラス)及び/又はキーボード(例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード)を備えてもよい。例えば、入力装置1506は、タッチスクリーンに接続されるタッチスクリーンコントローラを含んでもよい。タッチスクリーン及びタッチスクリーンコントローラは、例えば複数種のタッチ感度技術(容量式、抵抗式、赤外式及び表面音波技術を含むが、それらに限定されない)のいずれか、及びタッチスクリーンの一つ又は複数の接触点を決定するための他の近接センサアレイ又は他の素子を用いてそのタッチ点及び移動又は断続を検出することができる。
I/O装置1507は音声装置を備えてもよい。音声装置は、スピーカ及び/又はマイクロフォンを含んでもよく、それにより音声認識、音声コピー、デジタル記録及び/又は電話機能のような音声サポートの機能を促進する。他のI/O装置1507は、汎用シリアルバス(USB)ポート、パラレルポート、シリアルポート、印刷機、ネットワークインターフェース、バスブリッジ(例えば、PCI−PCIブリッジ)、センサ(例えば、加速度計、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサ等のような動きセンサ)又はそれらの組合せをさらに備えてもよい。装置1507は、結像処理サブシステム(例えば、カメラ)をさらに備えてもよく、前記結像処理サブシステムは、カメラ機能(例えば、写真及びビデオ断片の記録)を促進するための電荷カップリング装置(CCD)又は相補型金属酸化物半導体(CMOS)光学センサのような光学センサを備えてもよい。あるセンサは、センサハブ(図示せず)によって相互接続部材1510に接続されてもよく、キーボード又は熱センサのような他の装置は、組み込みコントローラ(図示せず)により制御されてもよく、これはシステム1500の特定配置又は設計により決められる。
データ、アプリケーション、一つ又は複数のオペレーティングシステム等のような情報の永久記憶を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続されてもよい。様々な実施形態において、薄型化と軽量化のシステム設計を実現し且つシステムの応答能力を向上させるために、このような大容量記憶装置は、ソリッドステート装置(SSD)によって実現されることができる。なお、他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)で実現されてもよく、容量が小さいSSD記憶装置は、SSDキャッシュとして停電イベント期間にコンテキスト状態及び他のこのような情報の永久記憶を実現し、それによりシステム動作が再開するときに通電を速く実現することができる。さらに、フラッシュデバイスは、例えばシリアルペリフェラルインターフェース(SPI)によってプロセッサ1501に接続されてもよい。このようなフラッシュデバイスは、システムソフトウェアの不揮発性記憶に用いられてもよく、前記システムソフトウェアは、前記システムのBIOS及び他のファームウェアを備える。
記憶装置1508は、任意の1種又は複数種の本明細書に記載の方法又は機能を体現する一つ又は複数のコマンドセット又はソフトウェア(例えば、モジュール、ユニット及び/又はロジック1528)が記憶されるコンピュータアクセス可能な記憶媒体1509(機械可読記憶媒体又はコンピュータ可読媒体とも呼ばれる)を備えてもよい。モジュール/ユニット/ロジック1528は、計画モジュール301、制御モジュール302、システム遅延決定モジュール304、データコレクタ151又は分析モジュール152のような上記構成要素のいずれかを示してもよい。モジュール/ユニット/ロジック1528は、さらにデータ処理システム1500により実行される期間にメモリ1503内及び/又はプロセッサ1501内に完全又は少なくとも部分的に存在してもよく、ここで、メモリ1503及びプロセッサ1501も、機器アクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、さらにネットワークによってネットワークインターフェース装置1505を経由して送受信されてもよい。
コンピュータ可読記憶媒体1509は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶してもよい。コンピュータ可読記憶媒体1509は、例示的な実施形態において単一の媒体として示されたが、用語「コンピュータ可読記憶媒体」は、前記一つ又は複数のコマンドセットが記憶される単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、及び/又は関連するキャッシュ及びサーバ)を備えることを理解すべきである。用語「コンピュータ可読記憶媒体」は、さらにコマンドセットを記憶又はコーディング可能な任意の媒体を備えることを理解すべきであり、前記コマンドセットは、機器により実行され且つ前記機器に本出願の任意の1種又は複数種の方法を実行させる。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ及び光学媒体と磁気媒体又は任意の他の非一時的機械可読媒体を備えるが、それらに限定されないことを理解すべきである。
本明細書に記載の処理モジュール/ユニット/ロジック1528、構成要素及び他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はハードウェア構成要素(例えばASIC、FPGA、DSP又は類似装置)の機能に統合されてもよい。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェア装置内のファームウェア又は機能回路として実現されてもよい。また、処理モジュール/ユニット/ロジック1528は、ハードウェア装置及びソフトウェアコンポーネントの任意の組合せで実現されてもよい。
なお、システム1500は、データ処理システムの各種の構成要素を有するように示されているが、構成要素の相互接続のいかなる特定のアーキテクチャー又は方式を示すものではないことに注意すべきであり、それは、このような詳細が本出願の実施形態に密接な関係がないためである。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ及び/又は他のデータ処理システムは、本出願の実施形態と共に使用されてもよい。
上記詳細な説明の一部は、コンピュータメモリにおけるデータビットに対する演算のアルゴリズム及び記号表現で示される。これらのアルゴリズムの説明及び表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。ここで、アルゴリズムは、通常、所望の結果につながる首尾一貫した動作列(sequence of operations)と考えられる。これらの動作とは、物理量に対して物理的動作を行う必要となるステップを指す。
ただし、これらの全て及び類似の用語は、いずれも適切な物理量に関連付けられ、且つただこれらの量に適用される適切なラベルであることに注意すべきである。特に断らない限り、本出願の全体にわたって用語(例えば、添付している特許請求の範囲に説明された用語)による説明とは、コンピュータシステム又は類似の電子計算装置の動作及び処理であり、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリに物理(例えば、電子)量としてデータを示し、且つ前記データをコンピュータシステムメモリ又はレジスタ又は他のこのような情報記憶装置、伝送又は表示装置内において類似に物理量として示される他のデータに変換する。
本出願の実施形態は、さらに本明細書における動作を実行するための装置に関する。このようなコンピュータプログラムは、不揮発性のコンピュータ可読媒体に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形態で情報を記憶する任意の機構を備える。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読記憶媒体(例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリメモリ)を備える。
上記図面に示される手順又は方法は、ハードウェア(例えば、回路、専用ロジック等)、ソフトウェア(例えば、不揮発性のコンピュータ可読媒体に具現化される)、又は両方の組合せを含む処理ロジックにより実行されてもよい。前記手順又は方法は、本明細書において特定の順序に応じて説明されるが、説明された動作の一部は、異なる順序に応じて実行されてもよい。また、いくつかの動作は、順番ではなく並行に実行されてもよい。
本出願の実施形態は、いずれかの特定のプログラミング言語を参照して説明されていないが、複数種のプログラミング言語で本明細書に記載の本出願の実施形態の教示を実現できることを理解すべきである。
以上の明細書では、本出願の具体的な例示的な実施形態を参照してその実施形態を説明した。明らかなように、添付している特許請求の範囲に記載の本出願のより広い趣旨及び範囲を逸脱しない限り、様々な変形が可能である。従って、限定的なものではなく例示的なものとして本明細書及び図面を理解すべきである。

Claims (24)

  1. 自律走行車を走行させるためのコンピュータ実施方法であって、
    ステアリング制御コマンドを発行する時間と、自律走行車の1つ以上の車輪からの第1の応答時間との間のステアリング制御遅延を測定するステップと、
    速度制御コマンドを発行する時間と、前記自律走行車の1つ以上の車輪からの第2の応答時間との間の速度制御遅延を測定するステップと、
    定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定するステップと、
    前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成するステップと、を含む、ことを特徴とする方法。
  2. 前記ステアリング制御遅延は、ステアリング制御コマンドを発行することと、前記ステアリング制御コマンドによって指定された角度で前記1つ以上の車輪の位置を決めることとの間の時間に基づいて測定される、ことを特徴とする請求項1に記載の方法。
  3. 前記速度制御遅延は、加速コマンドを発行する時間と、前記自律走行車が加速を開始する時間との差を示す加速遅延を含む、ことを特徴とする請求項1に記載の方法。
  4. 前記速度制御遅延は、ブレーキコマンドを発行する時間と、前記自律走行車が減速を開始する時間との差を示す減速遅延を含む、ことを特徴とする請求項1に記載の方法。
  5. 前記予め決定されたアルゴリズムは、加重アルゴリズムであり、且つ、前記ステアリング制御遅延及び前記速度制御遅延のそれぞれに、特定の運転シナリオに用いられる特定の加重係数が割り当てられる、ことを特徴とする請求項1に記載の方法。
  6. 前記自律走行車が回転する直前に、前記ステアリング制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項5に記載の方法。
  7. 前記自律走行車の現在速度と目標速度との差が大きくなると、前記速度制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項5に記載の方法。
  8. 前記自律走行車の制御システムが制御コマンドを生成して発行するのにかかる時間を示す演算遅延を決定するステップと、
    前記自律走行車の通信バスを介して制御コマンドを送信する時間遅延を示す通信遅延を決定するステップであって、前記システム遅延は、さらに、前記演算遅延及び前記通信遅延に基づいて推定されるステップと、をさらに含む、ことを特徴とする請求項1に記載の方法。
  9. コマンドが記憶されており、前記コマンドがプロセッサにより実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、不発揮性の機械可読媒体であって、
    前記処理は、
    ステアリング制御コマンドを発行する時間と、自律走行車の1つ以上の車輪からの第1の応答時間との間のステアリング制御遅延を測定することと、
    速度制御コマンドを発行する時間と、前記自律走行車の1つ以上の車輪からの第2の応答時間との間の速度制御遅延を測定することと、
    定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、
    前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することと、を含む、ことを特徴とする不発揮性の機械可読媒体。
  10. 前記ステアリング制御遅延は、ステアリング制御コマンドを発行することと、前記ステアリング制御コマンドによって指定された角度で前記1つ以上の車輪の位置を決めることとの間の時間に基づいて測定される、ことを特徴とする請求項9に記載の機械可読媒体。
  11. 前記速度制御遅延は、加速コマンドを発行する時間と、前記自律走行車が加速を開始する時間との差を示す加速遅延を含む、ことを特徴とする請求項9に記載の機械可読媒体。
  12. 前記速度制御遅延は、ブレーキコマンドを発行する時間と、前記自律走行車が減速を開始する時間との差を示す減速遅延を含む、ことを特徴とする請求項9に記載の機械可読媒体。
  13. 前記予め決定されたアルゴリズムは、加重アルゴリズムであり、且つ、前記ステアリング制御遅延及び前記速度制御遅延のそれぞれに、特定の運転シナリオに用いられる特定の加重係数が割り当てられる、ことを特徴とする請求項9に記載の機械可読媒体。
  14. 前記自律走行車が回転する直前に、前記ステアリング制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項13に記載の機械可読媒体。
  15. 前記自律走行車の現在速度と目標速度の差が大きくなると、前記速度制御遅延のための加重係数をより高く調整する、ことを特徴とする請求項13に記載の機械可読媒体。
  16. 前記処理は、
    前記自律走行車の制御システムが制御コマンドを生成して発行するのにかかる時間を示す演算遅延を決定することと、
    前記自律走行車の通信バスを介して制御コマンドを送信する時間遅延を示す通信遅延を決定することであって、前記システム遅延は、さらに、前記演算遅延及び前記通信遅延に基づいて推定されることと、をさらに含む、ことを特徴とする請求項9に記載の機械可読可能媒体。
  17. プロセッサと、
    前記プロセッサに連結されてコマンドを記憶するメモリと、を含み、
    前記コマンドが前記プロセッサによって実行されるとき、前記プロセッサに自律走行車のシステム遅延を決定する処理を実行させる、データ処理システムであって、
    前記処理は、
    ステアリング制御コマンドを発行する時間と、自律走行車の1つ以上の車輪からの第1の応答時間との間のステアリング制御遅延を測定することと、
    速度制御コマンドを発行する時間と、前記自律走行車の1つ以上の車輪からの第2の応答時間との間の速度制御遅延を測定することと、
    定められたルートに応答して、予め決定されたアルゴリズムを用いて前記ステアリング制御遅延と前記速度制御遅延とに基づいて、全体のシステム遅延を推定することと、
    前記定められたルートに従って前記自律走行車を走行させるように、前記システム遅延に基づいて計画及び制御データを生成することと、を含む、ことを特徴とするデータ処理システム。
  18. 前記ステアリング制御遅延は、ステアリング制御コマンドを発行することと、前記ステアリング制御コマンドによって指定された角度で前記1つ以上の車輪の位置を決めることとの間の時間に基づいて測定される、ことを特徴とする請求項17に記載のデータ処理システム。
  19. 前記速度制御遅延は加速コマンドを発行する時間と、前記自律走行車が加速を開始する時間との差を示す加速遅延を含む、ことを特徴とする請求項17に記載のデータ処理システム。
  20. 前記速度制御遅延は、ブレーキコマンドを発行する時間と、前記自律走行車が減速を開始する時間との差を示す減速遅延を含む、ことを特徴とする請求項17に記載のデータ処理システム。
  21. 前記予め決定されたアルゴリズムは、加重アルゴリズムであり、且つ、前記ステアリング制御遅延及び前記速度制御遅延のそれぞれに、特定の運転シナリオに用いられる特定の加重係数が割り当てられる、ことを特徴とする請求項17に記載のデータ処理システム。
  22. 前記自律走行車が回転する直前に、前記ステアリング制御遅延に用いられる加重係数をより高く調整する、ことを特徴とする請求項21に記載のデータ処理システム。
  23. 前記自律走行車の現在速度と目標速度の差が大きくなると、前記速度制御遅延のための加重係数をより高く調整する、ことを特徴とする請求項21に記載のデータ処理システム。
  24. 前記処理は、
    前記自律走行車の制御システムが制御コマンドを生成して発行するのにかかる時間を示す演算遅延を決定することと、
    前記自律走行車の通信バスを介して制御コマンドを送信する時間遅延を示す通信遅延を決定することであって、前記システム遅延は、さらに、前記演算遅延及び前記通信遅延に基づいて推定されることと、をさらに含む、ことを特徴とする請求項17に記載のデータ処理システム。
JP2018517309A 2016-09-28 2017-01-18 自律走行車を制御するためのシステム遅延推定方法 Active JP6630822B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/278,439 2016-09-28
US15/278,439 US10227075B2 (en) 2016-09-28 2016-09-28 System delay estimation method for autonomous vehicle control
PCT/US2017/013959 WO2018063430A1 (en) 2016-09-28 2017-01-18 A system delay estimation method for autonomous vehicle control

Publications (2)

Publication Number Publication Date
JP2019503294A true JP2019503294A (ja) 2019-02-07
JP6630822B2 JP6630822B2 (ja) 2020-01-15

Family

ID=61688248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018517309A Active JP6630822B2 (ja) 2016-09-28 2017-01-18 自律走行車を制御するためのシステム遅延推定方法

Country Status (6)

Country Link
US (2) US10227075B2 (ja)
EP (1) EP3341265B1 (ja)
JP (1) JP6630822B2 (ja)
KR (1) KR102033265B1 (ja)
CN (1) CN108137083B (ja)
WO (1) WO2018063430A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11702068B2 (en) 2020-03-26 2023-07-18 Hyundai Mobis Co., Ltd. Collision distance estimation device and advanced driver assistance system using the same

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10227075B2 (en) * 2016-09-28 2019-03-12 Baidu Usa Llc System delay estimation method for autonomous vehicle control
US11124202B1 (en) * 2017-09-27 2021-09-21 Waymo Llc Adjusting timing of actuation commands to account for fixed and variable delays in autonomous driving control of vehicles
IL259292B2 (en) * 2018-05-10 2023-05-01 Israel Aerospace Ind Ltd A method for controlling an autonomous vehicle with internal delays
JP7194755B2 (ja) 2018-05-31 2022-12-22 ニッサン ノース アメリカ,インク 軌道計画
RU2756872C1 (ru) * 2018-05-31 2021-10-06 Ниссан Норт Америка, Инк. Структура вероятностного отслеживания объектов и прогнозирования
CN111033418B (zh) * 2018-07-09 2023-08-08 百度时代网络技术(北京)有限公司 用于自动驾驶车辆的速度控制命令自动校准系统
US10875540B2 (en) * 2018-07-19 2020-12-29 Beijing Voyager Technology Co., Ltd. Ballistic estimation of vehicle data
CN109167703B (zh) * 2018-08-29 2021-06-01 百度在线网络技术(北京)有限公司 无人车数据监控方法、装置、设备及存储介质
CN109189567B (zh) * 2018-08-30 2021-10-08 百度在线网络技术(北京)有限公司 时延计算方法、装置、设备及计算机可读存储介质
US10800412B2 (en) * 2018-10-12 2020-10-13 GM Global Technology Operations LLC System and method for autonomous control of a path of a vehicle
US11587366B1 (en) 2018-11-20 2023-02-21 State Farm Mutual Automobile Insurance Company Systems and methods for selecting locations to validate automated vehicle data transmission
CN111413958B (zh) * 2018-12-18 2021-09-24 北京航迹科技有限公司 用于确定自动驾驶中的驾驶路径的系统和方法
CN109634120B (zh) * 2018-12-26 2022-06-03 东软集团(北京)有限公司 一种车辆控制方法及装置
CN109815555B (zh) * 2018-12-29 2023-04-18 百度在线网络技术(北京)有限公司 自动驾驶车辆的环境建模能力评估方法及系统
US20200225363A1 (en) * 2019-01-16 2020-07-16 GM Global Technology Operations LLC Maintaining vehicle position accuracy
JP7212702B2 (ja) * 2019-01-21 2023-01-25 日立Astemo株式会社 車両制御装置、車両制御方法、及び車両制御システム
EP3772226B1 (en) * 2019-07-30 2023-01-25 Volkswagen AG Methods, computer programs, and apparatuses for a command center and a vehicle
US11383705B2 (en) * 2019-08-29 2022-07-12 Ford Global Technologies, Llc Enhanced collision avoidance
EP3861439A4 (en) * 2019-12-20 2021-12-15 Baidu.com Times Technology (Beijing) Co., Ltd. DYNAMIC MODEL WITH ACTUATION LATENCY
US11167770B2 (en) * 2020-02-13 2021-11-09 Baidu Usa Llc Autonomous vehicle actuation dynamics and latency identification
US11440567B2 (en) * 2020-03-06 2022-09-13 Baidu Usa Llc System to handle communication delays between an autonomous driving system and vehicle
JP7355696B2 (ja) * 2020-04-02 2023-10-03 トヨタ自動車株式会社 運行管理装置、運行管理方法、および、交通システム
US11453409B2 (en) * 2020-04-21 2022-09-27 Baidu Usa Llc Extended model reference adaptive control algorithm for the vehicle actuation time-latency
CN112319610B (zh) * 2020-10-14 2021-11-19 华南理工大学 一种智能汽车的人机共享转向控制方法
CN115348557A (zh) * 2021-05-14 2022-11-15 中国移动通信集团设计院有限公司 时延测试方法、时延发送方法、时延接收方法及相关装置
CN113591015B (zh) * 2021-07-30 2024-07-23 北京小狗吸尘器集团股份有限公司 时间延迟的计算方法、装置、存储介质及电子设备
US20230152796A1 (en) * 2021-11-15 2023-05-18 Motional Ad Llc Vehicle control time delay compensation
CN114684195A (zh) * 2022-03-24 2022-07-01 苏州轻棹科技有限公司 一种自动驾驶车辆线控执行系统延迟估计方法
US20230347894A1 (en) * 2022-04-28 2023-11-02 Toyota Research Institute, Inc. Systems and methods for determining vehicle control based on estimated realization delay
CN116660650A (zh) * 2023-05-17 2023-08-29 襄阳达安汽车检测中心有限公司 低速驾驶辅助系统检测延迟测试方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004304934A (ja) * 2003-03-31 2004-10-28 Mitsubishi Motors Corp ハイブリッド自動車の制御装置
JP2007314179A (ja) * 2007-08-09 2007-12-06 Toyota Motor Corp 走行制御装置
JP2010089698A (ja) * 2008-10-09 2010-04-22 Mitsubishi Heavy Ind Ltd 自動運転システム及び自動運転方法
JP2015114744A (ja) * 2013-12-10 2015-06-22 日産自動車株式会社 運転支援装置
WO2017222047A1 (ja) * 2016-06-23 2017-12-28 株式会社アドヴィックス 走行制御装置
JP2018024295A (ja) * 2016-08-09 2018-02-15 株式会社デンソー 運転支援システム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2819102C2 (de) * 1978-04-29 1987-05-07 Wabco Westinghouse Fahrzeugbremsen GmbH, 3000 Hannover Schaltungsanordnung zur Beeinflussung der Bremsdruckentlüftungs- und/oder Bremsdruckhaltephasen für blockiergeschützte Fahrzeugbremsanlagen
JP2834808B2 (ja) * 1989-12-08 1998-12-14 三菱電機株式会社 自動車用制御装置
US5640323A (en) * 1990-02-05 1997-06-17 Caterpillar Inc. System and method for operating an autonomous navigation system
US5414625A (en) * 1991-04-01 1995-05-09 Nissan Motor Co., Ltd. System and method for providing steering control for autonomous vehicle
JP3521249B2 (ja) * 1995-11-24 2004-04-19 光洋精工株式会社 自動車の舵取り装置
US20070138347A1 (en) * 2004-12-16 2007-06-21 Ehlers Gregory A System and method for providing information to an operator of a vehicle
US7174153B2 (en) * 2003-12-23 2007-02-06 Gregory A Ehlers System and method for providing information to an operator of an emergency response vehicle
US8352111B2 (en) * 2009-04-06 2013-01-08 GM Global Technology Operations LLC Platoon vehicle management
PT104868A (pt) * 2009-12-10 2011-06-14 Univ Aveiro Método e aparelho para captura determinística de um canal de comunicação partilhado entre tecnologias baseadas em contenção
CN102770891B (zh) * 2010-03-19 2015-06-24 三菱电机株式会社 信息提供装置
US8935071B2 (en) * 2011-05-05 2015-01-13 GM Global Technology Operations LLC Optimal fusion of electric park brake and hydraulic brake sub-system functions to control vehicle direction
US10737665B2 (en) * 2012-08-28 2020-08-11 Ford Global Technologies, Llc Vehicle braking based on external object communications
US9342074B2 (en) 2013-04-05 2016-05-17 Google Inc. Systems and methods for transitioning control of an autonomous vehicle to a driver
US20140309836A1 (en) * 2013-04-16 2014-10-16 Neya Systems, Llc Position Estimation and Vehicle Control in Autonomous Multi-Vehicle Convoys
US9150246B2 (en) * 2013-12-06 2015-10-06 GM Global Technology Operations LLC Algorithm for steering angle command to torque command conversion
US9233692B2 (en) * 2014-03-10 2016-01-12 GM Global Technology Operations LLC Method to control a vehicle path during autonomous braking
US9403413B2 (en) * 2014-05-07 2016-08-02 GM Global Technology Operations LLC Systems and methods to assist in coupling a vehicle to a trailer
JP6375754B2 (ja) * 2014-07-25 2018-08-22 アイシン・エィ・ダブリュ株式会社 自動運転支援システム、自動運転支援方法及びコンピュータプログラム
JP6397934B2 (ja) * 2014-12-19 2018-09-26 株式会社日立製作所 走行制御装置
US10227075B2 (en) * 2016-09-28 2019-03-12 Baidu Usa Llc System delay estimation method for autonomous vehicle control
US10435015B2 (en) * 2016-09-28 2019-10-08 Baidu Usa Llc System delay corrected control method for autonomous vehicles
KR101866068B1 (ko) * 2016-10-14 2018-07-04 현대자동차주식회사 자율주행차량의 주행 제어 장치 및 방법
US10773721B2 (en) * 2016-10-21 2020-09-15 Ford Global Technologies, Llc Control method using trailer yaw rate measurements for trailer backup assist

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004304934A (ja) * 2003-03-31 2004-10-28 Mitsubishi Motors Corp ハイブリッド自動車の制御装置
JP2007314179A (ja) * 2007-08-09 2007-12-06 Toyota Motor Corp 走行制御装置
JP2010089698A (ja) * 2008-10-09 2010-04-22 Mitsubishi Heavy Ind Ltd 自動運転システム及び自動運転方法
JP2015114744A (ja) * 2013-12-10 2015-06-22 日産自動車株式会社 運転支援装置
WO2017222047A1 (ja) * 2016-06-23 2017-12-28 株式会社アドヴィックス 走行制御装置
JP2018024295A (ja) * 2016-08-09 2018-02-15 株式会社デンソー 運転支援システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11702068B2 (en) 2020-03-26 2023-07-18 Hyundai Mobis Co., Ltd. Collision distance estimation device and advanced driver assistance system using the same

Also Published As

Publication number Publication date
KR102033265B1 (ko) 2019-10-16
EP3341265B1 (en) 2020-03-11
EP3341265A1 (en) 2018-07-04
CN108137083A (zh) 2018-06-08
JP6630822B2 (ja) 2020-01-15
EP3341265A4 (en) 2018-10-03
WO2018063430A1 (en) 2018-04-05
KR20180052673A (ko) 2018-05-18
US10227075B2 (en) 2019-03-12
US20190168769A1 (en) 2019-06-06
US10683012B2 (en) 2020-06-16
US20180086351A1 (en) 2018-03-29
CN108137083B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
JP6630822B2 (ja) 自律走行車を制御するためのシステム遅延推定方法
JP6637596B2 (ja) 自律走行車に用いられるシステム遅延補正の制御方法
KR101975728B1 (ko) 자율 주행 차량을 위한 사이드슬립 보상 제어 방법
JP6578439B2 (ja) 自律走行車の移動をシミュレートするための物理モデル及び機械学習結合方法
KR102062608B1 (ko) 자율 주행 차량의 제어 피드백에 기초한 맵 업데이트 방법 및 시스템
KR102020163B1 (ko) 자율 주행 차량의 조향률의 동적 조정
JP6494715B2 (ja) 自律走行車の速度制御率の動的調整方法
KR101975725B1 (ko) 학습 기반 모델 예측 제어를 이용한 자율 주행 차량의 노면 마찰 결정 방법 및 시스템
JP6543373B2 (ja) 自動運転車両に用いられる制御型の計画と制御システム
JP2018063703A (ja) 自律走行車用のグループ運転スタイル学習フレーム
JP2019500661A (ja) 自律走行車を完全に停止させるための速度制御
JP2019501809A (ja) 自律走行車の速度を追従する方法及びシステム
KR20180051571A (ko) 자율 주행 차량을 위한 차량 위치점 전달 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191209

R150 Certificate of patent or registration of utility model

Ref document number: 6630822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250