コンテンツにスキップ

SW部門 提出手順

オンライン環境

Sim to Real SW部門 SIM予選では、シミュレーターと自動採点機能を備えたオンライン環境を使用して採点が行われます。以下の手順に従って、作成したパッケージ群をオンライン環境にアップロードしてください。アップロード後、シミュレーションが自動で開始され、結果が表示されます。

採点と順位決定の仕組み

オンライン環境の採点は、単純なラップタイム競争ではなく対戦形式です。仕組みを理解しておくと、提出戦略を立てやすくなります。

  • 対戦形式: 提出したコード(CHALLENGER)は、自分より上位のチーム(防衛側)の提出済みコードと同一レースで走行し、着順で勝敗が決まります。
  • レーティング: 勝敗に応じてチームのレート(Rate)が増減し、レートの高い順にランキングが決まります。勝てば上がり、負ければ下がります。同着の場合は防衛側の防衛成功として扱われ、レートは変動しません。
  • 対戦相手の選択(マッチメイキング): 提出時に、どのくらい上位のチームに挑戦するかを選べます。上位に挑むほど、勝利したときのレートの上がり幅が大きくなります。
    • ランキング1位のチームが提出した場合はNPCとの対戦(防衛戦)になります。
    • 未ランクのチームは、初回提出の結果からランキングに掲載されます。

Note

レーティングの計算式や係数、対戦相手として選べる範囲などの具体的な値は、大会運営により調整されることがあります。最新の挙動はオンライン環境上の表示を正としてください。

提出のライフサイクル

提出後の処理は「ビルド(提出コードからDockerイメージを作成)」と「実行(シミュレーションでの対戦)」の2段階に分かれています。STATUSはこの2段階を反映して遷移します。

Queued(受付済み) → Building(ビルド中) → Running(シミュレーション実行中) → Success(採点完了)
                             └─ ビルド失敗 ─┴─ 実行失敗 → Failed

ビルド失敗と実行失敗は原因も確認先も異なります。切り分け方は後述のFailedの場合を参照してください。

提出手順

オンライン環境への提出は以下の手順で行います。

  1. ソースコードの圧縮

    • ./create_submit_file.bashを実行してaichallenge_submitディレクトリを圧縮します。
    • 圧縮したファイルはaichallenge-racingkart/submit/aichallenge_submit.tar.gzに保存されています。
    • 提出物が満たすべき構造・インターフェースは提出物の契約を参照してください。
  2. ローカル評価環境での動作確認

    詳細は開発の進め方 — ローカル評価の手順を参照してください。

  3. オンライン採点環境への提出

    オンライン環境にアクセスします。

    右上の「Login」 ボタンからログインします。

    ログインが完了したら「Submit Code」ボタンでアップロードを行います。

    アップロード画面では、アップロードするaichallenge_submit.tar.gz を選択します。任意でコメントを記載出来ます。また、対戦相手のレートの範囲を変更することが出来ます。デフォルトはランクが1つ上のチームと対戦します。範囲を広げることで、より上位ランクのチームと対戦する可能性がありますが、勝利したときのレートの上がり幅が大きくなります。戦略を練って設定しましょう。

結果の確認手順

  • アップロード後、ソースコードのビルドとシミュレーションが順に実施されます。画面下部の「Your Submissions」で、今回提出したソースコードのSTATUSを確認できます。正常に処理が進むと、Queued → Building → Running → Successとなります。全ての処理が完了するまで、30分程度かかります。万が一ビルドに失敗したり、launchに失敗した場合は「Failed」と表示されます。ログや提出物をご確認ください。
  • オンライン環境での走行が終わると、Activity Timelineや動画で結果を確認出来ます。試合結果によって、レートが増減します。
  • ページ下部の「Your Submissions」の右側のアイコンクリックによって、ラップタイムやログなどの走行時の詳細データを確認・取得できます。

    • result-summary.json、rosbag、autoware.logを確認することができます
    • 画面右上の「Copy Public Link」によってSNSでの共有用リンクを取得できます

Failedの場合

まず「ビルド失敗」か「実行失敗」かを切り分けます。

  • ビルドまで到達せずFailed(Buildingで失敗): 依存関係やビルドエラーが原因です。オンラインのビルドでは、rosdepで解決できない依存関係はエラーにならず読み飛ばされるため、依存不足はビルド時ではなく実行時に発覚することもあります。ローカルのmake evalでエラーなくビルド・起動できることを必ず確認してください。
  • Runningまで進んでFailed(実行で失敗): launchの失敗やノードの異常終了が原因です。提出詳細からダウンロードできるautoware.logやrosbagを確認してください。

  • packageの依存関係に問題がないか確認

    • 使用言語に応じて、package.xmlsetup.py、またはCMakeLists.txtに依存関係の漏れがないか確認してください。
  • dockerの確認

    • make eval実行中に、make autoware-attachでコンテナに入れます
  • 確認するディレクトリ:

    • /aichallenge/workspace/*
    • /autoware/install/*

オンライン環境のページ概要

  • 「Overview」ページ(ログイン後のみ)
    • 自チームのランク情報や提出履歴を確認できます
  • 「Live」ページ
    • 全チーム混在のランク情報などを確認できます
  • 「Student Live」ページ

    • 学生クラス内のチームのランク情報などを確認できます
  • 各コンテンツの説明

    • 左側の動画
      • コード提出者(CHALLENGER、P1)が上位ランカー(P2)に勝利した試合のリプレイです
    • 右側の動画
      • 上位ランカー(防衛チーム、P2)がコード提出者(P1)に勝利した試合のリプレイです
    • Ranking Table
      • 全チームのランクが表示されます
    • Activity Timeline
      • 勝敗履歴が表示されます
      • 剣のアイコンはコード提出者(CHALLENGER)が勝利した試合、盾のアイコンは上位ランカー(防衛チーム)が勝利した試合です
    • Rate Transition
      • レート変動が表示されます
    • Submissions
      • コードの提出履歴が表示されます。ログの確認やROSBAGダウンロードはここで行えます