このページでは、センサー フュージョン テスト装置の動作や ITS-in-a-box のライトを制御する Android 13 コントローラを組み立てる方法について説明します。センサー フュージョン テストは、互換性テストスイート(CTS)の中にあるカメラ画像テストスイート(Camera ITS)の一部です。Android 13 コントローラを使用すると、回転と照明の制御を必要とするテストシーンに合わせて装置の照明とサーボモーターを制御することで自動化できます。
Android 13 コントローラの概要
ITS-in-a-box は一貫性のあるテスト環境であり、テスト タブレットやテスト スマートフォンの距離を一定に保てます。また、外部の光源を使用することなく、照明を一貫した形で当てることができます。Android 13 コントローラによりサーボ制御と照明制御の両方が自動化され、センサー フュージョンのシーンテストに合わせて DUT を手作業で回転させる必要がなくなり、またライティング制御テストで照明を手作業でオンオフする必要もなくなります。
テスト装置のサーボとライトの制御
センサー フュージョン テスト装置は、スマートフォンに決まった動きを与え、再現性の高いテストを実現します。スマートフォンがさまざまな位置で画像をキャプチャできるように、スマートフォンをチェッカーボード ターゲットの前で回転させます。test_sensor_fusion の場合、サーボがカメラを中心にしてスマートフォンを 90 度回転させ、約 2 秒で元の位置に戻します。test_video_stabilization の場合、サーボがカメラを中心にしてスマートフォンを 10 度回転させ、元の位置に戻します。これを繰り返すことで、歩きながら動画を撮影する際のスマートフォンの動きを模倣します。図 1 は、センサー フュージョン テスト装置内で回転する 2 台のスマートフォンです。図 2 は、センサー フュージョン テスト装置内で回転する 1 台のスマートフォンです。
図 1. test_sensor_fusion のテスト装置内でのスマートフォンの動き
図 2. test_video_stabilization のテスト装置内でのスマートフォンの動き
サーボモーター制御
テスト装置のアナログ サーボモーターは、パルス幅変調(PWM)を使用して位置サーボを制御します。一般的な位置制御の例を図 3 に示します。制御信号の周期は 20 ミリ秒です。パルス幅を最小にすると、モーターは中立の位置に回転し、最大にすると時計回りに 180 度の位置に回転します。
図 3. 一般的なサーボ制御の説明
照明制御
ホスト コンピュータを使ってサーボモーターの動きとライトを制御するには、センサー フュージョン テスト装置に USB 接続が必要です。Android 13 コントローラは、USB 接続された Arduino UNO R3 基板を使用します。この基板の上にはカスタム ルーティング基板(シールド)が乗っています。Android 13 コントローラでは、1 台のホスト コンピュータから最大 3 台のセンサー フュージョン装置の回転サーボと、最大 3 台の ITS-in-a-box 照明システムまたは 1 台のセンサー フュージョン装置を制御できます。
リビジョン 3.0 の Android 13 コントローラでは、Arduino のシリアルポートが USB を通じて開かれたときの自動リセットをユーザーが無効にできます。自動リセット機能は、コントローラが別のホストに接続されたとき、または他のテストケースに使用されているときに、有効になります。自動リセット機能の有効と無効は、コントローラの物理スイッチで切り替えられます。
Android 13 コントローラはカメラ ITS-in-a-box に対応しています。Android 13 コントローラは任意のカメラ ITS-in-a-box(RFoV、WFoV、Modular)または Sensor Fusion Box に接続して、ライティング制御テストを実施できます。Android 15 以上では、すべてのライティング制御テストが scene_flash に含まれており、Sensor Fusion Box を使って実行できます。ただし、scene_low_light は除きます。これには、チャート表示にタブレットが必要で、また実行にはカメラ ITS-in-a-box が必要です。
test_auto_flash と scene_low_light の場合、テスト対象のスマートフォンで自動フラッシュ機能をトリガーするために、照明をオフにして環境を暗くする必要があります。図 4 は、Android 13 コントローラによって ITS-in-a-box のライトがオンおよびオフになる様子を示しています。
図 4. test_auto_flash でライトがオンおよびオフになる様子
変更履歴
次の表に、Android 13 コントローラの変更履歴と、プロダクション ファイルの各バージョンへのダウンロード リンクを示します。
日付 | リビジョン | プロダクション ファイルのダウンロード | 変更ログ |
---|---|---|---|
2024 年 8 月 | 3.0 |
|
|
2022 年 12 月 | 2.2 |
|
|
2022 年 3 月 | 1 |
|
Android 13 コントローラのセットアップ
このセクションでは、Android 13 コントローラのセットアップ方法について説明します。
必要なコンポーネント
Android 13 コントローラは認定ベンダーから購入できます。また、自分で構築することも可能です。プロダクション ファイルは、PCB Gerber ファイル、PCB 部品表(BOM)、PCB 配置情報、筐体 STEP ファイルから構成されます。プロダクション ファイルをダウンロードするには、変更履歴の表を参照してください。
自分でコントローラを構築する場合は、Arduino UNO R3 ボードが必要です。コントローラを認定ベンダーから購入すると、Arduino が搭載されています。
Android 13 コントローラの筐体はオプションですが、コントローラを保護し、未使用の USB ポートをふさいでセットアップのミスを防ぐため推奨します。コントローラの価格やオプションの詳細については、認定ベンダーに問い合わせてください。
セットアップ手順
Android 13 コントローラのセットアップは以下の手順で行います。
12V アダプター(照明用)と 5V アダプター(サーボ用)を正しい電源差し込み口に接続します(図 5)。
図 5. 電源アダプターの位置
ITS-in-a-box または Sensor Fusion Box の照明を照明チャンネル出力の差し込み口の 1 つに接続します(図 6)。ライト電源のバレルに応じて、適宜アダプターを使用します(図 7)。
図 6. 照明チャンネル出力の位置
図 7. ライトの電源とコントローラを接続するアダプター
sensor_fusion の各シーンをセットアップするには、サーボをサーボ チャンネル接続ヘッダの 1 つに接続します。
図 8. サーボ接続の位置
リビジョン 3.0 のコントローラの場合、新しいホストに接続するときには、自動リセット スイッチを
Enable
に設定してください。リビジョン 3.0 のコントローラには、有効と無効を切り替えられる自動リセット スイッチがあります。テストの際には、自動リセット スイッチを
Disable
に設定することを推奨します。これは、各テストの最初で、its_base_test
が Arduino コントローラと接続を確立するときに、すべての照明が一瞬消えることを防ぐためです。これは並列テストを実行する際には非常に重要です(ITS が、同じコントローラに接続されているテスト装置の照明システムと同時に実行される)。図 9. 自動リセット スイッチ
コントローラを USB-A ケーブルでホストに接続します。
図 10. ホストへの USB-A 接続ポート
図 11 に、1 台の照明システムとサーボのためのセットアップが完了した Android 13 コントローラの例を示します。
図 11. セットアップが完了した Android 13 コントローラ
ホストからのソフトウェア制御
マイクロコードを UNO にダウンロードすると、PWM ピンをモーター信号に割り当て、さまざまな角度に対するパルス幅の範囲を定義できます。6 つの HS-755MB モーターのサーボ回転制御用マイクロコードについては、その他のリソースをご覧ください。このセクションには、サーボを回転させる rotator.py
という単純なプログラムへのリンクもあります。
Android 13 コントローラの使用
カメラ ITS の使用:
python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion
付属のテスト スクリプトの使用:
python rotator.py --ch 1 --dir ON --debug