トップ :: G 物理学 :: G01 測定;試験

【発明の名称】 HMIシステム、及び、車載ナビゲーション装置
【発明者】 【氏名】小島 基資

【要約】 【課題】サブシステムの開発や設計変更が他のサブシステムに与える影響を小さくすることが可能なHMIシステム、及びこれを利用した車載ナビゲーション装置を提供すること。

【構成】MVC(Model−View−Controller)モデルに基づいて構築され、情報処理を行なうモデルと、ユーザーに対する出力を決定するビューと、ユーザーの入力を認識するコントローラーと、をサブシステムとして備えるHMI(Human Machine Interface)システムであって、各サブシステム間で用いられるデータ及びイベントの関連付け、及び/又は、各サブシステムが備える関数を呼び出す際の引数設定を行なうシナリオをサブシステムとして備えることを特徴とする、HMIシステム。
【特許請求の範囲】
【請求項1】
MVC(Model−View−Controller)モデルに基づいて構築され、情報処理を行なうモデルと、ユーザーに対する出力を決定するビューと、ユーザーの入力を認識するコントローラーと、をサブシステムとして備えるHMI(Human Machine Interface)システムであって、
前記各サブシステム間で用いられるデータ及びイベントの関連付け、及び/又は、前記各サブシステムが備える関数を呼び出す際の引数設定を行なうシナリオをサブシステムとして備えることを特徴とする、HMIシステム。
【請求項2】
前記サブシステムのうちいずれか2つが一体として構築された請求項1に記載のHMIシステム。
【請求項3】
請求項1又は2に記載のHMIシステムが適用された車載ナビゲーション装置。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、MVCモデルに基づいて構築されるHMIシステム、及びこれが適用された車載ナビゲーション装置に関する。
【背景技術】
【0002】
近年、人と機械設備とのインターフェイスとなるコンピュータ・システムを、HMI(Human Machine Interface)システム等と称している。こうしたシステムの設計思想の一つに、MVC(Model−View−Controller)モデルが挙げられる。
【0003】
MVCモデルとは、オブジェクト指向プログラミング技法に基づく設計思想であり、システムをオブジェクトの集合であるサブシステムで表現したものである。MVCモデルにおけるサブシステムは、主たる情報処理を行なうModel、出力を制御するView、ユーザーの入力を認識すると共にこれに応じてModelやViewに指示するControllerからなる。なお、それぞれのサブシステムは単独である必要はない。また、ViewとControlが結合してM−VCとなることもあり、これを拡張MVCと呼ぶ場合があるが、MVCモデルの概念に含まれるものである。
【0004】
MVCモデルにより構築されたシステムは、オブジェクト指向プログラミング技法が有する利点、すなわち、既存のオブジェクトについては、利用に際してその内部構造や動作原理の詳細を知る必要はなく、外部からメッセージを送れば機能するという利点を継承する。従って、開発作業の分業が容易になる利点や、サブシステムの仕様変更が他のサブシステムに与える影響を小さくすることができる利点等を有するものとされている。
【0005】
拡張MVCに基づいて構築されたと思われる車載ナビゲーション装置についての発明が開示されている(例えば、特許文献1参照)。この装置は、主な構成として、操作指令の受付及び表示画像の画像処理等を担当するシステムマスタ部(上記VCに相当する)と、ルート検索などのナビゲーション機能を担当するナビゲーションエンジン部(上記Mに相当する)と、を備える。そして、この装置においても、表示方式や操作方式、ナビゲーション機能の変更に際して、システムマスタ部又はナビゲーションエンジン部のいずれかを変更すればよく、開発効率が向上するものとしている。
【特許文献1】特開2005−164317号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、オブジェクト指向プログラミング技法に基づいて設計されたシステムであっても、サブシステムの変更は他のサブシステムに少なからず影響を与える。例えば、あるサブシステムが変更されると、当該サブシステムに送られるメッセージ(データやイベント情報を含む)の形式を変更する必要が生じ得る。また、関数(メソッド)が呼び出されるサブシステムが変更されると、呼び出す側のサブシステムにおいて関数(メソッド)に与えるべきパラメータを変更する必要が生じ得る。
【0007】
本発明はこのような課題を解決するためのものであり、サブシステムの開発や設計変更が他のサブシステムに与える影響を小さくすることが可能なHMIシステム、及びこれを利用した車載ナビゲーション装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するための本発明の第1の態様は、MVC(Model−View−Controller)モデルに基づいて構築され、情報処理を行なうモデルと、ユーザーに対する出力を決定するビューと、ユーザーの入力を認識するコントローラーと、をサブシステムとして備えるHMI(Human Machine Interface)システムであって、各サブシステム間で用いられるデータ及びイベントの関連付け、及び/又は、各サブシステムが備える関数を呼び出す際の引数設定を行なうシナリオをサブシステムとして備えることを特徴とするものである。
【0009】
この本発明の第1の態様によれば、各サブシステム間で用いられるデータ及びイベントの関連付け、及び/又は、各サブシステムが備える関数を呼び出す際の引数設定を行なうシナリオをサブシステムとして備えるから、サブシステムの開発や設計変更が他のサブシステムに与える影響を小さくすることができる。
【0010】
また、本発明の第1の態様において、サブシステムのうちいずれか2つが一体として構築されてもよい。
【0011】
本発明の第2の態様は、本発明の第1の態様のHMIシステムが適用された車載ナビゲーション装置である。
【発明の効果】
【0012】
本発明によれば、サブシステムの開発や設計変更が他のサブシステムに与える影響を小さくすることが可能なHMIシステム、及びこれを利用した車載ナビゲーション装置を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【0014】
以下、図1〜14を用いて、本発明に係るHMIシステムを利用した車載ナビゲーション装置の一実施例について説明する。図1は、本発明の一実施例に係る車載ナビゲーション装置1の構成を概念的に示す概念図である。図示する如く、車載ナビゲーション装置1のハードウエア構成は、GPS受信機10と、地図データベース20と、マルチディスプレイ30と、音声入出力装置40と、ナビゲーション装置用ECU(Electronic Control Unit)50と、からなる。
【0015】
GPS受信機10は、GPS衛星から衛星の軌道と時刻のデータを含む電波信号を受信する。当該受信されたデータは後述するモデル60に送信され、電波信号の時間差に基づく演算により自車両の現在位置(緯度、経度、高度)が取得される。また、自車両の現在位置は、モデル60において、車速センサーやジャイロセンサー等の各種センサーの出力や、ビーコン受信機及びFM多重受信機を介して受信される各種情報に基づいて補正されてよい。
【0016】
地図データベース20は、例えば、ハードディスクやDVD、CD−ROM等の記憶媒体上に実現されるデータベースであって、一定区間毎に設けられたノード点が接続された態様で道路に関する情報が記憶されている。
【0017】
マルチディスプレイ30は、例えば、グラフィックシステムとしてVGA(Video Graphics Array)を採用して動画を含む画像表示を行なうと共に、タッチパネルとしてユーザーによる種々の入力操作(経路案内に係る目的地入力等)を可能に構成されたディスプレイ装置である。マルチディスプレイ30は、後述する描画処理部71により制御される。
【0018】
音声入出力装置40は、音声出力を行なうスピーカー及びマイク等からなる。音声入出力装置40は、後述する音声処理部73により制御される。
【0019】
ナビゲーション装置用ECU50は、例えば、CPUやROM、RAM等がバスを介して相互に接続されたコンピューターユニットであり、その他、入出力インターフェイスやタイマー、カウンター等を備える。また、こうしたハードウエア構成により、複数のクラスオブジェクト、すなわち、モデル60と、GUI(Graphical User Unterface)メタデータ処理部70と、描画処理部71と、VUI(Voice User Interface)メタデータ処理部72と、音声処理部73と、シナリオメタデータ処理部80と、共有データ81と、イベントシステム82と、を実現する。
【0020】
ここで、モデル60が、MVCモデルにおけるサブシステムの一つであるModel(M)に相当する。また、GUIメタデータ処理部70及び描画処理部71からなるオブジェクト集合が、MVCモデルにおけるサブシステムの一つであるView(V)とController(C)が結合したもの(VC)に相当する。VUIメタデータ処理部72及び音声処理部73からなるオブジェクト集合も同様であり、本実施例では、サブシステム(VC)に相当するオブジェクト集合が2つ存在することとなる。また、シナリオメタデータ処理部80は、本発明に特徴的な部分であり、特許請求の範囲におけるシナリオに相当する。このように、本実施例のナビゲーション装置用ECU50内のサブシステム構造は、いわゆる拡張MVCにシナリオ(S)という新しい概念が付加されて構築されたものである。
【0021】
シナリオメタデータ処理部80は、共有データ81やイベントに関するマッピングを行なうと共に、後述するGUIメタデータやVUIメタデータの状態遷移を制御する。
【0022】
図2は、本実施例の車載ナビゲーション装置1が起動され、ユーザーの目的地設定入力を受付可能な状態となるまでの処理を表すシーケンス図である。シーケンス図は、オブジェクト間のメッセージ送信を時系列表現することにより、各オブジェクトがどのように協調動作するのかというシステムの動的な振る舞いを規定する。
【0023】
まず、シナリオメタデータ処理部80は、シナリオメタデータの解釈を行なう(S100)。シナリオメタデータは、例えばXML(Extensible Markup Language)等のメタ言語により記述されている。「解釈」とは、コンパイルないしパーシングと称される処理をいう。
【0024】
図3は、シナリオメタデータの記載例である。本図において、scenario要素はルート要素であり、firstState要素はシナリオの初期状態を定義する要素であり、variables要素は共有データ81を定義する要素の親要素であり、variable要素は共有データ81を定義すると共に共有データ81と各サブシステムが定義する共有データの関連(マッピング)を定義する要素の親要素であり、events要素はイベントを定義する要素の親要素であり、event要素はイベントを定義すると共に各サブシステムが定義するイベントの関連(マッピング)を定義する要素の親要素であり、mappingForGUI要素は共有データ81とGUIメタデータにより定義された共有データとの関連(マッピング)を定義する要素であり、mappingForVUI要素は共有データ81とVUIメタデータにより定義された共有データとの関連(マッピング)を定義する要素であり、models要素はモデル60を定義する要素の親要素であり、model要素はモデル60を定義すると共にモデル60の関数(メソッド)を定義する要素の親要素であり、method要素はモデル60の関数(メソッド)を定義すると共に関数(メソッド)の引数を定義する要素の親要素であり、param要素はモデル60の関数(メソッド)の引数を定義する要素であり、states要素はシナリオの状態を定義する要素の親要素であり、state要素はシナリオの状態を定義する要素であり、entryActions要素はその状態に入った直後に実行されるアクションを定義する要素であり、eventsActions要素はその状態で発生したイベントを受けて実行されるアクションを定義する要素であり、callModel要素はモデル60を呼び出すアクションを定義する要素であり、paramVariable要素は呼び出すモデル60に渡す引数を定義する要素であり、paramEvent要素は呼び出すモデル60に渡すイベントを定義する要素であり、initialGUI要素はGUIメタデータの読み込み(初期化)を要求するアクションを定義する要素であり、initialVUI要素はVUIメタデータの読み込み(初期化)を要求するアクションを定義する要素であり、transfer要素はその状態から他の状態に遷移するアクションを定義する要素である。
【0025】
次に、シナリオメタデータ処理部80は、共有データの領域確保、及びイベントオブジェクト登録を行ない(S102、104)、共有データ及びイベントのマッピング情報(これらが記憶されている領域や形式に関する情報をいう)を、GUIメタデータ処理部70及びVUIメタデータ処理部72に提供する(S106、108)。図3における(A)部は、共有データ宣言、イベント宣言、及びこれらのマッピング情報の定義の一例である。イベントオブジェクト登録は、具体的には、イベントシステム82に各イベントを登録する処理である。
【0026】
そして、状態遷移の登録を行なう(S110)。状態遷移の登録は、具体的には、図3における(B)部に例示する状態遷移の定義を読み込む処理を行なう。
【0027】
状態遷移登録を行なうと、シナリオメタデータを実行する(S112)。シナリオメタデータ処理部80は、初期状態に遷移し(S114)、モデル60、GUIメタデータ処理部70、及びVUIメタデータ処理部72に初期化依頼を行ない(S116、120、122)、待機状態となる。
【0028】
モデル60は、初期化依頼に応じて初期化処理を行なう(S118)。また、GUIメタデータ処理部70、及びVUIメタデータ処理部72は、初期化依頼に応じて、GUIメタデータ及びVUIメタデータをそれぞれ解釈し(S124、126)、共有データの領域をリンクし(S128、130)、イベントリスナー登録を行なう(S132、134)。イベントリスナー登録とは、イベントの受け手としてのGUIメタデータ処理部70、及びVUIメタデータ処理部72の存在をイベントシステム82に通知する処理である。
【0029】
図4は、GUIメタデータの記載例である。本図において、GUI要素はルート要素であり、firstScene要素はGUIの初期画面を定義する要素であり、variables要素は共有データを定義する要素の親要素であり、variable要素は共有データを定義する要素であり、events要素はイベントを定義する要素の親要素であり、event要素はイベントを定義する要素であり、scenes要素は画面を定義する要素の親要素であり、scene要素は画面を定義する要素であり、vboxLayout要素は垂直方向の配置を定義する要素であり、label要素はラベルを定義する要素であり、button要素はボタンを定義する要素であり、canvas要素はキャンバスを定義する要素であり、innerPart○要素は文字列の%○の箇所に対して置き換える要素であり、throwEvent要素はイベントを発火するアクションを定義する要素であり、entryActions要素はその画面に入った直後に実行されるアクションを定義する要素であり、eventActions要素はその画面で発生したイベントを受けて実行されるアクションを定義する要素であり、draw要素はname属性に指定された画面の描画を行なう要素であり、redraw要素はname属性に指定された画面の再描画を行なう要素である。なお、後述する50音入力の際の処理やメモリ入力の際の処理、Canvasに地図を貼り付ける具体的処理については、本発明の中核をなさないので説明を省略している。
【0030】
図5は、VUIメタデータの記載例である。本図において、VUI要素はルート要素であり、firstTalk要素はVUIの初期対話を定義する要素であり、variables要素は共有データを定義する要素の親要素であり、variable要素は共有データを定義する要素であり、events要素はイベントを定義する要素の親要素であり、event要素はイベントを定義する要素であり、talks要素は対話を定義する要素の親要素であり、talk要素は対話を定義する要素であり、entryActions要素はその対話に入った直後に実行されるアクションを定義する要素であり、eventActions要素はその対話で発生したイベントを受けて実行されるアクションを定義する要素であり、output要素はconntent属性に指定された内容を発話する要素であり、innerPart○要素はconntent属性内の文字列の%○の箇所に対して、置き換える内容を定義する(○の箇所には1から始まる数値の連番が入る)要素であり、input要素は発話を待ち、発話された内容を、variable属性に指定された変数又は共有データを設定すると共に、設定後は個要素に指定されたアクションを実行する要素であり、throwEvent要素はイベントを発火するアクションを定義する要素であり、transfer要素はその対話から他の対話に遷移するアクションを定義する要素である。
【0031】
続いて、GUIメタデータ処理部70は、画面遷移登録を行なって(S136)、GUIメタデータを実行する(S138)。その後、画面遷移が開始され(S140)、画面情報が描画処理部71に提供される(S142)。画面情報が提供された描画処理部71では、画面情報を描画するようにマルチディスプレイ30を制御する(S144)。
【0032】
一方、VUIメタデータ処理部72は、対話遷移登録を行なって(S146)、VUIメタデータを実行する(S148)。その後、対話遷移が開始され(S150)、対話情報が音声処理部73に提供される(S152)。対話情報が提供された音声処理部73では、「目的地を設定して下さい」等の音声メッセージを出力するように音声入出力装置40を制御する(S154)。
【0033】
以上の処理により、例えば図6の如き画面が表示されると共に上記音声メッセージが出力され、ユーザーによる目的地入力を待つ状態となる。図7は、この状態から音声による目的地入力が選択され、実際に経路案内が開始されるまでの処理を表すシーケンス図である。
【0034】
ユーザーは、図6の表示画面において設けられている複数のボタン、すなわち、50音入力ボタン30A、メモリ入力ボタン30B、及び音声入力ボタン30Cのうち、いずれかにタッチ操作する(S156)。ここでは、音声入力ボタン30Cがタッチ操作されたものとする。
【0035】
描画処理部71は、タッチ操作されたボタンを判別し(S158)、タッチ操作されたボタンに対応するボタン番号をGUIメタデータ処理部70に通知する(S160)。GUIメタデータ処理部70は、これに応じて音声入力イベントを発火する(S162)。発火とは、イベントシステム82に登録されたイベントを呼び出す処理である。
【0036】
音声入力イベントが発火されると、イベントシステム82は、VUIメタデータ処理部72に音声入力イベントを通知する(S164)。VUIメタデータ処理部72は、これに応じて対話情報を音声処理部73に提供し(S166)、音声処理部73は「目的地をどうぞ」等の音声メッセージを出力するように音声入出力装置40を制御する(S168)。
【0037】
ユーザーは、音声メッセージに応じて、目的地を発声して入力する(S170)。音声処理部73は、発声された語句を判別し(S172)、発声された語句に対応する語句認識番号をVUIメタデータ処理部72に通知する(S174)。
【0038】
VUIメタデータ処理部72は、語句認識番号から目的地を判別して(S176)、共有データ81に目的地をセットする(S178)と共に目的地設定イベントを発火する(S180)。
【0039】
目的地設定イベントが発火されると、イベントシステム82は、シナリオメタデータ処理部80に目的地設定イベントを通知する(S182)。シナリオメタデータ処理部80は、これに応じてモデル60の目的地設定関数を呼び出し、これに所定の引数を与える処理を行なう(S184)。この引数の内容は、例えば、共有データ81にセットされた目的地のアドレス、現在地のアドレス、及び現在地変更イベントである。
【0040】
モデル60は、共有データ81に現在地をセットし(S186)、現在地と目的地から最適な経路を地図データベース20において検索する(S188)。そして、現在地変更イベントを発火する(S190)。モデル60は、これ以降、車両の走行に応じて現在地が変更される度に、現在地を変更して(S192)現在地変更イベントを発火する処理を繰り返す。
【0041】
現在地変更イベントが発火されると、イベントシステム82は、GUIメタデータ処理部70及びVUIメタデータ処理部72に現在地変更イベントを通知する(S194、196)。GUIメタデータ処理部70は、これに応じて経路案内画面の画面情報を描画処理部71に提供する(S198)。描画処理部71では、共有データ81にセットされた現在地を表示するようにマルチディスプレイ30を制御する(S200)。この際の表示画面の一例を図8に示す。また、VUIメタデータ処理部72は、対話情報を音声処理部73に提供する(S202)。音声処理部73では、共有データ81にセットされた現在地を用いて、「現在××を走行中です」等の音声メッセージを出力するように音声入出力装置40を制御する(S204)。
【0042】
ここで、シナリオメタデータ処理部80の如き役割を果たすオブジェクト等を備えないシステムについて考える。例えば、図9に示す如く、モデル60とGUIメタデータ処理部70やVUIメタデータ処理部72が直接的に共有データ81やイベントシステム82に関与するような構成の車載ナビゲーション装置である(図示の都合上、共有データ81とイベントシステム82を一体として示した)。このような装置においては、共有データ81やイベントシステム82に登録されるイベントの態様は、モデル60やGUIメタデータ処理部70、VUIメタデータ処理部72の設計規格に応じて決定される。換言すると、モデル60やGUIメタデータ処理部70、VUIメタデータ処理部72のうち一つの仕様が変更された結果、当該変更されたオブジェクトがやり取りする共有データやイベントの態様が変更されることとなった場合、他のオブジェクトも当該変更された共有データやイベントに対応可能なものに設計変更する必要が生じる。また、他のオブジェクトの関数(メソッド)を呼び出す際にも、呼び出される側のオブジェクトにおいて引数の変更等の仕様変更があった場合、呼び出す側においても引数設定の処理を変更する必要が生じる。この結果、例えば、ある車種の車載ナビゲーション装置を他の車種に適用する場面において、車両サイズの違い等に起因してGUIメタデータ処理部70のみを仕様変更しようとすると、GUIメタデータ処理部70がやりとりする共有データやイベント、関数(メソッド)の引数等が変更される結果、モデル60やVUIメタデータ処理部72も同様に仕様変更しなければならない場合が生じ得る。
【0043】
これでは、システムの再利用を促進するのが困難となり、例えば表示画面のみを変更した車載ナビゲーション装置を再開発する際にも、装置全体を再設計することになりかねない。そこで、本実施例の車載ナビゲーション装置1では、シナリオメタデータ処理部80が、各サブシステムがそれぞれ定義する共有データやイベントの関連付けを行なうと共に関数(メソッド)の必要とする引数が異なる場合の補完や削除を行なっている。これにより、上記の如くいずれかのサブシステムの仕様変更の場面においても、仕様変更を行なったサブシステムとシナリオメタデータのみを変更することで十分となるのである。これにより、サブシステムの開発や設計変更が他のサブシステムに与える影響を小さくする(関係を疎にする)ことができ、ひいてはシステムの再利用を促進することができる。また、シナリオメタデータは,XML等のメタ言語で記述可能であるため、比較的容易に変更可能である。
【0044】
なお、図10、11、12、及び13は、それぞれ、以上説明したシーケンス図に対応するシナリオメタデータ処理部80、GUIメタデータ処理部70、VUIメタデータ処理部72、及びモデル60のフローチャートである。各図における動作については、既にシーケンス図に即して説明したものであるため、説明を省略する。
【0045】
また、図14は、シナリオメタデータ、GUIメタデータ、及びVUIメタデータの状態遷移図である。
【0046】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【0047】
例えば、拡大MVCに基づいて設計されたシステムに適用された場合を例示したが、通常のMVCに基づいて設計されたシステムにも適用可能である。
【産業上の利用可能性】
【0048】
本発明は、自動車産業やソフトウエア関連産業等に利用できる。
【図面の簡単な説明】
【0049】
【図1】本発明の一実施例に係る車載ナビゲーション装置1の構成を概念的に示す概念図である。
【図2】本実施例の車載ナビゲーション装置1が起動され、ユーザーの目的地設定入力を受付可能な状態となるまでの処理を表すシーケンス図である。
【図3】シナリオメタデータの記載例である。
【図4】GUIメタデータの記載例である。
【図5】VUIメタデータの記載例である。
【図6】ユーザーによる目的地入力を待つ状態におけるマルチディスプレイ30の表示画面の一例を示す図である。
【図7】ユーザーによる目的地入力を待つ状態から音声による目的地入力が選択され、実際に経路案内が開始されるまでの処理を表すシーケンス図である。
【図8】経路案内を行なっている際のマルチディスプレイ30の表示画面の一例を示す図である。
【図9】本発明の比較例に相当する車載ナビゲーション装置の構成を概念的に示す概念図である。
【図10】図3及び7のシーケンス図に対応するシナリオメタデータ処理部80のフローチャートである。
【図11】図3及び7のシーケンス図に対応するGUIメタデータ処理部70のフローチャートである。
【図12】図3及び7のシーケンス図に対応するVUIメタデータ処理部72のフローチャートである。
【図13】図3及び7のシーケンス図に対応するモデル60のフローチャートである。
【図14】シナリオメタデータ、GUIメタデータ、及びVUIメタデータの状態遷移図である。
【符号の説明】
【0050】
1 車載ナビゲーション装置
10 GPS受信機
20 地図データベース
30 マルチディスプレイ
30A 50音入力ボタン
30B メモリ入力ボタン
30C 音声入力ボタン
40 音声入出力装置
50 ナビゲーション装置用ECU
60 モデル
70 GUIメタデータ処理部
71 描画処理部
72 VUIメタデータ処理部
73 音声処理部
80 シナリオメタデータ処理部
81 共有データ
82 イベントシステム

【出願人】 【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
【出願日】 平成18年6月28日(2006.6.28)
【代理人】 【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦


【公開番号】 特開2008−8723(P2008−8723A)
【公開日】 平成20年1月17日(2008.1.17)
【出願番号】 特願2006−178699(P2006−178699)