JP2015049187A - シミュレーション走行ルート生成方法およびそのシステム - Google Patents
シミュレーション走行ルート生成方法およびそのシステム Download PDFInfo
- Publication number
- JP2015049187A JP2015049187A JP2013182171A JP2013182171A JP2015049187A JP 2015049187 A JP2015049187 A JP 2015049187A JP 2013182171 A JP2013182171 A JP 2013182171A JP 2013182171 A JP2013182171 A JP 2013182171A JP 2015049187 A JP2015049187 A JP 2015049187A
- Authority
- JP
- Japan
- Prior art keywords
- travel route
- simulation
- route generation
- simulation travel
- navigation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Navigation (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】走行ログによるシミュレーション走行テストの際に、注目しているナビゲーションイベントや、修正したプログラムコードに関連したシミュレーション走行ルートを生成することで、必要な部分のみから構成されたテスト用の走行ルートを提供する。
【解決手段】シミュレーション走行ルート作成装置は、ナビゲーションの実行を監視する実行監視部を有し、当該実行監視部が、走行ログ上のデータとイベントとの対応付けを行う。また、走行ログ上のデータとプログラム中のコードの実行箇所との対応付けを行う。作成した情報から、指定したイベントや、関数に対応した部分データを走行ログから抽出し、抽出した部分データを連結して、一つのシミュレーション走行ルートとする。これにより、テストの目的にあったルートのみから構成される走行ルートを作成できる。
【選択図】図15
【解決手段】シミュレーション走行ルート作成装置は、ナビゲーションの実行を監視する実行監視部を有し、当該実行監視部が、走行ログ上のデータとイベントとの対応付けを行う。また、走行ログ上のデータとプログラム中のコードの実行箇所との対応付けを行う。作成した情報から、指定したイベントや、関数に対応した部分データを走行ログから抽出し、抽出した部分データを連結して、一つのシミュレーション走行ルートとする。これにより、テストの目的にあったルートのみから構成される走行ルートを作成できる。
【選択図】図15
Description
本発明は、移動体の移動に伴って音声や表示による案内を行うナビゲーション装置、及びナビゲーション方法におけるシミュレーション用走行ルート生成方法およびそのシステムに係り、特に所望の事象に対応した走行箇所のみを含む走行ルートを生成する方法に関する。
自動車等の移動体に搭載され、移動体の移動に伴って音声や表示による目的地への経路案内を行うカーナビゲーション装置が知られている。カーナビゲーション装置の開発においては、開発したプログラムの動作検証のために、実際に自動車を走行させてテストを実施し、不具合がないかを確認する必要がある。しかし、プログラムの修正のたびに自動車を実際に走行させてテストするのは手間がかかる。そのため、一度、自動車を実際に走行したときのセンサー情報(GPSや車速パルスなど、ナビゲーション処理に必要な入力データ)を保存しておき、プログラムのテストのときに、保存しておいたセンサー情報を利用して、センサーからの入力を擬似的に発生させることで、実際に自動車を走行させることなく、ナビゲーションプログラムの動作を確認する手法がとられる。以下、擬似的にナビゲーションプログラムを動作させることをシミュレーション走行、保存したセンサー情報を走行ログと呼ぶ。
ナビゲーションは、交差点への接近、速度超過、交通情報の受信、危険地帯の通過、といったナビゲーションに係わる事象が発生したタイミングで、利用者への案内を音声や画面表示で行う。そのため、ナビゲーションのテストでは、前記のようなナビゲーションに係わる事象の発生タイミングにおける挙動をテストしたい場合が多い。例えば車両が交差点に差しかかる手前で、曲がるべき方向を、画面と音声で示す機能が知られている。このような機能のテストでは、実際に交差点付近を走行する状態を模擬して、音声出力や画面表示が正常に実施されるかをテストすることが必要となる
前述のシミュレーション走行によるテストでは、実際に自動車を走行させることなく実車による走行の手間を省くことはできる。一方、テスト実施時までに準備されている走行ログ(走行ログの収集時には、実際の自動車で起こりうる様々な事象を考慮してデータを収集している。)には、テストしたい事象に無関係な走行箇所が含まれ、これを一から再生した場合、無関係な走行箇所についてのテスト時間が無駄になる課題があった。また、ナビゲーションのプログラムを修正した場合に、修正によって確認したい事象は異なるのに、前記シミュレーション走行によるテストでは、やはり、プログラムの修正箇所に無関係な部分が走行ログに含まれてしまうという別の課題があった。
前述のシミュレーション走行によるテストでは、実際に自動車を走行させることなく実車による走行の手間を省くことはできる。一方、テスト実施時までに準備されている走行ログ(走行ログの収集時には、実際の自動車で起こりうる様々な事象を考慮してデータを収集している。)には、テストしたい事象に無関係な走行箇所が含まれ、これを一から再生した場合、無関係な走行箇所についてのテスト時間が無駄になる課題があった。また、ナビゲーションのプログラムを修正した場合に、修正によって確認したい事象は異なるのに、前記シミュレーション走行によるテストでは、やはり、プログラムの修正箇所に無関係な部分が走行ログに含まれてしまうという別の課題があった。
この課題に対して、特許文献1が開示するナビゲーション装置は、走行ログを線として画面表示し、利用者が画面上で指定した走行箇所についてのみ部分的にシミュレーション走行する機能を持つ。
また、特許文献2が開示するテスト方法は、プログラムと、プログラムをテストするための入力データ(テストケースと呼ぶ)との間の関連に基づき、プログラムの修正箇所に関連したテストケースのみをテスト対象としてテストを実施する。すべてのテストケースを実行するのに要する時間の削減を行っている。
また、特許文献2が開示するテスト方法は、プログラムと、プログラムをテストするための入力データ(テストケースと呼ぶ)との間の関連に基づき、プログラムの修正箇所に関連したテストケースのみをテスト対象としてテストを実施する。すべてのテストケースを実行するのに要する時間の削減を行っている。
特許文献1によるナビゲーション装置では、シミュレーション走行させる場所を画面上から選択するため、テストしたい事象が、走行箇所のどの部分で発生するのか、視覚的に判断できる事象である場合しか、場所を特定できないうえ、厳密にどこで事象が発生するかは、画面上では把握できない。また、特許文献2によるテスト方法では、複数の走行ログから、プログラムの修正に関連のある走行ログを抽出することはできるが、走行ログの中に含まれるテストに無関係な走行部分を特定し、削減することはできない。
本発明は、上記問題に鑑みてなされたものであり、ナビゲーション中に発生する事象や、プログラムの修正箇所に基づいて、テストに必要な走行ルートを生成することを目的とする。
本発明は、上記問題に鑑みてなされたものであり、ナビゲーション中に発生する事象や、プログラムの修正箇所に基づいて、テストに必要な走行ルートを生成することを目的とする。
上記課題を解決するために本発明では、移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムを、前記シミュレーション走行ルート生成装置は、前記移動履歴情報を生成するシミュレーション走行ルート生成部を有し、前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うナビゲーション部と、当該ナビゲーション部の実行状態を監視する監視部とを有し、前記ナビゲーション部が、前記移動履歴情報に基づいてナビゲーション処理を実行する際に発生する事象と、事象が発生したときの前記移動履歴情報の項目との対応を、前記監視部が記録し、前記シミュレーション走行ルート生成部が、前記監視部が記録した情報から、抽出条件に該当する事象に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成するように構成した。
また、上記課題を解決するために本発明では、移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムを、前記シミュレーション走行ルート生成装置は、前記移動履歴情報を生成するシミュレーション走行ルート生成部を有し、前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うナビゲーション部と、当該ナビゲーション部の実行状態を監視する監視部を有し、前記ナビゲーション部が実行するプログラム中の特定位置と、当該プログラムの特定位置を実行した時点の、前記移動履歴情報から読み出された項目との対応を、前記監視部が記録し、前記シミュレーション走行ルート生成部が、前記監視部が記録した情報から、指定したプログラム中の特定位置に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成するように構成した。
また、上記課題を解決するために本発明では、移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムにおけるシミュレーション走行ルート生成方法において、前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うとともに、実行状態を監視し、前記ナビゲーション装置が、前記移動履歴情報に基づいてナビゲーション処理を実行する際に発生する事象と、該事象が発生したときの前記移動履歴情報の項目との対応を記録し、前記シミュレーション走行ルート生成装置が、前記記録された情報から、抽出条件に該当する事象に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成するようにした。
また、上記課題を解決するために本発明では、移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムにおけるシミュレーション走行ルート生成方法において、前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うとともに、ナビゲーション処理の実行状態を監視し、前記ナビゲーション装置が、実行するプログラム中の特定位置と、当該プログラムの特定位置を実行した時点の、前記移動履歴情報から読み出された項目との対応を記録し、前記シミュレーション走行ルート生成装置が、前記ナビゲーション装置が記録した情報から、指定したプログラム中の特定位置に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成するようにした。
本発明によれば、注目してテストしたいナビゲーションイベントや、修正したプログラムコードに関連した走行箇所のみを含む走行ルートを生成でき、生成した走行ルートを用いて、シミュレーション走行によるテストが実施できる。そのため、注目ポイントに無関係な部分を走行する必要がないため、テストの効率化が実現できる。
以下、本発明の実施形態に係るシミュレーション走行ルート生成システムについて図面を参照して説明する。
図3は、本発明の一実施形態におけるシミュレーション走行ルート生成システムの構成を表すシステム図である。シミュレーション走行を可能とする仕様のナビゲーション装置10とコンピュータ20は、USB(Universal Serial Bus)のような外部バス30で接続され、双方向に通信できる。なお、本実施の形態では、ナビゲーション装置とコンピュータ(シミュレーション走行ルート生成装置)が別の装置である例を示したが、同一のコンピュータ内でナビゲーションプログラムとシミュレーション走行ルート生成プログラムとを動作させる実施形態も考えられ、各プログラムの実行装置は問わない。
図1は、本発明の一実施形態に係るナビゲーション装置10のブロック図である。ナビゲーション装置10は、図1に示すように、CPU101と、メインメモリ102と、スピーカー104と、表示装置105と、センサー106と、通信装置109と、二次記憶装置116と、を有する。そして、これらは、内部バス103に繋がれている。センサー106は、さらに、時刻・位置取得装置107と、速度取得装置107と、を有する。センサー106は、GPS(Global Positioning System)や車速パルスなどの方法によって、自動車の移動を計測し、センサー情報(時刻、緯度経度、自動車の速度)を取得する。このナビゲーション装置10は、実際の自動車に搭載されるナビゲーション装置が備えるハードウエア構成、およびソフトウエア構成を備えている。
二次記憶装置116には、ナビゲーションプログラム113、実行監視プログラム110が記憶されており、これらは、必要に応じてメインメモリ102にロードされ、CPU101がこれらのプログラムに従って動作することで、後述する事前処理やシミュレーション走行処理が実行される。
ナビゲーションプログラム113は、センサー情報取得プログラム1131と、イベント管理プログラム1132とを部分プログラムとして持つ。また、本発明の一実施形態の機能を実現するために導入された実行監視プログラム110は、イベント監視プログラム1101と、コード監視プログラム1102とを部分プログラムとして有する。
ナビゲーションプログラム113は、センサー情報取得プログラム1131と、イベント管理プログラム1132とを部分プログラムとして持つ。また、本発明の一実施形態の機能を実現するために導入された実行監視プログラム110は、イベント監視プログラム1101と、コード監視プログラム1102とを部分プログラムとして有する。
二次記憶装置116には、さらに、イベント発生情報DB(Data Base)111、コード実行情報DB112、走行ログDB114、地図DB115が記憶されている。走行ログDB114は、自動車等の実車によって走行したときのセンサー106からの情報の履歴(走行ログ)を保持する。イベント発生情報DB111は、走行ログを用いてシミュレーション走行したときに発生するイベントと走行ログの位置との関係(走行ログに記録されたどのデータが再現された時にイベントが発生したかの関係)を保持する。
コード実行情報DB112は、走行ログを用いたシミュレーション走行したときに実行されたナビゲーションプログラム113の各関数と走行ログの位置との関係(関数の入口とend(出口)が実行された時点が、走行ログのどのデータに対応するのかを表わす関係)を保持する。地図DB115は、ナビゲーションを行うために利用される地図データを保持する。
コード実行情報DB112は、走行ログを用いたシミュレーション走行したときに実行されたナビゲーションプログラム113の各関数と走行ログの位置との関係(関数の入口とend(出口)が実行された時点が、走行ログのどのデータに対応するのかを表わす関係)を保持する。地図DB115は、ナビゲーションを行うために利用される地図データを保持する。
図2は、本発明の一実施形態に係るコンピュータ20のブロック図である。コンピュータ20はシミュレーション走行ルート生成装置であり、図2に示すように、CPU101と、メインメモリ102と、表示装置105と、入力装置201と、通信装置109と、二次記憶装置116と、を有する。そして、これらは、内部バス103に繋がれている。
二次記憶装置116には、シミュレーション走行ルート生成プログラム202、コード開発プログラム204、が記憶されており、これらは、必要に応じてメインメモリ102にロードされ、CPU101がこれらのプログラムに従って動作することで、後述するシミュレーション走行ルート生成処理が実行される。
シミュレーション走行ルート生成プログラム202は、抽出条件指定プログラム2021を部分プログラムとして持つ。
シミュレーション走行ルート生成プログラム202は、抽出条件指定プログラム2021を部分プログラムとして持つ。
二次記憶装置116には、さらに、シミュレーション走行ルートDB203、コード修正履歴DB205、が記憶されている。シミュレーション走行ルートDB203は、生成したシミュレーション走行ルートを保持する。コード修正履歴DB205は、開発者がコード開発プログラム204を用いてナビゲーションプログラムを修正した際の履歴を保持する。
図4は、走行ログDB114に格納されている走行ログ401の実例を示す。走行ログ401は、自動車にナビゲーション装置10を搭載して、実際に路上を走行しながらナビゲーションプログラム113を実行した際の、センサー106からの入力を記録したものである。図4に示すように、移動する車に関する位置および速度が時刻情報とともに記録される。データの記録頻度は、例えば1データ/秒〜10データ/秒程度のデータが、シーケンス番号が付けられて記録される。従って、走行ログ401の位置とは、シーケンス番号のことである。
以下では、実車走行を複数回実施することで、走行ログ401が複数、走行ログDB114に格納されていることを想定する。ただし、走行ログ401が必ずしも複数存在する必要はなく、一つの走行ログ401において以下の処理を行ってもよい。
以下では、実車走行を複数回実施することで、走行ログ401が複数、走行ログDB114に格納されていることを想定する。ただし、走行ログ401が必ずしも複数存在する必要はなく、一つの走行ログ401において以下の処理を行ってもよい。
図5は、本実施形態のナビゲーション装置10の動作を概念的に示す図である。ナビゲーション部502、実行監視部504、およびナビゲーション部502の部分機能であるセンサー情報取得部5021、イベント管理部5022は、CPU101の実行により実現される機能部であり、以下の処理を実行する。
ナビゲーション部502は、地図DB115から読み込まれた地図データと、センサー情報取得部5021からのセンサー情報に基づき、ナビゲーション処理を実施し、利用者への案内情報をスピーカー104、表示装置105に出力する。ナビゲーション部502は、イベントにしたがって動作する。ナビゲーション部502が使用するイベントは、ナビゲーションプログラム113の内容によって異なる。ナビゲーション部502は、処理中に使用するイベントを、起動時や実行中にイベント管理部5022に登録することで、発生したイベントを受信できるようになる。
イベント管理部5022は、ナビゲーション処理中に発生する全てのイベントを管理する。イベントには、自動車の移動に伴う、現在位置の変更、交差点接近、速度超過などが含まれるが、ナビゲーション中に発生するイベントであればこれに限らない。
センサー情報取得部5021は、実車による走行か、シミュミレーション走行かによって、センサー情報の取得先を切り替える。実車による走行の場合は、センサー106からセンサー情報を取得する。シミュレーション走行の場合は、走行ログDB114内の走行ログ401、またはコンピュータ20から受信したシミュレーション走行ルート501のいずれかから、センサー情報を取得する。
実行監視部504は、ナビゲーション部502の実行状態を監視し、実行中に発生したイベントをイベント発生DB111に格納(どの走行ログのシーケンス番号が何番のセンサ情報を処理した時点でイベントが発生したかを記録)する。また、実行監視部504は、ナビゲーション部502のプログラムコードの実行位置を監視し、実行された関数に関する情報を、コード実行情報DB112に格納(ナビゲーションプログラムの各関数の入口、および出口(end)を処理した時点に、どの走行ログのシーケンス番号が何番のセンサ情報を処理していたかの対応関係を記録)する。この処理を実施するために、ナビゲーションプログラム113のコンパイルでは、各関数の入口(function())、出口(end)を識別するコードを残したロードモジュールを作成して、そのロードモジュールを実行することで、実行監視部504はコード実行情報を記録する。
図6は、本実施形態のコンピュータ20の動作を概念的に示す図である。コード作成部601、シミュレーション走行ルート生成部602は、CPU101の実行により実現する機能部であり、以下の処理を実行する。
コード作成部601は、プログラムの開発者からの入力に従って、ナビゲーションプログラム113のプログラムコードを作成する。開発者からの入力は、入力装置201、開発者への出力は表示装置105が行う。また、コード作成部601は、プログラムコードの修正履歴をコード修正テーブル604としてコード修正履歴DB205に格納する。
シミュレーション走行ルート生成部602は、抽出条件指定部6021を有する。シミュレーション走行ルート生成部602は、ナビゲーション装置10から取得した走行ログ401、イベント発生テーブル801、コード実行テーブル802と、コード修正テーブル604、抽出条件603から、注目するテスト内容に応じて、シミュレーション走行ルート501を生成する。
図7は、コード作成部601が作成するコード修正テーブル604の実例を示す。コード修正テーブル604は、プログラムコードの修正箇所のファイル名と関数名、および変更日の日付情報からなる。コード修正テーブル604の実例として、図7では、修正履歴を関数単位としたが、ソースプログラムコードの行単位の変更履歴など、修正履歴であればこれに限らない。
以下、本発明の一実施形態におけるシミュレーション走行ルート生成システムで実行される各処理の詳細について説明する。
図8は、テスト用のシミュレーション走行に先立って行う事前処理を示すフローチャートである。事前処理では、実車走行によって得られた走行ログ401を用いて、シミュレーション走行を実行し、イベント発生テーブル801およびコード実行テーブル802を生成する。
図8は、テスト用のシミュレーション走行に先立って行う事前処理を示すフローチャートである。事前処理では、実車走行によって得られた走行ログ401を用いて、シミュレーション走行を実行し、イベント発生テーブル801およびコード実行テーブル802を生成する。
ナビゲーション部502のセンサー情報取得部5021は、走行ログ401に記録されているセンサー情報をシーケンス番号順に順次読み出し、シーケンス番号を現在処理中の番号として記憶する(ステップS801)。実行監視部504は、ナビゲーション部502の実行を監視し、ナビゲーション部でイベント、例えば速度超過や、交差点接近などが発生したかを判定し(ステップS803)、発生していた場合、発生したイベントの種類と、現在のシーケンス番号とを対応させてイベント発生情報DB111に記録されたイベント発生テーブル801に追加する(ステップS804)。さらに実行監視部504は、プログラムコードの実行箇所が、関数の入り口、または関数の出口(end)に到達したかを判定し(ステップS805)、到達している場合は、現在のシーケンス番号と対応させて、コード実行情報DB112に記録されたコード実行テーブル802に追加する(ステップS806)。このようにして、ナビゲーション部502と連動した実行監視部504は、走行ログ401の読み込みが終了するまで、イベント発生テーブル801、コード実行テーブル802の生成処理を繰り返す(ステップS802)。
事前処理は、走行ログ401が複数ある場合、それぞれに対して実行する。
事前処理は、走行ログ401が複数ある場合、それぞれに対して実行する。
図9は、生成されたイベント発生テーブル801の例を表す。イベント発生テーブル801は、発生したイベントの種類(を表わすコード)、発生した時点でナビゲーション部502が処理していた走行ログ401のファイル名と、発生したときのシーケンス番号を表わすデータ項目から成る。
図10は、生成されたコード実行テーブル802の例を表す。コード実行テーブル802は、ナビゲーションプログラムコードのファイル名と、実行が確認された関数名(関数の入口と出口を識別するデータ)と、および、それを実行した時点でナビゲーション部502が処理していた走行ログ401のファイル名とシーケンス番号を表わすデータ項目から成る。
以上の事前処理は、ナビゲーションプログラムの修正を行った場合、ナビゲーションプログラム113が扱うイベントが変更追加された場合などに再度実行して、イベント発生テーブル801、コード実行テーブル802を再構築する。
次に、コンピュータ20によるシミュレーション走行ルート生成処理の手順について説明する。
図11、図12は、抽出する走行ルートを指定する設定画面の例を示す。
図11は、開発者がテストを希望する内容を、ナビゲーション中に発生するイベントの種類やイベントの重複度によって指定し、指定した内容に応じたシミュレーション走行ルート401を生成するための設定画面である。図11では、速度超過イベント、交差点接近イベント、及びイベントが3つ以上同時発生する場所を指定した例を示す。
図11、図12は、抽出する走行ルートを指定する設定画面の例を示す。
図11は、開発者がテストを希望する内容を、ナビゲーション中に発生するイベントの種類やイベントの重複度によって指定し、指定した内容に応じたシミュレーション走行ルート401を生成するための設定画面である。図11では、速度超過イベント、交差点接近イベント、及びイベントが3つ以上同時発生する場所を指定した例を示す。
図12は、ナビゲーションプログラムのプログラムコードを修正した場所に応じて、シミュレーション走行ルート501を生成するための設定画面である。図12では、2013年3月31日 19時以降に修正したプログラムコードの関数に関連するシミュレーション走行ルート501の生成を指定した例を示す。
図13は、設定した条件に基づくシミュレーション走行ルート生成処理の手順を示すフローチャートである。
シミュレーション走行ルート生成部602は、ナビゲーション装置10から外部バス30を介して、走行ログ401、イベント発生テーブル801、コード実行テーブル802を取得し、走行ログに含まれるイベントの種類を調べ、記憶する(ステップS1301)。
抽出条件指定部6021は、図11、図12に例示したような設定画面を利用者に表示して、利用者の入力を受付けて、抽出条件603を取得する(ステップS1302)。このとき、ステップS1301で記憶したイベントの種類を表示し、利用者に選択させる。また、利用者に選択させることなく、ステップS1301で記憶したイベントの種類全てを抽出条件603としてもよい。
シミュレーション走行ルート生成部602は、ナビゲーション装置10から外部バス30を介して、走行ログ401、イベント発生テーブル801、コード実行テーブル802を取得し、走行ログに含まれるイベントの種類を調べ、記憶する(ステップS1301)。
抽出条件指定部6021は、図11、図12に例示したような設定画面を利用者に表示して、利用者の入力を受付けて、抽出条件603を取得する(ステップS1302)。このとき、ステップS1301で記憶したイベントの種類を表示し、利用者に選択させる。また、利用者に選択させることなく、ステップS1301で記憶したイベントの種類全てを抽出条件603としてもよい。
次に、シミュレーション走行ルート生成部602は、イベント発生テーブル801から、抽出条件603に設定されたイベントと一致するものをすべて取り出し、抽出リスト1301として追加する。また、同じく、抽出条件603で指定された重複度以上のイベントが、指定した時間内に発生するエントリを、イベント発生テーブル801から全て取り出す。そして、抽出リスト1301として追加する。なお、指定した時間内に発生するか否かの判定は、イベント発生テーブル801の各エントリのシーケンス番号に相当する、走行ログ401中のエントリについての時刻情報を比較することで行う(ステップS1303)。
次に、シミュレーション走行ルート生成部602は、コード修正テーブル604から、抽出条件に指定した期間に修正した関数の一覧を取得する(ステップS1304)。
次に、コード実行テーブル802から、ステップS1304で抽出した関数の入口に対応するエントリを抽出し、抽出リスト1301に追加する(ステップS1305)。なお、ステップS1304およびステップS1305で抽出リスト1301に追加する際に、複数の候補が見つかった場合は、最初に見つかったものを追加する。ただし、複数のうち、走行ログ401の位置が近いものは、複数の候補を同時に追加するなどの抽出方法も考えられ、最初に見つかったものを追加する抽出方法には限らない。また、抽出リスト1301への追加は、ファイル名およびシーケンス番号でソートし、同内容で既に登録がある場合は、新たに追加はしない。そして、抽出リスト1301に追加された関数の入口のエントリに対応する関数の出口のエントリも抽出リスト1301に追加される。
次に、コード実行テーブル802から、ステップS1304で抽出した関数の入口に対応するエントリを抽出し、抽出リスト1301に追加する(ステップS1305)。なお、ステップS1304およびステップS1305で抽出リスト1301に追加する際に、複数の候補が見つかった場合は、最初に見つかったものを追加する。ただし、複数のうち、走行ログ401の位置が近いものは、複数の候補を同時に追加するなどの抽出方法も考えられ、最初に見つかったものを追加する抽出方法には限らない。また、抽出リスト1301への追加は、ファイル名およびシーケンス番号でソートし、同内容で既に登録がある場合は、新たに追加はしない。そして、抽出リスト1301に追加された関数の入口のエントリに対応する関数の出口のエントリも抽出リスト1301に追加される。
図14は、抽出リスト1301の例を示す。図14のように、抽出リスト1301は、走行ログ401のファイル名およびシーケンス番号からなる。
次に、抽出リスト1301の各エントリについて、シーケンス番号に該当する走行ログ401中のエントリおよび、前後数秒以内のエントリを取り出す(ステップS1306)。抽出したい箇所の前後のエントリも含めて取り出すことで、走行ルート片とするためである。
抽出リスト1301に追加されている関数の入口のエントリと関数の出口のエントリとの間の走行ログ401中のエントリは全て取出されて、走行ルート片とする
次に、ステップS1306で取得したエントリをシミュレーション走行ルート501に追加する(ステップS1307)。シミュレーション走行ルート501への追加については、ファイル名、シーケンス番号でソートし、重複は追加しない。
シミュレーション走行ルート生成部602は、最後に、シミュレーション走行ルート501を、ナビゲーション装置10に送信して(ステップS1308)、終了する。
なお、ステップS1307では、ステップS1306で抽出したエントリをそのままシミュレーション走行ルート501として追加したが、ルートが分断しないように、ルート探索等を用いて連結してもよい。これは、ルートが繋がっていないとナビゲーションプログラムが正常に動作しない場合などに有効である。
次に、抽出リスト1301の各エントリについて、シーケンス番号に該当する走行ログ401中のエントリおよび、前後数秒以内のエントリを取り出す(ステップS1306)。抽出したい箇所の前後のエントリも含めて取り出すことで、走行ルート片とするためである。
抽出リスト1301に追加されている関数の入口のエントリと関数の出口のエントリとの間の走行ログ401中のエントリは全て取出されて、走行ルート片とする
次に、ステップS1306で取得したエントリをシミュレーション走行ルート501に追加する(ステップS1307)。シミュレーション走行ルート501への追加については、ファイル名、シーケンス番号でソートし、重複は追加しない。
シミュレーション走行ルート生成部602は、最後に、シミュレーション走行ルート501を、ナビゲーション装置10に送信して(ステップS1308)、終了する。
なお、ステップS1307では、ステップS1306で抽出したエントリをそのままシミュレーション走行ルート501として追加したが、ルートが分断しないように、ルート探索等を用いて連結してもよい。これは、ルートが繋がっていないとナビゲーションプログラムが正常に動作しない場合などに有効である。
また、ステップS1304およびステップS1305では、最初に発見したエントリを追加しているが、個数の上限を設けて複数エントリを追加したり、最短のルートとなるように最適なルートを選択したりしてもよい。
図15は、シミュレーション走行ルート生成処理によって、二つの走行ログ401から、二つの部分が抽出されたシミュレーション走行ルート501の例および、さらに分断した走行箇所をルート探索で結合して生成されたシミュレーション走行ルート501の例を示す。
次に、ナビゲーション部502によるテストのためのシミュレーション走行の手順について説明する。
図16は、シミュレーション走行の手順を示すフローチャートである。ナビゲーション部502は、シミュレーション走行ルート501の読み出しを行い(ステップS1601)、データが存在する間、ナビゲーション動作を実行する(ステップS1603)。データの読み込みが終了した場合は、プログラムを終了する(ステップS1602)。
図16は、シミュレーション走行の手順を示すフローチャートである。ナビゲーション部502は、シミュレーション走行ルート501の読み出しを行い(ステップS1601)、データが存在する間、ナビゲーション動作を実行する(ステップS1603)。データの読み込みが終了した場合は、プログラムを終了する(ステップS1602)。
なお、本実施の一形態では、テストシミュレーション走行に先立って、シミュレーション走行ルート501の作成を行ったが、シミュレーション走行中に、ナビゲーション部502が必要とするイベントをイベント管理部5022に登録するたびに、当該イベントに対応する走行ルートを、シミュレーション走行ルート生成処理によって、動的に生成し、走行するルートを実行中に追加してもよい。
以上で説明したように本発明によれば、注目しているナビゲーションイベントやイベントの発生条件に基づき、複数の走行ログから、注目している状態を発生するルートのみを抽出する。これによって、効率的に走行テストを実行できる。また、修正した関数に関係のある走行ルートのみを抽出する。これによって、プログラムコード修正時のテストを効率よく実行できる。
10…ナビゲーション装置、20…コンピュータ、101…CPU、102…メインメモリ、103…内部バス、104…スピーカー、105…表示装置、106…センサー、107…時刻位置取得装置、108…速度取得装置、109…通信装置、110…実行監視プログラム、111…イベント発生情報DB、112…コード実行情報DB、113…ナビゲーションプログラム、114…走行ログDB、115…地図DB、116…二次記憶装置、202…シミュレーション走行ルート生成プログラム、203…シミュレーション走行ルートDB、204…コード開発プログラム、205…コード修正履歴DB、401…走行ログ、501…シミュレーション走行ルート、502…ナビゲーション部、504…実行監視部、601…コード作成部、602…シミュレーション走行ルート生成部、603…抽出条件、604…コード修正テーブル、801…イベント発生テーブル、802…コード実行テーブル、1304…抽出リスト。
Claims (19)
- 移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムであって、
前記シミュレーション走行ルート生成装置は、前記移動履歴情報を生成するシミュレーション走行ルート生成部を有し、
前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うナビゲーション部と、当該ナビゲーション部の実行状態を監視する監視部とを有し、
前記ナビゲーション部が、前記移動履歴情報に基づいてナビゲーション処理を実行する際に発生する事象と、事象が発生したときの前記移動履歴情報の項目との対応を、前記監視部が記録し、
前記シミュレーション走行ルート生成部が、前記監視部が記録した情報から、抽出条件に該当する事象に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成する、
ことを特徴とするシミュレーション走行ルート生成システム。 - 請求項1記載のシミュレーション走行ルート生成システムにおいて、
前記抽出条件とは、ユーザが指定した特定の事象であることを特徴とするシミュレーション走行ルート生成システム。 - 請求項1記載のシミュレーション走行ルート生成システムにおいて、
前記抽出条件とは、ユーザが指定した複数の事象の重複度であることを特徴とするシミュレーション走行ルート生成システム。 - 請求項1記載のシミュレーション走行ルート生成システムを構成する前記ナビゲーション装置において、
前記ナビゲーション部が、必要とする事象が変更されたときに、当該事象に対応するシミュレーション走行ルートを生成し、走行箇所とすることを特徴とするシミュレーション走行ルート生成システム。 - 移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムであって、
前記シミュレーション走行ルート生成装置は、前記移動履歴情報を生成するシミュレーション走行ルート生成部を有し、
前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うナビゲーション部と、当該ナビゲーション部の実行状態を監視する監視部とを有し、
前記ナビゲーション部が実行するプログラム中の特定位置と、当該プログラムの特定位置を実行した時点の、前記移動履歴情報から読み出された項目との対応を、前記監視部が記録し、
前記シミュレーション走行ルート生成部が、前記監視部が記録した情報から、指定したプログラム中の特定位置に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成する、
ことを特徴とするシミュレーション走行ルート生成システム。 - 前記プログラム中の特定位置は、前記プログラムに含まれる関数の入口、または/および出口に当る位置であることを特徴とする請求項5に記載のシミュレーション走行ルート生成システム。
- 前記指定したプログラム中の特定位置は、前記ナビゲーション部が実行するプログラムコードの修正履歴から、指定された期間に修正された関数が抽出されて、該関数の入口、または/および出口に当る位置であることを特徴とする請求項5に記載のシミュレーション走行ルート生成システム。
- 請求項1または請求項5に記載のシミュレーション走行ルート生成システムにおいて、
前記シミュレーション走行ルート生成部が、前記移動履歴情報から項目を抽出する際に、抽出する移動履歴情報の項目の前後にある一つまたは複数の項目も纏めて抽出することを特徴とするシミュレーション走行ルート生成システム。 - 請求項1または請求項5に記載のシミュレーション走行ルート生成システムにおいて、
前記シミュレーション走行ルート生成部が、前記移動履歴情報から抽出した移動履歴情報の複数の項目のうち、時間または位置が一定以上離れている場合に、間を補完してルート生成することを特徴とするシミュレーション走行ルート生成システム。 - 請求項1乃至9のいずれかの請求項に記載のシミュレーション走行ルート生成システムにおいて、
前記シミュレーション走行ルート生成装置と前記ナビゲーション装置は、同一のコンピュータ上に実装されて各機能が実現されることを特徴とするシミュレーション走行ルート生成システム。 - 移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムにおけるシミュレーション走行ルート生成方法であって、
前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うとともに、実行状態を監視し、
前記ナビゲーション装置が、前記移動履歴情報に基づいてナビゲーション処理を実行する際に発生する事象と、該事象が発生したときの前記移動履歴情報の項目との対応を記録し、
前記シミュレーション走行ルート生成装置が、前記記録された情報から、抽出条件に該当する事象に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成する、
ことを特徴とするシミュレーション走行ルート生成方法。 - 請求項11記載のシミュレーション走行ルート生成方法において、
前記抽出条件とは、ユーザが指定した特定の事象であることを特徴とするシミュレーション走行ルート生成方法。 - 請求項11記載のシミュレーション走行ルート生成方法において、
前記抽出条件とは、ユーザが指定した複数の事象の重複度であることを特徴とするシミュレーション走行ルート生成方法。 - 移動体の移動に基づいて、ナビゲーションの画面表示や音声案内を再現するナビゲーション装置のシミュレーション走行に入力する移動履歴情報を作成するシミュレーション走行ルート生成装置と、前記ナビゲーション装置とで構成されるシミュレーション走行ルート生成システムにおけるシミュレーション走行ルート生成方法であって、
前記ナビゲーション装置は、移動体の移動に応じて前記案内を行うとともに、ナビゲーション処理の実行状態を監視し、
前記ナビゲーション装置が、実行するプログラム中の特定位置と、当該プログラムの特定位置を実行した時点の、前記移動履歴情報から読み出された項目との対応を記録し、
前記シミュレーション走行ルート生成装置が、前記ナビゲーション装置が記録した情報から、指定したプログラム中の特定位置に対応する前記移動履歴情報の項目を抽出し、抽出した項目を連結して一つのシミュレーション走行ルートとして生成する、
ことを特徴とするシミュレーション走行ルート生成方法。 - 前記プログラム中の特定位置は、前記プログラムに含まれる関数の入口、または/および出口に当る位置であることを特徴とする請求項14に記載のシミュレーション走行ルート生成方法。
- 前記指定したプログラム中の特定位置は、前記ナビゲーション装置が実行するプログラムコードの修正履歴から、指定された期間に修正された関数が抽出されて、該関数の入口、または/および出口に当る位置であることを特徴とする請求項14に記載のシミュレーション走行ルート生成方法。
- 請求項11または請求項14に記載のシミュレーション走行ルート生成方法において、
前記移動履歴情報から項目を抽出する際に、抽出する移動履歴情報の項目の前後にある一つまたは複数の項目も纏めて抽出することを特徴とするシミュレーション走行ルート生成方法。 - 請求項11または請求項14に記載のシミュレーション走行ルート生成方法において、
前記移動履歴情報から抽出した移動履歴情報の複数の項目のうち、時間または位置が一定以上離れている場合に、間を補完してルート生成することを特徴とするシミュレーション走行ルート生成方法。 - 請求項11乃至18のいずれかの請求項に記載のシミュレーション走行ルート生成方法において、
前記シミュレーション走行ルート生成装置と前記ナビゲーション装置は、同一のコンピュータ上に実装されて各機能が実現されることを特徴とするシミュレーション走行ルート生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013182171A JP2015049187A (ja) | 2013-09-03 | 2013-09-03 | シミュレーション走行ルート生成方法およびそのシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013182171A JP2015049187A (ja) | 2013-09-03 | 2013-09-03 | シミュレーション走行ルート生成方法およびそのシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015049187A true JP2015049187A (ja) | 2015-03-16 |
Family
ID=52699313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013182171A Pending JP2015049187A (ja) | 2013-09-03 | 2013-09-03 | シミュレーション走行ルート生成方法およびそのシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015049187A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106767914A (zh) * | 2016-12-02 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | 用于测试基于高精度地图规划的路径的方法和装置 |
WO2019065409A1 (ja) * | 2017-09-29 | 2019-04-04 | 日立オートモティブシステムズ株式会社 | 自動運転シミュレータ及び自動運転シミュレータ用地図生成方法 |
CN110108295A (zh) * | 2019-04-22 | 2019-08-09 | 上海车轮互联网服务有限公司 | 适用于驾考应用的路线创建方法及装置 |
CN110299051A (zh) * | 2019-06-05 | 2019-10-01 | 上海车轮互联网服务有限公司 | 基于语音识别的驾考模拟路线创建方法及装置 |
KR20200085363A (ko) * | 2018-01-08 | 2020-07-14 | 웨이모 엘엘씨 | 자율 차량들을 위한 소프트웨어 검증 |
WO2024135204A1 (ja) * | 2022-12-19 | 2024-06-27 | 株式会社デンソー | アプリの品質確認システム、アプリ配信装置及びアプリの品質確認プログラム |
-
2013
- 2013-09-03 JP JP2013182171A patent/JP2015049187A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106767914A (zh) * | 2016-12-02 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | 用于测试基于高精度地图规划的路径的方法和装置 |
CN106767914B (zh) * | 2016-12-02 | 2020-03-10 | 百度在线网络技术(北京)有限公司 | 用于测试基于高精度地图规划的路径的方法和装置 |
WO2019065409A1 (ja) * | 2017-09-29 | 2019-04-04 | 日立オートモティブシステムズ株式会社 | 自動運転シミュレータ及び自動運転シミュレータ用地図生成方法 |
JPWO2019065409A1 (ja) * | 2017-09-29 | 2020-10-15 | 日立オートモティブシステムズ株式会社 | 自動運転シミュレータ及び自動運転シミュレータ用地図生成方法 |
KR20200085363A (ko) * | 2018-01-08 | 2020-07-14 | 웨이모 엘엘씨 | 자율 차량들을 위한 소프트웨어 검증 |
US11210200B2 (en) | 2018-01-08 | 2021-12-28 | Waymo Llc | Software validation for autonomous vehicles |
KR102355257B1 (ko) | 2018-01-08 | 2022-02-08 | 웨이모 엘엘씨 | 자율 차량들을 위한 소프트웨어 검증 |
US11645189B2 (en) | 2018-01-08 | 2023-05-09 | Waymo Llc | Software validation for autonomous vehicles |
CN110108295A (zh) * | 2019-04-22 | 2019-08-09 | 上海车轮互联网服务有限公司 | 适用于驾考应用的路线创建方法及装置 |
CN110299051A (zh) * | 2019-06-05 | 2019-10-01 | 上海车轮互联网服务有限公司 | 基于语音识别的驾考模拟路线创建方法及装置 |
WO2024135204A1 (ja) * | 2022-12-19 | 2024-06-27 | 株式会社デンソー | アプリの品質確認システム、アプリ配信装置及びアプリの品質確認プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015049187A (ja) | シミュレーション走行ルート生成方法およびそのシステム | |
JP4562471B2 (ja) | ナビゲーション装置及び進行方向案内方法 | |
Fan et al. | SmarTrAC: A smartphone solution for context-aware travel and activity capturing | |
JP6528699B2 (ja) | 動作シミュレータシステム、動作シミュレータ方法及びコンピュータプログラム | |
US9965464B2 (en) | Automatic process guidance | |
KR20130082874A (ko) | 도로주행 시험 채점시스템 및 이를 이용한 도로주행 시험 채점 방법 | |
US11262207B2 (en) | User interface | |
CN104048669A (zh) | 导航装置、导航***以及交叉点引导方法 | |
JP2014098994A (ja) | 動作検証システム、動作検証プログラム、および動作検証方法 | |
JPWO2010004612A1 (ja) | 情報処理装置、情報作成装置、情報処理方法、情報作成方法、情報処理プログラム、情報作成プログラム、および記録媒体 | |
JP5289431B2 (ja) | ナビゲーション装置 | |
WO2016089621A2 (en) | Automated test generation and execution for testing a process to control a computer system | |
KR101423968B1 (ko) | 운전면허 도로주행 시험을 위한 데이터 처리 방법 및 이를 위한 도로주행 시험 데이터 처리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
US20190162547A1 (en) | Information Processing Device and Travel Control System | |
US20120151440A1 (en) | Software library reconstruction device, software library reconstruction method, and navigation device using this software library reconstruction method | |
JP2008040666A (ja) | 画面設計支援装置 | |
WO2019177843A1 (en) | Intra-route feedback system | |
JP6533675B2 (ja) | 引継情報送信システム、引継情報送信装置、案内端末、引継情報送信方法、及び引継情報送信プログラム | |
JP2007183818A (ja) | ソフトウェア部品の組合せ評価システム | |
US20190301887A1 (en) | Navigation device and navigation method | |
JP2006242890A (ja) | ナビゲーション装置およびプログラム | |
US20140039789A1 (en) | Dynamic progressive map granularity for navigation | |
JP6861562B2 (ja) | 画像共有システム、画像共有サーバ及び画像共有方法 | |
US10620922B2 (en) | Compiler platform for test method | |
JP6347207B2 (ja) | ナビゲーション装置、ナビゲーション方法およびナビゲーションプログラム |