IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7667152電気車両充電ステーションを経由する自動ルーティング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-14
(45)【発行日】2025-04-22
(54)【発明の名称】電気車両充電ステーションを経由する自動ルーティング
(51)【国際特許分類】
   G01C 21/34 20060101AFI20250415BHJP
   B60L 15/20 20060101ALI20250415BHJP
   B60L 50/60 20190101ALI20250415BHJP
【FI】
G01C21/34
B60L15/20 J
B60L50/60
【請求項の数】 14
(21)【出願番号】P 2022525409
(86)(22)【出願日】2020-09-03
(65)【公表番号】
(43)【公表日】2023-09-26
(86)【国際出願番号】 US2020049174
(87)【国際公開番号】W WO2022050944
(87)【国際公開日】2022-03-10
【審査請求日】2023-09-04
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アレックス・ドナルドソン
(72)【発明者】
【氏名】デイヴィッド・エックス・ワン
(72)【発明者】
【氏名】コスタス・コリアス
(72)【発明者】
【氏名】シン・ウェイ・チョウ
(72)【発明者】
【氏名】ナビン・グナティールラカ
(72)【発明者】
【氏名】ジェシー・ヘッド
(72)【発明者】
【氏名】マイケル・グラハム・ウッドワード
(72)【発明者】
【氏名】イングリッド・トロロープ
(72)【発明者】
【氏名】アンドリュー・フォスター
(72)【発明者】
【氏名】イヴァン・クズネツォフ
(72)【発明者】
【氏名】スリーニバス・ゴラプディ
(72)【発明者】
【氏名】クリスティーヌ・グエン
【審査官】貞光 大樹
(56)【参考文献】
【文献】国際公開第2018/180583(WO,A1)
【文献】特開2012-19627(JP,A)
【文献】特開2013-148379(JP,A)
【文献】国際公開第2016/093118(WO,A1)
【文献】国際公開第2016/020997(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00 - 21/36
B60L 1/00 - 3/12
B60L 7/00 - 13/00
B60L 15/00 - 58/40
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサにより実行される、電気車両(EV)を出発地から目的地までナビゲートするための方法であって、前記方法が、
時間量と前記時間量の間に前記EVが受け取る充電量との間の非線形関係を決定するステップであって、前記非線形関係が前記EVの充電の関数としての充電速度を規定する充電プロファイルに基づく、ステップと、
前記出発地と前記目的地との間の複数の充電ステーションを識別するステップと、
(i) 前記複数の充電ステーションのうちの1つまたは複数を経由して前記出発地から前記目的地まで移動し、
(ii) 前記複数の充電ステーションのうちの前記1つまたは複数のそれぞれにて充電することであって、前記EVが前記複数の充電ステーションのうちの前記1つまたは複数のそれぞれにて費やされた時間量の間に決定された前記非線形関係に基づく充電量を受け取る、
ために前記EVのための最小の時間量を必要とするナビゲーションルートを決定するステップと
を含む、方法。
【請求項2】
前記ナビゲーションルートを決定するステップが、
前記複数の充電ステーションのうちの少なくともいくつかがそれぞれのノードを定義し、前記ノードの間のルートがエッジを定義するナビゲーショングラフを構築するステップであって、前記ナビゲーショングラフが前記ナビゲーションルートの決定に使用される、ステップ
を含む、請求項1に記載の方法。
【請求項3】
前記ナビゲーショングラフを構築するステップが、
前記複数の充電ステーションの各々がそれぞれのノードを表し、Nのエッジが複数の前記ノードを相互接続する、連結されたグラフを構築するステップと、
各エッジの重みであって、対応するエッジに沿った移動に関する前記重みを用いて、前記連結されたグラフの最小全域木(MST)を識別するステップと、
(a)前記エッジの重みと(b) 2つのノードの間の前記MSTに沿った経路上のエッジのそれぞれの重みの和との間の比較に基づき、前記MSTのノードの2つを直接接続するエッジを追加するステップと、
を含む、
請求項2に記載の方法。
【請求項4】
複数の前記ノードのうちの少なくともいくつかについて、
サブノードの第1のセットが前記充電ステーションに入るときの充電量を表し、
サブノードの第2のセットが前記充電ステーションを出るときの充電量を表し、
前記第1のセット内のサブノードと前記第2のセット内のサブノードとの間のエッジが充電の対応する増加に関連する時間量を定義して、
非線形関数として記述するために、対応する前記充電ステーションの表現を2部グラフとして生成するステップ
をさらに含む、請求項2または3に記載の方法。
【請求項5】
前記ナビゲーショングラフを構築するステップが、前記複数の充電ステーション内で、前記EVと互換性のある充電ステーションを選択するステップを含む、請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記ナビゲーショングラフを構築するステップが、(i)前記EVと互換性のない、および/または、(ii)十分に高い充電速度を提供することのできない充電ステーションを前記ナビゲーショングラフから除外するステップを含む、請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記EVに対するナビゲーション指示要求を受信する前に、前記ナビゲーショングラフを事前計算するステップをさらに含む、請求項2から6のいずれか一項に記載の方法。
【請求項8】
前記出発地を表す第1のノードを生成するステップと、
前記目的地を表す第2のノードを生成するステップと、
前記第1のノードと前記第2のノードとを前記ナビゲーショングラフに連結するステップと
をさらに含む、請求項2から6のいずれか一項に記載の方法。
【請求項9】
前記ナビゲーションルートを決定するステップが、A*探索アルゴリズムを前記ナビゲーショングラフに適用するステップを含む、請求項2から8のいずれか一項に記載の方法。
【請求項10】
ユーザが環境にやさしいルートを選択するためのオプションを提供するステップ、をさらに含み、
前記ナビゲーションルートを決定するステップが、エネルギー消費を最適化する前記環境にやさしいルートを生成するステップを含む、
請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記環境にやさしいルートを生成するステップが標高における変化を回避するステップを含む、請求項10に記載の方法。
【請求項12】
ユーザインターフェース画面を生成するステップであって、前記ナビゲーションルートを複数の部分に分割するセグメントであって、前記セグメントについて予測されるバッテリの充電状態に従って、様々なセグメントに対して強調表示のレベルを適用するステップを含む、ステップをさらに含む、請求項10に記載の方法。
【請求項13】
前記複数の充電ステーションのうちの1つまたは複数におけるポートの利用可能性を示すリアルタイムデータを受信するステップと、
前記受信したリアルタイムデータを考慮して前記ナビゲーションルートを自動的に更新するステップと
をさらに含む、請求項10に記載の方法。
【請求項14】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記システムに請求項1から13のいずれか一項に記載の方法を実施させる命令を記憶するコンピュータ可読記憶媒体と
を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ナビゲーション指示に関し、より詳細には、充電ステーションを必要とする電気車両のためのナビゲーション指示を生成することに関する。
【背景技術】
【0002】
本明細書で提供される背景説明は、本開示の文脈を一般的に提示するためのものである。この背景セクションにおいて説明されている範囲での現在指名されている発明者の業績、および出願時に従来技術として適格ではない可能性がある本明細書本文の態様は、本開示に対する従来技術として明示的にも暗黙的にも認められない。
【0003】
電気車両(EV)は、内燃機関を備えた従来の車両に対して多数の利点を有する。しかしながら、EVを動作させることは、特に地方における長いドライブ中に充電ステーションを位置特定することなど、運転者にとって特定の課題も提示する。ガソリンスタンドとは異なり、電気充電ステーションは、比較的少ない。さらに、ガソリンスタンドは、標準化された燃料およびノズルのタイプと、高速の給油と、車両の予測可能な航続距離とを提供するが、異なる電気充電ステーションは、各車両と常に互換性があるとは限らない様々な機器を含み、異なる充電速度は、EVの運転者に追加の遅延をもたらす可能性がある。さらに、EVの航続距離は、地形、ルートのインフラストラクチャ(一時停止の標識および信号機など)、および周囲温度などの多くの外部要因に依存する。これらの要因は、EV運転者にとって正確な旅行計画を立てることを困難にする。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示のシステムは、システムが識別することができる他の候補経路と比較して、ナビゲーションルートが、EVが電気充電ステーションにおける1回または複数回の停止で目的地に到達するのにかかる最短時間に対応するように、出発地から目的地までの電気車両(EV)のためのナビゲーションルートを生成する。この目的のために、システムは、たとえば、10%の充電容量に対して10分、15%の充電容量に対して20分などの、時間と、この時間の間に充電ステーションがEVに転送する充電量との間の非線形関係を決定する。
【0005】
ナビゲーション指示に対する要求の効率的なサービス提供を準備するために、システムは、充電ステーションがノードを定義し、エッジが充電ステーションのペア間の経路を定義するナビゲーショングラフを事前に計算することができる。「ノード」および「頂点」という用語は、本開示においては交換可能に使用される。より具体的には、システムは、充電ステーションのペア間の多数の連結を有する初期の高度に連結されたグラフを構築し、電気車両が充電ステーション間を沿って移動することができる最小全域木(MST(minimum spanning tree))を決定し、ナビゲーショングラフを定義するためにMSTに追加するための、高度に連結されたグラフの残りのエッジのサブセットを選択することができる。システムは、MST内にないエッジの選択を、このエッジがMSTに沿った間接経路よりも大幅に優れた充電ステーションのペア間の経路を定義するかどうか、たとえば、この経路が特定の事前定義されたしきい値を超える時間における改善を提供するかどうかに基づかせることができる。
【0006】
充電量と充電時間との間の非線形依存性を考慮するために、システムは、充電ステーションを表すノードのための2部グラフを生成することができる。2部グラフ内のサブノードの1つのセットは、充電ステーションにおける到着時の充電量を表すことができ、2部グラフ内のサブノードの別のセットは、充電ステーションからの出発時における充電量を表すことができ、エッジは、充電量を増加させるのにかかる時間量を表す。したがって、たとえば、40分の遅延を表すために40の重みを有するエッジを介して、第1のセット内の20%の充電レベルを表すサブノードが、第2のセット内の80%の充電レベルを表すサブノードに連結され得る。
【0007】
出発地Sから目的地Dへのナビゲーション指示を生成する要求にサービス提供するとき、システムは、出発地Sを表すノードと目的地Dを表すノードとを、事前計算されたナビゲーショングラフに追加することができる。システムは、これらの新しいノードの各々を、事前計算されたナビゲーショングラフの最大Xのノードに連結することができる。新しい連結の各々は、対応する充電ステーションへの最短経路を表すことができる。
【0008】
さらに、いくつかの実装形態におけるシステムは、EVのタイプ、充電ステーションにおいて利用可能な機器のタイプ、EVのバッテリの使用年数(ユーザがこの情報をシステムに提供することを選択した場合)などの要因を考慮して、時間量と充電量との間の非線形関係を決定または調整する。
【0009】
これらの技法の1つの態様は、電気車両を出発地(または「原点」)から目的地までナビゲートするための方法である。方法は、コンピュータ可読媒体上に記憶されたソフトウェア命令を実行するように構成された1つまたは複数のプロセッサなどの処理ハードウェアを使用して実施される。方法は、出発地と目的地との間の複数の充電ステーションを識別するステップと、EVが複数の充電ステーションのうちの1つまたは複数を経由して出発地から目的地まで移動するのに最小の時間量を必要とするナビゲーションルートを決定するステップであって、時間量と時間量の間にEVが受け取る充電量との間の非線形関係を決定するステップを含む、ステップとを含む。
【0010】
これらの技法の別の態様は、上記の方法を実施するように構成されたコンピューティングシステムである。
【図面の簡単な説明】
【0011】
図1】電気車両のためのナビゲーションルートを生成するための本開示の技法が実施され得る例示的なシステムのブロック図である。
図2】本開示の技法に従って生成された、電気充電ステーションの「デイジーチェーン」を含む例示的なナビゲーションルートを示す図である。
図3】電気車両の例示的な充電プロファイルを示す図である。
図4】反復的なルートに沿った探索(SAR(search-along-route))技法を使用するナビゲーションルートの生成を概略的に示す図である。
図5】グラフ探索技法を使用するナビゲーションルートの生成を概略的に示す図である。
図6図1のシステムにおいて実施され得る、連結グラフを使用して、1つまたは複数の充電ステーションを経由するEVのためのナビゲーション経路を生成するための例示的な方法のフロー図である。
図7A図6の方法によるナビゲーションの例示的な生成を示す図である。
図7B図6の方法によるナビゲーションの例示的な生成を示す図である。
図7C図6の方法によるナビゲーションの例示的な生成を示す図である。
図8図1のシステムにおいて実施され得る、複数の充電ステーションに基づくグラフを事前計算するための例示的な方法のフロー図である。
図9図1のシステムが事前に計算することができる例示的なグラフの断片を示す図である。
図10A図8の方法によるナビゲーションの例示的な事前計算を示す図である。
図10B図8の方法によるナビゲーションの例示的な事前計算を示す図である。
図10C図8の方法によるナビゲーションの例示的な事前計算を示す図である。
図10D図8の方法によるナビゲーションの例示的な事前計算を示す図である。
図11図1のシステムが、様々な充電を表すために、充電ステーションを表すノードについて2部グラフをどのように生成するかを示す図である。
図12A図1のシステムがEVのためのナビゲーションルートを提供するために生成することができる例示的なユーザインターフェース画面を示す図である。
図12B図1のシステムがEVのためのナビゲーションルートを提供するために生成することができる例示的なユーザインターフェース画面を示す図である。
図12C図1のシステムがEVのためのナビゲーションルートを提供するために生成することができる例示的なユーザインターフェース画面を示す図である。
図13図1のシステムにおいて実施され得る、EVのためのナビゲーションルートを生成するための例示的な方法の流れ図である。
【発明を実施するための形態】
【0012】
一般的に言えば、本開示のシステムは、電気自動車(EV)のための、1つまたは複数の電気充電ステーションを経由するナビゲーションルートを効率的に生成する。これらの技法が実装され得るシステムについて図1を参照して論じ、そのようなルートを生成するためにグラフを計算し、事前計算し、適用するための様々な技法について図2図10を参照して論じ、システムが生成することができるいくつかの例示的なユーザインターフェース(UI)について図12A図12Cを参照して論じる。
【0013】
最初に図1を参照すると、例示的なシステム100は、ネットワーク120を介してナビゲーションサーバ130(本明細書では「サーバ130」とも呼ばれる)に通信可能に結合されたクライアントコンピューティングデバイス102(本明細書では「クライアントデバイス」とも呼ばれる)を含む。ネットワーク120は、一般に、1つまたは複数の有線および/またはワイヤレス通信リンクを含むことができ、たとえば、インターネットなどのワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、携帯電話ネットワーク、または他の適切なタイプのネットワークを含み得る。
【0014】
クライアントデバイス102は、EV内に組み込まれたナビゲーションモジュールであり得る。代替的には、クライアントデバイス102は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、スマートグラスなどのウェアラブルデバイス、または別の適切なコンピューティングデバイスなどのポータブルデバイスであり得る。クライアントデバイス102は、1つまたは複数のプロセッサ(CPU)104などの処理ハードウェアと、1つまたは複数のプロセッサ104が実行することができる命令を記憶するコンピュータ可読非一時的メモリ106とを含むことができる。クライアントデバイス102はまた、全地球測位システム(GPU)モジュール112または別の適切な測位モジュールと、ネットワークインターフェース114と、ユーザインターフェース116と、入力/出力(I/O)インターフェース118とを含むことができる。クライアントデバイス102は、グラフィックス処理ユニット(GPU)などの、図1に示されていない構成要素も含み得る。
【0015】
ネットワークインターフェース114は、セルラーネットワーク、WiFiネットワーク、またはネットワーク120などの任意の他の適切なネットワークを介する通信を可能にするための、ハードウェア、ソフトウェア、および/またはファームウェアなどの1つまたは複数の通信インターフェースを含むことができる。ユーザインターフェース116は、タッチスクリーン、キーボード、マイクロフォン、カメラなどの、ユーザコマンドを受信するように構成された1つまたは複数の入力デバイスと、タッチスクリーンまたはスピーカなどの、視覚出力、聴覚出力、および/または触覚出力を提供するように構成された1つまたは複数の出力デバイスとを含むことができる。クライアントデバイス102がEV内に組み込まれている場合、ユーザインターフェース116は、車両のヘッドユニットの構成要素を含むことができる。I/Oインターフェース118は、クライアントデバイス102がそのような周辺デバイスと対話することができる様々な追加のI/O構成要素を含み得る。
【0016】
メモリ106は、非一時的メモリであり得、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、他のタイプの永続メモリなどの1つまたは複数の適切なメモリモジュールを含み得る。メモリ106は、クライアントデバイス102の1つまたは複数のプロセッサ104および/または特別な処理ユニット上で実行可能な機械可読命令を記憶することができる。メモリ106は、任意の適切なモバイルまたは汎用OSであり得るオペレーティングシステム(OS)110も記憶する。それに加えて、メモリは、ナビゲーションアプリケーション108を含む、ネットワーク120を介してデータを通信する1つまたは複数のアプリケーションを記憶することができる。データを通信することは、データを送信すること、データを受信すること、またはその両方を含むことができる。OS110は、アプリケーションがGPSモジュール112またはクライアントデバイス102の他の構成要素からの情報にアクセスすることを可能にするアプリケーションプログラミングインターフェース(API)機能を含み得る。たとえば、ナビゲーションアプリケーション108は、クライアントデバイス102の現在の地理的位置を取得するためのOS110のAPIを呼び出す命令を含むことができる。
【0017】
ナビゲーションアプリケーション108は、ユーザからのナビゲーション指示に対する要求を受信し、これらの要求をフォーマットしてナビゲーションサーバ130に送信し、ナビゲーション指示を受信して表示および/または発声することができる。それに加えて、ナビゲーションアプリケーション108は、対話型デジタル地図を表示し、たとえば、様々な地理的に配置されたコンテンツを提供することができる。図1は、ナビゲーションアプリケーション108をスタンドアロンアプリケーションとして示しているが、ナビゲーションアプリケーション108の機能はまた、クライアントデバイス102上で実行されているウェブブラウザを介してアクセス可能なオンラインサービスの形態で、クライアントデバイス102上で実行されている別のソフトウェアアプリケーションのためのプラグインまたは拡張などとして提供され得る。ナビゲーションアプリケーション108は、一般に、異なるそれぞれのオペレーティングシステムに対して異なるバージョンにおいて提供され得る。たとえば、クライアントデバイス102の製造者は、Android(商標)プラットフォーム用のナビゲーションアプリケーション108、iOS(商標)プラットフォーム用の別のSDKなどを含むソフトウェア開発キット(SDK(Software Development Kit))を提供することができる。
【0018】
ナビゲーションサーバ130は、クライアントデバイス102および他のデバイスからのナビゲーション指示に対する要求を受信および処理するために提供することができる。要求は、要求が従来の車両ではなくEVに特に関係していることを示すことができる。サーバ130は、1つまたは複数のプロセッサ132などの処理ハードウェアと、RAM、ROM、フラッシュメモリ、他のタイプの永続メモリなどの1つまたは複数の適切なメモリモジュールを有する有形の非一時的メモリであり得るメモリ134とを含む。メモリ134は、以下で論じるデータベース140~144などの様々なデータベース内に記憶されたデータを使用してナビゲーション指示に対する要求を処理し、要求されたナビゲーション指示を生成することができるルーティングエンジン136を構成するプロセッサ132上で実行可能な命令を記憶する。以下で論じるように、ルーティングエンジン136は、応答時間を短縮するために、EVのためのナビゲーショングラフを事前計算し、グラフを特定の要求に適用することもできる。命令は、EVが特定の充電ステーションにおいて過ごすべき推奨時間の量を決定するように構成された充電時間計算モジュール138も構成する。
【0019】
サーバ130は、充電ステーションに関する情報を記憶するデータベース140に通信可能に結合され得る。図3および図11を参照してより詳細に論じるように、データベース140は、充電ステーションの位置およびプロファイルを記憶することができる。いくつかの実装形態において、データベース140は、該当する場合、現在利用可能なポートの数または待ち行列のサイズなどのリアルタイムデータを記憶することもできる。
【0020】
サーバ130はまた、電気車両のプロファイルを記憶するデータベース142に通信可能に結合され得る。ユーザが、(たとえば、クライアントデバイス102上の特定の制御装置を操作するか、または特定のアプリケーションをインストールすることによって)ユーザが運転しているEVのタイプを示すユーザの意思を示した場合、サーバ130は、充電ステーションをユーザのEVによりよく一致させるように試みることができ、場合によっては、それに応じてナビゲーションルートを変更することができる。
【0021】
さらに、サーバ130は、概略地図データ、写真地図データ(たとえば、通り沿い)、および/または衛星地図データを記憶する地図データベース144に通信可能に結合され得る。地図データは、一般に、街路および道路の情報、地形データ、衛星画像、公共交通機関のルートに関する情報、企業または他の関心地点(POI(point of interest))に関する情報、様々な交通手段からの指示などのナビゲーションデータなどに対応することができる。サーバ130は、たとえば、対話型デジタル地図を生成するために、マップデータを地図タイルの形態でクライアントデバイス102に提供することができる。
【0022】
一般に、サーバ130は、任意の数の適切なデータベース、ウェブサービスなどから、地理的位置に関連する情報を受信することができる。たとえば、サーバ130は、様々な地理的領域における現在もしくは平均の気象データを含む気象データベース(図示せず)、様々な地理的領域において発生する現在もしくは一般的な自然災害を含む自然災害データベース(図示せず)、および/または道路、経路、または領域における現在または平均の車両および/もしくは歩行者の交通量を含む交通量データベースに結合され得る。
【0023】
次に、図2は、ルーティングエンジン136がクライアントデバイス102からの要求に応答して生成することができる、いくつかの電気充電ステーションのデイジーチェーンを含む例示的なナビゲーションルート200を示す。ナビゲーションルート200は、出発地Sに対応するノード202において開始し、目的地Dに対応するノード204において終結する有向グラフとして理解され得る。ナビゲーションルート200は、充電ステーションに対応する中間ノード210と、別の充電ステーションに対応する中間ノード212と、ユーザが追加したウェイポイント214とを含む。ノード202とノード210との間のエッジ220は、第1の移動セグメントを定義し、移動時間ts1に関連付けられ、ノード210とノード212との間のエッジ222は、第2の移動セグメントを定義し、移動時間ts2に関連付けられ、ノード212とノード214との間のエッジ224は、第3の移動セグメントを定義し、移動時間ts3に関連付けられ、ノード214とノード204との間のエッジ224は、第4の最後の移動セグメントを定義し、移動時間ts3に関連付けられる。さらに、ノード210および212は、それぞれ、充電時間tc1およびtc2に関連付けられる。したがって、ナビゲーションルート200の全体的な移動時間は、Ttotal=ts1+ts2+ts3+ts4+tc1+tc2である。
【0024】
図3は、たとえば、例示的なEVに関する例示的な充電プロファイルグラフ300を示す。ルーティングエンジン136は、充電量とこの量をEVのバッテリに転送するのに必要な時間量との間の非線形関係を考慮して、ルート200などのナビゲーションルートを生成することができる。特定のEVに関する例示的なプロファイル302によれば、充電速度は、たとえば、EVが20%から30%に充電するとき、または30%から40%に充電するときに上昇する。しかしながら、充電速度は、たとえば、EVが50%から60%に充電するときに低下し、EVが90%から100%に充電するときにはより急激に低下する。別のEVに関する例示的なプロファイル304は、時間と充電速度との間の概ね同様の関係を示すが、このEVは、より低い最高充電速度を達成する。
【0025】
ルーティングエンジン136は、充電ステーションがEVに関する特定のプロファイル(たとえば、プロファイル302、304)と一致するかどうかの指標を記憶することができる。したがって、充電プロファイルグラフ300は、充電ステーションならびにEVに適用可能であると理解され得る。
【0026】
次に、図4は、いくつかの実装形態において図1のシステムが使用することができる、充電ステーションをナビゲーションルートに追加するための反復的なルートに沿った探索(SAR)手法を概略的に示す。この手法によるルーティングエンジン136は、ウェイポイントWP1、WP2、WP3、およびWP4を横断するEVのためのナビゲーションルート402を選択する(ナビゲーションルート402の一部のみが示されている)。これらのウェイポイントは、たとえば、車両がある道路から別の道路に曲る場所を表すことができる。ルーティングエンジン136は、ウェイポイント間の時間または距離に基づいてナビゲーションルート402を生成し、図400内の候補ウェイポイントを横断する他の候補ルートの中からこのルートを選択する。
【0027】
次いで、ルーティングエンジン136は、EVの航続距離の終わり付近の充電ステーションを選び取る。たとえば、ルーティングエンジン136は、ウェイポイントWP1付近の充電ステーション420と、WP2付近の充電ステーション422とを識別する。両方の場合において、ルーティングエンジン136は、充電ステーションの探索を、ナビゲーションルート402から距離d以内の地理的領域に制限する。この場合、ルーティングエンジン136は、出発地または前の充電ステーションから、充電ステーション422が402からのナビゲーションルートに沿って移動するEVの航続距離以内にあると判断し、それに応じて、充電ステーション422をナビゲーションルート402に追加する。次いで、ルーティングエンジン136は、ナビゲーションルート402に沿った次の充電ステーションを配置するために、これらのステップを繰り返すことができる。この目的のために、ルーティングエンジン136は、充電ステーション422において特定の量の充電(たとえば、80%)を受け取ると想定することができる。
【0028】
ルーティングエンジン136がこの場合に使用する反復SAR技法は、半貪欲アルゴリズムであり、したがって、最適ではない解を生成する(または、場合によっては解を見つけられない)可能性がある。代替的には、ルーティングエンジン136は、以下で論じるように、充電ステーションをグラフのノードとして表し、グラフ探索技法を実装することができる。
【0029】
図5を参照すると、グラフ500は、ノードとして表される充電ステーション間の多数の潜在的な経路を含むように高度に連結される(すなわち、多数のエッジを有する)。グラフ500のエッジは、充電ステーションのペア間の経路を表し、これは、任意の複雑さであり、任意の適切な中間ウェイポイントを含むことができる。図5は、ルーティングエンジン136がナビゲーションルートを探索するときにこれらのノードを除外することができることを示すために、陰影を使用して特定のEVと互換性がない充電ステーションを表すノードを示す。したがって、たとえば、ノード510は、EVのプロファイル(図3を参照)と概ね一致するプロファイルを有する充電ステーションを表し、ノード512は、EVのプロファイルと十分に一致しないプロファイルを有する充電ステーションを表す。より具体的な例として、充電ステーションのプロファイルは、十分に高い充電速度を提供することができない場合があり、または形式、ブランドなどの違いにより、単に互換性がない機器を含む場合がある。
【0030】
いずれの場合でも、ルーティングエンジン136は、デイジーチェーンを定義するいくつかの充電ステーションを横断するナビゲーションルート502を生成することができる。ルーティングエンジン136は、ダイクストラのアルゴリズムまたはA*探索アルゴリズムなどの適切な探索アルゴリズムを使用することができる。ルーティングエンジン136が使用することができる例示的なグラフ構築技法については、図6Aおよび図7A図7Cを参照して以下で論じるが、最初に、ルーティングエンジン136が実施することができる一般的な要件について簡単に論じる。
【0031】
グラフが特定のEVのためのナビゲーションルートを識別するのに適しているためには、潜在的に選択可能な各ノードが、EVに適した充電ステーションを定義しなければならない。上記で示したように、ルーティングエンジン136は、グラフから互換性のないノードを排除するために、EVと充電ステーションとの互換性を決定することができる。いくつかの実装形態において、ルーティングエンジン136は、特定の信頼性スコア要件を満たさない充電ステーションをさらに排除する。ルーティングエンジン136は、たとえば、運転者からのフィードバックに基づいて、信頼性スコアを決定することができる。
【0032】
ルーティングエンジン136が実装し得る別の要件は、充電ステーション間の最速ルートを見つけることである。これらのルートをグラフ500のエッジとして生成する場合、ルーティングエンジン136は、各ステーション(ノード)がどれくらいの距離まで拡張され得るかについて上限(たとえば、500km)を強制することができる。(予想されるエネルギー使用量を表す)エッジの重みを決定するとき、ルーティングエンジン136は、標高および他の地形特性における変化、速度制限、道路のタイプなどを考慮することができる。いくつかの実装形態において、EVの性能は、一般的に、内燃機関を備える車両と比較して、天候によってより変化するので、ルーティングエンジン136は、天候条件によってエッジの重みを動的に調整することができる。
【0033】
さらに、ナビゲーションルートを探索するとき、ルーティングエンジン136は、たとえば、「高速道路を回避する」などのユーザ指定の好みを適用することができる。条件またはユーザの好みの他の例は、エネルギー消費を最適化するための「エネルギーを意識した」環境にやさしいルート(すなわち「エコルート」)の生成を含む。この場合におけるルーティングエンジン136は、丘、標高の変化、またはより一般的には、特定のタイプのルートを回避することを求めることができる。
【0034】
充電ステーションごとに、ルーティングエンジン136は、充電ステーションにおいて停止する「コスト」として充電時間を推定することができる。図11を参照して論じたように、(タンク半分を満たす場合と満タンとの間の時間差が無視できる従来のガソリンスタンドとは異なり)充電時間は、充電量に応じて大きく変動し、さらに、図3に示されているように、充電時間と充電量との間の関係は、一般的に非線形である。ルーティングエンジン136が充電ステーションにおける複数の充電ポートを認識している場合、ルーティングエンジン136は、計算のために最速のポートを頼みにすることができる。
【0035】
さらに、ナビゲーションルートを生成するとき、ルーティングエンジン136は、EVが横断するグラフの次のエッジを考慮して、EVが受け取るべき充電量を推定することができる。たとえば、ルーティングエンジン136は、次のエッジが含むナビゲーションルートが比較的長いので、充電速度が50%と60%の間で比較的遅いとしても、特定の充電ステーションにおいて60%まで充電するべきであると判断することができる。別の場合において、ルーティングエンジン136は、ナビゲーションルートを含む次のエッジが比較的短いので、より遅い充電速度を回避するために、EVが40%だけ充電すべきであると判断することができる。
【0036】
全体として、ルーティングエンジン136は、合計旅行時間ならびに合計充電時間を最小化することを求めることができる。Timetrip=min(Σsegment_timei+Σcharge_timej) (式1)
【0037】
いくつかの実装形態において、ルーティングエンジン136は、EVが特定の最小バッテリレベル(たとえば、15%)において各ステーションに到達するという要件を適用する。ユーザは、たとえば、クライアントデバイス102のUIを介してこのレベルを手動で設定することができ、または、ルーティングエンジン136は、最小バッテリレベルを自動的に選択して適用することができる。別の実装形態において、ユーザは、過去の旅行に関する特定の情報を共有する意思を図1のシステムに示し、ルーティングエンジン136は、最小バッテリレベルのユーザの好みを自動的に推定するために、機械学習技法を使用する。
【0038】
いくつかの実装形態におけるルーティングエンジン136はまた、ナビゲーションを直接動的に更新するために、リアルタイムデータをチェックする。たとえば、ルーティングエンジン136は、充電ポートのリアルタイムの利用可能性をチェックし、充電ステーションにおいて部品が利用できないと判断したことに応答して、別の充電ステーションを介する代替経路を見つけようと試みるか、または、EVが充電ステーションに停止せず、ナビゲーションルートに沿った次の充電ステーションに直接進むことを推奨することがある。
【0039】
ここで図6を参照すると、ルーティングエンジン136は、充電ステーションがノードを定義し、充電ステーション間の経路がエッジを定義するグラフを使用して、出発地と目的地との間のナビゲーションルートを生成する方法600を実施することができる。方法600は、ブロック602において開始し、そこで、ルーティングエンジン136は、関連する(たとえば、互換性あり、信頼性スコアを満たす)充電ステーションのグラフを構築する。図7Aは、ルーティングエンジン136がブロック602において構築することができる例示的なグラフ700を示す。実装形態に応じて、ルーティングエンジン136は、グラフ700をリアルタイムで構築するか、またはナビゲーションルートの後続の生成をより迅速に行うためにグラフ700を事前計算することができる。いずれの場合でも、グラフ700は、エッジ704A、704Bなどによって相互連結されたノード702A、702Bなどを含む。ルーティングエンジン136は、場合によっては、以下でより詳細に論じるように、MSTに高度に連結されたものと、経路に対する特定のレベルの改善を提供する追加のエッジのセットとを減らすことによって、グラフ700を構築する。
【0040】
ブロック604において、ルーティングエンジン136は、出発地および目的地を表すノードを生成し、これらのノードをグラフに連結する。出発地および目的地は、充電ステーションに対応する必要はなく、したがって、一時的なノードを定義することができる。図7Bに示されているように、一時的なノード710は、ノード702に近接することができ、一時的なノード712は、ノード702C、702D、および702Eに近接することができる。この例におけるノード710は、出発地に対応することができ、ノード712は、目的地に対応することができる。ノード710および712をグラフ700に連結するために、ルーティングエンジン136は、時間または距離に基づいて特定の制限を課すことができ、たとえば、これらの一時的なノードを、Xマイル以内またはY分以内の移動のグラフ700のすべてのノードに連結することができる。
【0041】
ブロック606において、ルーティングエンジン136は、出発地から目的地までのナビゲーションルートを見つけるために、グラフ探索技法を適用する。たとえば、図7Cに示されているように、ルーティングエンジン136は、一時的なノード710において開始し、(一時的なエッジを介して)ノード702Aに進み、グラフのノード702Fおよび702Cを介して一時的なノード712に進む経路を生成する。
【0042】
一般的に言えば、グラフをリアルタイムで構築することは、A*問題については、経路を生成する関数への呼び出しの数が、
D=B・(B*)d (式2)
として推定され得るので困難であり、ここで、Bは、分岐係数であり、B*は、A*ヒューリスティックを使用するときの「有効な」分岐因子であり、dは、深さ(または最適なルートに必要な充電ストップの数)である。1000の分岐因子(たとえば、半径500kmの円内に平均5000の充電ステーション)と、99%のオプションを楽観的に排除するヒューリスティック(B*=50)とを想定すると、単一の充電ストップを必要とする最も一般的なユースケースでは、ルーティングエンジン136は、経路を生成する関数への約250000回の呼び出しを必要とし、2回の停止では、約1250万回の呼び出しが必要とされる、などである。したがって、多くの場合、少なくともいくらかの事前計算およびキャッシングに頼ることなしに、リアルタイムでのナビゲーショングラフ(たとえば、グラフ500または700)へのルーティングエンジン136にとって非現実的である。
【0043】
ナビゲーション指示に対する要求をより迅速にサービスするために、いくつかの実装形態におけるルーティングエンジン136は、図8の方法700に従ってナビゲーショングラフを事前計算する。
【0044】
ブロック802において、ルーティングエンジン136は、充電ステーションを表す多数のノードを相互連結する初期の高度に連結されたグラフを構築する。次いで、ルーティングエンジン136は、高度に連結されたグラフに基づいて、最小全域木(MST)を生成する。一般的に言えば、MST(最小重み全域木としても知られる)は、すべてのノードがサイクルなしで連結されるような、連結された無向グラフのエッジのサブセットである。エッジがそれぞれの重みを有する場合、MSTは、エッジの可能な最小合計重みも提供する。
【0045】
たとえば、図10Aを参照すると、高度に連結されたグラフ1000は、ノード1002A、1002B、...10002Kと、ノード1002Aおよび1002Bを相互連結するエッジ1004AB、ノード1002および1002Cを相互連結するエッジ1004BCなどの、これらのノード間のエッジとを含む。エッジ1004AB、1004BCなどの各々は、以下の測定基準、すなわち、特定の方向においてノード間を移動するために必要なエネルギー量、必要な時間量、ノード間の距離などのうちの1つまたは複数を表す重みを有することができる。エネルギー消費は、2つのノード間の逆方向の移動について同じではない場合があることに留意されたい。たとえば、充電ステーションS1は、充電ステーションS2よりも高い標高に配置される場合があり、EVは、S2からS1に移動するのと比較して、S1からS2に移動するためにより少ないエネルギーを必要とする。さらに、エッジ1004AB、1004BCなどは、複数セグメントの潜在的に複雑な経路を表すことができる。したがって、ノード1002A、1002Bなどは、少なくともこの点において、ナビゲーション指示の移動ウェイポイントとは異なる。
【0046】
この例におけるMST1010は、MSTの定義の結果として、エッジ1004ACを介してノード1002Aおよび1000Cを相互連結し、ノード1002Aと1002Cとの間のすべての他の経路を除外する。MST1010は、さらに、エッジ1004BCを介してノード1002Bおよび1002Cを相互連結し、エッジ1004CDを介してノード1002Cおよび1002Dを相互連結する、などである。MSG1010は、たとえば、1006ABなどの、グラフ1000の大部分のエッジを除外する。図10は、破線を使用して除外されたエッジを示す。
【0047】
図8に戻って参照すると、次いで、ルーティングエンジン136は、基礎となる連結グラフから、MSTにエッジを追加するためのしきい値を選択する。2つのノード間の経路が、同じ2つのノード間のMST経路を少なくともしきい値だけ改善する場合、ルーティングエンジン136は、この改善された経路の1つまたは複数のエッジをMSTに追加することができる。しきい値は、相対的な用語において改善の割合(たとえば、時間またはエネルギーにおける10%の改善)として、または絶対的な用語(たとえば、10分またはバッテリの1%だけの改善)において表され得る。次いで、ブロック806において、ルーティングエンジン136は、ブロック804において取得されたしきい値基準を満たすエッジを追加する。ルーティングエンジン136は、ブロック810において、基礎となるグラフの他のエッジを除外する。
【0048】
たとえば、図10Bを参照すると、ルーティングエンジン136は、ノード1002Eおよび1002Hを相互連結するエッジ1006EHが60の重みを有すると決定することができる。MSTに沿った同じ2つのノード間の経路は、合計100の重みに対して、重み20を有するエッジ10004BEと、重み30を有するエッジ1004BCと、重み50を有するエッジ1004CHとを含む。ルーティングエンジン136が1.1のしきい値を適用する場合、100に対する60の改善は、ルーティングエンジン136がナビゲーショングラフを定義することの一部としてエッジ1006EHをMSTに追加するのに十分な大きさである。
【0049】
一方、図10Cを参照すると、ルーティングエンジン136は、重み79を有するエッジ1006AHが(合計80の重みを有するエッジ1004ACおよび1004CHを含む)MSTに沿ったノード1002Aおよび1002Hの間の経路に沿って1.25%の改善のみを提供すると判断することができ、ナビゲーショングラフからエッジ1006AHを除外する。
【0050】
図10Dは、ルーティングエンジン1036がグラフ1000に基づいて構築することができるナビゲーショングラフ1020を示す。ナビゲーショングラフ1020は、MST1010全体、ならびにMST1010から除外されたグラフ1000のエッジのすべてではないが一部を含む。ナビゲーショングラフ1020は、より少ないエッジのそのグラフ1000を有し、したがって、出発地と目的地との間のナビゲーションルートを生成するタスクを単純化する。図7A図7Cに戻って参照すると、ナビゲーショングラフ1020は、ルーティングエンジンが出発地および目的地を表すノードを一時的に加えることができるグラフ700として動作することができる。
【0051】
ルーティングエンジン136がナビゲーション指示に対する要求を処理するために必要とする時間を短縮することに加えて、ナビゲーショングラフ1020は、基礎となる高度に連結されたグラフ700よりも少ないメモリを必要とする。次に、ナビゲーション1020または同様のナビゲーショングラフの例示的な記憶について簡単に考察する。
【0052】
図9を参照すると、グラフ断片900は、グラフ1020または700の一部であり得る。グラフ断片900は、充電ステーションを表すノード902、904、および906と、ノード902および906、ならびに904および906を相互連結するエッジとを含む。サーバ130は、ノードごとにプロファイル記録910を記憶する。記録910は、たとえば、時間と充電量との間の関係を示すことができる(図3を参照)。図11を参照して論じるいくつかの実装形態において、記録910は、これらの依存関係を表すために2部グラフを記憶することができる。さらに、記録は、充電ステーションにおけるハードウェアの互換性、ポートの数、現在の占有率などのリアルタイムデータなどを示すことができる。
【0053】
ナビゲーショングラフのエッジごとに、サーバ130は、ウェイポイント920、922などに関するウェイポイントデータと、ウェイポイントのペア間の道路セグメントに関する道路セグメント情報914とを含む経路説明記録912を記憶することができる。道路セグメント情報914は、距離、標高における変化などを示すことができる。
【0054】
ここで図11を参照すると、図面1100は、ルーティングエンジン136が充電ステーションを表すノードのための2部グラフをどのように生成することができるかを示す。たとえば、ナビゲーション700または1020内のノードを2部グラフに置き換えることによって、ルーティングエンジン136は、ダイクストラまたはA*などのグラフ探索技法を結果として生じたグラフに直接適用することができる。
【0055】
図11において示されているように、サーバ130は、ノード1102を、入力サブノード1120のセットと出力サブノード1122のセットとを有する2部グラフ1110として表すことができる。サブノード1120の各々は、1つまたは複数のサブノード1122に連結される。入力サブノードおよび出力サブノードは、特定の充電状態を表す。同じ充電状態に対応するサブノード間のエッジは、ゼロの重みを有し、たとえば、60%の充電で充電ステーションに入り、同じ充電量で充電ステーションを出るEVは、充電ステーションにおいてゼロ分を費やすと推定される。したがって、ルーティングエンジン136が、(たとえば、EVが特定のナビゲーションルートに沿って60%の十分な充電を有し、次の充電ステーションに快適に到達することができるので)EVが停止することなく充電ステーションを通過して走行すべきであると判断した場合、ルーティングエンジン136は、2部グラフ1110を介して経路1130を選択することができる。一方、ルーティングエンジン136は、EVが20%の充電でノード1104によって表される充電ステーションに到達すると判断することができる。2部グラフ1110と同様の構造を有することができるが、サブノード間のエッジの重みが必ずしも同じとは限らない2部グラフ1112によれば、20%の充電を表す入力サブノードと80%の充電を表す出力サブノードとの間の連結は、45分の重みを有する。ルーティングエンジン136は、たとえば、ナビゲーショングラフの次のエッジが長いので、この場合には経路1140を選択することができる。
【0056】
次に、図12A図12Cは、図1のシステムがEVのためのナビゲーションルートを提供するために生成することができるいくつかの例示的なUI画面を示す。たとえば、ナビゲーションアプリケーション108は、ユーザインターフェース116を介してこれらのUI画面をユーザに提示することができる。ナビゲーションアプリケーション108は、たとえば、ナビゲーションサーバ130から受信したデータを使用してこれらの画面を生成することができる。
【0057】
最初に図12Aを参照すると、ナビゲーションアプリケーション108は、たとえば、ポータブルデバイス上に、または車両のヘッドユニットを介してUI画面1200Aを提示することができる。UA画面1200Aは、アイコン1214によって示される特定の出発地とアイコン1216によって示される目的地との間のナビゲーションルートのためのグラフィック1210を含む。UI画面1200Aは、経路に沿った異なる充電状態を示すために、異なる色、陰影、または他の視覚効果をグラフィック1210に適用することができる。したがって、セグメント1220は、大量の充電残量を示すことができ、セグメント1222は、より少ない量の充電残量を示すことができ、セグメント1224は、さらにより少ない充電残量を示すことができる。セグメント1226は、充電残量がないことを示すことができる。警告アイコン1230は、EVが充電切れになると予想される位置をおおよそ示すことができる。
【0058】
UI画面1200Aは、ナビゲーションアプリケーション108が目的地に関する情報を提供する対話型ウィンドウ1212Aと、充電ストップを追加するための推奨事項1240と、ルーティングエンジン136が充電ステーションをナビゲーションルートに追加することをユーザが要求することができる対話型コントロール1240と、ユーザが充電ステーションを追加することなくナビゲーション指示を要求することができる別の対話型コントロール1242とを含むこともできる。
【0059】
実装形態に応じて、ルーティングエンジン136は、たとえば、上記で論じた技法を使用して、充電ステーションを考慮して、またはルーティングエンジン136が従来の車両に提供するのと同じナビゲーションルートを提供するために、充電ステーションを介してEVをルーティングしようとすることなく、グラフィック1210によって表されるナビゲーションルートを生成することができる。
【0060】
ここで図12Bを参照すると、ユーザは、ルーティングエンジン136が充電ステーションをナビゲーションルートに追加することを要求することができる。ナビゲーションアプリケーション108は、ウィンドウ1212Bが、互換性のある充電ストップが識別され、ナビゲーションルートに追加されていることの指標を提供するUI画面1200Bを提示することができる。
【0061】
図12Cは、充電ステーションのデイジーチェーンを含むナビゲーションルートを生成した後のUI画面1200Cを示す。UI画面1200Cは、ナビゲーションルートの概要を含むウィンドウ1212Cを含むことができる。たとえば、ウィンドウ1212Cは、充電ストップごとに、充電ステーションの名前、EVが充電ステーションにおいて費やすべき時間、およびEVが充電ステーションを出るときに有するべき充電量を示すことができる。UI画面1200Cは、充電ステーションの視覚的表現1250および1252を含むようにグラフィック1210を更新することができる。いくつかの実装形態において、ナビゲーションアプリケーション108は、すべてのセグメントについて十分な充電があることを示すようにグラフィック1210を更新することもできる。
【0062】
さらに明確にするために、図13は、ルーティングエンジン136(または、いくつかの実装形態において、ナビゲーションアプリケーション108が実施することができる)、EVのためのナビゲーションルートを生成するための例示的な方法のフロー図1300を示す。ブロック1302において、ルーティングエンジン136は、出発地と目的地との間に配置された充電ステーションを識別することができる。上記で論じたように、ルーティングエンジン136は、グラフ700または1020などのナビゲーショングラフを使用することができる。
【0063】
ブロック1304において、ルーティングエンジン136は、充電ステーションに関する充電時間と充電量との間のそれぞれの非線形関係を決定することができる。ルーティングエンジン136は、たとえば、図11を参照して上記で論じたように、これらの非線形関係(図3を参照)を2部グラフとして表すことができる。
【0064】
ブロック1306において、ルーティングエンジン136は、出発地と目的地との間のナビゲーション経路を決定することができ、ナビゲーション経路は、1つまたは複数の充電ステーションを横断する。図7A図7Cを参照して上記で論じたように、ルーティングエンジン136は、出発地および目的地のための一時的なノードを生成することができる。
【0065】
追加の考慮事項
以下の追加の考慮事項は、前述の議論に適用される。本明細書全体を通して、複数のインスタンスは、単一のインスタンスとして説明されている構成要素、動作、または構造を実装し得る。1つまたは複数の方法の個々の動作は、別個の動作として図示および説明されているが、個々の動作のうちの1つまたは複数は、同時に実行され得、動作が図示された順序において実行されることを必要としない。例示的な構成において別個の構成要素として提示されている構造および機能は、組み合わされた構造または構成要素として実装され得る。同様に、単一の構成要素として提示されている構造および機能は、別個の構成要素として実装され得る。これらおよび他の変形、修正、追加、および改善は、本開示の主題の範囲内に入る。
【0066】
それに加えて、特定の実施形態は、ロジック、またはいくつかの構成要素、モジュール、もしくはメカニズムを含むものとして本明細書において説明されている。モジュールは、ソフトウェアモジュール(たとえば、機械可読媒体上に記憶されたコード)またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、特定の動作を実行することができる有形のユニットであり、特定の方法において構成または配置され得る。例示的な実施形態において、1つもしくは複数のコンピュータシステム(たとえば、スタンドアロン、クライアント、またはサーバコンピュータシステム)、またはコンピュータシステムの1つもしくは複数のハードウェアモジュール(たとえば、プロセッサまたはプロセッサのグループ)は、ソフトウェア(たとえば、アプリケーションまたはアプリケーション部分)によって、本明細書で説明されている特定の動作を実行するように動作するハードウェアモジュールとして構成され得る。
【0067】
様々な実施形態において、ハードウェアモジュールは、機械的または電子的に実装され得る。たとえば、ハードウェアモジュールは、特定の動作を実行するように(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用プロセッサとして)永続的に構成された専用回路またはロジックを備え得る。ハードウェアモジュールは、特定の動作を実行するためにソフトウェアによって一時的に構成されるプログラム可能なロジックまたは回路も(たとえば、汎用プロセッサまたは他のプログラム可能なプロセッサ内に内包されるように)備え得る。ハードウェアモジュールを機械的に、専用の永続的に構成された回路において、または一時的に構成された(たとえば、ソフトウェアによって構成された)回路において実装する決定は、コストおよび時間の考慮によって推進され得ることが理解されるであろう。
【0068】
したがって、ハードウェアという用語は、特定の方法において動作するように、または本明細書で説明されている特定の動作を実行するように物理的に構成された、永続的に構成された(たとえば、配線された)、または一時的に構成された(たとえば、プログラムされた)エンティティである、有形のエンティティを包含すると理解されるべきである。ハードウェアモジュールが一時的に構成される(たとえば、プログラムされる)実施形態を考慮すると、ハードウェアモジュールの各々は、いかなる一時点においても構成またはインスタンス化される必要はない。たとえば、ハードウェアモジュールがソフトウェアを使用して構成された汎用プロセッサを備える場合、汎用プロセッサは、異なる時間において、それぞれ異なるハードウェアモジュールとして構成され得る。したがって、ソフトウェアは、たとえば、ある時点において特定のハードウェアモジュールを構成し、異なる時点において異なるハードウェアモジュールを構成するようにプロセッサを構成し得る。
【0069】
ハードウェアモジュールおよびソフトウェアモジュールは、他のハードウェアモジュールおよび/またはソフトウェアに情報を提供することができ、他のハードウェアモジュールおよび/またはソフトウェアモジュールから情報を受信することができる。したがって、説明されているハードウェアモジュールは、通信可能に結合されていると見なされ得る。複数のそのようなハードウェアモジュールまたはソフトウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールまたはソフトウェアモジュールを接続する(たとえば、適切な回路およびバスによって)信号伝送を通じて達成され得る。複数のハードウェアモジュールまたはソフトウェアが異なる時間において構成またはインスタンス化される実施形態において、そのようなハードウェアモジュールまたはソフトウェアモジュール間の通信は、たとえば、複数のハードウェアモジュールまたはソフトウェアモジュールがアクセスすることができるメモリ構造における情報の記憶および取得を通じて達成され得る。たとえば、1つのハードウェアモジュールまたはソフトウェアモジュールは、動作を実行し、その動作の出力を、通信可能に結合されたメモリデバイス内に記憶し得る。次いで、さらなるハードウェアモジュールまたはソフトウェアモジュールは、後に、記憶された出力を取得および処理するために、メモリデバイスにアクセスし得る。ハードウェアモジュールおよびソフトウェアモジュールはまた、入力デバイスまたは出力デバイスとの通信を開始し得、リソース(たとえば、情報の集合体)に対して動作することができる。
【0070】
本明細書で説明されている例示的な方法の様々な動作は、少なくとも部分的に、関連する動作を実行するように(たとえば、ソフトウェアによって)一時的に構成されるかまたは永続的に構成された1つまたは複数のプロセッサによって実行され得る。一時的に構成されるか永続的に構成されるかにかかわらず、そのようなプロセッサは、1つまたは複数の動作または機能を実行するように動作するプロセッサ実装モジュールを構成し得る。本明細書で言及されているモジュールは、いくつかの例示的な実施形態において、プロセッサ実装モジュールを備え得る。
【0071】
同様に、本明細書で説明されている方法またはルーチンは、少なくとも部分的にプロセッサで実装され得る。たとえば、方法の動作の少なくとも一部は、1つまたは複数のプロセッサまたはプロセッサ実装ハードウェアモジュールによって実行され得る。特定の動作の実行は、単一のマシン内に存在するだけでなく、いくつかのマシンにわたって展開された1つまたは複数のプロセッサ間で分散され得る。いくつかの例示的な実施形態において、プロセッサは、単一の場所において(たとえば、家庭環境内、オフィス環境内、またはサーバファームとして)配置され得るが、他の実施形態において、プロセッサは、いくつかの場所にわたって分散され得る。
【0072】
1つまたは複数のプロセッサは、「クラウドコンピューティング」環境におけるまたはSaaSとしての関連する動作の実行をサポートするようにも動作し得る。たとえば、上記で示されているように、動作のうちの少なくともいくつかは、(プロセッサを含むマシンの例として)コンピュータのグループによって実行され得、これらの動作は、ネットワーク(たとえば、インターネット)を介し、1つまたは複数の適切なインターフェース(たとえば、API)を介してアクセス可能である。
【0073】
特定の動作の実行は、単一のマシン内に存在するだけでなく、いくつかのマシンにわたって展開された1つまたは複数のプロセッサ間で分散され得る。いくつかの例示的な実施形態において、1つまたは複数のプロセッサまたはプロセッサ実装モジュールは、単一の地理的位置(たとえば、家庭環境内、オフィス環境内、またはサーバファーム内)において配置され得る。他の例示的な実施形態において、1つまたは複数のプロセッサまたはプロセッサ実装モジュールは、いくつかの地理的位置にわたって分散され得る。
【0074】
本明細書のいくつかの部分は、マシンメモリ(たとえば、コンピュータメモリ)内にビットまたはバイナリデジタル信号として記憶されたデータに対する動作のアルゴリズムまたはシンボリック表現の観点から提示されている。これらのアルゴリズムまたはシンボリック表現は、データ処理技術の当業者によって自分の仕事の実態を他の当業者に伝えるために使用される技法の例である。本明細書で使用される場合、「アルゴリズム」または「ルーチン」は、所望の結果につながる首尾一貫した一連の動作または同様の処理である。この文脈において、アルゴリズム、ルーチン、および動作は、物理量の物理的操作を伴う。典型的には、必ずしもそうである必要はないが、そのような量は、マシンによって記憶、アクセス、転送、結合、比較、またはその他の操作されることが可能な電気信号、磁気信号、または光信号の形態をとり得る。「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数」、「数字」などの単語を使用してそのような信号を指すことは、主に一般的な使用法の理由のため、ときには便利である。しかしながら、これらの単語は、単に便利なラベルであり、適切な物理量に関連付けられるべきである。
【0075】
特に記載されていない限り、「処理すること」、「演算すること」、「計算すること」、「決定すること」、「提示すること」、「表示すること」などの単語を使用する本明細書における議論は、情報を受信し、記憶し、送信し、表示する1つまたは複数のメモリ(たとえば、揮発性メモリ、不揮発性メモリ、またはそれらの組合せ)、レジスタ、または他のマシン構成要素内の物理的(たとえば、電子的、磁気的、または光学的)量として表されるデータを操作または変換するマシン(たとえば、コンピュータ)のアクションまたは処理を指し得る。
【0076】
本明細書で使用される場合、「一実施形態」または「実施形態」への任意の言及は、実施形態に関連して説明されている特定の要素、特徴、構造、または特性が少なくとも1つの実施形態内に含まれることを意味する。本明細書における様々な場所における「一実施形態において」という句の出現は、必ずしもすべてが同じ実施形態を指しているとは限らない。
【0077】
いくつかの実施形態は、「結合された」および「接続された」という表現をそれらの派生物とともに使用して説明されている場合がある。たとえば、いくつかの実施形態は、2つ以上の要素が直接物理的または電気的接触にあることを示すために、「結合された」という用語を使用して説明されている場合がある。しかしながら、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、依然として互いに協働または相互作用していることを意味する場合もある。実施形態は、この文脈において限定されない。
【0078】
本明細書で使用される場合、「備える」、「備えること」、「含む」、「含むこと」、「有する」、「有すること」、またはそれらの任意の他の変形は、非排他的な包含をカバーすることを意図している。たとえば、要素のリストを含むプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されるわけではないが、明示的にリストされていない、またはそのようなプロセス、方法、物品、または装置に固有ではない他の要素を含み得る。さらに、明示的に反対に記載されていない限り、「または」は、包括的なまたはを指し、排他的なまたはを指さない。たとえば、条件AまたはBは、以下、すなわち、Aが真であり(または存在し)、Bが偽である(または存在しない)、Aが偽であり(または存在せず)、Bが真である(または存在する)、およびAとBの両方が真である(または存在する)のうちの任意の1つによって満たされる。
【0079】
それに加えて、「a」または「an」の使用は、本明細書における実施形態の要素および構成要素を説明するために用いられる。これは、単に便宜上、また説明の一般的な意味を与えるために行われる。この説明は、1つまたは少なくとも1つを含むように読まれるべきであり、単数形は、それ以外の意味であることが明らかでない限り、複数形も含む。
【0080】
本開示を読むと、当業者は、本明細書において開示された原理によって、eleのためのナビゲーションルートを生成するためのさらに追加の代替の構造的および機能的設計を理解するであろう。したがって、特定の実施形態および用途が図示および説明されてきたが、開示された実施形態は、本明細書において開示される正確な構造および構成要素に限定されないことが理解されるべきである。当業者に明らかである様々な修正、変更、および変形は、添付の特許請求の範囲において定義されている要旨および範囲から逸脱することなく、本明細書において開示される方法および装置の配置、動作、および詳細においてなされ得る。
【符号の説明】
【0081】
100 システム
102 クライアントコンピューティングデバイス、クライアントデバイス
104 プロセッサ(CPU)、プロセッサ
106 コンピュータ可読非一時的メモリ
108 ナビゲーションアプリケーション
110 オペレーティングシステム(OS)、OS
112 全地球測位システム(GPU)モジュール、GPSモジュール
114 ネットワークインターフェース
116 ユーザインターフェース
118 入力/出力(I/O)インターフェース
120 ネットワーク
130 ナビゲーションサーバ、サーバ
132 プロセッサ
134 メモリ
136 ルーティングエンジン
138 充電時間計算モジュール
140 データベース
141 データベース
142 データベース
143 データベース
144 データベース、地図データベース
200 ナビゲーションルート
202 ノード
204 ノード
210 中間ノード、ノード
212 中間ノード、ノード
214 ユーザが追加したウェイポイント、ノード
220 エッジ
222 エッジ
224 エッジ
300 充電プロファイルグラフ
302 プロファイル
304 プロファイル
400 図
402 ナビゲーションルート
420 充電ステーション
422 充電ステーション
500 グラフ
502 ナビゲーションルート
510 ノード
512 ノード
700 グラフ、ナビゲーション
702 ノード
702A ノード
702B ノード
702C ノード
702D ノード
702E ノード
702F ノード
704A エッジ
704B エッジ
710 一時的なノード、ノード
712 一時的なノード、ノード
900 グラフ断片
902 ノード
904 ノード
906 ノード
910 プロファイル記録、記録
912 経路記述記録
914 道路セグメント情報
920 ウェイポイント
922 ウェイポイント
1000 高度に連結されたグラフ、グラフ
1002A ノード
1002B ノード
1002C ノード
1002D ノード
1002E ノード
1002H ノード
1004AB エッジ
1004AC エッジ
1004BC エッジ
1004CD エッジ
1004CH エッジ
1006AB エッジ
1006AH エッジ
1006EH エッジ
1010 MST、MSG
1020 ナビゲーショングラフ、ナビゲーション
1036 ルーティングエンジン
1100 図面
1102 ノード
1104 ノード
1110 2部グラフ
1112 2部グラフ
1120 入力サブノード、サブノード
1122 出力サブノード、サブノード
1130 経路
1140 経路
1200A UI画面
1200B UI画面
1200C UI画面
1210 グラフィック
1212A 対話型ウィンドウ
1212B ウィンドウ
1212C ウィンドウ
1214 アイコン
1216 アイコン
1220 セグメント
1222 セグメント
1224 セグメント
1226 セグメント
1230 警告アイコン
1240 推奨事項、対話型コントロール
1242 対話型コントロール
1250 視覚的表現
1252 視覚的表現
10002K ノード
10004BE エッジ
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
図8
図9
図10A
図10B
図10C
図10D
図11
図12A
図12B
図12C
図13