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

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

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

前回の記事では、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生成モデルの簡単な分析

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

ブログ    
ブログ    
ブログ    

推薦する

映画に騙されないでください。人工知能はどうやって人間を殺すのでしょうか?

どの国が終末的な災害映画を撮影したとしても、人工知能はさまざまな大量破壊兵器を操作して人類と戦い、最...

...

...

...

K8S向け機械学習ツール「Kubeflow」の詳しい解説

[51CTO.com オリジナル記事] Kubeflowには多くのコンポーネントがあり、各コンポーネ...

LLM-Blender: 大規模な言語モデルも学習に統合可能

最近、arxiv を見ていたときに、Ensemble メソッドを使用して大規模な言語モデルを統合でき...

AIはハリウッドに影響を与えているのでしょうか?議論の余地はあるものの、答えはすでにある

最新の3Dアニメーションをご覧になった方は、その壮大な世界に衝撃を受けるかもしれません。もしこれらの...

無料の Python 機械学習コース 6: ニューラル ネットワーク アルゴリズム

ニューラルネットワークは人間の脳を模倣するために開発されました。まだ実現されていないものの、ニューラ...

孫正義:今後30年の人工知能とモノのインターネット

これは非常に興味深いスピーチです。これは、MWC 2017でソフトバンクの孫正義氏が行ったスピーチで...

今後 20 年間で AI はすべての業界にどれほどの影響を与えるでしょうか?営業担当者も入れ替わるのでしょうか?

JD.comでは以前から物流ロボットを活用しているといわれています。東莞市麻容のJD仕分けセンター...

Google の最も強力な NLP モデル BERT はなぜこれほどクールで強力なのでしょうか?テンセントのプログラマーが最初から教えてくれる

1. 背景検索シナリオでは、ユーザーの検索クエリと思い出された記事のタイトルとの関連性は、ユーザーの...

...

人工知能サイバーセキュリティの市場価値は2030年までに1018億ドルに達する

[[418355]]調査会社Research And Marketsの最新レポートによると、人工知能...

AIはデータセキュリティをどう変えるのか

サイバーセキュリティにおける人工知能 (AI) は、データセキュリティにとって良いものでしょうか、そ...