(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-14
(45)【発行日】2022-01-25
(54)【発明の名称】リアルタイムでのトレーラカプラの位置特定および追跡
(51)【国際特許分類】
G06T 7/00 20170101AFI20220118BHJP
G05D 1/02 20200101ALI20220118BHJP
【FI】
G06T7/00 650
G05D1/02 W
(21)【出願番号】P 2020560946
(86)(22)【出願日】2019-05-01
(86)【国際出願番号】 US2019030260
(87)【国際公開番号】W WO2019213306
(87)【国際公開日】2019-11-07
【審査請求日】2020-12-25
(32)【優先日】2018-05-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-04-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】313005662
【氏名又は名称】コンチネンタル オートモーティブ システムズ インコーポレイテッド
【氏名又は名称原語表記】CONTINENTAL AUTOMOTIVE SYSTEMS, INC.
【住所又は居所原語表記】1 Continental Drive, Auburn Hills, Michigan 48326-1581, USA
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100135633
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】エドゥアルド ホセ ラミレス リャノス
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2018-144526(JP,A)
【文献】特開2019-14276(JP,A)
【文献】米国特許出願公開第2015/321666(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
トレーラのトレーラカプラを検出および位置特定する方法であって、
データ処理ハードウェアにおいて、牽引車両の後部位置に配置されていて、かつ前記データ処理ハードウェアと通信するカメラから、画像を受信するステップと、
前記データ処理ハードウェアによって、前記画像の内部において、前記トレーラカプラの表現を含む関心領域を決定するステップと、
前記データ処理ハードウェアによって、受信した前記画像に基づいて、前記カメラが移動するカメラ平面を決定するステップと、
前記データ処理ハードウェアによって、受信した前記画像に基づいて道路平面を決定するステップと、
前記データ処理ハードウェアによって、前記関心領域の内側にあって、かつ前記カメラ平面および前記道路平面の内部にある物体を表す3次元(3D)点群を決定するステップと、
前記データ処理ハードウェアにおいて、前記データ処理ハードウェアと通信する車輪エンコーダ、加速度および車輪角度センサ、ならびに慣性測定ユニットのうちの少なくとも1つから、センサデータを受信するステップと、
前記データ処理ハードウェアにおいて、前記3D点群および前記センサデータに基づいて、前記トレーラカプラの、現実世界座標におけるカプラ位置を特定するステップと、
前記牽引車両を経路に沿って前記カプラ位置に向かって後退方向に自律的に運転させる命令を、前記データ処理ハードウェアから運転システムに送信するステップと、
を含む、方法。
【請求項2】
前記画像の内部において前記関心領域を決定するステップは、
受信した前記画像を表示するようにとの命令を、前記データ処理ハードウェアからディスプレイに送信するステップと、
前記データ処理ハードウェアにおいて、前記関心領域のユーザ選択を受信するステップと、
を含む、請求項1記載の方法。
【請求項3】
前記データ処理ハードウェアによって、前記3D点群に関連付けられた点を前記カメラ平面上または前記道路平面上に投影するステップと、
前記データ処理ハードウェアによって、それぞれの点と前記カメラとの間の距離を求めるステップであって、
前記3D点群に関連付けられた点が前記カメラ平面上に投影される場合には、それぞれの点と前記カメラの中心との間の距離を求めるステップと、
前記3D点群に関連付けられた点が前記道路平面上に投影される場合には、それぞれの点と、前記道路平面上への前記カメラの前記中心の投影との間の距離を求めるステップと、
前記データ処理ハードウェアによって、決定された前記距離に基づいて最短距離を決定するステップであって、前記最短距離に関連付けられた3D点の、受信した前記画像上への投影は、前記画像の内部におけるカプラ画素位置を表す、ステップと、
をさらに含み、
前記カプラ位置は、前記カプラ画素位置に基づいている、
請求項1記載の方法。
【請求項4】
前記データ処理ハードウェアによって、前記最短距離に関連付けられた3D点と、前記道路平面との間の距離に基づいて、カプラ高さを求めるステップをさらに含み、
前記カプラ位置は、前記カプラ高さを含む、
請求項3記載の方法。
【請求項5】
前記データ処理ハードウェアによって、前記3D点群に基づいて、前記トレーラカプラと前記カメラとの間の第1の距離を求めるステップと、
前記データ処理ハードウェアによって、前記第1の距離から前記カメラと車両ヒッチボールとの間の長手方向距離を差し引いたものに基づいて、前記トレーラカプラと車両牽引ボールとの間の第2の距離を求めるステップと、
をさらに含み、
前記経路は、前記第2の距離に基づいている、
請求項1記載の方法。
【請求項6】
前記関心領域の前記点群を決定することは、視覚オドメトリ(VO)アルゴリズム、Simultaneous Localization and Mapping(SLAM)アルゴリズム、およびStructure from Motion(SfM)アルゴリズムのうちの1つを実行するステップを含む、請求項1記載の方法。
【請求項7】
前記カメラ平面を決定するステップは、
前記データ処理ハードウェアによって、受信した前記画像から前記後方カメラの少なくとも3つの3次元位置を特定するステップと、
前記データ処理ハードウェアによって、前記少なくとも3つの3次元位置に基づいて前記カメラ平面を決定するステップと、
を含む、請求項1記載の方法。
【請求項8】
前記道路平面を決定するステップは、
前記牽引車両を支持している道路からの前記カメラの高さを求めるステップと、
前記カメラの前記高さの分だけ前記カメラ平面をシフトさせるステップと、
を含む、請求項1記載の方法。
【請求項9】
前記道路平面を決定するステップは、
前記データ処理ハードウェアによって、道路を含む前記画像から少なくとも3つの特徴点を抽出するステップと、
前記データ処理ハードウェアによって、前記3D点群の点をそれぞれの前記特徴点に関連付けるステップと、
前記データ処理ハードウェアによって、前記少なくとも3つの特徴点に関連付けられた、前記3D点群の少なくとも3つの点に基づいて前記道路平面を決定するステップと、
を含む、請求項1記載の方法。
【請求項10】
前記カメラ平面を決定するステップは、
前記データ処理ハードウェアによって、前記道路からの前記カメラの高さを求めるステップと、
前記データ処理ハードウェアによって、前記カメラの前記高さの分だけ前記道路平面をシフトさせるステップと、
を含む、請求項9記載の方法。
【請求項11】
トレーラのトレーラカプラを検出および位置特定するためのシステムであって、
データ処理ハードウェアと、
前記データ処理ハードウェアと通信するメモリハードウェアと、
を含み、
前記メモリハードウェアは、前記データ処理ハードウェア上で実行された場合に、前記データ処理ハードウェアに所定の動作を実行させる命令を格納しており、
前記動作は、
牽引車両の後部位置に配置されていて、かつ前記データ処理ハードウェアと通信するカメラから、1つまたは複数の画像を受信することと、
前記画像の内部において、前記トレーラカプラの表現を含む関心領域を決定することと、
受信した前記画像に基づいて、前記カメラが移動するカメラ平面を決定することと、
受信した前記画像に基づいて道路平面を決定することと、
前記関心領域の内側にあって、かつ前記カメラ平面および前記道路平面の内部にある物体を表す3次元(3D)点群を決定することと、
前記データ処理ハードウェアと通信する車輪エンコーダ、加速度および車輪角度センサ、ならびに慣性測定ユニットのうちの少なくとも1つから、センサデータを受信することと、
前記3D点群および前記センサデータに基づいて、前記トレーラカプラの、現実世界座標におけるカプラ位置を特定することと、
前記牽引車両を経路に沿って前記カプラ位置に向かって後退方向に自律的に運転させる命令を、運転システムに送信することと
を含む、
システム。
【請求項12】
前記画像の内部において前記関心領域を決定することは、
受信した前記画像を表示させる命令を、ディスプレイに送信することと、
前記関心領域のユーザ選択を受信することと、
を含む、請求項11記載のシステム。
【請求項13】
前記動作は、
前記3D点群に関連付けられた点を前記カメラ平面上または前記道路平面上に投影することと、
それぞれの点と前記カメラとの間の距離を求めることであって、
前記3D点群に関連付けられた点が前記カメラ平面上に投影される場合には、それぞれの点と前記カメラの中心との間の距離を求め、
前記3D点群に関連付けられた点が前記道路平面上に投影される場合には、それぞれの点と、前記道路平面上への前記カメラの前記中心の投影との間の距離を求める、ことと、
決定された前記距離に基づいて最短距離を求めることであって、前記最短距離に関連付けられた3D点の、受信した前記画像上への投影は、前記画像の内部におけるカプラ画素位置を表す、ことと、
をさらに含み、
前記カプラ位置は、前記カプラ画素位置に基づいている、
請求項11記載のシステム。
【請求項14】
前記動作は、前記最短距離に関連付けられた3D点と、前記道路平面との間の距離に基づいて、カプラ高さを求めることをさらに含み、
前記カプラ位置は、前記カプラ高さを含む、
請求項13記載のシステム。
【請求項15】
前記動作は、
前記3D点群に基づいて、前記トレーラカプラと前記カメラとの間の第1の距離を求めることと、
前記第1の距離から前記カメラと車両ヒッチボールとの間の長手方向距離を差し引いたものに基づいて、前記トレーラカプラと車両牽引ボールとの間の第2の距離を求めることと、
をさらに含み、
前記経路は、前記第2の距離に基づいている、
請求項11記載のシステム。
【請求項16】
前記関心領域の前記3D点群を決定することは、視覚オドメトリ(VO)アルゴリズム、Simultaneous Localization and Mapping(SLAM)アルゴリズム、およびStructure from Motion(SfM)アルゴリズムのうちの1つを実行することを含む、請求項11記載のシステム。
【請求項17】
前記カメラ平面を決定することは、
前記データ処理ハードウェアによって、受信した前記画像から前記後方カメラの少なくとも3つの3次元位置を特定することと、
前記データ処理ハードウェアによって、前記少なくとも3つの3次元位置に基づいて前記カメラ平面を決定することと、
を含む、請求項11記載のシステム。
【請求項18】
前記道路平面を決定することは、
前記牽引車両を支持している道路からの前記カメラの高さを求めることと、
前記カメラの前記高さの分だけ前記カメラ平面をシフトさせることと、
を含む、請求項11記載のシステム。
【請求項19】
前記道路平面を決定することは、
道路を含む前記画像から少なくとも3つの特徴点を抽出することと、
前記3D点群の点をそれぞれの前記特徴点に関連付けることと、
前記少なくとも3つの特徴点に関連付けられた、前記3D点群の少なくとも3つの点に基づいて前記道路平面を決定することと、
を含む、請求項11記載のシステム。
【請求項20】
前記カメラ平面を決定することは、
前記道路からの前記カメラの高さを求めることと、
前記カメラの前記高さの分だけ前記道路平面をシフトさせることと、
を含む、請求項19記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本開示は、リアルタイムでのカプラの位置特定および追跡のための方法および装置に関する。
【0002】
背景
トレーラは、通常、動力付きの牽引車両によって牽引される動力なしの車両である。トレーラは、とりわけユーティリティトレーラ、ポップアップキャンピングカー、旅行用トレーラ、家畜用トレーラ、フラットベッドトレーラ、密閉型自動車運搬車、およびボートトレーラであり得る。牽引車両は、自動車、クロスオーバー、トラック、バン、多目的スポーツ車(SUV)、レクリエーション用車両(RV)、またはトレーラに取り付けられてトレーラを牽引するように構成された他の任意の車両であり得る。トレーラは、トレーラヒッチを使用して動力車に取り付け可能である。レシーバーヒッチは、牽引車両に据え付けられており、トレーラヒッチに接続されて連結部を形成する。トレーラヒッチは、ボールおよびソケット、第5輪およびグースネック、またはトレーラジャッキであり得る。他の取り付け機構を使用してもよい。トレーラと動力車との間の機械的な接続に加えて、いくつかの例では、トレーラは、牽引車両に電気的に接続されている。したがって、この電気的な接続によって、トレーラは、動力車のリアランプ回路から給電を受けることが可能となり、これによって、トレーラは、動力車のランプと同期するテールランプ、方向指示器、およびブレーキランプを有することが可能となる。
【0003】
センサ技術の最近の進歩により、車両のための安全性システムが改善されてきた。したがって、牽引車両の後ろに配置されたトレーラのカプラをリアルタイムで識別することができ、かつカプラを位置特定することができ、これによって、自動化されたヒッチングのために牽引車両がトレーラに向かって自律的に操縦されることを可能にするようなシステムを提供することが望まれている。
【0004】
概要
本開示の1つの態様は、トレーラのトレーラカプラを検出および位置特定する方法を提供する。本方法は、データ処理ハードウェアにおいて、牽引車両の後部位置に配置されていて、かつデータ処理ハードウェアと通信するカメラから、画像を受信することを含む。本方法は、データ処理ハードウェアによって、画像の内部において関心領域を決定することも含む。関心領域は、トレーラカプラの表現を含む。本方法は、データ処理ハードウェアによって、受信した画像に基づいて、カメラが移動するカメラ平面を決定することも含む。さらに、本方法は、データ処理ハードウェアによって、受信した画像に基づいて道路平面を決定することを含む。本方法は、データ処理ハードウェアによって、関心領域の内側にあって、かつカメラ平面および道路平面の内部にある物体を表す3次元(3D)点群を決定することも含む。本方法は、データ処理ハードウェアにおいて、データ処理ハードウェアと通信する車輪エンコーダ、加速度および車輪角度センサ、ならびに慣性測定ユニットのうちの少なくとも1つから、センサデータを受信することを含む。本方法は、データ処理ハードウェアにおいて、3D点群およびセンサデータに基づいて、トレーラカプラのカプラ位置を特定することを含む。カプラ位置は、現実世界座標にある。さらに、本方法は、牽引車両を経路に沿ってカプラ位置に向かって後退方向に自律的に運転させる命令を、データ処理ハードウェアから運転システムに送信することを含む。
【0005】
本開示の実装形態は、以下のオプションの特徴のうちの1つまたは複数を含むことができる。いくつかの実装形態では、画像の内部において関心領域を決定することは、受信した画像を表示するようにとの命令を、データ処理ハードウェアからディスプレイに送信することと、データ処理ハードウェアにおいて、関心領域のユーザ選択を受信することとを含む。
【0006】
いくつかの例では、本方法は、データ処理ハードウェアによって、3D点群に関連付けられた点をカメラ平面上または道路平面上に投影することをさらに含む。本方法は、データ処理ハードウェアによって、それぞれの点とカメラとの間の距離を求めることを含むことができる。3D点群に関連付けられた点がカメラ平面上に投影される場合には、本方法は、それぞれの点とカメラの中心との間の距離を求めることを含む。3D点群に関連付けられた点が道路平面上に投影される場合には、本方法は、それぞれの点と、道路平面上へのカメラの中心の投影との間の距離を求めることを含む。本方法は、データ処理ハードウェアによって、決定された距離に基づいて最短距離を求めることであって、最短距離に関連付けられた3D点の、受信した画像上への投影は、画像の内部におけるカプラ画素位置を表す、ことを含むこともできる。カプラ位置は、カプラ画素位置に基づいている。
【0007】
いくつかの例では、本方法は、データ処理ハードウェアによって、最短距離に関連付けられた3D点と、道路平面との間の距離に基づいて、カプラ高さを求めることをさらに含む。カプラ位置は、カプラ高さを含む。
【0008】
本方法は、データ処理ハードウェアによって、3D点群に基づいて、トレーラカプラとカメラとの間の第1の距離を求めることと、データ処理ハードウェアによって、第1の距離からカメラと車両ヒッチボールとの間の長手方向距離を差し引いたものに基づいて、トレーラカプラと車両牽引ボールとの間の第2の距離を求めることとをさらに含むことができる。経路は、第2の距離に基づいている。
【0009】
いくつかの実装形態では、関心領域の点群を決定することは、視覚オドメトリ(VO)アルゴリズム、simultaneous localization and mapping(SLAM)アルゴリズム、およびstructure from motion(SfM)アルゴリズムのうちの1つを実行することを含む。
【0010】
カメラ平面を決定することは、データ処理ハードウェアによって、受信した画像から後方カメラの少なくとも3つの3次元位置を特定することと、データ処理ハードウェアによって、少なくとも3つの3次元位置に基づいてカメラ平面を決定することとを含むことができる。いくつかの例では、道路平面を決定することは、牽引車両を支持している道路からのカメラの高さを求めることと、カメラの高さの分だけカメラ平面をシフトさせることとを含む。
【0011】
いくつかの実装形態では、道路平面を決定することは、データ処理ハードウェアによって、道路を含む画像から少なくとも3つの特徴点を抽出することと、データ処理ハードウェアによって、3D点群の点をそれぞれの特徴点に関連付けることとを含む。さらに、道路平面を決定することは、データ処理ハードウェアによって、少なくとも3つの特徴点に関連付けられた、3D点群の少なくとも3つの点に基づいて道路平面を決定することを含むことができる。いくつかの例では、カメラ平面を決定することは、データ処理ハードウェアによって、道路からのカメラの高さを求めることと、データ処理ハードウェアによって、カメラの高さの分だけ道路平面をシフトさせることとを含む。
【0012】
本開示の別の態様は、トレーラのトレーラカプラを検出および位置特定するためのシステムを提供する。本システムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行された場合に、データ処理ハードウェアに上記の方法を含む所定の動作を実行させる命令を格納している。
【0013】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、明細書および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
【
図1】トレーラの前方に配置された例示的な牽引車両の概略上面図である。
【
図2】
図1に示されている例示的な牽引車両の概略図である。
【
図3】例示的な牽引車両と、
図1の選択されたトレーラとの概略側面図である。
【
図4A】捕捉された画像および関心領域を示す、牽引車両およびトレーラの斜視図である。
【
図4B】捕捉された画像の内部における関心領域に関する半高密度または高密度の点群の斜視図である。
【
図5A】捕捉された画像と、関心領域と、最小関心領域とを示す、牽引車両およびトレーラの斜視図である。
【
図5B】捕捉された画像と、関心領域と、最小関心領域とを示す、牽引車両およびトレーラの斜視図である。
【
図6】牽引車両の後ろのトレーラに関連付けられたトレーラヒッチのカプラを検出および位置特定するための各動作の例示的な構成の概略図である。
【0015】
複数の異なる図面における同様の参照符号は、同様の要素を指す。
【0016】
詳細な説明
図1および
図2を参照すると、限定するわけではないが、自動車、クロスオーバー、トラック、バン、多目的スポーツ車(SUV)、レクリエーション用車両(RV)のような牽引車両100は、トレーラ200にヒッチングされるように、かつトレーラ200を牽引するように構成可能である。牽引車両100は、車両ヒッチボール122を有する牽引車両ヒッチ120を介してトレーラ200に接続され、車両ヒッチボール122は、トレーラカプラ212を有するトレーラヒッチ210に接続される。ユーザディスプレイ132のようなユーザインターフェース130上に表示される、トレーラ200,200a~cの1つまたは複数の表現136,136a~cから識別されるトレーラ200に向かって自律的に後退することができる牽引車両100を有することが望まれている。さらに、トレーラ200に関連付けられたカプラ212の位置をリアルタイムで追跡および推定するアルゴリズムを実行することが可能な、牽引車両100によって支持されているカプラ位置推定および追跡システム160を有することも望まれている。したがって、カプラ位置推定および追跡システム160は、牽引車両100をトレーラ200にヒッチングさせるプロセスを自動化する。カプラ位置推定および追跡システム160は、単一のカメラ142aを使用すると共に、以下のセンサのうちの少なくとも1つ、すなわち、車輪エンコーダ144、加速度および車輪角度センサ146、ならびに慣性測定ユニット(IMU)148のうちの少なくとも1つを使用して、画像143の内部における画素座標でのカプラ212の位置と、3次元(3D)世界におけるカプラ位置とを特定することができる。
【0017】
図1~
図5を参照すると、いくつかの実装形態では、牽引車両100の運転者は、牽引車両100の後ろに配置されたトレーラ200を牽引することを希望する。牽引車両100は、選択されたトレーラ200,200a~cの表現に関連付けられた、運転者による選択134の指示を受信するように構成可能である。いくつかの例では、運転者が、選択されたトレーラ200,200a~cに向かって牽引車両100を操縦し、その一方で、他の例では、牽引車両100が、選択されたトレーラ200,200a~cに向かって自律的に運転される。牽引車両100は、例えば、x,y,およびz成分を有する運転コマンドに基づいて路面10にわたって牽引車両100を操縦する運転システム110を含むことができる。図示のように、運転システム110は、右前輪112,112aと、左前輪112,112bと、右後輪112,112cと、左後輪112,112dとを含む。運転システム110は、他の車輪構成を含むこともできる。運転システム110は、それぞれの車輪112,112a~dに関連付けられたブレーキを含む制動システム114と、牽引車両100の速度および方向を調整するように構成された加速システム116とを含むこともできる。さらに、運転システム110は、サスペンションシステム118を含むことができ、このサスペンションシステム118は、それぞれの車輪112,112a~dに関連付けられたタイヤ、タイヤ空気、スプリング、ショックアブソーバ、およびリンク機構を含み、このリンク機構は、牽引車両100を牽引車両100の車輪112,112a~dに接続し、かつ牽引車両100と車輪112,112a~dとの間の相対運動を可能にする。サスペンションシステム118は、牽引車両100の高さを調整して、牽引車両ヒッチ120(例えば、車両ヒッチボール122)を、トレーラヒッチ210(例えば、トレーラヒッチカプラ212)と位置合わせすることができるように構成可能であり、これにより、牽引車両100とトレーラ200との間の自律的な接続が可能になる。
【0018】
牽引車両100は、牽引車両100によって定義される3つの相互に垂直な軸、すなわち横軸X、前後軸Y、および中心垂直軸Zに対して相対的な、複数の異なる運動を組み合わせることによって、路面にわたって移動することができる。横軸Xは、牽引車両100の右側と左側との間に延在している。前後軸Yに沿った前進運転方向は、Fとして指定され、前進運動とも称される。さらに、前後方向Yに沿った後進運転方向または後退運転方向は、Rとして指定され、後退運動とも称される。サスペンションシステム118が牽引車両100のサスペンションを調整する際には、牽引車両100を、X軸および/またはY軸を中心にして傾斜させるか、または中心垂直軸Zに沿って移動させることができる。
【0019】
牽引車両100は、ユーザインターフェース130を含むことができる。ユーザインターフェース130は、1つまたは複数の入力機構またはスクリーンディスプレイ132(例えば、タッチスクリーンディスプレイ)を介して運転者から1つまたは複数のユーザコマンドを受信し、かつ/または運転者への1つまたは複数の通知を表示する。ユーザインターフェース130は、車両制御装置150と通信しており、車両制御装置150自体は、センサシステム140と通信する。いくつかの例では、ユーザインターフェース130は、牽引車両100の周囲環境の画像を表示して、1つまたは複数の挙動の実行を開始する1つまたは複数のコマンドが(運転者から)ユーザインターフェース130によって受信されるようにする。いくつかの例では、ユーザディスプレイ132は、牽引車両100の後ろに配置されたトレーラ200,200a~cの1つまたは複数の表現136,136a~cを表示する。この場合、運転者は、トレーラ200,200a~cの表現136,136a~cを選択し、制御装置150に、選択された表現136,136a~cのトレーラ200,200a~cに関連付けられたカプラ位置推定および追跡システム160を実行させる。いくつかの例では、ユーザディスプレイ132が、牽引車両100の後ろに配置されたトレーラ200,200a~cの1つの表現136,136a~cを表示する場合には、制御装置150は、この1つの表現136,136a~cの1つのトレーラ200,200a~cに関連付けられたカプラ位置推定および追跡システム160を、自動的に実行するか、または運転者からの、トレーラ200,200a~cに自律的に取り付けるようにとの指示に応じて実行することができる。車両制御装置150は、コンピューティングプロセッサ152上で実行可能な命令を格納することができる非一時的メモリ154(例えば、ハードディスク、フラッシュメモリ、ランダムアクセスメモリ、メモリハードウェア)と通信するコンピューティングデバイス(またはプロセッサまたはデータ処理ハードウェア)152(例えば、1つまたは複数のコンピューティングプロセッサを有する中央処理装置)を含む。
【0020】
牽引車両100は、高信頼性かつロバストな運転を提供するためのセンサシステム140を含むことができる。センサシステム140は、種々異なる種類のセンサを含むことができ、これらの種々異なる種類のセンサは、牽引車両100の周囲環境の知覚情報を作成するために別々にまたは他のセンサと一緒に使用可能である。周囲環境の知覚情報は、センサシステム140によって検出された物体および障害物に基づいて運転者がインテリジェントな決定を行うことを支援するために使用されるか、または牽引車両100の自律的な運転中に使用される。センサシステム140は、1つまたは複数のカメラ142を含むことができる。いくつかの実装形態では、牽引車両100は、後方運転経路のビューを有する画像143を牽引車両100に提供するために据え付けられた後方カメラ142aを含む。後方カメラ142aは、広範囲のパノラマ画像または半球画像143を作成するために意図された強力な視覚的歪みを生成する超広角レンズを含む魚眼レンズを含むことができる。魚眼カメラは、非常に広い画角を有する画像143を捕捉する。さらに、魚眼カメラによって捕捉された画像143は、特徴的な凸状の非直線的な外観を有する。牽引車両100の後方運転経路の画像143を捕捉するために、他の種類のカメラを使用してもよい。
【0021】
いくつかの例では、センサシステム140は、牽引車両100の1つまたは複数の車輪112,112a~dに関連付けられた1つまたは複数の車輪エンコーダ144も含む。車輪エンコーダ144は、車輪の角度位置または運動をアナログまたはデジタルの出力信号に変換する電気機械的な装置である。したがって、車輪エンコーダ144は、車輪112,112a~dが走行した速度および距離を求める。
【0022】
センサシステム140は、牽引車両100に関連付けられた1つまたは複数の加速度および車輪角度センサ146を含むこともできる。加速度および車輪角度センサ146は、横軸Xおよび前後軸Yの方向における牽引車両100の加速度を決定する。
【0023】
センサシステム140は、車両の線形加速度(1つまたは複数の加速度計を使用して)および回転速度(1つまたは複数のジャイロスコープを使用して)を測定するように構成されたIMU(慣性測定ユニット)148を含むこともできる。いくつかの例では、IMU148は、牽引車両100の方位基準も決定する。したがって、IMU148は、牽引車両100のピッチ、ロール、およびヨーを決定する。
【0024】
センサシステム140は、限定するわけではないが、レーダー、ソナー、LIDAR(Light Detection and Rangingであり、散乱光の特性を測定して、遠方の目標の距離および/または他の情報を検出する光学リモートセンシングを伴うことが可能)、LADAR(Laser Detection and Ranging)、超音波センサ、ステレオカメラ等のような、他のセンサを含むことができる。車輪エンコーダ144と、加速度および車輪角度センサ146と、IMU148と、任意の他のセンサとは、センサデータ145を制御装置150に、すなわちカプラ位置推定および追跡システム160に出力する。
【0025】
車両制御装置150は、カプラ位置推定および追跡システム160を実行し、このカプラ位置推定および追跡システム160は、後方カメラ142aから画像143を受信し、他のセンサ144,146,148のうちの少なくとも1つからセンサデータ145を受信し、これらの受信したデータに基づいて、カプラ位置推定および追跡システム160は、トレーラ200、例えば、ユーザインターフェース130を介して運転者によって識別されたトレーラ200,200a~cの位置、具体的には、トレーラ200に関連付けられたカプラ212のカプラ位置LTCを特定する。より具体的には、カプラ位置推定および追跡システム160は、受信した画像143の内部におけるカプラ212の画素位置を特定する。さらに、カプラ位置推定および追跡システム160は、3次元(3D)座標系およびグローバル座標系におけるカプラ212の3D位置LTCを特定する。いくつかの例では、カプラ位置推定および追跡システム160は、3D座標系およびグローバル座標系における、路面10に対するカプラ212のカプラ高さHTCも求める。カプラ位置推定および追跡システム160は、牽引車両100およびトレーラ200のためのヒッチングおよび位置合わせのプロセスを自動化する反復アルゴリズムを含む。
【0026】
カプラ位置推定および追跡システム160は、後方カメラ142aから画像143を受信する。カプラ位置推定および追跡システム160は、1つまたは2つの画像143のみを分析するのではなく、カメラ142aから受信した画像143のすべてのシーケンスを分析するので、例えば、カプラ位置推定および追跡システム160は、カプラ212のカプラ位置LTCに関する決定の実行時によりロバストになる。
【0027】
いくつかの実装形態では、カプラ位置推定および追跡システム160は、受信した画像143をディスプレイ132に表示するようにユーザインターフェース130に指示し、表示された画像143の内部において関心領域(ROI)300を選択することをユーザに要求する(
図4Aおよび
図4B)。ROI300は、カプラ212を含んでいる境界枠である。他の例では、カプラ位置推定および追跡システム160は、カプラ識別アルゴリズムを含むことができ、このカプラ識別アルゴリズムは、画像143の内部におけるカプラ212を識別し、ROI300である境界枠によってカプラ212を境界付ける。
【0028】
カプラ位置推定および追跡システム160は、ROI300の内部にある物体、例えばカプラ212の半高密度/高密度の点群を生成する(
図4B)。点群は、3D空間内のデータ点の集合であり、より具体的には、点群は、物体の外側表面上の多数の点を含む。
【0029】
カプラ位置推定および追跡システム160は、1つまたは複数の技術を使用して、点群400内のカプラ212を位置特定することができる。これらの技術の中には、限定するわけではないが、視覚オドメトリ(VO)、Simultaneous Localization and Mapping(SLAM)、およびStructure from Motion(SfM)が含まれる。VO、SLAM、およびSfMフレームワークは、十分に確立された理論であり、牽引車両100は、自己生成された3D点群地図においてリアルタイムで位置特定を行うことが可能となる。VO法は、カメラ142aから受信した画像143を分析することによって、トレーラ200、カメラ142a、カプラ212、または牽引バー214の位置および向きを特定する方法である。VO法は、画像の特徴点を抽出し、画像シーケンスにおいてこれらの特徴点を追跡することができる。特徴点の例には、限定するわけではないが、トレーラ200、カプラ212、または牽引バー214上の縁部、角部、または染みが含まれていてもよい。VO法は、画像シーケンスにおける画素強度を視覚入力として直接的に使用することもできる。SLAM法は、1つまたは複数の目標を同時に追跡し続けながら、未知の周囲環境の地図を構築または更新する。換言すれば、SLAM法は、受信した画像143を外部情報の唯一のソースとして使用して、牽引車両100およびカメラ142aの位置および向きを確立すると同時に、ROI300内の物体の表現を構築する。SfM法は、受信した画像143(すなわち、2D画像)に基づいて、ROI300内の物体の3D構造を推定する。SfM法は、カメラ142が捕捉した画像143のシーケンスに基づいて、カメラ142aおよび牽引車両100の姿勢を推定することができる。
【0030】
いくつかの実装形態では、カプラ位置推定および追跡システム160は、VO法、SLAM法、またはSfM法を実行する前に初期化される。第1の初期化方法の間、カプラ位置推定および追跡システム160は、運転システム110に牽引車両100を、前後軸Yに沿った直進方向に、例えば前進運転方向Fまたは後退運転方向Rに、事前に規定された距離だけ移動させる命令またはコマンド190を、運転システム110に送信する。いくつかの例では、事前に規定された距離は、数センチメートルである。事前に規定された距離は、5cm~50cmの間であってもよい。前後軸Yに沿った前進運転移動Fおよび後退運転移動RによってSLAMまたはSfMが初期化される。さらに、カプラ位置推定および追跡システム160は、前進運転移動Fおよび後退運転移動Rに沿ってトラッカーアルゴリズムを実行して、画像143の内部における、運転者によって提供された、またはカプラ位置推定および追跡システム160によって決定されたROI300を更新する。牽引車両100が後退方向Rに移動すると、トレーラ200、牽引バー214、およびカプラ212の透視図およびサイズが、画像143内において変化する。したがって、トラッカーアルゴリズムは、前後軸Yに沿った前進運転移動Fおよび後退運転移動Rの最中にカメラ142aから受信した新しい画像143に基づいてROI300を更新する。ROI300は、カプラ212を含み、したがって、ROI300内の特徴点または画素強度が、カプラ位置推定および追跡システム160によって追跡される。カプラ位置推定および追跡システム160は、画像143のうちのROI300の部分のみを分析するので、ROI300は、画像143内のカプラ212ではない物体をフィルタアウトするために使用される。いくつかの例では、カプラ位置推定および追跡システム160は、ROI300内の2次元(2D)特徴点を識別することによって、カプラ212の視覚的トラッカーを構築する。次いで、カプラ位置推定および追跡システム160は、点群地図の内部において、識別された2D特徴点に対応する3D点を識別する。したがって、(カプラ位置推定および追跡システム160によって実行される)トラッカーアルゴリズムが反復されるたびに、カプラ位置推定および追跡システム160は、選択された群点402を2Dカメラ画像143上に投影する。次いで、カプラ位置推定および追跡システム160は、投影された2D点を含んでいる最小ROI340を構築する。この場合、カプラ位置推定および追跡システム160は、牽引車両が移動している間にROI300を更新し、以前に選択された群点402を含んでいる最小ROI340を生成する。
【0031】
いくつかの実装形態では、運転システム110に、牽引車両100をROI300の中心に向かって事前に規定された距離だけ移動させる命令190を、運転システム110に送信することによって、カプラ位置推定および追跡システム160を初期化することができる。いくつかの例では、事前に規定された距離は、数センチメートルであり、例えば5cm~50cmである。この場合、カプラ位置推定および追跡システム160は、シーケンスの最中にROI300を更新するか、または牽引車両100の操縦中に画像143を受信する。
【0032】
いくつかの実装形態では、カプラ位置推定および追跡システム160は、3D点群地図のスケールを決定する。単眼カメラのみを使用して3D点群地図を生成した場合には、この3D点群地図は、スケールの曖昧性を被ることとなり、すなわち、単眼カメラのみを用いて作成された地図は、1つのスケールまでしか復元できない。しかしながら、カプラ位置推定および追跡システム160が地図のスケールを把握していない場合でも、カプラ位置推定および追跡システム160は、VO、SLAM、またはSfMアルゴリズムを車両センサデータ145と融合することによって、地図のスケールを決定することができる。別の例では、カプラ位置推定および追跡システム160は、3D点群地
図400内の道路平面320に基づいて地図のスケールを決定する。カプラ位置推定および追跡システム160は、地
図400内におけるカメラ位置から道路平面320までの距離を求める。地
図400のスケールは、(カメラデータ141からの)カメラ142aの高さを、地
図400内におけるカメラ位置から道路平面320までの計算された距離で割ったものによって与えられる。3D点群地図は、地
図400内における構造同士の距離に関する詳細を提供することなく、周囲環境の構造を表現する。したがって、カプラ位置推定および追跡システム160が、距離情報を含む地
図400のスケールを決定し、これにより、カプラ位置推定および追跡システム160は、世界座標におけるカプラ212の位置を特定することが可能となる。
【0033】
カプラ位置推定および追跡システム160は、カメラ平面310と、道路平面320とを決定するように構成された平面決定モジュール162を含む。いくつかの実装形態では、平面決定モジュール162は、カメラ142aが沿って移動するカメラ平面310と、道路平面320とを決定する。カメラ平面310を決定するために、平面決定モジュール162は、カメラ142aからカメラデータ141として受信した、カメラ142aの少なくとも3つの以前の3D位置を使用する。カメラデータ141は、内因性パラメータ(例えば、焦点距離、イメージセンサフォーマット、および主点)と、外因性パラメータ(例えば、3D世界座標から3Dカメラ座標への座標系変換、換言すれば、外因性パラメータは、世界座標におけるカメラ中心の位置と、カメラの向きとを定義する)とを含むことができる。さらに、カメラデータ141は、地面に対するカメラ142aの最小/最大/平均高さ(例えば、車両の積載時および非積載時)と、カメラ142aと車両ヒッチボール122との間の長手方向距離とを含むことができる。平面決定モジュール162は、カメラ142aの少なくとも3つの以前の3D位置の3つの点の3D位置に基づいて、カメラ平面310を決定する。いくつかの例では、カプラ位置推定および追跡システム160は、カメラ平面310に基づいて道路平面320を決定する。いくつかの実装形態では、平面決定モジュール162は、カメラ平面310およびカメラデータ141に基づいて道路平面320を決定する。なぜなら、道路平面320は、(カメラ情報141において提供される)地面からのカメラ142aの高さの分だけカメラ平面310をシフトさせたものだからである。この手順は、カメラ平面310を決定するために使用される3つの3D点が、同一線上にある場合に有用であり、この場合には、これらの3D点によって生成される線と同一平面上にあるカメラ平面310が、無数に存在する。
【0034】
道路平面320を決定するために、平面決定モジュール162は、道路に関連付けられた捕捉された2D画像143から少なくとも3つの特徴点を抽出する。続いて、カプラ位置推定および追跡システム160は、点群400の内部におけるこれら3つの特徴点の3D位置を特定し、次いで、カプラ位置推定および追跡システム160は、これら3つの特徴点に基づいて道路平面320を計算する。いくつかの例では、カプラ位置推定および追跡システム160は、道路平面320に基づいてカメラ平面310を決定する。いくつかの実装形態では、カプラ位置推定および追跡システム160は、道路平面320およびカメラ情報141に基づいてカメラ平面を決定する。なぜなら、カメラ平面310は、(カメラ情報141によって提供される)地面からのカメラ142aの高さの分だけ道路平面320をシフトさせたものだからである。
【0035】
平面決定モジュール162は、牽引車両100が後退方向Rに自律的に移動しているときに、平面310,320をリアルタイムで決定および更新することができるか、または道路が平坦であることを平面決定モジュール162が判定した場合には、カプラ位置推定および追跡システム160が、平面310,320を一度だけ決定することができる。上記の方法は、カメラ平面310または道路平面320を決定するために3つの点を使用する。しかしながら、いくつかの例では、平面決定モジュール162は、平面310,320を決定するために4つ以上の点に依存してもよい。この場合には、カプラ位置推定および追跡システム160は、平面310,320を決定するために、最小二乗法、ランダムサンプルコンセンサス(RANSAC)法、サポートベクターマシン(SVM)法、またはこれらのアルゴリズムの任意の変形形態を使用する。平面310,320を決定するために4つ以上の点を使用することによって、平面決定モジュール162は、外れ値に対するロバスト性を高める。
【0036】
カプラ位置推定および追跡システム160は、ROI300のサイズを縮小するように構成された点群縮小モジュール164を含む。いくつかの実装形態では、カプラ位置推定および追跡システム160は、画像143内における、ROI300に含まれている2D点に対応する3D群点402を選択する。次いで、カプラ位置推定および追跡システム160は、2つの平面(道路平面320およびカメラ平面310)の間にある選択された3D群点402を使用する。2つの平面310,320の間にある選択された3D群点402は、集合Mとして示される。
【0037】
いくつかの例では、カプラ位置推定および追跡システム160は、M内の点の集合(すなわち、2つの平面310,320の間にある選択された3D群点402)をカメラ平面310上または道路平面320上に投影する。抽出されて投影された点は、集合Jとして示される。続いて、カプラ位置推定および追跡システム160は、集合J内のそれぞれの点からカメラ142aの中心までの距離を求める。
【0038】
いくつかの実装形態では、第1の初期化方法が使用される場合に、カプラ位置推定および追跡システム160は、M内の点402を現在のカメラ2D画像143上に投影することによって最小ROI340を更新する。次いで、カプラ位置推定および追跡システム160は、カメラフレーム143(2D画像)内において、投影された点を含んでいる更新された最小枠340を決定する。時間が変化した場合、または牽引車両100が移動した場合には、カメラ142aに対する3D点402の透視図も位置に関して変化するので、カプラ位置推定および追跡システム160は、最小ROI340を更新する。したがって、集合M内の点402を画像143上に投影することによって、最小ROI340が更新される。
【0039】
カプラ位置推定および追跡システム160は、カプラ212を検出するように、かつカプラ212の位置L
TCを特定するように構成されたカプラ検出モジュール166を含む。カプラ位置推定および追跡システム160は、集合J(すなわち、抽出されて投影された点)の中から点J’を選択する。この点J’は、カメラ142aとの間の距離が最短である、集合Jの中からの点を示す。前述したように、集合Jは、カメラ平面310上または道路平面320上への、集合M内の点402の投影である。したがって、集合Jがカメラ平面310上に投影される場合には、点J’は、カメラ中心に最も近い点である(
図3に図示)。しかしながら、集合Jが道路平面320上に投影される場合には、点J’は、道路平面320上へのカメラ中心の投影に最も近い点となる。いくつかの例では、J’に2つ以上の点が含まれている場合には、カプラ位置推定および追跡システム160は、これらの点J’の平均値または中央値を決定する。カプラ位置推定および追跡システム160は、集合Mの中からJ’に関連付けられた点を決定し、集合Mの中から決定された、画像内におけるカプラ212の画素位置を示すこの点を、2D画像143上に投影する。
【0040】
いくつかの実装形態では、構成可能な整数パラメータNが与えられた場合に、カプラ位置推定および追跡システム160が、集合J内における、カメラ中心(または路面上へのカメラ中心の投影)に最も近いN個の点を選択することによって、カプラ検出モジュール166が、カプラ位置を特定する。これらの点の集合は、J*として示される。カプラ検出モジュール166は、点の集合J*の平均値または中央値を決定する。集合M内の、J*に関連付けられて画像143上に投影された点は、画像上におけるトレーラカプラの位置の推定を表す。
【0041】
いくつかの実装形態では、カプラ検出モジュール166は、点群400内においてカプラ212を発見するための識別アルゴリズムを実行することによって、カプラ位置を特定する。識別アルゴリズムは、画像143内においてカプラを発見することを試みるわけではない。識別アルゴリズムは、点群(3D世界)内においてカプラの形状を探索するのである。このステップを簡略化するための他のオプションは、集合J内の点を使用してカメラの移動平面(または道路平面)において識別アルゴリズムを実行することである。
【0042】
カプラ位置推定および追跡システム160は、トレーラカプラ212と車両牽引ボール122との間の距離D
CCを決定するように構成された距離推定モジュール168を含む(
図3を参照)。距離推定モジュール168は、カメラ移動平面310に投影された(カメラ142aまでの最短距離である)J’と、カメラ中心(または道路平面320上に投影される場合には、カメラ中心の投影)との間の第1の距離D
CJを求める。距離推定モジュール168は、第1の距離D
CJからカメラ142aと車両ヒッチボール122との間の長手方向距離D
VCCを差し引いたものに基づいて、カプラ212とヒッチボール122との間の第2の距離D
CCを求める。第2の距離は、トレーラカプラ212と車両牽引ボール122との間の距離D
CCを示す。
【0043】
カプラ位置推定および追跡システム160は、路面10に対するカプラ212の高さHTCを決定するカプラ高さモジュール169を含む。例えば、カプラ高さモジュール169は、カプラ検出モジュール166によって特定されたカプラ位置LTCと、道路平面320との間の距離を求めることができる。カプラ高さモジュール169は、カプラ高さHTCを求めるために、道路平面320とカプラとの間の最短距離を使用することができる(カプラが点群内の2つ以上の点によって表現されている場合には、このカプラを表現するために平均点を使用する)。
【0044】
カプラ位置推定および追跡システム160が、グローバル座標系におけるトレーラカプラ212と車両牽引ボール122との間の距離DCCと、カプラ高さHTCとを求めると、カプラ位置推定および追跡システム160は、経路の計画を開始するように経路計画システム170に命令することができる。制御装置150は、経路計画システム170を実行する。経路計画システム170は、牽引車両100をトレーラ200に向かって後退方向Rに自律的に運転させて、トレーラ200と自律的に接続されるようにする経路を決定する。
【0045】
牽引車両100は、計画された経路に沿って自律的に操縦しているので、経路計画システム170は、カプラ位置推定および追跡システム160およびセンサシステム140からの更新された情報の継続的な受信に基づいて継続的に経路を更新する。いくつかの例では、物体検出システムが、計画された経路に沿って1つまたは複数の物体を識別し、1つまたは複数の物体の位置に関係している経路計画システム170のデータを送信する。この場合、経路計画システム170は、1つまたは複数の物体を回避する一方で、経路を追従するための所定の操縦も実行するように、計画された経路を再計算する。いくつかの例では、経路計画システムは、衝突の確率を決定し、衝突の確率が所定のしきい値を超えている場合には、経路計画システム170が、経路を調整する。
【0046】
経路計画システム170が、計画された経路を決定すると、車両制御装置150は、運転者支援システム180を実行する。運転者支援システム180自体は、経路追従挙動182を含む。経路追従挙動182は、計画された経路を受信し、この計画された経路に沿って牽引車両100を自律的に運転させるコマンド190を運転システム110に送信する1つまたは複数の挙動182a~cを実行し、これにより、牽引車両100を自律的にトレーラ200に接続させる。
【0047】
経路追従挙動182は、制動挙動182aと、速度挙動182bと、操舵挙動182cとを含む。いくつかの例では、経路追従挙動182は、ヒッチ接続挙動と、サスペンション調整挙動も含む。それぞれの挙動182a~182cは、牽引車両100に、とりわけ後退運転、特定の角度での旋回、制動、加速、減速のような行動をとらせる。車両制御装置150は、運転システム110を制御することによって、より具体的には、運転システム110にコマンド190を発行することによって、牽引車両100を路面にわたって任意の方向に操縦することができる。
【0048】
制動挙動182aは、計画された経路に基づいて牽引車両100を停止または減速させるために実行可能である。制動挙動182aは、運転システム110に、例えば制動システム(図示せず)に、信号またはコマンド190を送信して、牽引車両100を停止させるか、または牽引車両100の速度を低下させる。
【0049】
速度挙動182bは、計画された経路に基づいて加速または減速を行うことによって牽引車両100の速度を変更するために実行可能である。速度挙動182bは、減速させる場合には制動システム114に、または加速させる場合には加速システム116に、信号またはコマンド190を送信する。
【0050】
操舵挙動182cは、計画された経路に基づいて牽引車両100の方向を変更するために実行可能である。したがって、操舵挙動182cは、操舵角度を示す信号またはコマンド190を加速システム116に送信して、運転システム110に方向を変更させる。
【0051】
前述したように、カプラ位置推定および追跡システム160は、トレーラカプラ212の位置をリアルタイムで特定し、かつカプラ212をリアルタイムで追跡する。さらに、特定された位置は、受信した画像143の内部と、グローバル参照フレーム内との画素に基づいている。カプラ位置推定および追跡システム160は、カプラ212を発見するために複数の距離を使用し、カメラ移動平面310と地面平面320との間に存在していない群点402をフィルタアウトするように構成されている。したがって、カプラ位置推定および追跡システム160は、リアルタイム実装のために実行可能である。
【0052】
カプラ位置推定および追跡システム160は、後方カメラ142aから画像143を受信し、したがって、カプラ位置推定および追跡システム160は、ヒッチボール122またはトレーラカプラ212のサイズに関する事前の知識を必要としない。さらに、カプラ位置推定および追跡システム160は、画像の内部においてカプラ212の位置を特定するのではなく、その代わりに、ROI300を決定し、次いで、3D点群400の内部においてカプラ位置212を特定する。カプラ位置推定および追跡システム160は、GPUまたはグラフィックアクセラレータの使用の有無にかかわらず、標準的なCPUを使用する。
【0053】
図6は、
図1~
図5に記載されているシステムを使用して、牽引車両100の後ろに配置されたトレーラ200に関連付けられたトレーラヒッチ210のカプラ212を検出および位置特定する方法600の各動作の例示的な構成を提供する。
【0054】
ブロック602において、方法600は、データ処理ハードウェア152において、牽引車両100の後部位置に配置されていて、かつデータ処理ハードウェア152と通信するカメラ142aから、1つまたは複数の画像143を受信することを含む。ブロック604において、方法600は、データ処理ハードウェア152によって、1つまたは複数の画像143の内部において関心領域(ROI)300を決定することを含む。ROI300は、トレーラカプラ212の表現を含む。ブロック606において、方法600は、データ処理ハードウェア152によって、受信した画像143に基づいて、カメラが移動するカメラ平面310を決定することを含む。ブロック608において、方法600は、データ処理ハードウェア152によって、受信した画像143に基づいて道路平面320を決定することを含む。ブロック610において、方法600は、データ処理ハードウェア152によって、ROI300の内側にあって、かつカメラ平面310および道路平面320の内部にある物体を表す3次元(3D)点群400を決定することを含む。ブロック612において、方法600は、データ処理ハードウェア152において、データ処理ハードウェア152と通信する車輪エンコーダ144、加速度および車輪角度センサ146、ならびに慣性測定ユニット148のうちの少なくとも1つから、センサデータ145を受信することを含む。ブロック614において、方法600は、データ処理ハードウェア152において、3D点群400およびセンサデータ145に基づいて、トレーラカプラ212のカプラ位置LTCを特定することを含む。カプラ位置LTCは、現実世界座標にある。ブロック616において、方法600は、牽引車両100を経路に沿ってカプラ位置LTCに向かって後退方向Rに自律的に運転させる命令190を、データ処理ハードウェア152から運転システム110に送信することを含む。
【0055】
いくつかの実装形態では、画像143の内部においてROI300を決定することは、受信した画像143を表示するようにとの命令を、データ処理ハードウェア152からディスプレイ132に送信することと、データ処理ハードウェア152において、ROI300のユーザ選択134を受信することとを含む。
【0056】
方法600は、データ処理ハードウェア152によって、3D点群400に関連付けられた点402をカメラ平面310上または道路平面320上に投影することを含むこともできる。方法600は、データ処理ハードウェア152によって、それぞれの点とカメラ142aとの間の距離を求めることを含むこともできる。3D点群400に関連付けられた点がカメラ平面310上に投影される場合には、方法600は、それぞれの点とカメラ142aの中心との間の距離を求めることを含む。3D点群400に関連付けられた点402が道路平面320上に投影される場合には、方法600は、それぞれの点と、道路平面上へのカメラの中心の投影との間の距離を求めることを含む。方法600は、データ処理ハードウェア152によって、決定された距離に基づいて最短距離を決定することを含むこともできる。カメラ中心までの最短距離に関連付けられた3D点の、受信した画像143上への投影は、画像143の内部におけるカプラ画素位置を表す。カプラ位置LTCは、カプラ画素位置に基づいている。いくつかの例では、方法600は、データ処理ハードウェア152によって、最短距離に関連付けられた3D点と、道路平面320との間の距離に基づいて、カプラ高さHTCを求めることを含む。カプラ位置LTCは、カプラ高さHTCを含む。
【0057】
いくつかの実装形態では、方法600は、データ処理ハードウェア152によって、3D点群400に基づいて、トレーラカプラ212とカメラ142aとの間の第1の距離DCJを求めることを含む。方法600は、データ処理ハードウェア152によって、第1の距離DCJからカメラ142aと車両ヒッチボール122との間の長手方向距離DVCCを差し引いたものに基づいて、トレーラカプラ212と車両牽引ボール122との間の第2の距離DCCを求めることも含む。経路は、第2の距離DCCに基づいている。
【0058】
いくつかの例では、ROI300の3D点群400を決定することは、視覚オドメトリ(VO)アルゴリズム、Simultaneous Localization and Mapping(SLAM)アルゴリズム、およびStructure from Motion(SfM)アルゴリズムのうちの1つを実行することを含む。
【0059】
いくつかの実装形態では、カメラ平面310を決定することは、受信した画像143から後方カメラ142aの少なくとも3つの3次元位置を特定することと、少なくとも3つの3次元位置に基づいてカメラ平面310を決定することとを含む。道路平面320を決定することは、牽引車両を支持している道路からのカメラの高さを求めることと、カメラ142aの高さの分だけカメラ平面310を道路10に向かってシフトさせることとを含むことができる。
【0060】
いくつかの例では、道路平面を決定することは、路面10を含む画像143から少なくとも3つの特徴点を抽出することと、3D点群400の点をそれぞれの特徴点に関連付けることと、少なくとも3つの特徴点に関連付けられた、3D点群の少なくとも3つの点に基づいて道路平面を決定することとを含む。いくつかの例では、カメラ平面を決定することは、道路からのカメラの高さを求めることと、カメラの高さの分だけ道路平面をシフトさせることとを含む。
【0061】
本明細書に記載されているシステムおよび技術の種々の実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせの形態で実現可能である。これらの種々の実装形態は、プログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムの形態での実装を含むことができ、このプログラマブルシステムは、ストレージシステムからデータおよび命令を受信し、かつストレージシステムにデータおよび命令を送信するために結合された、特別であってもよいし汎用であってもよい少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。
【0062】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)これらのコンピュータプログラムは、プログラマブルプロセッサのための機械命令を含み、ハイレベルの手続き型プログラミング言語および/またはオブジェクト指向型プログラミング言語、および/またはアセンブリ言語/機械語の形態で実装可能である。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0063】
本明細書に記載されている主題および機能動作の実装形態は、デジタル電子回路の形態で、または本明細書に開示されている構造およびそれらの構造的な同等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアの形態で、またはそれらの1つまたは複数の組み合わせの形態で、実装可能である。さらに、本明細書に記載されている主題は、1つまたは複数のコンピュータプログラム製品として実装可能であり、すなわち、データ処理装置によって実行するための、またはデータ処理装置の動作を制御するための、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装可能である。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝搬信号をもたらす物質の組成物、またはそれらの1つまたは複数の組み合わせであり得る。「データ処理装置」、「コンピューティングデバイス」、および「コンピューティングプロセッサ」という用語は、一例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、当のコンピュータプログラムの実行環境を作成するコードを含むことができ、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組み合わせを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号であり、例えば、適切な受信機装置に送信するための情報を符号化するために生成される、機械生成の電気信号、光学信号、または電磁信号である。
【0064】
同様に、各動作は、図面において特定の順序で図示されているが、このことは、望ましい結果を達成するために、そのような動作が、図示された特定の順序または連続した順序で実行されること、または図示されたすべての動作が実行されることが必要であると理解されるべきではない。特定の状況では、マルチタスク処理および並列処理が有利である場合がある。さらに、上記の実施形態における複数の異なるシステムコンポーネントの分離は、すべての実施形態においてそのような分離が必要であると理解されるべきではなく、記載されている複数のプログラムコンポーネントおよびシステムを、一般に、単一のソフトウェア製品に一緒に組み込むことができるか、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
【0065】
複数の実装形態について説明してきた。それでもなお、本開示の思想および範囲から逸脱することなく、種々の変更を加えることができることが理解されるであろう。したがって、他の実装形態は、以下の特許請求の範囲内にある。