これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.

このページの通常のビューに戻る.

サンプルプロジェクト

サンプルプロジェクトに関する詳細情報

Artefacts にサインアップすると、いくつかのサンプルプロジェクトを含む artefacts-demos 組織に自動的に追加されます。

これらのプロジェクトの出力は https://app.artefacts.com/artefacts-demos でアクセスできます。

現在利用可能な例:

1 - OpenRMFの例

OpenRMFにおけるナビゲーション可能性のテスト

OpenRMFの例

デモはこちらからご覧いただけます。 注:登録が必要です

概要

OpenRMFは、大規模建物における複数ロボットの相互運用性のためのフレームワークです。OpenRMFでの一般的な設定タスクの一つは、建物内のロボット用の場所とナビゲーションレーンを設定することです。

ここでは、office worldでOpenRMFデモを実行します。

以下に示すように、このマップにはロボットが移動できる14個のウェイポイントがあります。また、それぞれの充電器上で開始する2台の「tinyRobot」も含まれています。

オフィスワールドのマップ。

このテストデモの目的は、すべてのロボットをすべてのウェイポイントに送り、到着したことを確認することです。失敗は、ロボットがマップ上の場所に到達できないことを示します。

テストはすべてのロボットとウェイポイントを通じて実行されるようにパラメータ化されており、各実行の間にシミュレーションがリセットされます。

ロボットがあらゆる場所に移動するGIF

クイック分析

“tinyRobot2"が"patrol_A1"へ移動

“tinyRobot2"は約40秒で"patrol_A1"に正常に到達しました。ビデオは、テストがどれだけうまく実行されたかについての追加情報を提供します。

“tinyRobot1"が"patrol_B"へ移動

しかし、“tinyRobot1"は120秒のタイムアウト前に"patrol_B"に到達できませんでした。ビデオを使用すると、途中にゴミ箱があることに気づき、ロボットがそこで立ち往生しています。距離グラフもロボットがどこかで立ち往生していることを示しています。

テスト後に利用可能なデータ

テストでは、いくつかのメトリクスを記録します:

  • ゴールに到達するまでの時間(シミュレーション時間)
  • 移動した総距離
  • 平均速度

テストでは複数のデータを記録します:

  • ROSbag
  • Gazeboでアクティブなロボットのビデオ
  • 以下のグラフ:
    • XY位置
    • ゴールまでの距離
    • 時間経過に伴う移動距離
  • ROSbagで利用できないデータを記録するためのPythonからのカスタムデータダンプ
  • テストファイルからのデバッグログ
  • (オプション)シミュレーションとOpenRMFターミナルのstdout

2 - RL ポリシーと Tron1

Tron1 を使用した異なる RL ポリシーのテスト

デモはこちら。注:登録が必要です

概要

Tron1 ロボットは、ヒューマノイド RL 研究に使用できるマルチモーダル二足歩行ロボットです。ソフトウェアの多くはオープンソースであり、こちら で見つけることができます。

ここでは、2つの異なる RL ポリシーを使用してロボットの移動テストを実行します。1つは isaaclab を使用し、もう1つは isaacgym を使用します。

テスト自体は比較的シンプルです。ロボットに前方に5メートル移動し、開始位置から150度回転するよう指示します。

テストのパラメータ化

artefacts.yaml ファイルを使用して、次のようにテストを設定します:

 policy_test:
    type: test
    runtime:
      framework: ros2:jazzy
      simulator: gazebo:harmonic
    scenarios:
      defaults:
        pytest_file: test/art_test_move.py
        output_dirs: ["test_report/latest/", "output"]
      settings:
        - name: move_face_with_different_policies
          params:
            rl_type: ["isaacgym", "isaaclab"]
            move_face:
              - {name: "dyaw_150+fw_5m", forward_m: 5.0, dyaw_deg: 150, hold: false, timeout_s: 35}

上記の重要なポイント:

  • テストは pytest を使用して実行されます(そのため pytest_file はテストファイルを指しています)。
  • Artefacts は output_dirs で指定された2つのフォルダからダッシュボードへのアップロードを探します
  • 2つのパラメータセットがあります:
    1. rl_type: 2つのパラメータ:“isaacgym” と “isaaclab”
    2. move_face: 前進距離(5m)、回転角度(150度)、タイムアウト(35秒)を指定する1つのパラメータセット

テストは2回実行されます。1回目は isaacgym ポリシーを使用し、2回目は isaaclab ポリシーを使用します。両方のテストは move_face パラメータを使用して、どれだけ前進し、どれだけ回転するかを決定します。

簡易分析

isaacgym

isaacgym ポリシーを使用すると、(バードアイ録画から)ロボットが正常に回転し、その後前進することがわかります:

ダッシュボードはテストを成功としてマークしています:

また、テスト中に作成したグラウンドトゥルースの移動をプロットした csv は、ダッシュボードによって自動的に読みやすいチャートに変換されます。

isaaclab

isaaclab ポリシーでは、まだ改善の余地があることがわかります。ダッシュボードはテストを失敗としてマークし(失敗したアサーションを表示)、バードアイビデオはロボットが目標を達成できなかったことを示しています。

推定軌跡(つまり、ロボットが 自分が行った と考えていること)の csv(自動的にチャートに変換)があり、グラウンドトゥルースと大きく異なっていることがわかります:

推定軌跡 グラウンドトゥルース

テスト後に利用可能なデータ

  • ROSbag
  • Gazebo でのアクティブなロボットのビデオ(バードアイと一人称の両方)
  • stdout と stderr
  • デバッグログ
  • ダッシュボードでグラフとして自動的に表示される軌跡(推定)の csv
  • ダッシュボードでグラフとして自動的に表示される軌跡(グラウンドトゥルース)の csv

Artefacts Toolkit ヘルパー

このプロジェクトでは、Artefacts Toolkit から以下のヘルパーを使用しました: