(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-31
(45)【発行日】2022-02-08
(54)【発明の名称】自動運転車のトルクフィードバックに基づく車両縦方向自動キャリブレーションシステム
(51)【国際特許分類】
B60W 50/00 20060101AFI20220201BHJP
B60W 60/00 20200101ALI20220201BHJP
【FI】
B60W50/00
B60W60/00
(21)【出願番号】P 2019555232
(86)(22)【出願日】2018-12-26
(86)【国際出願番号】 CN2018123962
(87)【国際公開番号】W WO2020132956
(87)【国際公開日】2020-07-02
【審査請求日】2020-02-20
(73)【特許権者】
【識別番号】517323290
【氏名又は名称】バイドゥドットコム タイムズ テクノロジー (ベイジン) カンパニー リミテッド
【氏名又は名称原語表記】Baidu.com Times Technology (Beijing) Co., Ltd.
【住所又は居所原語表記】2/F A2 Zhongguancun Software Park 17th building, No.8, Dongbeiwang West Road, Haidian District, Beijing 100080, China
(73)【特許権者】
【識別番号】516267603
【氏名又は名称】バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニー
【氏名又は名称原語表記】Baidu USA LLC
(74)【代理人】
【識別番号】100099623
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100107319
【氏名又は名称】松島 鉄男
(74)【代理人】
【識別番号】100125380
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【氏名又は名称】田中 祐
(74)【代理人】
【識別番号】100170379
【氏名又は名称】徳本 浩一
(74)【代理人】
【識別番号】100180231
【氏名又は名称】水島 亜希子
(74)【代理人】
【識別番号】100096769
【氏名又は名称】有原 幸一
(72)【発明者】
【氏名】マー,リン
(72)【発明者】
【氏名】ヂュ,ファン
(72)【発明者】
【氏名】シュ,シン
【審査官】吉村 俊厚
(56)【参考文献】
【文献】特開2004-232733(JP,A)
【文献】特開2017-052465(JP,A)
【文献】特表2010-528242(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 50/00
B60W 60/00
(57)【特許請求の範囲】
【請求項1】
自動運転車ADVを操作するための
、コンピュータ
により実行される方法であって、
前記ADVを制御するための制御コマンドを発行することであって、前記制御コマンドは、前記ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得され
、前記キャリブレーションテーブルは、多くのエントリを含み、前記エントリの各々は、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドを含む、ことと、
前記ADVへの前記制御コマンドの発行に応答して、第1のトルク値を測定することと、
トルク誤差値を、前記第1のトルク値と、前記制御コマンドを発行する前に
決定した第2のトルク値との差として決定することと、
前記トルク誤差値に少なくとも部分的に基づいて前記キャリブレーションテーブルの関連エントリ
における加速度を更新することであって、更新されたキャリブレーションテーブルは前記ADVを制御するための後続制御コマンドを決定するために用いられるものである、
ことと
を含む、コンピュータ実装の方法。
【請求項2】
更新前の前記関連エントリの中の加速度、前記トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する、請求項
1に記載の方法。
【請求項3】
前記関連エントリの制御コマンドと実行された制御コマンドとの間の第1の差異、および前記関連エントリの速度と前記ADVの現在の速度との間の第2の差異に基づいて、前記コスト値を決定する、請求項
2に記載の方法。
【請求項4】
前記ADVの有効質量、前記ADVの加速度、前記ADVの質量、前記ADVのピッチ角、転がり抵抗、空気抵抗係数、前記ADVの速度、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する、請求項1に記載の方法。
【請求項5】
前記ADVの質量、前記ADVの慣性モーメント、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、前記ADVの有効質量を決定する、請求項
4に記載の方法。
【請求項6】
命令を記憶している非一時性機器可読媒体であって、
前記命令は、プロセッサによって実行されるときに、前記プロセッサを、自動運転車ADVを操作するための操作を実行するようにさせ、前記操作は、
前記ADVを制御するための制御コマンドを発行することであって、前記制御コマンドは、前記ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得され
、前記キャリブレーションテーブルは、多くのエントリを含み、前記エントリの各々は、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドを含む、ことと、
前記ADVへの前記制御コマンドの発行に応答して、第1のトルク値を測定することと、
トルク誤差値を、前記第1のトルク値と、前記制御コマンドを発行する前に
決定した第2のトルク値との差として決定することと、
前記トルク誤差値に少なくとも部分的に基づいて前記キャリブレーションテーブルの関連エントリ
における加速度を更新することであって、更新されたキャリブレーションテーブルは前記ADVを制御するための後続制御コマンドを決定するために用いられることと
を含む、非一時性機器可読媒体。
【請求項7】
更新前の前記関連エントリの中の加速度、前記トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する、請求項
6に記載の機器可読媒体。
【請求項8】
前記関連エントリの制御コマンドと実行された制御コマンドとの間の第1の差異、および前記関連エントリの速度と前記ADVの現在の速度との間の第2の差異に基づいて、前記コスト値を決定する、請求項
7に記載の機器可読媒体。
【請求項9】
前記ADVの有効質量、前記ADVの加速度、前記ADVの質量、前記ADVのピッチ角、転がり抵抗、空気抵抗係数、前記ADVの速度、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する、請求項
6に記載の機器可読媒体。
【請求項10】
前記ADVの質量、前記ADVの慣性モーメント、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、前記ADVの有効質量を決定する、請求項
9に記載の機器可読媒体。
【請求項11】
プロセッサと、前記プロセッサに接続され、命令を記憶するメモリとを含むデータ処理システムであって、
前記命令は、プロセッサによって実行されるときに、
前記ADVを制御するための制御コマンドを発行
することであって、前記制御コマンドは、前記ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得され
、前記キャリブレーションテーブルは、多くのエントリを含み、前記エントリの各々は、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドを含む、ことと、
前記ADVへの前記制御コマンドの発行に応答して、第1のトルク値を測定することと、
トルク誤差値を、前記第1のトルク値と、前記制御コマンドを発行する前に
決定した第2のトルク値との差として決定することと、
前記トルク誤差値に少なくとも部分的に基づいて前記キャリブレーションテーブルの関連エントリ
における加速度を更新し、更新されたキャリブレーションテーブルは前記ADVを制御するための後続制御コマンドを決定するために用いられることと
を含む、自動運転車ADVを操作するための操作を前記プロセッサに実行させる、データ処理システム。
【請求項12】
更新前の前記関連エントリの中の加速度、前記トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する、請求項
11に記載のシステム。
【請求項13】
前記関連エントリの制御コマンドと実行された制御コマンドとの間の第1の差異、および前記関連エントリの速度と前記ADVの現在の速度との間の第2の差異に基づいて、前記コスト値を決定する、請求項
12に記載のシステム。
【請求項14】
前記ADVの有効質量、前記ADVの加速度、前記ADVの質量、前記ADVのピッチ角、転がり抵抗、空気抵抗係数、前記ADVの速度、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する、請求項
11に記載のシステム。
【請求項15】
前記ADVの質量、前記ADVの慣性モーメント、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、前記ADVの有効質量を決定する、請求項
14に記載のシステム。
【請求項16】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項1~
5のいずれか一項に記載の方法を実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願の実施形態は、総体的に自動運転車の操作に関し、具体的には、自動運転車の制御システムにおける自動キャリブレーションに関する。
【背景技術】
【0002】
自動運転モード(例えば、無人運転)で運行する車両は、乗員を、特に運転手を、幾つかの運転関連の責務から解放することができる。自動運転モードで運行する時、車両は、車載センサを使用して各位置にナビゲートされることができ、故に車両を最小のマン・マシン・インタラショションの状況で、または乗客がまったくいない状況で運行させることができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
車両キャリブレーション情報は、自動運転車の制御システムにおける縦方向の制御に不可欠である。既知の手動キャリブレーション方法は、大規模に使用できない。
【課題を解決するための手段】
【0004】
本願の1つの側面においては、本願は、自動運転車(ADV)を操作するためのコンピュータ実装の方法を提供する。当該方法は、ADVを制御するための制御コマンドを発行し、当該制御コマンドは、ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得されることと、ADVへの制御コマンドの発行に応答して、第1のトルク値を測定することと、トルク誤差値を、第1のトルク値と、制御コマンドを発行する前に測定した第2のトルク値との差として決定することと、トルク誤差値に少なくとも部分的に基づいてキャリブレーションテーブルの関連エントリを更新し、更新されたキャリブレーションテーブルはADVを制御するための後続制御コマンドを決定するために用いられることとを含む。
【0005】
本願のもう1つの側面においては、本願は、命令を記憶している非一時性機器可読媒体を提供する。前記命令は、プロセッサによって実行されるときに、ADVを制御するための制御コマンドを発行し、当該制御コマンドは、ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得されることと、ADVへの制御コマンドの発行に応答して、第1のトルク値を測定することと、トルク誤差値を、第1のトルク値と、制御コマンドを発行する前に測定した第2のトルク値との差として決定することと、トルク誤差値に少なくとも部分的に基づいてキャリブレーションテーブルの関連エントリを更新し、更新されたキャリブレーションテーブルはADVを制御するための後続制御コマンドを決定するために用いられることとを含む、自動運転車(ADV)を操作するための操作を前記プロセッサに実行させる。
【0006】
本願のもう1つの側面においては、本願は、データ処理システムを提供する。当該データ処理システムは、プロセッサと、前記プロセッサに接続され、命令を記憶するメモリとを含み、前記命令は、プロセッサによって実行されるときに、ADVを制御するための制御コマンドを発行し、当該制御コマンドは、ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得されることと、ADVへの制御コマンドの発行に応答して、第1のトルク値を測定することと、トルク誤差値を、第1のトルク値と、制御コマンドを発行する前に測定した第2のトルク値との差として決定することと、トルク誤差値に少なくとも部分的に基づいてキャリブレーションテーブルの関連エントリを更新し、更新されたキャリブレーションテーブルはADVを制御するための後続制御コマンドを決定するために用いられることとを含む、自動運転車(ADV)を操作するための操作を前記プロセッサに実行させる。
【図面の簡単な説明】
【0007】
本願の実施形態は、各図面の中で限定の方式ではなく、例をあげる方式で示されている。図面の中の同じ参照表記は、似ている部材を示す。
【
図1】一実施形態によるネットワーク化システムを示すブロック図である。
【
図2】一実施形態による自動運転車の例示を示すブロック図である。
【
図3A】一つの実施形態による、自動運転車で使用される感知・計画システムの例示を示すブロック図である。
【
図3B】一つの実施形態による、自動運転車で使用される感知・計画システムの例示を示すブロック図である。
【
図4】一実施形態による
キャリブレーションテーブルの例示を示すブロック図である。
【
図5】一実施形態による、
各種モジュールを示すブロック図である。
【
図6】一実施形態による、
自動運転車(ADV)の操作で利用可能なキャリブレーションテーブルを更新するために使用される例示的な方法のフローチャート図である。
【
図7】
本願の一実施形態とともに使用できるデータ処理システムの例示を示すブロック図である。
【発明を実施するための形態】
【0008】
以下、討論の細部を参照しながら、本願の各実施形態と各側面について説明し、図面は、各実施形態を示す。以下の説明と図面は、本願に対する解釈であり、本願に対する限定ではないことが理解される。本願の各実施形態に対する全面的な理解をさせるために、多数の特定な細部を説明するが、場合によっては、本願の実施形態に対する簡潔な討論を行わせるために、周知の細部または通常の細部については、説明を省く時もある。
【0009】
本明細書における「一つの実施形態」または「実施形態」の言及は、当該実施形態に関連して説明する特定の特徴、構造または特性が、本願の少なくとも一つの実施形態に含まれることを意味する。本明細書の各箇所に現れる短句「一つの実施形態において」は、必ずしも全部同一の実施形態を指すものではない。
【0010】
幾つかの実施形態により、自動運転車(ADV)の操作で利用可能なキャリブレーションテーブルを更新する。まず、制御コマンドを実行する前の第1の時間において、第1のトルク値を決定する。ADVの速度、所望の加速度、及びキャリブレーションテーブルの関連エントリに基づいて、制御コマンドを決定する。キャリブレーションテーブルは、ADVの速度を制御するために使用され、多くのエントリを含み、各エントリには、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドが含まれる。関連エントリは、速度がADVの現在の速度に対応し、加速度が所望の加速度に対応するエントリである。従って、キャリブレーションテーブルは、制御コマンドを生成し、当該制御コマンドは、ADVの現在の速度とADVの所望の加速度に基づくスロットルまたはブレーキの割合を含む。
【0011】
次に、制御コマンドを実行する。制御コマンドを実行した後の第2の時間において、第2のトルク値を決定する。トルク誤差値を、第1のトルク値と第2のトルク値との差として決定する。その後、トルク誤差値に少なくとも部分的に基づいてキャリブレーションテーブルの関連エントリを更新する。さらに、更新されたキャリブレーションテーブルに少なくとも部分的に基づいて、ADVの操作を制御するために駆動信号を生成する。
【0012】
一つの実施形態において、キャリブレーションテーブルの関連エントリを更新することは、関連エントリの中の加速度を更新することを含む。一つの実施形態において、更新前の関連エントリの中の加速度、トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する。一つの実施形態において、ADVの有効質量、ADVの加速度、ADVの質量、ADVのピッチ角、転がり抵抗(rolling resistance)、空気抵抗係数、ADVの速度、およびADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する。一つの実施形態において、ADVの質量、ADVの慣性モーメント、およびADVのタイヤ半径に少なくとも部分的に基づいて、ADVの有効質量を決定する。
【0013】
図1は、本願の一つの実施形態による自動運転車のネットワーク配置を示すブロック図である。
図1に示すように、ネットワーク配置100は、ネットワーク102を通じて一つまたは複数のサーバ103~104に通信可能に接続する自動運転車101を含む。一台の自動運転車しか示されていないが、複数台の自動運転車がネットワーク102を通じて互いに接続し、及び/またはサーバ103~104に接続しても良い。ネットワーク102は、任意のタイプのネットワークであっても良く、例えば、有線または無線のローカルエリアネットワーク(LAN)、インターネットのようなワイドエリアネットワーク(WAN)、移動体通信ネットワーク、衛星ネットワークまたはその組み合わせであっても良い。サーバ103~104は、任意のタイプのサーバまたはサーバクラスタであっても良く、例えば、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバまたはその組み合わせであっても良い。サーバ103~104は、データ分析サーバ、コンテンツサーバ、交通情報サーバ、地図と関心地点(MPOI)サーバまたは位置サーバ等であっても良い。
【0014】
自動運転車は、自動運転モードで配置できる車両を指し、前記自動運転モードにおいて、運転手からの入力が非常に少ない状況、または運転手からの入力がない状況において車両が環境を通過するようにナビゲートされる。このような自動運転車は、センサシステムを含むことができ、前記センサシステムは、車両の運行環境と関係のある情報を計測する一つまたは複数のセンサを有するように配置される。前記車両と関連するコントローラは、計測した情報を使用して車両が前記環境を通過するようにナビゲートを行う。自動運転車101は、手動モード、全自動運転モードまたは部分自動運転モードで走行することができる。
【0015】
一つの実施形態において、自動運転車101は、感知・計画システム110と、車両制御システム111と、無線通信システム112と、ユーザーインターフェースシステム113と、センサシステム115とを含むが、これらに限定されない。自動運転車101は、さらに普通の車両に含まれる通常の部材、例えば、エンジン、ホイール、ステアリングホイール、トランスミッション等を含むことができ、前記部材は、複数の種類の通信信号及び/または命令を使って車両制御システム111及び/または感知・計画システム110によってコントロールされることができる。当該複数の種類の通信信号及び/または命令は、例えば、加速信号または命令、減速信号または命令、方向転換信号または命令、ブレーキ信号または命令等である。
【0016】
部材110~115は、インターコネクト、バス、ネットワークまたはその組み合わせを通じて互いに通信可能に接続することができる。部材110~115は、コントローラエリアネットワーク(CAN)バスを通じて互いに通信可能に接続することができる。CANバスは、ホストコンピュータがない応用においてマイクロコントローラーと装置が互いに通信できるように設計された車両バス規格である。CANバスは、最初は自動車内部の多重化電気配線用に設計されたメッセージベースのプロトコルであるが、多数のその他の環境においても使用される。
【0017】
図2に示すように、一つの実施形態において、センサシステム115は、一つまたは複数のカメラ211と、グローバル・ポジショニング・システム(GPS)ユニット212と、慣性計測装置(IMU)213と、レーダユニット214と、光検出と測距(LIDAR)ユニット215とを含むが、これらに限定されない。GPSユニット212は、自動運転車の位置に関する情報を提供するように操作可能なトランシーバを含んでも良い。IMUユニット213は、慣性加速度に基づいて自動運転車の位置と向く方向の変化をセンシングすることができる。レーダユニット214は、無線信号を使って自動運転車のローカル環境内のオブジェクトをセンシングするシステムを表すことができる。幾つかの実施形態において、オブジェクトをセンシングする以外に、レーダユニット214は、さらにオブジェクトの速度及び/または進行方向をセンシングすることができる。LIDARユニット215は、レーザーを使って自動運転車を取り巻く環境の中のオブジェクトをセンシングすることができる。その他のシステム部材以外に、LIDARユニット215は、一つまたは複数のレーザー光源、レーザースキャンナー及び一つまたは複数の検出器を更に含むことができる。カメラ211は、自動運転車の周辺環境の画像を採集するために使う一つまたは複数の装置を含むことができる。カメラ211は、スチールカメラ及び/またはビデオカメラであっても良い。カメラは、機械的に移動できるものであっても良く、例えば、カメラを回転及び/または傾斜するプラットフォームに取り付けても良い。
【0018】
センサシステム115は、ソナーセンサ、赤外センサ、方向転換センサ、スロットルセンサ、ブレーキセンサ、及びオーディオセンサ(例えば、マイクロホン)のようなその他のセンサを更に含むことができる。オーディオセンサは、自動運転車の周辺環境から音声を採集するように配置されても良い。方向転換センサは、ステアリングホイール、車両のホイールまたはその組み合わせの方向転換角度をセンシングするように配置されても良い。スロットルセンサとブレーキセンサは、それぞれ車両のスロットル位置とブレーキ位置をセンシングする。幾つかの状況において、スロットルセンサとブレーキセンサは、集積式スロットル/ブレーキセンサとして集積されても良い。
【0019】
一つの実施形態において、車両制御システム111は、ステアリングユニット201と、スロットルユニット202(加速ユニットとも呼ばれる)と、ブレーキユニット203とを含むが、これらに限定されない。ステアリングユニット201は、車両の方向または進行方向を調整するために使用される。スロットルユニット202は、モーターまたはエンジンの速度をコントロールするために使用され、モーターまたはエンジンの速度は、車両の速度と加速度を更にコントロールする。ブレーキユニット203は、摩擦を提供することによって車両のホイールまたはタイヤを減速させ、ひいては車両を減速させる。
図2に示す部材は、ハードウェア、ソフトウェアまたはその組み合わせとして実装できることに注意すべきである。
【0020】
図1の参照に戻り、無線通信システム112は、自動運転車101が例えば装置、センサ、その他の車両等の外部システムとの間で通信できるように許可する。例えば、無線通信システム112は、一つまたは複数の装置と直接的に無線通信することができ、または通信ネットワークを通じて無線通信することができ、例えば、ネットワーク102を通じてサーバ103~104と通信することができる。無線通信システム112は、任意の移動体通信ネットワークまたは無線ローカルエリアネットワーク(WLAN)を使用することができ、例えば、WIFIを使って他の部材またはシステムと通信する。無線通信システム112は、例えば赤外線リンク、ブルートゥース等を使って装置(例えば、乗客のモバイル装置、ディスプレイ装置、車両101の内部のスピーカー)と直接通信することができる。ユーザーインターフェースシステム113は、車両101の内部で実装された周辺装置の部分であっても良く、例えば、キーボード、タッチパネルディスプレイ装置、マイクロホンとスピーカー等である。
【0021】
特に自動運転モードで操作するとき、自動運転車101の機能の幾つかまたは全部は、感知・計画システムによってコントロールまたは管理されることができる。感知・計画システム110は、センサシステム115、制御システム111、無線通信システム112及び/またはユーザーインターフェースシステム113から情報を受信し、受信した情報を処理し、起点から目的地点までのルートまたは経路を計画し、そして計画と制御情報に基づいて車両101を運転するように、必要なハードウェア(例えば、プロセッサ、メモリ、記憶装置)とソフトウェア(例えば、オペレーティングシステム、計画とルーティングプログラム)を含む。代替できるように、感知・計画システム110は、車両制御システム111と一体に集積されても良い。
【0022】
例えば、乗客としてのユーザーは、例えばユーザーインターフェースを通じて行程のスタート位置と目的地を指定することができる。感知・計画システム110は、行程に関するデータを獲得する。例えば、感知・計画システム110は、サーバ103~104の一部分であるMPOIサーバから位置とルートの情報を獲得することができる。位置サーバは、位置サービスを提供し、MPOIサーバは、地図サービスと幾つかの位置のPOIを提供する。代替できるように、この種類の位置とMPOI情報は、感知・計画システム110の永続的記憶装置にローカル的にキャッシュされても良い。
【0023】
自動運転車101がルートに沿って移動する時、感知・計画システム110は、交通情報システムまたはサーバ(TIS)からリアルタイムの交通情報を更に獲得することができる。サーバ103~104は、サードパーティーによって操作されることができることに注意すべきである。代替できるように、サーバ103~104の機能は、感知・計画システム110と一体に集積されても良い。安全でかつ効率よく指定の目的地に到達するように、リアルタイムの交通情報、MPOI情報、位置情報及びセンサシステム115によって計測またはセンシングされたリアルタイムのローカル環境データ(例えば、障害物、オブジェクト、付近車両)に基づいて、感知・計画システム110は、最適なルートを計画し、そして計画されたルートに基づき、例えば制御システム111を通じて車両101を運転する。
【0024】
サーバ103は、各種の顧客のためにデータ分析サービスを実行するデータ分析システムであっても良い。一つの実施形態において、データ分析システム103は、データ収集器121と機械学習エンジン122を含む。データ収集器121は、各種車両(自動運転車または人間の運転手によって運転される通常の車両)から運転統計データ123を収集する。運転統計データ123は、出された運転命令(例えば、スロットル、ブレーキ、方向転換命令)及び車両のセンサが異なる時刻で捕捉した車両の反応(例えば、速度、加速、減速、方向)を表す情報を含む。運転統計データ123は、異なる時刻における運転環境を表す情報、例えば、ルート(スタート位置と目的地位置を含む)、MPOI、道路状況、気候状況等を更に含むことができる。
【0025】
運転統計データ123に基づき、各種の目的のために、機械学習エンジン122は、ワンセットのルール、アルゴリズム及び/または予測モデル124を生成またはトレーニングする。一つの実施形態において、アルゴリズム124は、一つの実施形態による、トルクフィードバックに基づいてキャリブレーションテーブルを自動更新するアルゴリズムを含むことができる。そのあと、アルゴリズム124を、自動運転の期間でリアルタイムに使用されるように、ADVにアップロードすることができる。
【0026】
図3Aと
図3Bは、一つの実施形態による自動運転車と一緒に使用される感知・計画システムの例示を示すブロック図である。システム300は、
図1の自動運転車101の一部分として実装することができ、感知・計画システム110と、制御システム111と、センサシステム115とを含むが、これらに限定されない。
図3Aと
図3Bに示すように、感知・計画システム110は、測位モジュール301と、感知モジュール302と、予測モジュール303と、決定モジュール304と、計画モジュール305と、制御モジュール306と、ルーティングモジュール307と、キャリブレーションモジュール308を含むが、これらに限定されない。
【0027】
モジュール301~308の中の幾つかまたは全部は、ソフトウェア、ハードウェアまたはその組み合わせとして実装することができる。例えば、これらのモジュールは、永続的記憶装置352にインストールされ、メモリ351にロードされ、一つまたは複数のプロセッサ(図示せず)によって実行されても良い。これらのモジュールの中の幾つかまたは全部は、
図2の車両制御システム111の幾つかまたは全部のモジュールと通信可能的に接続され、または一体に集積されることができることに注意すべきである。モジュール301~308の中の幾つかは、一体に集積モジュールとして集積されても良い。例えば、キャリブレーションモジュール308は、制御モジュール306と一緒に実装または集積されても良い。
【0028】
測位モジュール301は、自動運転車300の目下位置(例えば、GPSユニット212を使って)を決め、ユーザーの行程またはルートに関する任意のデータを管理する。測位モジュール301(地図・ルートモジュールとも呼ばれる)は、ユーザーの行程またはルートに関する任意のデータを管理する。ユーザーは、例えばユーザーインターフェースを通じてログインし、行程のスタート位置と目的地を指定することができる。測位モジュール301は、行程に関するデータを獲得するために、地図・ルート情報311のような、自動運転車300のその他の部材と通信する。例えば、測位モジュール301は、位置サーバと、地図とPOI(MPOI)サーバから位置とルートの情報を獲得できる。位置サーバは、位置サービスを提供し、MPOIサーバは、地図サービスと幾つかの位置のPOIを提供し、よって地図・ルート情報311の一部分としてキャッシュできる。自動運転車300がルートに沿って移動する時、測位モジュール301は、交通情報システムまたはサーバからリアルタイムの交通情報を獲得することができる。
【0029】
センサシステム115から提供されたセンサデータと測位モジュール301から獲得した測位情報に基づき、感知モジュール302は、周囲環境に対する感知を決める。感知情報は、普通の運転手が運転している車両の周辺から感知する情報を表すことができる。感知は、オブジェクトの形で、例えば、車線配置、交通信号、もう一つの車両の相対位置、歩行者、建築物、横断歩道またはその他の交通関連標識(例えば、停止標識、譲れ標識)等を含むことができる。車線配置は、例えば車線の形状(例えば、直線または曲線)、車線の幅、道路内の車線数、一方通行または双方向車線、合流または分離車線、出口車線などのような、1つまたは複数の車線を記述する情報を含む。
【0030】
感知モジュール302は、一つまたは複数のカメラから採集した画像を処理分析し、自動運転車の環境の中のオブジェクト及び/または特徴を識別するように、コンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び/または障害物等を含むことができる。コンピュータビジョンシステムは、オブジェクト識別アルゴリズム、ビデオトラッキング及びその他のコンピュータビジョン技術を使うことができる。幾つかの実施形態においては、コンピュータビジョンシステムは環境地図を描き、オブジェクトを追跡し、オブジェクトの速度を見積もることができる。感知モジュール302は、さらに、例えば、レーダ及び/またはLIDAR等のようなその他のセンサから提供されたその他のセンターデータに基づき、オブジェクトを検出することができる。
【0031】
各々のオブジェクトに対して、予測モジュール303は、オブジェクトがこの状況においてどう振舞うかを予測する。予測は、地図/ルート情報311と交通ルール312を考慮した、運転環境をその時刻で感知した感知データに基づいて実行される。例えば、オブジェクトは反対方向の車両であり、かつ目下の運転環境は交差点を含むなら、予測モジュール303は、車両が真っすぐに前へ移動するか、または曲がるかを予測する。感知データは、交差点に交通信号がないと表しているなら、予測モジュール303は、車両は交差点に進入する前に完全停車する必要があるかもしれないと予測する。感知データは、車両が左折専用車線または右折専用車線にあると表しているなら、予測モジュール303は、車両が左折または右折する可能性がより大きいと予測する。
【0032】
各々のオブジェクトに対して、決定モジュール304は、オブジェクトをどう処置するかの決定を下す。例えば、特定のオブジェクト(例えば、交差するルートの中のもう一つの車両)及びオブジェクトを記述する元データ(例えば、速度、方向、曲がる角度)に対して、決定モジュール304は、如何にしてオブジェクトと遭遇するか(例えば、追い越し、譲り、停止、通過)を決定する。決定モジュール304は、永続的記憶装置に記憶されている、例えば交通ルールまたは運転ルール312のようなルール集に従ってこれらの決定を下すことができる。
【0033】
ルーティングモジュール307は、起点から目的地までの一つまたは複数のルートまたは経路を提供するように配置される。スタート位置から目的地の位置までの所与の行程に対して、例えば、ユーザーから受け取った所与の行程に対して、ルーティングモジュール307は、ルートと地図情報311を獲得し、スタート位置から目的地の位置に到達するまでの全ての可能なルートまたは経路を決める。ルーティングモジュール307は、スタート位置から目的地の位置に到達するまでの各ルートを決定するための、地形図形式の参考線を生成することができる。参考線は、例えばその他の車両、障害物または交通状況の如何なる邪魔も受けない理想なルートまたは経路を指す。すなわち、道路にその他の車両、歩行者または障害物がないなら、ADVは、精確でまたはぴったりと参考線に従うべきである。そして、地形図は、決定モジュール304及び/または計画モジュール305に提供される。決定モジュール304及び/または計画モジュール305は、例えば、測位モジュール301からの交通状況、感知モジュール302によって感知された運転環境、及び予測モジュール303によって予測された交通状況等のような、その他のモジュールによって提供されたその他のデータを考慮して、最適なルートの中から一つのルートを選択して修正するように、全ての可能なルートを検査する。その時刻における特定の運転環境に従って、ADVをコントロールするための実際ルートまたは経路は、ルーティングモジュール307によって提供された参考線と接近することも、異なることもできる。
【0034】
感知されたオブジェクトの中の各々に対する決定に基づき、計画モジュール305は、ルーティングモジュール307の提供した参考線をベースに、自動運転車のためにルートまたは経路及び運転パラメータ(例えば、距離、速度及び/または曲がる角度)を計画する。言い換えれば、所与のオブジェクトに対して、決定モジュール304は、当該オブジェクトに対して何をするかを決定し、計画モジュール305は、どうやってそれをするかを決める。例えば、所与のオブジェクトに対して、決定モジュール304は、前記オブジェクトを通過すると決定し、計画モジュール305は、前記オブジェクトの左側から通過するか、または右側から通過するかを決める。車両300が次の移動サイクル(例えば、次のルート/経路セグメント)でどのように移動するかに関する情報を含む計画と制御データは、計画モジュール305によって生成される。例えば、計画と制御データは、車両300が1時間30マイル(mph)の速度で10メートルを移動してから、25mphの速度へ右側車線に変更すると指示する。
【0035】
計画と制御データに基づき、制御モジュール306は、計画と制御データによって限定されたルートまたは経路に従って、適切な命令または信号を車両制御システム111に送信することを通じて、自動運転車を制御し運転する。経路またはルートに沿って異なる時刻において適切な車両設置または運転パラメータ(例えば、スロットル、ブレーキと操縦命令)を使用し、車両をルートまたは経路の第1の地点から第2の地点まで運転できるように、前記計画と制御データは、十分の情報を含む。
【0036】
一つの実施形態において、計画段階は、多数の計画周期(走行周期とも呼ばれる)の中で実行され、例えば、各時間間隔が100ミリ秒(ms)の周期の中で実行される。計画周期または走行周期の中の各々に対して、計画と制御データに基づいて一つまたは複数の制御命令を発行する。すなわち、各々の100msに対して、計画モジュール305は、次のルートセグメントまたは経路セグメントを計画する。代替できるように、計画モジュール305は、具体的な速度、方向及び/または曲がる角度等を規定できる。一つの実施形態において、計画モジュール305は、次の予定時間間隔(例えば、5秒)のためにルートセグメントまたは経路セグメントを計画する。各計画周期に対して、計画モジュール305は、前の周期で計画した目標位置に基づき、目下の周期(例えば、次の5秒)に使用される目標位置を計画する。そして制御モジュール306は、目下の周期の計画と制御データに基づき、一つまたは複数の制御命令(例えば、スロットル、ブレーキ、方向転換制御命令)を生成する。
【0037】
決定モジュール304と計画モジュール305は、集積モジュールとして集積されることができることに注意すべきである。自動運転車の運転経路を決めるように、決定モジュール304/計画モジュール305は、ナビゲーションシステムまたはナビゲーションシステムの機能を含むことができる。例えば、自動運転車がしっかりと感知した障害物を避けながら、大体最終目的地に到達するような、車線に基づく経路に沿って進むように、ナビゲーションシステムは、一連の速度と進行方向を決めることができる。目的地は、ユーザーインターフェースシステム113を経由して行われたユーザーの入力に従って設定することができる。ナビゲーションシステムは、自動運転車が運行していると同時に、動的に運転経路を更新できる。自動運転車の運転経路を決めるために、ナビゲーションシステムは、GPSシステムからのデータと、一つまたは複数の地図のデータとを合併することができる。
【0038】
一つの実施形態により、キャリブレーションモジュール308は、車両に発行された各種の制御コマンドに応答して、車両から受信したフィードバックに基づいてキャリブレーションテーブル313を自動的にキャリブレートまたは更新するように配置される。
図4は、キャリブレーションテーブル313の例示を示している。一つの実施形態においては、車両にスロットルコマンドまたはブレーキコマンドなどの制御コマンドを発行すると、1つまたは複数のセンサを通じて車両からトルクフィードバックを受信する。トルクフィードバックと、所望の加速度から得られたトルク値に基づいて、トルクフィードバックとトルク値の間の誤差または差異を決定できる。所定のアルゴリズムを使用して、トルク誤差に基づいて、キャリブレーションテーブルの中の対応する加速度値を自動的に更新することができる。
【0039】
当該方法の背後にある原理は以下の通りである。キャリブレーションテーブルに誤差がある場合、キャリブレーションテーブルから取得した制御コマンドが誤った結果、つまりトルク誤差をもたらす。予想トルク値と車両から測定した実際のフィードバックとの差を測定することによって、キャリブレーションテーブルを調整することができる。従って、適切な制御コマンドを発行することにより、後続のルックアップをより低いエラー率で実行できる。その時点で測定されたフィードバックに基づいてキャリブレーションテーブルを自動的に更新することにより、特定の運転環境および/または特定のタイプの車両に適応するようにキャリブレーションテーブルを調整または「トレーニング」することができる。
【0040】
図5は、一つの実施形態による各種モジュールを示すブロック
図400を示す。速度制御モジュール410は、例えば計画モジュールの出力に基づいて所望の加速度420を決定する。制御コマンド440の実行前の第1の時点で、第1のトルク値432を決定する。ADV442の速度、所望の加速度420、およびキャリブレーションテーブル430の中の関連エントリに基づいて、制御コマンド440を決定し、キャリブレーションテーブル430は、
図3Aおよび3Bのキャリブレーションテーブル313の一部として実装することができる。キャリブレーションテーブル430は、ADV442の速度を制御するために使用され、
図4に示すように複数のエントリを含み、各エントリは、速度、加速度、およびスロットルまたはブレーキ割合を含む制御コマンドを含む。換言すれば、n個のエントリを有するキャリブレーションテーブル420は、
【数1】
として表すことができ、ここで、
【数2】
である。
【0041】
関連エントリは、速度がADV442の現在の速度に対応し、加速度が所望の加速度420に対応するエントリである。従って、キャリブレーションテーブル430は、ADV442の現在の速度とADV442の所望加速度420に基づいて、スロットルまたはブレーキの割合を含む制御コマンド440を生成する。具体的には、ここで
図4を参照し、車両の現在の速度および所望の加速度を与えると、キャリブレーションテーブル313でルックアップ操作を実行して、車両の現在の速度及び所望の加速度にそれぞれマッチングする速度フィールド461および加速度フィールド462を見つけることができる。そして、マッチングするエントリのフィールド463から制御コマンドを取得できる。
【0042】
次に、制御コマンド440を実行する。制御コマンド440を実行した後の第2の時間において、第2のトルク値444を決定する。トルク誤差値を、第1のトルク値432と第2のトルク値444との差として決定する。その後、トルク誤差値に少なくとも部分的に基づいて、キャリブレーションテーブル更新モジュール434は、キャリブレーシテーブル430の関連エントリを更新する。さらに、ADVの動作を制御するために、更新されたキャリブレーションテーブルに少なくとも部分的に基づいて、ADVの操作を制御するために駆動信号を生成する。
【0043】
一つの実施形態において、キャリブレーションテーブルの関連エントリを更新することは、関連エントリの中の加速度を更新することを含む。更新された加速度は、更新前の関連エントリの中の加速度、トルク誤差値、およびコスト値に少なくとも部分的に基づいて決定される。具体的には、たとえば、i番目のエントリの加速度を次のように
【数3】
と更新することができる。
その中で、コスト値
【数4】
および
【数5】
は更新前の加速度、
【数6】
はトルク誤差値であり、
【数7】
は経験的に決定できる調整可能なパラメータである。コマンド
【数8】
は実行されたばかりのコマンドを指し、
【数9】
は車両の現在の速度を指す。
【0044】
一つの実施形態において、第1トルク値または第2トルク値は、ADVの有効質量、ADVの加速度、ADVの質量、ADVのピッチ角、転がり抵抗、空気抵抗係数、ADVの速度、およびADVのタイヤ半径に少なくとも部分的に基づいて決定される。ADVの有効質量は、ADVの質量、ADVの慣性モーメント、およびADVのタイヤ半径に少なくとも部分的に基づいて決定される。具体的には、トルク値は次のように
【数10】
と計算でき、ここで、
【数11】
はADVの加速度、
【数12】
はADVの質量、
【数13】
は重力加速度、
【数14】
はピッチ角、
【数15】
は転がり抵抗、
【数16】
は空気抵抗係数、
【数17】
はタイヤ半径であり、また、ADVの有効質量は、
【数18】
として計算でき、ここで、
【数19】
はADVの慣性モーメントである。
【0045】
図6は、一つの実施形態による、自動運転車(ADV)の操作で利用可能なキャリブレーションテーブルを更新するために使用される例示的な方法500を示すフローチャート図である。方法500は、ソフトウェア、ハードウェアまたはその組み合わせによって実現することができる。方法500は、部分的にキャリブレーシモジュール308によって実現することができる。ブロック510において、ADVへ制御コマンドを発行し、当該制御コマンドは、キャリブレーションテーブルのエントリから取得される。当該エントリは、ADVの速度とADVの所望の(あるいは目標の)加速度に関連している。ブロック520において、(例えば、各種のセンサを使用して)車両プラットフォームから第1のトルク値を測定する。ブロック530において、トルク誤差値を計算し、当該トルク誤差値は、第1のトルク値と、制御コマンドを発行する前に測定した第2のトルク値との差を表す。ブロック540において、トルク誤差値に基づいてキャリブレーションテーブルの関連エントリを更新する。次にブロック550において、更新されたキャリブレーションテーブルを利用して、後続の制御コマンドを取得および発行する。
【0046】
なお、前記文章で示され、説明された部材の中の幾つかまたは全部は、ソフトウェア、ハードウェアまたはその組み合わせとして実装することができる。例えば、この種類の部材は、永続的な記憶装置にインストールされ、かつ記憶されるソフトウェアとして実装することができる。当該ソフトウェアは、プロセッサ(図示せず)を通じてメモリにロードし、メモリの中で本願を貫いて説明したプロセスまたは操作を実行する。代替できるように、この種類の部材は、専用ハードウェア(例えば、集積回路(例えば、専用集積回路またはASIC)、デジタルシグナルプロセッサ(DSP)または現場でプログラム可能なゲートアレイ(FPGA))にプログラムされたまたは埋め込まれた実行可能なコードとして実装することができる。当該実行可能なコードは、アプリケーションからの対応する駆動プログラム及び/またはオペレーティングシステムを通じてアクセスすることができる。さらに、この種類の部材は、ソフトウェアが一つまたは複数の特定の命令でアクセスできる命令集の一部分となるように、プロセッサまたはプロセッサのコアの中の特定のハードウェアロジックとして実装することができる。
【0047】
図7は、本願の一つの実施形態と共に使用されるデータ処理システムの例示を示すブロック図である。例えば、システム1500は、
図1の感知・計画システム110またはサーバ103~104の中の任意の一つのような、前記のプロセスまたは方法を実行する前記の任意のデータ処理システムの中の任意の一つを表すことができる。システム1500は、多数の異なる部材を含むことができる。これらの部材は、集積回路(IC)、集積回路の一部分、独立な電子装置、または回路基板(例えば、コンピュータシステムのマザーボードまたはアドインカード)に用いられるその他のモジュールとして実装することができ、またはその他の方式でコンピュータシステムのシャーシに組み入れられる部材として実装することができる。
【0048】
なお、システム1500の趣旨は、コンピュータシステムの複数の部材の高レベルの様子を示すことにあることに注意すべきである。幾つかの実施形態においては、付加的部材を有することができ、また、他の実施形態においては、図示部材の異なる配置を有することができる。システム1500は、デスクトップコンピュータ、ラップトップコンピューター、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤー、パーソナルデジタルアシスタント(PDA)、スマートウォッチ、パーソナルコミュニケータ、ゲーム装置、ネットワークルーターまたはハブ、ワイヤレスアクセスポイント(AP)またはリピーター、セットトップボックスまたはこれらの組み合わせを表すことができる。さらに、シングルの機器またはシステムしか示されていないが、用語「機器」または「システム」は、本願で検討した任意の一つまたは複数の方法を実行するように、単独的にまたは共同的に一つ(または複数の)命令集を実行する機器またはシステムの任意の集まりであると理解されるべきである。
【0049】
一つの実施形態において、システム1500は、バスまたはインターコネクト1510と通じて連結されるプロセッサ1501、メモリ1503及び装置1505~1508を含む。プロセッサ1501は、シングルのプロセッサコアまたは複数のプロセッサコアを含むシングルのプロセッサまたは複数のプロセッサを表すことができる。プロセッサ1501は、一つまたは複数の、例えばマイクロプロセッサ、中央処理装置(CPU)などのような汎用プロセッサを表すことができる。より具体的に、プロセッサ1501は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、またはその他の命令集を実行するプロセッサ、または命令集の組み合わせを実行するプロセッサであっても良い。プロセッサ1501は、例えば、専用集積回路(ASIC)、移動体またはベースバンドプロセッサ、現場でプログラム可能なゲートアレイ(FPGA))、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサ、グラフィックスプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組み込みプロセッサ、または命令を処理できる任意のその他のタイプのロジックのような、一つまたは複数の専用プロセッサであっても良い。
【0050】
プロセッサ1501(低電力マルチコアプロセッサソケットであっても良く、例えば、超低電圧プロセッサ)は、前記システムの各種部材との通信の主プロセッサユニットと中央ハブとして振舞うことができる。この種類のプロセッサは、システムオンチップI(SoC)として実装することができる。プロセッサ1501は、本願で議論した操作とプロセスを実行するための命令を実行するように配置される。システム1500は、ディスプレイコントローラ、図形プロセッサ及び/またはディスプレイ装置を含む、オプションの図形サブシステム1504と通信する図形インターフェースをさらに含むことができる。
【0051】
プロセッサ1501は、メモリ1503と通信することができる。一つの実施形態において、メモリ1503は、複数のメモリ装置によって規定の量のシステムメモリを提供するように実装されることができる。メモリ1503は、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、またはその他のタイプのメモリ装置のような、一つまたは複数の揮発性ストレージ(またはメモリ)装置を含むことができる。メモリ1503は、プロセッサ1501またはその他の任意の装置によって実行する命令シーケンスを含む情報を保存することができる。例えば、各種のオペレーティングシステム、デバイスドライバ、ファームウェア(例えば、入出力基本システムまたはBIOS)、および/またはアプリケーションの実行可能なコード及び/またはデータは、メモリ1503にロードされ、プロセッサ1501に実行されることができる。オペレーティングシステムは、任意タイプのオペレーティングシステムであっても良く、例えば、ロボットオペレーティングシステム(ROS)、Microsoft(登録商標)のWindows(R)オペレーティングシステム、AppleのMacOS(登録商標)/iOS(登録商標)、Google(登録商標)のAndroid(登録商標)、LINUX、UNIX、その他のリアルタイムまたは組み込みオペレーティングシステムであっても良い。
【0052】
システム1500は、例えば、オプションのネットワークインターフェース装置1505、オプションの入力装置1506、及びその他のオプションのIO装置1507を含む装置1505~1508のようなIO装置を更に含むことができる。ネットワークインターフェース1505は、無線トランシーバ及び/またはネットワークインターフェースカード(NIC)を含むことができる。前記無線トランシーバは、WIFIトランシーバ、赤外トランシーバ、ブルートゥーストランシーバ、WiMaxトランシーバ、無線移動体電話トランシーバ、衛星トランシーバ(例えば、グローバル・ポジショニング・システム(GPS))、またはその他の無線周波数(RF)トランシーバまたはそれらの組み合わせであっても良い。NICは、イーサネットカードであっても良い。
【0053】
入力装置1506は、マウス、タッチパッド、タッチセンシティブ画面(表示装置1504と一体に集積されて)、ポインター装置(例えば、スタイラスペン)、および/またはキーボード(例えば物理的キーボード、またはタッチセンシティブ画面の一部分として表示される仮想キーボード)を含むことができる。例えば、入力装置1506は、タッチパネルに接続するタッチパネルコントローラを含むことができる。タッチパネルとタッチパネルコントローラは、例えば、複数の種類のタッチセンシティブ技術(キャパシタンス、抵抗、赤外線および表面音波技術を含むが、これらに限定されない)を使用することができ、またはその他の類似するセンサアレイまたはタッチパネルと接触する一つまたは複数の点を決めるために用いられるその他のデバイスを使用し、接触、移動または中断を検出することができる。
【0054】
IO装置1507は、オーディオ装置を含むことができる。オーディオ装置は、例えば、音声識別、音声複製、デジタル記録及び/または電話機能等の音の機能のサポートを促進するために、スピーカー及び/またはマイクロホンを含むことができる。その他のIO装置1507は、ユニバーサル・シリアル・バス(USB)ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ(例えばPCI-PCIブリッジ)、センサ(例えば、加速度計運動センサ、ジャイロ、磁力計、光センサ、コンパス、近接センサ等)またはその組み合わせを更に含むことができる。装置1507は、画像処理サブシステム(例えば、カメラ)を更に含むことができる。当該画像処理サブシステムは、例えば、電荷結合素子(CCD)または相補型金属酸化物半導体(CMOS)光センサのような、カメラ機能(例えば、写真やビデオクリップを記録する)を促進するために使用される光センサを含むことができる。幾つかのセンサは、センサハブ(図示せず)を経由してインターコネクト1510に接続しても良く、例えば、キーバードまたは熱センサのようなその他の装置は、システム1500の具体的な配置または設計に従って埋め込み式コントローサ(図示せず)によってコントロールされても良い。
【0055】
データ、アプリケーション、一つまたは複数のオペレーティングシステム等の情報に対する永続的な保存を提供するために、大容量記憶装置(図示せず)は、プロセッサ1501に接続しても良い。各種の実施形態において、より薄くより軽いシステム設計を実現し、システム応答性を改善するために、この種の大容量記憶装置は、ソリッドステートドライブ(SSD)によって実装しても良い。しかし、その他の実施形態において、大容量記憶装置は、主にハードディスクドライブ(HDD)を使用して実装し、それに加えて容量の比較的に小さいSSD記憶装置をSSDキャッシとして使用し、これによって電源が切られたイベントにおいて文脈状態及びその他のこの種類の情報の非揮発性保存を実現し、システムの活動が再び起動する時に素早い電源投入を実現する。なお、フラッシュメモリ装置は、例えばシリアル・ペリフェラル・インタフェース(SPI)を経由してプロセッサ501に接続しても良い。この種類のフラッシュメモリ装置は、前記システムのBIOS及びその他のファームウェアを含むシステムソフトウェアの非揮発性保存を提供する。
【0056】
記憶装置1508は、本願で記述した一つまたは複数の方法または機能を具体的に表現する一つまたは複数の命令集またはソフトウェア(例えば、モジュール、ユニットまたはロジック1528)を記憶する、コンピュータのアクセス可能な記憶媒体1509(機器可読媒体、コンピュータ可読媒体とも呼ばれる)を含むことができる。処理モジュール/ユニット/ロジック1528は、例えば計画モジュール305、制御モジュール306、キャリブレーションモジュール308のような、前記部材の中の任意の一つを表すことができる。処理モジュール/ユニット/ロジック1528は、データ処理システム1500、メモリ1503とプロセッサ1501によって実行されている期間において、完全にまたは少なくとも部分的にメモリ1503及び/またはプロセッサ1501の中に駐留することができ、データ処理システム1500、メモリ1503とプロセッサ1501もコンピュータのアクセス可能な記憶媒体を構成する。処理モジュール/ユニット/ロジック1528は、ネットワークを通じて、ネットワークインターフェース装置1505を経由して送信と受信を行うことができる。
【0057】
コンピュータ可読媒体1509は、前記で説明した幾つかのソフトウェア機能を永続的に記憶するためにも使用される。コンピュータ可読媒体1509は、例示的な実施形態においては単一の媒体として示されているが、用語「コンピュータ可読媒体」は、前記一つまたは複数の命令集を記憶する単一の媒体または複数の媒体(例えば、集中式または分布式データベース及び/または関連するキャッシュとサーバ)を含むと理解すべきである。用語「コンピュータ可読媒体」は、機器によって実行され、かつ本願の任意の一つまたは複数の方法を当該機器に実行させる命令集を、記憶するまたはエンコードすることができる任意の媒体を含むと理解すべきである。故に、用語「コンピュータ可読媒体」は、ソリッド・ステート・メモリ、光媒体と磁気媒体、または任意のその他の非一時的な機器可読媒体を含むが、これらに限定されないと理解すべきである。
【0058】
本願で説明する処理モジュール/ユニット/ロジック1528、部材及びその他の特徴は、独立なハードウェア部材として実装しても良く、ハードウェア部材(例えば、ASICS、FPGA、DSPまたは類似の装置)の機能の中に集積しても良い。さらに、処理モジュール/ユニット/ロジック1528は、ハードウェア装置の中のファームウェアまたは機能回路として実装しても良い。なお、処理モジュール/ユニット/ロジック1528は、ハードウェア装置とソフトウェア部材との任意の組み合わせとして実装しても良い。
【0059】
システム1500は、データ処理システムの各種の部材を有するように示されているが、部材が互いに接続する任意の特定のアーキテクチャまたは方式を表すことではない。これは、この種類の細部は本願の実施形態と密接な関係がないからである。より少ない部材またはより多い部材を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および/または他のデータ処理システムは、本願の実施形態と一緒に使用しても良いと認識すべきである。
【0060】
前述の詳細な説明の中の一部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現に従って提示した。これらのアルゴリズム記述および表現は、データ処理領域の当業者が、仕事の本質を最も有効的に同じ領域の当業者に伝えるように、使用する方式である。本願において、アルゴリズムは、予期の結果をもたらす、自己矛盾のない操作のシーケンスであると一般的に認識される。これらの操作は、物理量に対して物理操縦を行う必要がある操作であることを指す。
【0061】
これらのすべての用語と類似の用語は、適切な物理量と関連し、これらの量に応用されるのみの便宜上の標識であることをしっかりと忘れずにすべきである。以上の議論においてその他の方式で明確的に表明している時以外に、本願全体において、用語(例えば付属の特許請求の範囲の中で説明する用語)を利用して行った討論は、コンピュータシステムまたは類似の電子計算装置の動作と処理を指す。前記コンピュータシステムまたは類似の電子計算装置は、コンピュータシステムのレジスターとメモリの中の、物理(電子)量として表されているデータを操縦し、前記データを、コンピュータシステムのメモリまたはレジスターまたはその他のこの種類の情報の記憶装置、転送またはディスプレイ装置の中の、類似的に物理量として表されているその他のデータへ変換する。
【0062】
本願の実施形態は、本願文章の中の操作を実行するために用いられる設備にも関わる。この種のコンピュータプログラムは、非一時的なコンピュータ可読媒体の中に記憶される。機器可読媒体は、機器(例えば、コンピュータ)可読な形式で情報を記憶する任意の機構を含む。例えば、機器可読(例えば、コンピュータ可読)媒体は、機器(例えば、コンピュータ)可読な記憶媒体(例えば、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶メティア、フラッシュメモリ装置)を含む。
【0063】
前記図面の中で説明されたプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時性コンピュータ読み取り媒体に具現化して)またはその組み合わせを含む処理ロジックによって実行しても良い。前記プロセスまたは方法は、上記の文章おいて幾つかの順序操作によって説明されているが、前記操作の中の幾つかは異なる順序で実行しても良いと理解すべきである。さらに、幾つかの操作は、順序で実行されるのではなく、並列的に実行されても良い。
【0064】
本願の実施形態は、何らかの特定のプログラミング言語を参考にして説明されているのではない。説明した本願の実施形態の教えは、複数のプログラミング言語を使って実装することができると認識すべきである。
【0065】
以上の明細書において、本願の具体的で例示性のある実施形態を参照して、本願の実施形態に対して説明を行った。添付する特許請求の範囲の中で論述した本願のより広範な精神と範囲を逸脱しない限り、本発明に対して各種の修正をすることができる。故に、制限する意味ではなく、説明する意味として本明細書と図面を理解すべきである。
なお、本願の出願当初の開示事項を維持するために、本願の出願当初の請求項1~21の記載内容を以下に追加する。
(請求項1)
自動運転車ADVを操作するためのコンピュータ実装の方法であって、
前記ADVを制御するための制御コマンドを発行することであって、前記制御コマンドは、前記ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得されることと、
前記ADVへの前記制御コマンドの発行に応答して、第1のトルク値を測定することと、
トルク誤差値を、前記第1のトルク値と、前記制御コマンドを発行する前に測定した第2のトルク値との差として決定することと、
前記トルク誤差値に少なくとも部分的に基づいて前記キャリブレーションテーブルの関連エントリを更新することであって、更新されたキャリブレーションテーブルは前記ADVを制御するための後続制御コマンドを決定するために用いられるものである、更新することと
を含む、コンピュータ実装の方法。
(請求項2)
前記キャリブレーションテーブルは、多くのエントリを含み、前記エントリの各々は、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドを含む、請求項1に記載の方法。
(請求項3)
前記キャリブレーションテーブルの関連エントリを更新することは、前記関連エントリの中の加速度を更新することを含む、請求項2に記載の方法。
(請求項4)
更新前の前記関連エントリの中の加速度、前記トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する、請求項3に記載の方法。
(請求項5)
前記関連エントリの制御コマンドと実行された制御コマンドとの間の第1の差異、および前記関連エントリの速度と前記ADVの現在の速度との間の第2の差異に基づいて、前記コスト値を決定する、請求項4に記載の方法。
(請求項6)
前記ADVの有効質量、前記ADVの加速度、前記ADVの質量、前記ADVのピッチ角、転がり抵抗、空気抵抗係数、前記ADVの速度、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する、請求項1に記載の方法。
(請求項7)
前記ADVの質量、前記ADVの慣性モーメント、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、前記ADVの有効質量を決定する、請求項6に記載の方法。
(請求項8)
命令を記憶している非一時性機器可読媒体であって、
前記命令は、プロセッサによって実行されるときに、前記プロセッサを、自動運転車ADVを操作するための操作を実行するようにさせ、前記操作は、
前記ADVを制御するための制御コマンドを発行することであって、前記制御コマンドは、前記ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得されることと、
前記ADVへの前記制御コマンドの発行に応答して、第1のトルク値を測定することと、
トルク誤差値を、前記第1のトルク値と、前記制御コマンドを発行する前に測定した第2のトルク値との差として決定することと、
前記トルク誤差値に少なくとも部分的に基づいて前記キャリブレーションテーブルの関連エントリを更新することであって、更新されたキャリブレーションテーブルは前記ADVを制御するための後続制御コマンドを決定するために用いられることと
を含む、非一時性機器可読媒体。
(請求項9)
前記キャリブレーションテーブルは、多くのエントリを含み、前記エントリの各々は、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドを含む、請求項8に記載の機器可読媒体。
(請求項10)
前記キャリブレーションテーブルの関連エントリを更新することは、前記関連エントリの中の加速度を更新することを含む、請求項9に記載の機器可読媒体。
(請求項11)
更新前の前記関連エントリの中の加速度、前記トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する、請求項10に記載の機器可読媒体。
(請求項12)
前記関連エントリの制御コマンドと実行された制御コマンドとの間の第1の差異、および前記関連エントリの速度と前記ADVの現在の速度との間の第2の差異に基づいて、前記コスト値を決定する、請求項11に記載の機器可読媒体。
(請求項13)
前記ADVの有効質量、前記ADVの加速度、前記ADVの質量、前記ADVのピッチ角、転がり抵抗、空気抵抗係数、前記ADVの速度、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する、請求項8に記載の機器可読媒体。
(請求項14)
前記ADVの質量、前記ADVの慣性モーメント、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、前記ADVの有効質量を決定する、請求項13に記載の機器可読媒体。
(請求項15)
プロセッサと、前記プロセッサに接続され、命令を記憶するメモリとを含むデータ処理システムであって、
前記命令は、プロセッサによって実行されるときに、
前記ADVを制御するための制御コマンドを発行し、前記制御コマンドは、前記ADVの速度および所望の加速度に関するキャリブレーションテーブルのエントリから取得されることと、
前記ADVへの前記制御コマンドの発行に応答して、第1のトルク値を測定することと、
トルク誤差値を、前記第1のトルク値と、前記制御コマンドを発行する前に測定した第2のトルク値との差として決定することと、
前記トルク誤差値に少なくとも部分的に基づいて前記キャリブレーションテーブルの関連エントリを更新し、更新されたキャリブレーションテーブルは前記ADVを制御するための後続制御コマンドを決定するために用いられることと
を含む、自動運転車ADVを操作するための操作を前記プロセッサに実行させる、データ処理システム。
(請求項16)
前記キャリブレーションテーブルは、多くのエントリを含み、前記エントリの各々は、速度、加速度、及びスロットルまたはブレーキの割合を含む制御コマンドを含む、請求項15に記載のシステム。
(請求項17)
前記キャリブレーションテーブルの関連エントリを更新することは、前記関連エントリの中の加速度を更新することを含む、請求項16に記載のシステム。
(請求項18)
更新前の前記関連エントリの中の加速度、前記トルク誤差値、およびコスト値に少なくとも部分的に基づいて、更新される加速度を決定する、請求項17に記載のシステム。
(請求項19)
前記関連エントリの制御コマンドと実行された制御コマンドとの間の第1の差異、および前記関連エントリの速度と前記ADVの現在の速度との間の第2の差異に基づいて、前記コスト値を決定する、請求項18に記載のシステム。
(請求項20)
前記ADVの有効質量、前記ADVの加速度、前記ADVの質量、前記ADVのピッチ角、転がり抵抗、空気抵抗係数、前記ADVの速度、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、第1トルク値または第2トルク値を決定する、請求項15に記載のシステム。
(請求項21)
前記ADVの質量、前記ADVの慣性モーメント、および前記ADVのタイヤ半径に少なくとも部分的に基づいて、前記ADVの有効質量を決定する、請求項20に記載のシステム。