モバイルロボットソフトウェアの自動テストの課題への対応

モバイルロボットソフトウェアの自動テストの課題への対応

自動化されたモバイル ホーム ロボットの複雑さを探り、セットアップの特有の課題と制約の克服に焦点を当てて、スムーズな開梱体験を実現します。

前回の記事では、April Tag テクノロジーを使用して E2E ホームロボットを自動化する方法について説明しました。家庭用ロボット、あるいはあらゆるロボットの自動化には大きな課題があります。デバイスをセットアップするにはどうすればよいですか?デバイス、電話、モバイル アプリの世界では、デバイスは USB 経由でホスト デバイスに接続され、常に電源に接続されます。現在、ロボットのテストには、ロボットが移動中にどのようにテストするかという独特の課題が生じています。ホストデバイスに物理的に接続することはできません。開封体験をどのように検証するのでしょうか?心配しないでください。この記事で説明します。

複雑さと課題

ロボット自動化テストのセットアップ段階におけるさまざまな課題について簡単に紹介しましたが、ここではさらにいくつかの課題について詳しく説明したいと思います。

ロボットは移動しており、ホストデバイスに物理的に接続することはできません。一部のコンポーネント レベルのテストでは可能かもしれませんが、E2E テストでは不可能です。

開梱体験は、デバイスが Wi-Fi に接続されていないときに行われます。ホスト デバイスは、デバイスが新品の場合、どのようにデバイスと対話しますか?これは、日常的なロボットテストでは非常に一般的な状況です。

エラーや例外が発生した場合にロボットを回復します。自動テストの主な目的は、ロボットの潜在的なソフトウェアおよびハードウェアの問題を発見することです。何か問題が発生した場合、どのように報告してデバイスを回復すればよいですか?

ロボットのバッテリーは切れてしまうので、ロボットのバッテリーに電力を供給するための信頼できる電源が必要です。

同じセットアップを複数のラボおよび自宅環境に拡張します。 1 つの環境だけでボットに署名したりテストしたりすることはできないため、これは重要です。

これらの質問に時系列順に取り組んでみましょう。

Raspberry Piを使用してロボットをプリセットする

この問題を解決することは極めて重要です。ある場所にあるテスト自動化ラボに設置されたロボットを考えてみます。会社の内部ネットワークに接続されたホスト デバイスがあり、コマンドの送受信、さまざまなソース コード、内部ツール、インフラストラクチャへのアクセスに使用されます。 Raspberry Pi をデバイスに接続し、Raspberry Pi 上で REST サービスを実行して、ホスト デバイスとデバイスと通信します。以下にこの設定を示す図を示します。

Raspberry Piを使用してロボットをプリセットする

開封体験のユースケースを解決する

ここでは、Raspberry Pi を使用してテスト環境を事前に設定する方法を説明します。それでは、デバイスが Wi-Fi に接続されないという初期状態の問題を修正する方法を見てみましょう。

これが、Raspberry Pi 上の RESTful サービスが行うことです。 RESTful サービスには、次のエンドポイントがいくつか含まれている必要があります。

  • 点滅装置
  • OOBEを完了する
  • Wi-Fiの設定など
  • DUTのIPアドレスを取得する

これで、デバイスにワイヤレスで接続するのが簡単になり、デバイスはテストの準備が完全に整いました。

エラーや例外が発生した場合にロボットを回復する

これは非常によくある状況です。こうした種類の質問に圧倒されたり落胆したりしないでください。この時点で、デバイスの低レベルコンポーネントを使用して、デバイスを元の位置に戻す必要があります。たとえば、さまざまなソフトウェア スタックに関する前回の記事で述べたように、ロボットを元の位置に戻すには、プラットフォームまたはモビリティ レイヤーにアクセスする必要があります。これは最も難しくて難しい作業なので、April Tag などの他のテクノロジーやその他の外部システムを使用してデバイスを元に戻します。これで次の問題に移ります。次のテスト実行に備えて、デバイスを充電ドックに戻す必要があります。

複数のテスト環境への拡張

低レベルのコマンドを使用すると、デバイスを充電ドックに戻す際の信頼性が大幅に高まります。トップレベルの移動コマンドまたはナビゲーション コマンドを使用すると、プラットフォーム ドライバーまたはモビリティ レイヤー ドライバーを使用する場合よりも失敗する可能性が高くなり、効率も悪くなります。

セットアップを複数のテスト環境に拡張するためのヒント:

  • セットアップはシンプルにしてください。ソリューションを過度に複雑にしたり、過度に設計したりしないでください。
  • 展開可能な Raspberry Pi イメージを備えているため、新しい Raspberry Pi を簡単にロードできます。
  • テスト コードをリモート リポジトリに配置します。オンプレミスに移動しても拡張できません。

最後に、ロボットによる自動化は単純なことではなく、多くの設計作業と市場にある他の選択肢の検討が必要になります。すべての状況に適合する唯一の解決策は存在しません。最終的な解決策を決定する前に、概念実証を行うことをお勧めします。

代替案

私たちが解決しようとしている問題の性質と複雑さを考えると、「代替手段はあるか?」という質問は簡単にできます。答えは「はい」です。シミュレーター/エミュレーターをテストに効果的に使用して、説明したユースケースのほとんどをカバーすることができますが、実際のデバイスでのテストに代わるものはありません。

<<:  5分間の技術講演 | GET3D生成モデルの簡単な分析

>>:  顔認識の「レッドライン」と「ボトムライン」を理解していますか?

ブログ    

推薦する

AlphaCode がリリースされました! 「AlphaGo」のプログラミング版が静かに競争し、プログラマーの半数を破る

本日、DeepMind の「Alpha」ファミリーに新しいメンバーが加わりました。プログラミング競技...

...

人工知能がサイバーセキュリティに及ぼす3つの影響

人工知能 (AI) と機械学習 (ML) は、人々の働き方、話し方、ビジネスのやり方を根本的に変えて...

ロボットはどうやってコーヒーを飲みながら心臓手術を行うのでしょうか?

「2、3年前、アメリカの医師たちが手術室の外に座り、コーヒーを片手にしているのを見ました。彼らはリ...

インテリジェントビデオ分析が小売店を変革する方法

小売業界の状況はかつてないほど変化しています。実店舗の小売業者はオンライン小売業との厳しい競争に直面...

Amazon のニューラル ネットワークに関する書籍トップ 10

近年、データサイエンスとデータマイニングの人気が高まっています。ニューラルネットワークとディープラー...

ディープラーニングAIを使用してマルウェアやAPTを検出し、防止する方法

[[163896]] [51CTO.com クイック翻訳] Deep Instinct は、最大 9...

決定木からランダムフォレストへ: ツリーベースアルゴリズムの原理と実装

この記事では、決定木の数学的詳細(およびさまざまな Python の例)とその長所と短所について説明...

AIファースト戦略に移行する5つの方法

ガートナーによると、AI は 2022 年までに世界中で 2.9 兆ドルのビジネス価値と 62 億時...

ルカンのリーダーシップの下、自己監督に賭けるMeta AI

自己教師学習は本当に AGI への重要なステップなのでしょうか? Metaの主任AI科学者であるヤン...

個人情報保護を強力に強化

動物園に行くときは指紋で「チェックイン」する必要があり、家に帰ってコミュニティに入るときも顔をスキャ...