# OpenRMFの例

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

---

Site [llms.txt](/ja/llms.txt)

---

# OpenRMFの例

[デモはこちらからご覧いただけます。](https://app.artefacts.com/artefacts-demos/open-rmf-demo/) 注：登録が必要です

## 概要

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

ここでは、[`office` world](https://github.com/open-rmf/rmf_demos?tab=readme-ov-file#office-world)でOpenRMFデモを実行します。

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

![オフィスワールドのマップ。](/images/example-projects/openrmf/office_map.png)

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

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

![ロボットがあらゆる場所に移動するGIF](/images/example-projects/openrmf/map.gif)

## クイック分析

### "tinyRobot2"が"patrol_A1"へ移動

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

![](/images/example-projects/openrmf/succ_vid.gif)

![](/images/example-projects/openrmf/succ_run.png)

### "tinyRobot1"が"patrol_B"へ移動

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

![](/images/example-projects/openrmf/fail_vid.gif)

![](/images/example-projects/openrmf/fail_graph.png)

![](/images/example-projects/openrmf/fail_run.png)

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

テストでは、いくつかのメトリクスを記録します：
- ゴールに到達するまでの時間（シミュレーション時間）
- 移動した総距離
- 平均速度

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