(57)【特許請求の範囲】
【請求項１】
組み込みシステムの機能を試験するシステムであって、
制御アプリケーションインターフェース、センサインターフェースおよびロボットインターフェースに通信可能に接続され、
前記組み込みシステムの機能試験中に生成された複数のセンサ信号を、前記センサインターフェースから受け取り、
前記複数のセンサ信号に対応するセンサデータを、前記制御アプリケーションインターフェースを介して提供し、
前記機能試験のための複数のコマンドを、前記制御アプリケーションインターフェースを介して受け取り、
前記機能試験のための前記複数のコマンドのうちの少なくとも１つに対応するロボットハンドラーの動作ための複数の命令を、前記ロボットインターフェースを介して提供するように構成された低電力演算デバイスと、
前記制御アプリケーションインターフェース、画像処理インターフェースおよびデータベースインターフェースに通信可能に接続された演算デバイスと、
を備え、
前記演算デバイスは、前記制御アプリケーションインターフェースから前記センサデータを受け取り、前記機能試験中に取得された前記組み込みシステムの複数の画像に対応する画像データを、前記画像処理インターフェースから受け取り、
前記機能に対して実行可能な複数の試験を、前記データベースインターフェースから受け取り、
前記機能試験のための複数のコマンドを、前記制御アプリケーションインターフェースを介して提供する、システム。
【請求項２】
前記演算デバイスは、ネットワークに接続され、
前記演算デバイスは、前記試験および前記ロボットハンドラーのステータスデータを、前記ネットワークを介してユーザに送信するように構成された請求項１記載のシステム。
【請求項３】
前記演算デバイスは、前記ネットワークを介してユーザと通信し、前記ユーザにより前記演算デバイスで実行されるアプリケーションの使用または変更を許可するように構成された請求項２記載のシステム。
【請求項４】
前記低電力演算部品は、前記制御アプリケーションを介して前記センサデータを提供する前に、前記センサ信号を処理するように構成された請求項１記載のシステム。
【請求項５】
前記低電力演算部品は、前記ロボットインターフェースを介して前記複数の命令を提供する前に、前記複数のコマンドを処理するように構成された請求項１記載のシステム。
【請求項６】
前記演算デバイスは、センサデータ処理インターフェースに通信可能に接続され、
前記演算デバイスは、前記機能試験中に取得されたセンサデータに対応する処理済みのセンサデータを、前記センサデータ処理インターフェースを介して受け取る請求項１記載のシステム。
【請求項７】
前記低電力演算デバイスおよび前記演算デバイスの少なくとも１つは、他の演算デバイスと同じ基準時間に、アプリケーションレベルにおいて同期するように構成された請求項１記載のシステム。
【請求項８】
複数の試験のうちの少なくとも１つは、複数のキーワードを含み、前記演算デバイスは、前記キーワードを前記ロボットハンドラーが実行可能なコマンドに変換するように構成
された請求項１記載のシステム。
【請求項９】
前記複数の試験の少なくとも１つは、複数のキーワードを含み、前記演算デバイスは、前記キーワードを、インターフェースを介して送信するためのコマンドに変換するように構成された請求項１記載のシステム。
【請求項１０】
前記センサデータもしくは画像データは、前記組み込みシステムまたは前記組み込みシステムがその一部である試験製品の３次元（３Ｄ）座標および寸法の少なくともいずれか１つに対応する請求項１記載のシステム。
【請求項１１】
前記機能は、２次元（２Ｄ）インターフェースである請求項１記載のシステム。
【請求項１２】
低電力演算デバイスおよび演算デバイスにより実行される、組み込みシステムの機能を試験するための方法であって、
前記組み込みシステムの機能試験中に生成された複数のセンサ信号を、前記低電力演算デバイスにより、センサインターフェースから受け取り、
前記複数のセンサ信号に対応したセンサデータを、前記低電力演算デバイスにより、制御アプリケーションインターフェースを介して提供し、
前記機能試験の複数のコマンドを、前記低電力演算デバイスにより、制御アプリケーションインターフェースから受け取り、
前記機能試験の複数のコマンドの少なくとも１つに対応するロボットハンドラーを動作させるための命令を、前記低電力演算デバイスにより、ロボットインターフェースを介して提供し、
前記センサデータを、前記演算デバイスにより、前記制御アプリケーションインターフェースから受け取り、
前記機能試験中に取得された前記組み込みシステムの複数の画像に対応する画像データを、前記演算デバイスにより、画像処理インターフェースから受け取り、
前記機能において実行可能な複数の試験を、前記演算デバイスにより、データベースインターフェースから受け取り、
前記機能試験の複数のコマンドを、前記演算デバイスにより、前記制御アプリケーションインターフェースを介して提供する方法。
【請求項１３】
前記演算デバイスは、ネットワークに接続され、
前記演算デバイスは、前記試験および前記ロボットハンドラーのステータスデータを、前記ネットワークを介してユーザに送信するように構成された請求項１２記載の方法。
【請求項１４】
前記演算デバイスは、前記ネットワークを介してユーザと通信し、前記演算デバイスで実行されるアプリケーションの使用および変更の要求を受け取り、前記要求を処理する請求項１３記載の方法。
【請求項１５】
前記低電力演算部品は、前記制御アプリケーションインターフェースを介して前記センサデータを提供する前に、前記センサ信号を処理する請求項１２記載の方法。
【請求項１６】
前記低電力演算部品は、前記ロボットインターフェースを介して複数の命令を提供する前に、前記複数のコマンドを処理する請求項１２記載の方法。
【請求項１７】
前記演算デバイスは、センサデータ処理インターフェースに通信可能に接続され、
前記演算デバイスは、前記機能試験中に取得されたセンサデータに対応する処理済みのセンサデータを、前記センサデータ処理インターフェースを介して受け取る請求項１２記載の方法。
【請求項１８】
前記低電力演算デバイスおよび前記演算デバイスの少なくとも１つは、アプリケーションレベルにおいて、他の演算デバイスと同じ基準時間に同期する請求項１２記載の方法。
【請求項１９】
複数の試験のうちの少なくとも１つは、複数のキーワードを含み、前記演算デバイスは、前記キーワードを、前記ロボットハンドラーが実行可能なコマンドに変換する請求項１２記載の方法。
【請求項２０】
複数の試験のうちの少なくとも１つは、複数のキーワードを含み、前記演算デバイスは、前記キーワードを、インターフェースを介して送信するためのコマンドに変換する請求項１２記載の方法。
【請求項２１】
前記センサデータもしくは画像データは、前記組み込みシステム、または、前記組み込みシステムがその一部である試験製品の３次元（３Ｄ）座標および寸法の少なくともいずれか１つに対応する請求項１２記載の方法。
【請求項２２】
前記機能は、２次元（２Ｄ）インターフェースである請求項１２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、組み込みシステムの汎用自動試験により、機器に対する利害関係者の期待値を確認および検証するためのシステムおよび方法に関する。
【背景技術】
【０００２】
消費者用、商業用、または工業用の最新の製品は、ソフトウェア、ハードウェア、もしくは、その２つの組み合わせを用いて実装されたロジック、機能、または、ワークフローを有することが可能である。組み込みシステムとしても知られている製品の１つのタイプは、通常、ソフトウェアとハードウェアとの組み合わせを含み、一般的には、より大きな全体を背景として機能するという固有の目的を有する。組み込みシステムは、機能が固定されるか、もしくは、プログラム可能であり、さまざまな組み込みシステムがある。組み込みシステムは、独立して動作する部品と、動作するための特定の環境を必要とするパッケージと、特定の通信規格もしくは設計の許容範囲に適合したソフトウェアまたはハードウェアとの相互運用が可能なモジュールと、を含む。
【０００３】
正しい動作の確認および利害関係者の価値の検証（以下、「試験」または「試験をすること」として総称する）は、上記の組み込みシステムの設計および製造における重要なステップである。試験には、ストレス試験、性能試験、ユーザビリティテスト、互換性試験、機能試験など、さまざまな異なるカテゴリがある。これらのカテゴリにおいて、試験の多くは、製品が特定のタスクを処理する具体的な方法など、試験対象の製品の内部を評価する。したがって、そのような試験を開発するには、製品内部の知識が必要であり、そのような試験を実行するには、製品内部へのアクセスが必要である。
【０００４】
これに対し、「ブラックボックス試験」または「動作試験」として知られる試験の１つのタイプは、通常、製品の内部構造に関する知識やアクセスを必要としない試験方法である。代わりに、製品は「ブラックボックス」として扱われ、試験は、外部の視点から製品がどう機能するかを評価する。ブラックボックス試験では、さまざまな入力（またはその欠如）に応答した、製品の動作や製品により生成される出力などの事象を考慮することがある。ブラックボックス試験は、外部的にフォーカスされるため、実際に製品を使用した経験に、より密接に連携する傾向がある。
【０００５】
一般に、製品試験は手動でも自動でも可能である。自動試験は、間違いを減らし、より徹底した有意な文書化を実現する。自動試験は、長期間または多数のデバイスにわたる実施が必要となる繰り返し試験もしくは大きな量の試験を一貫して処理することに対して有利である。一例として、ソフトウェア業界では、自動試験が広く使用されており、消費者向けソフトウェアをさまざまな状況および異なるプラットフォームにわたって試験している。これらの自動試験では、ソフトウェア会社は、一般に、特定のプログラムに関するユーザの行動をシミュレーションするために、コンピュータ上で特定のツールを実行し、シミュレーションされた行動に応じてプログラムが正しく動作しているどうかを調べている。
【０００６】
消費者向け電気製品、家電製品さらには自動車における組み込みシステムのような他の種類の製品に関してユーザの行動をシミュレーションすることは、さらに複雑である。これらのシステムのいくつかは、試験用の特殊な接続性を必要とし、ユーザの行動のシミュレーションを可能にするために、ある種のインターフェースを通して内部プロセスを公開することがあるが、そのようなシステムの試験は、それぞれのインターフェースに対して、専用に設計され、カスタマイズされた試験でなければならず、厄介であり、高価である。さらなる課題は、他の組み込みシステムが、この種の試験インターフェースを提供せず、代わりに、エンドユーザによる使用のためのインターフェースを提供するだけであることにある。
【０００７】
このため、各システムにおいて提供されるインターフェースとやりとりすることにより、異なるベンダーからの組み込みシステムの試験（正しい動作および利害関係者の価値を検証するための、ブラックボックス試験を含む様々なタイプの試験）を実行するのに十分な、汎用で、柔軟で、強力な自動試験のプラットフォームが長年にわたり求められている。さらに、高価な産業用ロボット機器、他の種類の高価なハードウェア、または、大きな機器を収容するためのスペースを必要としない自動試験プラットフォームに対する長年にわたる要請がある。オフィスでの使用に最適化され、複数のデバイスの同時試験を含む試験目的で使用するのに手頃な価格である自動試験プラットフォームが長年にわたり求められている。
【０００８】
同時に、自動試験プラットフォームは、例えば、特定の動作または反応の発生に関連するタイミングデータを含む、試験の詳細な測定を提供する必要がある。自動試験プラットフォームは、例えば、通常、偽りではないユーザ操作に含まれるであろう、全ての構成部品を端から端まで試験することによって、関連性の高い試験結果を提供できる必要がある。最後に、自動試験プラットフォームには、複雑なコンピュータコードではない、読むことや理解するための特別なトレーニングを必要としない、人に適した単純な構造化された言語を使用した試験の創作を可能にする柔軟性が必要である。
【発明の概要】
【０００９】
本発明の一実施形態において、組み込みシステムの機能を試験するためのシステムは、制御アプリケーションインターフェース、センサインターフェース、およびロボットインターフェースに通信可能に接続された低電力演算デバイスを含む。低電力演算デバイスは、組み込みシステムの機能試験中に生成された複数のセンサ信号をセンサインターフェースから受け取り、複数のセンサ信号に対応するセンサデータを制御アプリケーションインターフェースを介して提供し、機能試験に対する複数のコマンドを制御アプリケーションインターフェースを介して受け取り、機能試験のための複数のコマンドのうちの少なくとも１つに対応するロボットハンドラーの動作のための複数の命令をロボットインターフェースを介して提供するように構成される。組み込みシステムの機能を試験するためのシステムは、制御アプリケーションインターフェース、画像処理インターフェース、およびデータベースインターフェースに通信可能に接続された演算デバイスも含む。演算デバイスは、制御アプリケーションインターフェースからセンサデータを受け取り、画像処理インターフェースから機能試験中に取得された組み込みシステムの複数の画像に対応する画像データを受け取り、データベースインターフェースから組み込みシステムの機能により実行可能な複数の試験を受け取り、制御アプリケーションインターフェースを介して機能試験のための複数のコマンドを提供するように構成される。
【００１０】
一実施形態では、演算デバイスはネットワークに接続され、試験およびロボットハンドラーのステータスデータを、ネットワークを介してユーザに送信するように構成される。一実施形態では、演算デバイスは、ネットワークを介してユーザと通信し、演算デバイス上で実行されているアプリケーションのユーザによる使用または変更を許可するように構成される。
【００１１】
一実施形態では、低電力演算部品は、制御アプリケーションインターフェースを介してセンサデータを提供する前に、センサ信号を処理するように構成される。一実施形態では、低電力演算部品は、ロボットインターフェースを介して複数の命令を提供する前に、複数のコマンドを処理するように構成される。一実施形態では、演算デバイスは、センサデータ処理インターフェースに通信可能に接続され、演算デバイスは、センサデータ処理インターフェースを介して、機能試験中に取得されたセンサデータに対応する処理済みのセンサデータを受け取る。一実施形態では、低電力演算デバイスおよび演算デバイスのうちの少なくとも一方は、アプリケーションレベルにおいて、別の演算デバイスと同じ基準時間に同期するように構成される。一実施形態では、複数の試験のうちの少なくとも１つは、複数のキーワードを含み、演算デバイスは、ロボットハンドラーによって実行可能なコマンドにキーワードを変換するように構成される。一実施形態では、複数の試験のうちの少なくとも１つは、複数のキーワードを含み、演算デバイスは、キーワードを、インターフェースを介した送信のめのコマンドに変換するように構成される。
【００１２】
一実施形態では、センサデータまたは画像データは、組み込みシステム、または、組み込みシステムがその一部である試験製品の三次元（３Ｄ）の側面に対応する。一実施形態では、試験される機能は、二次元（２Ｄ）機能である。
【００１３】
本発明の一実施形態において、低電力演算デバイスおよび演算デバイスによって実行される組み込みシステムの機能を試験する方法は、組み込みシステムの機能の試験中に生成されたセンサ信号を、低電力演算デバイスにより、センサインターフェースから受け取るステップと、複数のセンサ信号に対応するセンサデータを、低電力演算デバイスにより、制御アプリケーションインターフェースを介して提供するステップと、制御アプリケーションインターフェースから、低電力演算デバイスにより、機能試験のための複数のコマンドを受け取るステップと、機能試験に対する複数のコマンドのうちの少なくとも１つに対応するロボットハンドラーの動作のための複数の命令を、低電力演算デバイスにより、ロボットインターフェースを介して提供するステップと、制御アプリケーションインターフェースから、演算デバイスにより、センサデータを受け取るステップと、画像処理インターフェースから、演算デバイスにより、機能試験中に取得された組み込みシステムの複数の画像に対応する画像データを受け取るステップと、データベースインターフェースから、演算デバイスにより、組み込みシステムの機能により実行可能な複数の試験を受け取るステップと、制御アプリケーションインターフェースを介して、演算デバイスにより、機能試験のための複数のコマンドを提供するステップと、を含む。
【００１４】
一実施形態では、演算デバイスはネットワークに接続され、演算デバイスは、試験およびロボットハンドラーのステータスデータを、ネットワークを介してユーザに送信するように構成される。一実施形態では、演算デバイスは、ネットワークを介してユーザと通信し、演算デバイスで実行されるアプリケーションの使用または変更のための要求を受け取り、その要求を処理する。
【００１５】
一実施形態では、低電力演算部品は、制御アプリケーションインターフェースを介してセンサデータを提供する前に、センサ信号を処理する。一実施形態では、低電力演算部品は、ロボットインターフェースを介して複数の命令を提供する前に、複数のコマンドを処理する。一実施形態では、演算デバイスは、センサデータ処理インターフェースに通信可能に接続され、演算デバイスは、機能試験中に取得されたセンサデータに対応する処理済みのセンサデータを、センサデータ処理インターフェースを介して受け取る。一実施形態では、低電力演算デバイスおよび演算デバイスのうちの少なくとも一方は、アプリケーションレベルで、別の演算デバイスと同じ基準時間に同期する。
【００１６】
一実施形態では、複数の試験のうちの少なくとも１つは、複数のキーワードを含み、演算デバイスは、キーワードを、ロボットハンドラーが実行可能なコマンドに変換する。一実施形態では、複数の試験のうちの少なくとも１つは、複数のキーワードを含み、演算デバイスは、キーワードを、インターフェースを介して送信するコマンドに変換するように構成される。
【００１７】
一実施形態では、センサデータまたは画像データは、組み込みシステム、または、組み込みシステムがその一部である試験製品の三次元（３Ｄ）の側面に対応する。 一実施形態では、試験される機能は、二次元（２Ｄ）機能である。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る自動試験プラットフォームのブロック図である。
【図２】本発明の一実施形態に係る自動試験プラットフォームにおいて使用するロボットハンドラーの部品の図である。
【図３】本発明の一実施形態に係る自動試験プラットフォームにおいて使用する制御アプリケーションの部品のブロック図である。
【図４】本発明の一実施形態に係る自動試験プラットフォームにおいて使用するデータベースの概要を例示する図である。
【図５Ａ】本発明の一実施形態に係るスクリーンイメージであって、制御アプリケーションをセットアップするためのユーザインターフェースを例示するスクリーンイメージである。
【図５Ｂ】本発明の一実施形態に係るスクリーンイメージであって、図５Ａのユーザインターフェースから到達できるユーザインターフェースのサブスクリーンを例示するスクリーンイメージである。
【図６】本発明の一実施形態に係る自動試験プラットフォームにおける試験のためのフローチャートであり、製品の新しい定義を創作するステップを示す。
【図７】本発明の一実施形態に係る自動試験プラットフォームにおいて、ロボットを較正するために実施されるステップを示すフローチャートである。
【図８】図５Ａのユーザインターフェースから到達できる較正ユーザインターフェースを例示するスクリーンイメージである。
【図９】本発明の一実施形態に係るフローチャートであって、図７のフローを通した最初のパスの後に、ロボットハンドラーの自動再較正を実施するための半自動の較正方法において実施されるステップを示すフローチャートである。
【図１０】本発明の一実施形態に係るフローチャートであって、自動試験プラットフォームにおける画像取得および画像処理を実施するステップを示すフローチャートである。
【図１１】本発明の一実施形態に係るサンプル試験であって、自動試験プラットフォームにおいて実施できるサンプル試験である。
【発明を実施するための形態】
【００１９】
図１は、本発明の一実施形態に係る自動試験プラットフォームのブロック図であり、プラットフォームの各部分が他の部分にどのように接続されているかを示している。図１に示すように、制御アプリケーション１０４は、演算デバイス１００上で動作し、データベース１１６と通信する。演算デバイス１００は、パーソナルコンピュータ（ＰＣ）、サーバ、ラップトップ、スマートフォン、タブレット、タブレットなどのような、制御アプリケーションを実行できる任意のデバイスでも良い。 演算デバイス１００は、通常、揮発性および／または不揮発性メモリ、周辺機器インターフェース、および、ネットワークインターフェースと通信するプロセッサを含む。プロセッサは、ネットワークインターフェースにより、データベース１１６およびロボットハンドラー１１８などの自動試験プラットフォームの他の構成部品につながる。周辺インターフェースは、演算デバイス１００を、キーボード、マウス、タッチスクリーン、３Ｄ空間におけるロボットハンドラーの位置に対応できるＶＲ入力機構、もしくは、演算デバイス１００を制御するためのローカルユーザーコマンドを入力するのに適したその他の装置を含むことが可能な、様々な入力装置に接続する。なお、演算デバイス１００および／または制御アプリケーション１０４は、自動試験プラットフォームの一部として動作するように調整された専用ハードウェア（もしくは、組み込みシステムであることも可能）を含み得ることを理解すべきである。そのような専用化は、試験プロセスのスピードと応答を向上させるであろう。例えば、演算デバイス１００内の専用ハードウェアは、一組のインターフェースのような、いくつかの通信経路を介して互いに接続された複数の演算部品を含むことが可能であろう。低電力演算部品は、例えば、２５ワット未満を消費し、制御アプリケーションインターフェースを介して、演算デバイス１００内のモジュールをサポートし、従属し、または、実行する他の演算部品に接続されながらも、ロボットインターフェースを介してロボットハンドラー１１８に接続され、および／または、センサインターフェースを介してセンサ１２６に接続可能であろう。さらに、そのような低電力演算部品は、共有もしくは個別の制御アプリケーションインターフェースを介して、演算デバイス１００内のモジュールをサポートし、従属し、または、実行する、共有された同じ演算部品に、複数つなぐことも可能であろう。低電力演算部品は、他のタイプの演算部品に比べて、リソースの節約およびスケーラビリティの点で有利であろう。 なお、低電力演算部品は、「低機能」の演算部品を意味する必要はないことに留意すべきである。例えば、特定の目的（例えば、グラフィック処理）のための専用回路のような、特殊なハードウェアを使用することにより、めざす目的に対する低電力演算部品の計算能力を高めることが可能である。複数の演算デバイスおよび複数の制御アプリケーション、もしくは、１以上の制御アプリケーションの処理を共有する複数の演算デバイスが存在し得ることもまた理解されるべきである。さらに、複数の演算デバイスおよび制御アプリケーションにわたるソフトウェアアップデートの整合性を保つためのパッケ���ジ化および展開を可能にするライブラリまたはサービスが存在し得る。そのようなライブラリまたはサービスは、ユーザが、異なるバージョンのソフトウェアを維持し、それらのバージョンを一元的に更新することを可能にするであろう。
【００２０】
制御アプリケーション１０４は、ロボットハンドラー１１８と通信するために、共有テストライブラリモジュール１０６、画像取得モジュール１０８、およびセンサデータ処理モジュール１１０と連動する。共有されたテストライブラリモジュール１０６は、ロボットフレームワーク試験環境１１２と連動し、ロボットフレームワーク試験環境１１２は、データベース１１６と連動する。
【００２１】
図１に示される実施形態のように、データベース１１６およびロボットフレームワーク試験環境１１２は、演算デバイス１００から分離可能であり、データベース１１６を介して通信可能であること、または、他の実施形態において、データベース１１６およびロボットフレームワーク試験環境１１２は、演算デバイス１００の一部であり得ることを理解すべきである。ロボットハンドラー１１８は、試験される製品１２０の組み込みシステム１２２と相互に作用する。ロボットハンドラー１１８は、組み込みシステムの二次元（２Ｄ）の機能などのユーザインターフェースを介して相互作用を実現することができる。組み込みシステムの２Ｄ機能は、少なくともタッチスクリーンインターフェースを含むが、２Ｄ機能は、タッチスクリーンに物理的に類似する物（例えば、ボタン、ダイヤル、およびスライダー）も参照できることを理解すべきである。タッチスクリーンインターフェースに対する操作は、ボタンを押すことに限定される必要はないことを理解すべきである。ロボットハンドラー１１８は、以下のタイプのユーザインターフェースに対して作用するために必要とされる操作も実行可能である。（１）異なるレベルの圧力を検出することが可能な圧力感知型タッチスクリーン、（２）同時にアクティブ化された点を認識可能な複数点認識型タッチスクリーン、または（３）スワイプ方向やシンボルトレースなどの実行された動きを認識するタッチスクリーン。１以上の制御アプリケーションにより制御される複数のロボットハンドラーがあり得ることもまた理解されるべきである。さらに、１以上のロボットハンドラーにより試験される複数の組み込みシステムまたは製品もあり得る。複数のロボットハンドラーおよび／または試験される複数の組込みシステムもしくは製品を含む状況では、すべてのデバイスの試験を調整するロボット管理システムを用いても良い。そのようなロボット管理システムは、複数のユーザのロボットハンドラーの使用を、重複を回避するようにスケジュールすることを可能にするだろう。ロボット管理システムは、速度、適用範囲、リソースコストの最小化、もしくは、他の効率の尺度のような優先される事項が一致するすべての試験用のロボットハンドラーおよび／またはデバイスの協働を可能にするタスクの優先順位付けも可能にする。
【００２２】
共有テストライブラリモジュール１０６は、各試験の異なる態様を実行するための様々な手順および方法のアクセス可能な定義を含むかまたはそれにアクセス可能にすることができる。一例として、ＰＩＮ番号を使用して認証する方法があり得る。それは、例えば、データベース１１６で定義された様々なフローに基づいてボタンをタップすることにより、組み込みシステム１２２と相互作用するためにロボットハンドラー１１８または他のロボットハンドラーを動作させるステップを含み、ロボットハンドラーは、適切なユーザインターフェースに誘導し、組み込みシステム１２２にＰＩＮ番号を入力する。ＰＩＮ番号を用いた認証方法は、実際のフィードバックと期待されるフィードバックを比較し、適切な戻り値を用意するか、ロボットフレームワーク試験環境１１２による評価のための条件を更新できるように、画像取得モジュール１０８およびセンサデータ処理モジュール１１０など、試験プラットフォームの他の構成部品からのフィードバックを要求するステップも含み得る。
【００２３】
ロボットフレームワーク試験環境１１２は、ロボットハンドラー１１８または他のロボットハンドラーを管理することができるアプリケーションである。このため、ロボットフレームワーク試験環境１１２は、システム内の任意のそのようなロボットハンドラーのステータス、および、画像処理モジュール１１４およびカメラ１２４を含むが、これらに限定されない試験プラットフォームの他のモジュールのステータスを認識する。ロボットフレームワーク試験環境は、試験要求の処理、試験を実行するためのロボットハンドラーの予約、および試験の実行などのアクションを実施することができる。ロボットフレームワーク試験環境１１２は、一連のステップを含む試験を実行することができる。各ステップは、キーワードまたはキーフレーズに対応する。キーワードまたはキーフレーズは、例えば、共有テストライブラリモジュール１０６に保存されているか、共有テストライブラリモジュール１０６によってアクセス可能にされているか、または、共有テストライブラリモジュール１０６に定義されている特定の手順または方法に対応できる。例えば、前の段落で参照された共有テストライブラリモジュール１０６に保存されるか、アクセス可能にされるか、または、定義された特定の手順または方法を参照するキーワードもしくはキーフレーズ「PIN認証」があり得る。ロボットフレームワーク試験環境１１２は、キーワードまたはキーフレーズを使用して、共有テストライブラリモジュール１０６のそれぞれの手順または方法を実行させ、戻り値を受け取るか、または、その手順または方法により更新された状態を評価することができる。そのような値、または、そのような状態の評価を受け取ると、ロボットフレームワーク試験環境１１２は、実行を停止するか、または、別の試験ステップの実行に進むかを決定することができる。
【００２４】
演算デバイス１００は、ネットワーク１２８に接続することができる。ネットワーク１２８は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）などを含む任意の既知の通信ネットワークであっても良い。ユーザ１３０は、ネットワーク１２８を介して、演算デバイス１００に接続され、サーバ１０２を介して制御アプリケーション１０４を動作させる。ユーザは、接続を通じ、制御アプリケーションを使用することにより、ボットハンドラーの活動をモニタし、それらを制御するソフトウェアを変更することができる。サーバ１０２は、例えば、ユーザクライアントと通信するためのREST（Representational State Transfer）サーバであっても良い。サーバ１０２は、ユーザクライアントとの通信のためのCORBA（Common Object Request Broker Architecture）、DCOM（Distributed Component Object Model）、RPC（Remote Procedure Calls）、または、SOAP（Simple Object Access Protocol）を含むサーバシステムアーキテクチュアのための他の機構を実装しても良い。
【００２５】
複数のユーザが１つの自動試験プラットフォームを共有する一実施形態では、ユーザは、異なるユーザからの競合する可能性のある同時の要求により生じる重複を回避するために、ロボットハンドラーの使用を「予約」することができる。ユーザは、試験を完了した後、または、ロボットハンドラーをもはや必要としないと判断した後に、ロボットハンドラーの「予約解除」をすることもできる。しかしながら、ユーザが、ロボットハンドラーを「予約」の状態に誤って残し、他のユーザのロボットハンドラーの使用を妨げることを理解すべきである。そのような場合、ロボットハンドラーは、一定の非アクティブ期間の経過後、「予約」を自分で解除し、他のユーザが利用できるようにすることができる。
【００２６】
カメラ１２４は、特定のバージョンの視覚センサ（以下の一般的なセンサの説明を参照）として、組み込みシステム１２２または試験製品１２０の２Ｄ機能または３Ｄ側面を含めて、組み込みシステム１２２、または、試験製品１２０の他の部分を観察し、画像取得モジュール１０８と通信する。例として、組み込みシステム１２２における２Ｄ機能の試験中において、カメラ１２４による３Ｄ側面の観察は、組み込みシステム１２２または試験製品１２０の応答態様の機械的側面を反映する画像データをもたらすことができる。次に、画像取得モジュール１０８は、データベース１１６とさらに通信する画像処理モジュール１１４と連動する。図１に示す実施形態のように、画像処理モジュール１１４は、演算デバイス１００から分離され、画像処理インターフェースを介して通信することができることを理解すべきである。あるいは、他の実施形態において、画像処理モジュール１１４は、演算デバイス１００の一部であり得ることを理解すべきである。組み込みシステム１２２または試験製品１２０の他の部分を観察する複数のカメラ１２４が存在し得ることもまた理解すべきである。
【００２７】
同様に、センサ１２６は、組み込みシステム１２２または試験製品１２０の２Ｄ機能または３Ｄ側面を含む、組み込みシステム１２２または試験製品１２０の他の部分を観察し、センサデータ処理モジュール１１０と通信する。例として、組み込みシステム１２２の２Ｄ機能の試験中において、センサ１２６による３Ｄ側面の観察は、組み込みシステム１２２または試験製品１２０の応答態様の機械的側面を反映するセンサ信号をもたらすことができる。センサデータ処理モジュール１１０は、センサ信号を受け取り、センサデータの生成が必要であれば、何らかの処理を実施する。例えば、２値状態を検出するか、もしくは、数値を与えるセンサによって提供されるいくつかのセンサ信号は、そのためにセンサデータが解釈される試験に応じて、いかなる処理の追加もなく、センサデータを構成することができる。センサデータ処理モジュール１１０は、データベース１１６と通信し、試験製品に対応した方法でセンサデータを解釈できるように、制御アプリケーション１０４にデータを提供する。センサ１２６は、光センサ、視覚センサ、温度センサ、湿度センサ、モーションセンサ、機械センサ、圧力センサ、オーディオセンサ、または、組み込みシステムまたは試験製品の評価される特定の特性に適合した他の任意のセンサであっても良いであろう。例えば、ある実施形態では、試験製品が多機能印刷装置であり、試験は、印刷出力の特定の特性を確認することを含む。センサ１２６は、光学的／機械的センサであり、紙の有無、両面印刷または片面印刷であるか、紙のサイズ、紙の重さ、印刷出力の黒レベル、または、印刷出力の色を、いくつかの確認すべき印刷された出力の中で特に検出する。別の実施形態では、試験製品は３Ｄプリンタであり、センサ１２６は、印刷チャンバの状態を評価するための温度または湿度センサ、もしくは、印刷の進行を評価するための光学センサであり得る。別の実施形態では、試験製品は、物理的なスイッチまたは他の圧力に敏感な入力を含む。センサ１２６は、そのようなスイッチまたは入力を駆動するために必要な力を評価する触覚センサであり得る。複数のセンサ１２６で動作する異なる実施形態があることに留意すべきである。例えば、ある実施形態では、試験製品は洗濯機であり、第１のセンサは、水温を評価するための温度センサであり得る。第２のセンサは、動作中のノイズレベルを評価するためのマイクであり得る。さらに、いくつかの実施形態では、センサ１２６は、ローカル演算デバイスに接続可能であっても良い。ローカル演算デバイスは、マイクロコンピュータRaspberry Pi（商標）のような低電力演算デバイスでも良く、演算デバイス１００へ送信する前に、入力をローカルに処理する。ローカル演算デバイスは、低電力演算デバイスであっても良く、センサデータを生成するために、センサ１２６から受信した信号の処理を実施しても良い。そのような実施形態では、センサデータ処理モジュール１１０の機能は、簡素化、もしくは、除去され得る。
【００２８】
図１のロボットハンドラー１１８は、様々な構成部品を含み得る。図２は、本発明の一実施形態に係る物理的な試験環境におけるロボットハンドラー２１８を例示する図であり、その構成部品を表している。いくつかの実施形態では、ロボットハンドラー２１８は、図１に示され、関連して説明されたロボットハンドラー１１８として使用することができる。ロボットハンドラー２１８は、１以上のサーボモータ２０２、２０４、２０６、および２０８により駆動される少なくとも１つの操作デバイス２１４を含む。サーボモータの数は４つに限定される訳ではなく、多くても少なくてもよい。 操作デバイス２１４の特性は、組み込みシステム２２２または試験製品２２０に対する所望の操作に依存する。例えば、組み込みシステム２２２がタッチスクリーンである場合、操作デバイス２１４は、スクリーン上のボタンを押すのに適したスタイラスであっても良い。例えば、組み込みシステム２２２が、物理的なボタンを有するディスプレイである場合、操作デバイス２１４は、物理的ボタンを押すのに適したスタイラスであり得る。組み込みシステム２２２が、物理的ボタンに加えてタッチスクリーンを含む場合、操作デバイス２１４は、スクリーン上および物理的なボタンの両方を押すことができるスタイラスまたは複数のスタイラスであっても良い。組み込みシステム２２２がダイヤルのような他の操作方法を含む場合、操作デバイス２１４は、ダイヤルを回転させるのに適したグリッパであっても良い。他の実施形態では、操作デバイス２１４は、複数のスタイラス、ツール、またはアッタチメントを含み、その中から組み込みシステム２２２に対する所望の操作のために適切なものを選択することができる。カメラ２３４は、組み込みシステム２２２または試験システム２２０の他の部分を観察するために適切な距離、高さおよび角度で、調整可能な三脚２３０に取り付けられても良い。図２には表されていないが、複数のカメラが使用される試験環境があり得ることを理解すべきである。
【００２９】
ロボットハンドラー２１８は、組み込み式システム２２２および試験製品２２０に対する操作を実施するための正しい位置に配置されるように、調整可能スタンドなどの位置決め装置２００も含む。さらに、サーボモータ２１０などの１以上の補助サーボモータがあっても良く、操作デバイスとは独立に実施可能な特定の役割を有する。例えば、サーボモータ２１０は、試験製品２２０のリーダ２２４による確認のためにアクセスカードまたは他の認証デバイス２１６を提示することを可能にするハードウェア２１２を設定することができるであろう。アクセスカードまたは認証デバイスは、異なるユーザーアカウントの試験のためにカードやデバイスを交換する必要がなくなるように、他のカードやデバイスのアカウント情報を表すことができる単一のカードまたはデバイス、あるいはエミュレータであっても良い。補助サーボモータはオプションであり、物理的な動作を実施する必要のない他の補助デバイスに置き換えることができるであろう。例えば、認証デバイス２１６は、直接的な電子リンクを介することを含む他の手段を通じて、組み込みシステム２２２またはリーダ２２４と連動することができ、サーボモータ２１０が物理的動作を実施する必要性を排除できるであろう。
【００３０】
一実施形態では、ロボットハンドラー２１８は、予め定義されているが、設定可能な非動作期間、例えば、５分間を経ると、操作デバイスは、特定の休止位置に移動し、サーボモータ２０２、２０４、２０６、および２０８をオフ状態にすることができる。そのような休止中のサーボモータの負荷を低下させ、寿命を延ばす。新しいコマンドを受け取ると、ロボットハンドラー２１８は、休止状態から目覚め、コマンドを実行するためにサーボモータをオン状態に戻す。
【００３１】
図３は、本発明の一実施形態に係る制御アプリケーション３０４の構成部品のブロック図である。いくつかの実施形態では、制御アプリケーション３０４は、図１に示され関連して説明された制御アプリケーション１０４として使用することができる。ロボット制御モジュール３０６は、図１および図２にそれぞれ示され関連して説明された１１８または２１８などのロボットハンドラーへの接続性およびその一般的な制御を調節する。較正モジュール３０８は、ロボットハンドラー、図１に示され関連して説明された１２４などのカメラ、または、図１に示され関連して説明された１２６などのセンサを較正するために使用することができる。データベースモジュール３１０は、図１に示され関連して説明されたデータベース１１６などのデータベースの情報および構造を管理する。データベースモジュール３１０は、データベースの情報および／または構造を変更するために、ユーザインターフェースまたは他のツールを含むことができる。例えば、ユーザインターフェースは、データベース内の異なるタイプの入力フィールドまたは他のＵＩコンポーネントを更新し、または、既存の形態の新しい例を入力する能力を提供することができる。最後に、ネットワークモジュール３１２は、図１に示され関連して説明されたサーバ１０２などのサーバ、もしくは、図１に示され関連して説明された共有テストライブラリモジュール１０６などの共有テストライブラリモジュールへの接続を管理する。 これらの構成部品は、ユーザインターフェース３１４を介してエンドユーザにすべて公開され、その可能な例は、図５に示されている。
【００３２】
図４は、本発明の一実施形態に係るデータベース４１６を例示するブロック図であり、自動試験プラットフォームにおける概要を示している。いくつかの実施形態では、データベース４１６は、図１に示され関連して説明されたデータベース１１６として使用することができる。「製造者」テーブル４２０は、各製造者についての情報を含む。「プリンタモデル」テーブル４２２は、製造業者およびモデルの定義を含む。「Ｈｗバージョン」テーブル４２４は、プリンタモデルで使用されるハードウェアのバージョンに対応する項目を含む。「Ｆｗバージョン」テーブル４２６は、プリンタモデルで使用されるファームウェアのバージョンに対応する項目を含む。
【００３３】
「Sqバージョン」テーブル４２８は、プリンタモデルと共に使用されるプリントマネージャサーバのバージョンに対応する項目を含む。プリントマネージャサーバの例示的な実装形態は、YSoft SafeQ（商標）サーバであっても良い。「SafeQサーバ」テーブル４３０は、一実施形態ではYSoft SafeQ（商標）サーバであっても良い各プリントマネージャサーバに関する情報を含む。「経路」テーブル４３２は、ロボットを動かすための定数を定義する。そのような定数は、例えば、タッチディスプレイ、および、限定はしないが、容量式および抵抗式のタッチディスプレイを有するデバイスのあるタイプに特有の値を含むことができる。「経路パーツ」テーブル４３２は、ロボット動作の速度および休止のための定数を定義する。「MFPs」（多機能プリンタまたは多機能デバイスを表す）テーブル４３６は、プリンタモデル、プリントマネージャのバージョン、ファームウェアのバージョン、ハードウェアのバージョン、およびスクリーンサイズの定義を含む。「フロー名」テーブル４３８は、ユーザに定義されたフローの名前を含む。各ユーザ定義のフローは、異なるベンダーおよび異なるデバイスにわたって、異なるように実装されても良い。したがって、「フロー」テーブル４４０は、所望の動作に対するユーザ定義フローを定義し、ユーザ定義フローは、「フロー名」からの名前の識別、フローが適用可能な特定のベンダーおよび／またはデバイス、ならびに「フローステップ」テーブル内の対応する項目を含む。「フローステップ」テーブル４４２は、「フロー」テーブル４４０によって参照されるように、所望の動作のためのフローを記述するステップの定義を含む。ステップの各定義は、操作される特定のインターフェース部品、フロー内の順序、および、ステップに関する他のオプションを含むことができ、例えば、より高速に実行するために、目標スクリーンの確認をスキップする機能を含むことができる。「スクリーン」テーブル４４４は、組み込みシステムのインターフェースにおける、例えば、ログインスクリーンおよびメインスクリーンを含む各スクリーンの定義を含む。「ボタン」テーブル４４６は、テキスト、タグ、目標スクリーン、ソーススクリーン、および、ボタンがハードウェアボタンであるか否か、を定義する。「ボタン配置」テーブル４４８は、ＭＦＰ、位置、サイズ、およびボタンの定義を含む。「機能領域」テーブル４５０は、例えば画像処理サービスによって使用され得るスクリーン上の領域の定義を含む。これらの定義には、テキスト領域、画像領域、およびポップアップウィンドウ領域などの特定の目的を持つ領域、または、読み取り領域などの特定の種類の処理を実行できる領域が含まれる。「試験結果」テーブル４５２は、実行された様々な試験の結果の定義を含み、結果は、試験名、インターネットプロトコルまたはその他のネットワークアドレス、開始・終了・期間などのタイミング情報、出力、フォーマット、および、試験の最終的な結果もしくは結論の定義を含む。「印刷時間」テーブル４５４は、印刷ジョブの定義を含み、一実施形態では、YSoft SafeQ（商標）サーバであり得る印刷マネージャサーバにおける、ジョブサイズ、ジョブフォーマット、デバイス、およびバージョン���理情報を含む。
【００３４】
図５Ａは、本発明の一実施形態に係るスクリーン画像であり、図３の制御アプリケーションの構成部品のためのユーザインターフェース５００を例示している。この画像に示されるように、ロボット制御ユーザインターフェース５１０は、接続用のネットワークポートを選択するようなロボットハンドラーへの接続のための制御、ロボットハンドラーから切断するための制御、および、試験製品においてカードをスワイプするように補助サーボモータをコントロールする制御を含む。この例示的なユーザインターフェースでは、「スワイプカード」とラベリングされたボタンがあるが、前述したように、認証デバイスは、物理的なカードスワイプを必要としない他の手段を介して、組み込みシステム２２２またはリーダ２２４につながり得ることを理解すべきである。そのようなシナリオでは、「スワイプカード」ボタンは、試験製品へのアクセスを取得するために必要な認証プロセスを起動する。較正ユーザインターフェース５２０は、ロボットを較正し、カメラを較正し、保存された較正をロードするための制御を含む。簡単には、カメラのキャリブレーションは、鮮明な写真を撮るための最良の位置にカメラがあることを確実にし、カメラの特性（例えば、シャッタースピード、ISOスピード、開放度などの露出設定）を構成する方法もユーザに提供する。ロボットの較正は、図７〜図９に関連してさらに詳細に説明される。ネットワークユーザインターフェース５３０は、RESTサーバが応答するポートを示すための制御、共有テストライブラリモジュールが応答するポートを示すための制御、および接続をオンおよびオフに切り替えるための制御を含む。データベースユーザインターフェース５４０は、図５の概要に記載された各テーブルを管理するための制御を含む。制御５５０は、サーバに格納されている制御アプリケーションのバージョンを更新することを可能にし、ユーザが制御アプリケーションの異なるバージョンを選択してインストールすることができるダイアログを開く。
【００３５】
この実施形態では、図４に示され関連して説明された、タッチディスプレイに対応してロボットを移動させるための定数を定義する「パス」テーブル４３２、および、図４に示され関連して説明された、ロボットの動作の速度および休止のための定数を定義する「パスパーツ」テーブル４３４に対する可視制御がないことに留意すべきである。通常、これらのテーブルは、新しいタイプもしくは構成のロボットハンドラーが試験プラットフォームに追加されない限り、変更する必要はない。他の実施形態は、これらのテーブルを修正する際に警告するための特別な注意、もしくは、正当な権限または許可レベルを有する特定のユーザにのみ修正を許可するアクセスコントロールと共に、これらのテーブルに対する制御を最後に含み得るであろう。
【００３６】
図５Ｂは、本発明の実施形態に係るスクリーン画像であり、図５Ａのユーザインターフェースから、図４に示し関連して説明された「ボタン」テーブル４４６および「ボタン配置」テーブル４４８に到達することができるユーザインターフェースサブスクリーン５６０および５７０を例示している。この実施形態によれば、「ボタン」テーブルは、様々な試験製品の組み込みシステムにおけるボタンの定義を含む。「ボタン」テーブルの項目の例は、テキスト：「PIN」、タグ：「openKeyboard」、目標スクリーン：「PIN」、および、ソーススクリーン：「Login screen」を含むことができるであろう。これは、ユーザがPINを入力できるように、ログインスクリーンに表示される試験製品の組み込みシステムのボタンであって、押されたときにPINスクリーンでキーボードを開くボタンを表すであろう。「ボタン配置」テーブルは、「ボタン」テーブルで定義されているボタンを特定のプリンタにつなぐことができる。「openKeyboard」のタグを有するボタンの「ボタン配置」テーブルにおける項目の例は、プリンタ：「Konica Minolta 421」（Konica Minoltaは商標）、ポジション「x：57 y：66 z：0」、サイズ「W：33、H:6」を含むことができるであろう。これは、「Konica Minolta 421」試験製品において、openKeyboardボタンは、座標ｘ：５７、ｙ：６６、ｚ：０にあり、幅３３ｍｍ、高さ６ｍｍであることを示している。この実施形態では、座標は、スクリーンの左下隅に対応するｘ：０、ｙ：０、ｚ：０を基準に定義される。
【００３７】
図６は、本発明の一実施形態に係るフローチャートであり、試験のためのデータベース内に製品の新しい定義を作成するためのステップを示す。他のフローも可能であるが、この例示的なフローは、すべてのデータが、図４の実施形態におけるデータベースの概要と一致する方法で追加され、前提となるデータは、他の表を追加することが必要となる前に、特定のテーブルに入力されることを確実にする。ステップ６００は、試験製品の製造者を表すために「製造者」テーブルの項目を定義する。ステップ６０２は、プリンタのモデルを表し、それらの対応する製造業者に関連付ける、「プリンタモデル」テーブルの項目を定義する。ステップ６０４は、プリンタモデルのハードウェアのバージョンを表す「Hwバーション」テーブルの項目を定義する。ステップ６０６は、プリンタモデルのファームウェアのバージョンを表す「Fwバーション」テーブルの項目を定義する。ステップ６０８は、プリンタモデルに対して、一実施形態においてYSoft SafeQサーバであるようなプリントマネージャサーバのバージョンを表す「Sqバーション」テーブルの項目を定義する。ステップ６１０は、プリンタを管理するために使用できるであろうプリントマネージャサーバに関する他の情報に対応する「SafeQサーバ」テーブルの項目を定義する。ステップ６１２は、プリンタモデル、プリントマネージャサーバのバージョン、ファームウェアのバージョン、ハードウェアのバージョン、および、スクリーンサイズの定義を含む「MFPs」テーブルの項目を定義する。MFP項目を定義するためのステップ６１２が定義フローの中で実施される理由は、異なるプリントマネージャサーババージョン、ファームウェアバージョン、または、ハードウェアバージョンを有する同じモデルの異なる多機能プリンタが存在し得るためである。ステップ６１４は、試験製品の組み込みシステムにおけるインターフェースの様々なスクリーンを表す「スクリーン」テーブルの項目を定義する。ステップ６１６は、各スクリーンに対応する様々なボタンを表す「ボタン」テーブルの項目を定義する。ステップ６１８は、各MFPのスクリーン上の各ボタンの位置およびサイズを表す「ボタン配置」テーブルの項目を定義する。
【００３８】
特定の実施形態では、試験のための新製品を定義するフローは、手動で実行されても良いが、ステップのサブセットもしくは全てのステップであっても、ヘルパーアプリケーションによって支援され、または、自動的に実行されても良い。例えば、一実施形態では、自動トレーニング機能を有し、制御アプリケーションは、ボタンを試し、結果およびスクリーン間のナビゲーションフローを記録することにより、新しい試験製品の組み込みシステムのスクリーンをナビゲートするために、ロボットハンドラーとカメラを使用することができる。これにより、「スクリーン」、「ボタン」および「ボタン配置」テーブルの情報がデータベースに追加され、後にスクリーンに適切な名前を付けることができる。
【００３９】
図７は、本発明の一実施形態に係るフローチャートであり、自動試験プラットフォームにおけるロボットハンドラー１１８および２１８などを較正するために実行されるステップを示し、図５Ａに示され関連して説明された例示的なユーザインターフェースと一致する。較正の目的は、試験される組み込みシステムに対してどこにあるかをロボットハンドラーが確実に認識することである。ロボットハンドラーの較正は、ベーシックまたは半自動でも良い。ベーシックおよび半自動の較正方法の両方を開始するための一般的なプロセスは同じであり、図７のフローに従ってマッピングされたスクリーンの３つのコーナーを識別する。しかしながら、ベーシック較正は、較正フローを１回通過するだけであるが、半自動較正は、自動再較正の段階まで継続する。一実施形態では、較正結果は、組み込みシステムのスクリーンの選択されたボタンをロボットハンドラーにタップさせるための「試行」機能を使用することによって確認することができる。
【００４０】
ステップ７００では、図５Ａの例示的なユーザインターフェースの５１０に対応するようなロボット制御を使用することにより、ロボットが確実に接続される。ステップ７０２では、ロボットを試験製品の正面に物理的に配置し、試験のために求められるボタンのような、組込みシステムのスクリーン上の部品および任意のハードウェア部品に到達できるようにする。ステップ７０４では、図５Ａの例示的なユーザインターフェースにおけるセクション５２０に表されているボタンのような、ユーザインターフェースの「Calibrate Robot」制御を起動する。ステップ７０６では、例えば、図６のフローに従って、既に作成されている試験製品を選択する。校正インターフェースは、ユーザがフォローするための一連のプロンプトをスクリーンに表示する。ステップ７０８ａでは、ロボットハンドラーをスクリーンの左下隅に移動させる。ステップ７０８ｂでは、ロボットハンドラーをスクリーンの左上隅に移動させる。ステップ７０８ｃは、ロボットハンドラーをスクリーンの右上隅に移動させる。
【００４１】
図８は、ベーシック較正のためのステップと同等の初期の手動較正を通してユーザをガイドする半自動較正ユーザインターフェースを例示するスクリーン画像である。この実施形態では、ロボットハンドラーは、操作デバイスとしてスタイラスを備え、キーボード入力を介して制御される。他の操作デバイスを使用し、他の形態の制御も使用できることを理解すべきである。その制御は、手動の位置決め入力を受け取り、逆運動学を使用してサーボモータの角度を制御することができるロボットハンドラーを用いることが可能な場合は、手動の位置決めを含む。
【００４２】
ここで、ベーシック校正は、校正結果を保存することで終了し、ユーザインターフェースは、ロボットハンドラーが試験製品に対して較正されたことを通知する。較正結果は、マッピングされたスクリーンの３つのコーナーのｘ、ｙ、ｚ座標の値で構成され、３Ｄ空間の平面を定義する。この実施形態では、座標は、ロボットハンドラーの第１サーボモータの中心に対応するｘ：０、ｙ：０、ｚ：０を基準に定義される。
【００４３】
上述したように、半自動較正は、初期のベーシック較正プロセスを通して実行され、自動再較正段階がそれに続く。図９は、本発明の一実施形態に係るフローチャートであり、図７のフローを通した初期のパスの後に、ロボットハンドラーの自動再較正を行う半自動較正方法において実行されるステップを示す。ステップ７３０は、望ましくは、図７のフローの前に実行され、試験製品の制御アプリケーションへのターミナル接続をセットアップする。制御アプリケーションは、組み込みシステムのスクリーン上の任意の検出されたタップの（ｘ、ｙ）ピクセル座標を出力する。ステップ７３２では、組み込みシステムのスクリーンのスクリーン寸法および解像度を、制御アプリケーションにロードする。これらは、任意のピクセル座標（ｘ、ｙ）をスクリーン上の位置（ｘ１、ｙ１）にミリメートル単位で変換するために用いられる。ステップ７３４では、制御アプリケーションは、半自動較正フローを通した最初のパスから導出される第１のマッピングされたコーナーのデータを使用してロボットハンドラーを位置決めするために、これらの情報ソースを使用する。ロボットハンドラーは、マッピングされた通りにスタイラスを正確に位置決めするのではなく、最初は、スクリーンから離れた位置（すなわち、その最初の位置のごく近く）からスタートする。ステップ７３６では、ロボットハンドラーは、ターミナル接続により接触が出力されるまで、スクリーンに近づく。ステップ７３８では、出力されたピクセル座標（ｘ、ｙ）を処理し、スクリーン上の物理的位置（ｘ１、ｙ１）にミリメートル単位で変換する。自動再較正プロセスは、３つのマッピングされたコーナーのそれぞれに対しステップ７３４から７３８を繰り返す。次に、ステップ７４０では、スクリーンの３つのマッピングされたコーナーの物理位置データを使用し、出力されたピクセル座標（ｘ、ｙ）のデータと共に、３つのマッピングされたコーナーの補正された物理位置（ｘ、ｙ、ｚ）を再計算し、その前に半自動較正プロセスの第１フェーズで記録されたデータを置き換える。自動再較正プロセスから得られる新しいデータセットは、ユーザのエラーを取り除き、試験製品における組込みシステムのスクリーンに対してロボットハンドラーを位置決めするための絶対精度を与える。
【００４４】
図１０は、一実施形態に係るフローチャートであり、図１に示され関連して説明されたシステムと一致する自動試験プラットフォームにおける画像の取得および処理のために実行されるステップを示す。自動試験プラットフォームは、試験製品および／または組み込みシステムの挙動を表す視覚的フィードバックを制御アプリケーションに提供するために、画像の取得および処理を含み、画像の特徴を認識する機能を有する。画像解析機能を持たないシステムでは、ロボットは、例えば、用紙トレイが空であること、出力トレイがいっぱいであること、または、予期しない警告／エラーメッセージがスクリーンに表示されていることなど、特定の試験製品に何か問題が生じていることを認識せずに、そのステップを処理し続けることがある。
【００４５】
ステップ８００では、制御アプリケーション１０４は、組み込みシステム１２２および／または試験製品１２０の画像分析を要求する。ステップ８０２では、カメラ１２４は、組み込みシステム１２２および／または試験製品１２０の写真を撮る。ステップ８０４では、カメラ１２４は、画像取得モジュール１０８に画像データを送る。ステップ８０６では、画像取得モジュール１０８は、画像処理モジュール１１４に、その情報を送信する。画像処理モジュール１１４は、ローカルでも良いし、ネットワークを介して画像処理モジュールに接続された独立したサーバ上に存在しても良い。次に、画像処理モジュール１１４は、データベース１１６に既に格納されている情報（例えば、スクリーン定義、ボタン定義、ボタン配置定義など）と共に、以下の２つの技術を用いて画像を分析する。  
（１）ステップ８０８において、組み込みシステム上のインターフェースの様々なスクリーンに関する既存の画像データを使用し、画像を認識、照合、または、他の方法で比較するように、ニューラルネットワークを訓練することにより計算され得る画像内の固有領域であるディスクリプタを用い、  
（２）ステップ８１０において、画像からグリフ、文字、または記号を認識し抽出するために、光学式文字認識（OCR）エンジンを使用する。
いくつかの実施形態では、ステップ８０８において、ディスクリプタの自動識別に使用される情報を提供するために、OCRエンジンを使用するとも可能である。OCRエンジンは、ネットワークを介してアクセス可能なリモートアプリケーションであってもよく、複数の請求者により共有することができる。例えば、複数の演算部品が、OCRタスクを処理することを、OCRエンジンに要求することがある。それに応答して、OCRエンジンは、要求されたタスクを実行するために、利用可能なすべてのリソースを使用すること、または、単一のノードのような限られたリソースセットを占有することにより、その処理を実施するであろう。
【００４６】
ステップ８０８のディスクリプタは、画像処理の開始時に演算され、分析される画像または任意の既存の画像データに対する変更を保留しているニューラルネットワークにより、さらに再計算されてもよい。画像の評価は、演算または再計算されたディスクリプタを、データベース１１６に保存されている任意の既存の画像データ、または、画像処理モジュール１１４によりアクセス可能な他の任意のリソースにと比較することを含んでも良い。データベース１１６、または、そのような他のリソースは、例えば、画像データを含む情報の広くアクセス可能なデータ保存場所としての役割を果たす中心的な保存アプリケーションを含むことができる。そのため、複数の請求者は、データベース１１６、または、そのような他のアクセス可能なリソースと通信し、情報を取得することができる。データベース１１６に保存された情報は、インターフェースの各スクリーンに固有のデータを含み、各ベンダーの異なる製品モデルの各スクリーンの画像を含む。この評価は、データベース１１６からの画像データに基づいてスクリーンを分析するために、確率論的方法を使用することをさらに含んでも良い。そのような方法は、検出および照合の目的で、ディスクリプタ上で動作可能なBRISKもしくはORBアルゴリズムを含むことができるが、それらに限定される訳ではない。その方法は、画像の特定のディスクリプタを検出し、それらをデータベース１１６からの画像データ、または、画像処理モジュール１１４によってアクセス可能な他のリソースと比較し、一致するか否かをディスクリプタに基づいて識別できる。この情報を使用することにより、上記の２つの技術は、ロボットハンドラーが操作する必要があるスクリーンを認識し、また、ロボットハンドラーが回復させなければならない、警告、エラー、もしくは他の状態があるかどうかを認識することを可能にする。ディスクリプタは、多くの場合、正しいスクリーンを認識するために十分であり、ステップ８０８の後に、画像処理フローが終了することを意味する。ディスクリプタが、スクリーンを識別するのに十分でない場合、フローはステップ８１０に進む。ステップ８１０では、正しいスクリーンの認識をアシストするために、追加情報のソースとして、画像から単語を認識および抽出するために、OCRを使用することができる。
【００４７】
図１１は、本発明の一実施形態に係るサンプル試験であり、自動試験プラットフォームで実行することができる。使用されるスクリプト言語は、複雑なコンピュータコードではなく、特別の訓練を受けていない人が、読み、理解することに適した単純で、構造化された言語で構成されているため、エンドユーザが、そのような試験の準備は容易である。試験プラットフォームは、共有テストライブラリモジュールを使用し、単純なスクリプトを、試験プラットフォームの様々な部品またはモジュールに特有のコマンドに変換する。そこでは、共有テストライブラリモジュールにおいて定義されるか、または、共有テストライブラリモジュールによりアクセス可能にされたキーワードを用いる。そのようなコマンドは、例えば、センサもしくはカメラから情報を取得または取り込む命令、画像データ、センサ信号もしくはセンサデータのデータ処理または分析を実行するための命令、データベースに情報を登録するか、データベースから情報を取得するか、データベースの情報を操作する命令、または、ロボットハンドラーに対する命令を含んでも良い。これらのコマンドは処理され、試験プラットフォームの部品またはモジュールに対応するインターフェースを介して、試験プラットフォームの適切な部品またはモジュールに送信されてもよい。変換は、異なるベンダー、プリンタモデル、または、試験製品のハードウェア／ファームウェアのバージョンに対して異なることがある。たとえば、「ユーザがPINで認証されている場合」という簡単なステートメントは、試験製品に依存して異なるPINスクリーンもしくは異なるPIN形式を含むことができる。このシステムには、次の２つの一次的な利点がある。  
（１）テスターは、特定の試験製品の操作方法に関する特定の技術的知識を持つエンジニアである必要はなく、  
（２）試験プラットフォームは、データベースに保存されている製品固有の情報に基づいて、必要に応じて変換することにより、同じ汎用スクリプトを異なる試験製品に適用することができる。
このシステムは、試験者が、確認試験だけでなく検証試験も設計し実施することを可能にするという点において、既存の試験方法よりも有利である。確認試験は、システムの特定の機能をチェックし、それらが適切に機能しているかどうかを評価し、システムの製品仕様に準拠して予測される結果を戻すことを含む。検証試験は、仕様への適合性よりも製品がユーザのニーズを満たすかどうかに焦点を絞った、異なるタイプの試験に関係する。検証試験は、システムの全体の速度、システムの経時信頼性、複数のタスクにわたる結果の一貫性、および、個々の試験者が個別の手動試験に基づいて判断することが困難もしくは不可能であるような他の領域など、製品の高レベルの特性の評価を含む。
【００４８】
自動試験プラットフォームは、回復を試みることができる特定の状態で実行される可能性がある。そこには、２つのタイプ（１）指定された回復ルートがあり予期される状態、および、（２）予期されない状態がある。予期される状態の一例は、入力されたＰＩＮが、試験製品の予想されるフォーマットと一致しなかったため、試験製品の認証のためのＰＩＮコードの登録が成功しなかった事例であり得る。そのような事例では、カメラは、ＰＩＮコードが正しくないことを示すエラーウインドウ、誤ったフォーマットのエラーウインドウ、認識されないエラーウインドウなどの画像を撮影するであろうから、制御アプリケーションは、エラーステイタスに気づくはずである。この事象では、画像処理モジュールは、メッセージが無効な認識情報を示していることを認識し、制御アプリケーションは、ロボットハンドラーに異なる形式のＰＩＮコードを入力するように命令できる。
【００４９】
予期されない状態の場合も、２つのタイプ、（１）制御アプリケーションは、試験フローの既知のスクリーンまたは状態に戻ることができる、組み込みシステムのスクリーンへのナビゲーションの結果として生じる種類の予期しない状態、（２）いかなる明示的な回復の命令もなく、制御アプリケーションから離脱する種類の予期しない状態がある。前者の場合、制御アプリケーションは、適切なスクリーンまたは状態にナビゲートするために、スクリーン上の適切なボタンを押すようにロボットハンドラーをガイドし、試験フローを継続できる。例えば、制御アプリケーションは、印刷ジョブ＃１および＃３を試験しようとするが、何らかの理由により、＃２および＃４も選択されているとすれば、アプリケーションは、実行前に、＃２および＃４の選択を解除するようにロボットハンドラーに命令する。後者の場合、制御アプリケーションは、フローを既知の状態にリセットし、もう一度やり直すために、スクリーン上の適切な「OK」または「Cancel」ボタンを押すようにロボットハンドラーに命令することができる。もう一度試みた後、同じ予期しないエラー状態に直面するだけである場合、制御アプリケーションは、マシンのステータスを確認し、必要であれば、後に、適切な回復手順を入力するよう管理者に通知を送信することができる。なお、自動試験プラットフォームにおける全ての予想外の状態から常に回復することは、望ましくないことを理解すべきである。なぜなら、これらの状態の少なくともいくつかは、制御アプリケーションではなく、試験製品における欠陥を表し、試験製品は、留意され、修理されなければならないからである。
【００５０】
本発明は、組み込みシステムの自動試験プラットフォームを提供することにより、標準試験手順に関する最新技術を著しく向上させる。ロボットハンドラーの一貫性および速度は、例えば、手動試験と比較して、より大きい物量および高い精度のレベルにおいて、試験を実施することを可能にする。さらに、試験の実行の結果は、より詳細で完全なものになる。テストスクリプトは、実行されたステップだけでなく、正確なタイミング、位置、さらには、ボタンを押す力まで、正確なレベルで、完全に再現可能である。これらの試験では、エンドユーザに対するユーザインターフェースの応答性、もしくは、やさまざまなタスクを実行するために必要な時間など、他の試験形態では確定が困難または不可能である特定の製品品質を測定できる。最後に、スクリプト言語の普遍性と、ある予期しない状況から回復するための制御アプリケーションの機能により、例えば、異なるプリンタモデル、もしくは、ハードウェア／ファームウェアのバージョンに対する柔軟性が高まり、従来、可能であった試験の範囲と同じレベルを達成するための試験スクリプトを少なくできる。
【００５１】
様々なタスクを達成するために必要な時間を検出することに関し、正確な時間測定を実現することが好ましく、さらに、複数の部品（それぞれが時間をたどるための独自のメカニズムを有する）が試験プロセスに関与する場合は、なおさらである。各部品のシステム時間を調整し、使用するのではなく、部品に対する基準時間とローカルシステム時間との差を追跡し続けることが有利である。そのような違いを追跡しつつ、同じ基準時間に同期されたローカル部品からの各測定時間を確定させることにより、時間測定の一貫性を保つことができる。システムレベルではなくアプリケーションレベルにおいて時間差を維持することも、システム上で実行される他の処理の混乱を最小限に抑える点で有利である。
【００５２】
本発明の様々な態様の他の目的、利点および実施形態は、本発明の分野における当業者には明らかであり、この説明および添付の図面の範囲内にある。例えば、限定するものではないが、本発明と矛盾しないように、構造的要素または機能的要素を並べ替え、方法のステップを並べ替えることができる。同様に、ここに詳細に記載されていなくても、本発明に係る原理は、本発明の範囲内にある他の実施例にも適用することができる。例えば、本発明の原理は、プリンタの試験に限定されず、組み込みシステムを有する任意の製品を試験するために使用できるであろう。
【図１】
0006845928.tif 000002
【図２】
0006845928.tif 000003
【図３】
0006845928.tif 000004
【図４】
0006845928.tif 000005
【図５Ａ】
0006845928.tif 000006
【図５Ｂ】
0006845928.tif 000007
【図６】
0006845928.tif 000008
【図７】
0006845928.tif 000009
【図８】
0006845928.tif 000010
【図９】
0006845928.tif 000011
【図１０】
0006845928.tif 000012
【図１１】
0006845928.tif 000013