RoboCup Rescue Simulationの比較実験を、YAMLで定義してArgo Workflows上で実行するCLIです。モジュールの組み合わせ・マップ・シードから実行計画を作り、事前計算、本実行、進捗確認、結果のダウンロードまで扱います。
- 設定済みレジストリへエージェントイメージをビルド・登録する
- エージェントのモジュール候補や、複数モジュールをまとめたセットを組み合わせて比較する
- シミュレーターと消防・警察・救急ごとのCPU・メモリを指定する
- 事前計算データをS3へ保存し、別ステップの本実行へ引き継ぐ
- TUIで実行を選択し、進捗・スコア・設定詳細とSTATE別件数・推定残り時間を確認する
- 失敗した実行だけを再送信し、再送信分を含めて結果を取得する
- ログ・要約・事前計算データなど、必要な結果だけを取得する
- イメージ・マップ・実行計画をZIPで保存し、別環境で実験を再実行する
SimScopeでのリアルタイム表示・保存ログ再生も利用できます。SimScopeは任意機能で、接続先を設定した場合に使います。
- GitHub Releases からCLIをダウンロードし、PATHに配置します。インストール手順 を参照してください。
simworkflow config initで共通設定を作り、Argo・S3・レジストリの接続先を入力し、認証情報はOSの資格情報ストアへ登録します。接続設定 に書式をまとめています。- エージェントイメージとマップを用意し、最初の実験 に沿って実行します。
simworkflow --version
simworkflow config init
simworkflow config path
# 表示されたconfig.yamlを編集(認証情報は書かない)
simworkflow credentials set s3
# Argo・レジストリに認証が必要なら、それぞれ登録
simworkflow config check --connect実験には、Argo Workflowsを導入したKubernetesクラスタ、S3互換サービス、実行ノードから取得できるコンテナイメージが必要です。クラスタの準備は 実行環境の準備 を参照してください。CLIの起動にGoやDockerは不要です。agent build を使う場合はDockerが必要です。
以下は、自分の環境に合わせた experiment.yaml を用意した後の操作です。WORKFLOW_NAME は送信時に表示された名前へ置き換えます。
simworkflow experiment validate -f experiment.yaml
simworkflow experiment plan -f experiment.yaml
simworkflow experiment submit -f experiment.yaml
simworkflow experiment list
simworkflow experiment status --watch WORKFLOW_NAME
simworkflow experiment results WORKFLOW_NAME
simworkflow experiment download --include summary --stage simulation WORKFLOW_NAMEvalidate と plan は接続設定なしで利用できます。submit からは設定済みのサービスへアクセスします。実行時には公開済みhelperイメージを使用し、ワーカー設定はデフォルトでS3へ保存します。
| 目的 | ガイド |
|---|---|
| CLIをインストール・更新する | インストール・自己更新 |
| 最初の実験を動かす | クイックスタート |
| モジュール単位・セット単位の比較やリソースを定義する | 実験YAMLの仕様 |
| エージェントイメージを作る | ビルド・登録・Python(uv/pip)・Java |
| 改造したシミュレーターを使う | イメージ作成・登録と実行条件 |
| 認証情報を安全に保存する | OSの資格情報ストア |
| マップを登録・管理する | マップ |
| 実験を一覧表示・停止・監視し、結果を取得する | 進捗・スコア・ダウンロード |
| 失敗した実行を再送信し、結果をまとめる | 再送信と結果の統合 |
| 実験をまとめて保存・再実行する | 再現用ZIP |
| 開発・リリースする | 開発ガイド |
ドキュメント一覧 に、接続トラブル、実行の仕組み、SimScope連携、検証記録もまとめています。