この記事は、NVIDIA GPUを搭載していないWindows PCのうち、Intel Arc GPUを搭載したPCで、自動運転AIチャレンジ2026のシミュレーション環境を動かしたときの手順メモです。
結論から言うと、私の環境では次の形で動きました。
-
make dev2: AWSIM GUIなし、RVizあり -
make eval: AWSIM GUIなし、RVizありのbatch評価で6周完走 - AWSIM自体はバックグラウンドで動く
- 画面確認はRVizで行う
- Intel Arc GPUをWSL2からMesa Dozen経由で使う
「NVIDIA GPUなしなら何でも動く」という話ではありません。この記事は、私のWindows のNote PC (Intel Arc 140T)で動いた非公式の手順メモです。
先に注意
公式の推奨環境はUbuntu 22.04です。
公式ドキュメントにも、WSLではヘッドレスモード、つまりシミュレータ画面表示なしで動かせるが、公式としては非サポートである旨が書かれています。
- 公式ドキュメント: https://automotiveaichallenge.github.io/aichallenge-documentation-racingkart/
- 推奨環境: https://automotiveaichallenge.github.io/aichallenge-documentation-racingkart/setup/requirements.html
- コマンド一覧: https://automotiveaichallenge.github.io/aichallenge-documentation-racingkart/development/commands.html
- 公式GitHub: https://github.com/AutomotiveAIChallenge/aichallenge-racingkart
この記事の手順は、大会公式の保証手順ではありません。
Windows PCしか手元にない人が、学習・検証・記事化のために試すための記録です。
NVIDIA GPUあり記事との違い
以前、Windows + WSL2 + NVIDIA GPUあり環境の記事を書きました。
▼ NVIDIA GPUあり記事
この記事は、その続きとして「NVIDIA GPUがない場合にどこまでできるか」を確認したものです。
大きな違いは次です。
| 項目 | NVIDIA GPUあり記事 | この記事 |
|---|---|---|
| GPU | Nvidia RTX 3060 | Intel Arc 140T |
| GPUの見せ方 | NVIDIA Driver + NVIDIA Container Toolkit | WSL2 /dev/dxg + Mesa Dozen |
| 代表的な確認 | nvidia-smi |
vulkaninfo --summary |
| Docker GPU設定 |
--gpus all / NVIDIA runtime系 |
/dev/dxg と /usr/lib/wsl を渡す |
| AWSIM | GPUありWSLgで表示・評価 | AWSIM GUIは出さずbatch Vulkan |
つまり、この記事の主題は「WSL2でGUIアプリを出す方法」ではなく、NVIDIA Container Toolkitを使わずに、Intel ArcをDozen経由でAWSIM/UnityのVulkan実行に使うことです。
この記事で目指す状態
目標はこの2つです。
- make dev2: AWSIM GUIなし、RVizあり
- make eval: AWSIM GUIなし、RVizありのbatch評価で6周完走
AWSIMはシミュレーション本体なので、評価やdev2では裏で動いています。ただし、UnityのAWSIMウィンドウは出しません。
make dev2 では、AWSIMを -batchmode -force-vulkan で動かし、走行状態はRVizで見ます。
make eval では、AWSIM GUI、capture、rosbagを切りつつ、ただしRVizは出し、評価中の状態を見られるようにします。
検証したPC
私が確認した環境です。
| 項目 | 内容 |
|---|---|
| PC | ASUS Zenbook14 |
| CPU | Intel Core Ultra 7 255H |
| GPU | Intel Arc 140T GPU |
| メモリ | 16GB |
| OS | Windows + WSL2 |
| WSL | Ubuntu 22.04 |
| WSL kernel | 6.6.87.2-microsoft-standard-WSL2 |
| Docker | Docker Engine 29.6.1 |
| Docker Compose | v5.3.0 |
| Mesa | 25.0.7 kisak PPA |
| Vulkan driver | Dozen |
Intel N95 / Intel UHD Graphics系のmini PCでも、RViz起動までは確認できましたが、AWSIM評価完走までは確認できていません。この記事では未保証として扱います。
できたこと
私のZenbook14では、次を確認しました。
- RVizがWindows側に表示される
-
make dev2で2台分のAutowareが起動する -
make dev2でRVizが2枚出る -
make evalのbatch評価が6周完走する -
make evalでもRVizが出る - AWSIM GUIは出さずに、AWSIMはbatch Vulkanで動く
この記事では、環境構築が通ることを目的にします。
なぜNVIDIAなしでも動いたのか
今回のポイントは、WSL2上のLinuxアプリからWindows側GPUへ、Mesa Dozenを使ってVulkan経由でアクセスすることです。
ざっくり書くと、この経路です。
AWSIM / Unity
-> Vulkan
-> Mesa Dozen (dzn)
-> Direct3D12
-> Windows側 Intel Arc GPU
RVizはOpenGLで表示されます。一方、AWSIMはUnity製で、WSL上のOpenGL経路だと黒画面やマゼンタ画面になることがあります。
そこでAWSIMはGUI表示をやめて、-batchmode -force-vulkan で起動します。
公開リポジトリ
公式リポジトリをforkした公開ブランチを用意しました。
- repo: https://github.com/iwatadive28/aichallenge-racingkart-wslg-dzn
- branch:
docs/windows-wsl2-intel-dzn - 補助メモ:
docs/windows-wsl2-intel-arc-dzn.md
初心者向けには、このブランチをそのままcloneする方法が一番簡単です。
git clone -b docs/windows-wsl2-intel-dzn \
https://github.com/iwatadive28/aichallenge-racingkart-wslg-dzn.git
cd aichallenge-racingkart-wslg-dzn
全体の流れ
作業の流れは次です。
- WindowsでWSL2 Ubuntu 22.04を用意する
- WSL内にDocker Engineを入れる
- WSLgとGPUブリッジを確認する
- Mesa Dozenを入れる
- DDS用のWSL設定を入れる
- 作業リポジトリを用意する
- ルートA: 公開ブランチをcloneする
- ルートB: 公式リポジトリをcloneして手動で変更する
- .envを設定する
- 公式のimage/AWSIMを準備する
- dev image / dzn派生image / Autoware workspaceをbuildする
- make dev2を実行する
- eval imageをbuildする
- make evalを実行する
1. WSL2 Ubuntu 22.04を用意する
PowerShellで確認します。
wsl --status
wsl -l -v
Ubuntu 22.04がなければ入れます。
wsl --install -d Ubuntu-22.04
WSLを更新して再起動します。
wsl --update
wsl --shutdown
Ubuntuに入ります。
wsl -d Ubuntu-22.04
Ubuntu側で確認します。
lsb_release -a
uname -a
2. Docker Engineを入れる
Docker Desktopではなく、WSL内のUbuntuにDocker Engineを入れます。
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
Dockerのapt repositoryを追加します。
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker Engineを入れます。
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
ユーザーを docker groupに入れます。
sudo usermod -aG docker $USER
ここで一度WSLを閉じ、PowerShellから再起動します。
wsl --shutdown
wsl -d Ubuntu-22.04
確認します。
docker run --rm hello-world
docker compose version
3. WSLgとGPUブリッジを確認する
WSLgの表示先があるか確認します。
echo "$DISPLAY"
echo "$WAYLAND_DISPLAY"
ls /mnt/wslg
DISPLAY=:0 のような値が出ていればOKです。
Windows側GPUへのブリッジも確認します。
ls -l /dev/dxg
ls /usr/lib/wsl/lib/libd3d12.so
/dev/dxg がない場合、この手順ではAWSIMのVulkan/Dozen経路を使えません。
4. Mesa Dozenを入れる
Mesaの新しめのパッケージを入れるため、kisak PPAを使いました。
sudo apt install -y ppa-purge software-properties-common
sudo add-apt-repository -y ppa:kisak/turtle
sudo apt update
sudo apt install -y mesa-vulkan-drivers vulkan-tools libvulkan1 mesa-utils
DozenでGPUが見えるか確認します。
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/dzn_icd.x86_64.json \
vulkaninfo --summary
私の環境では次のように見えました。
deviceName = Microsoft Direct3D12 (Intel(R) Arc(TM) 140T GPU (8GB))
driverName = Dozen
llvmpipe しか出ない場合、GPU経路に乗っていません。
5. DDS用のWSL設定を入れる
ROS 2 / DDS用に、WSL側で以下を設定します。
sudo ip link set lo multicast on
sudo sysctl -w net.core.rmem_max=2147483647
sudo sysctl -w net.core.rmem_default=2147483647
これはWSLを再起動すると戻ります。make dev2 や make eval の前に毎回確認するのが安全です。
確認:
ip link show lo
sysctl net.core.rmem_max
sysctl net.core.rmem_default
lo に MULTICAST が付いていればOKです。
6. 作業リポジトリを用意する
ここは2通りあります。
早く試したい人は、ルートAの公開ブランチを使ってください。公式リポジトリから差分を確認しながら進めたい人は、ルートBで手動作成してください。
ルートA: 公開ブランチをcloneする
一番簡単なのはこちらです。
ただし、これは公式手順ではなく有志ブランチを使う方法です。動作確認の近道として使うくらいの位置づけにしてください。
mkdir -p ~/aichallenge-work
cd ~/aichallenge-work
git clone -b docs/windows-wsl2-intel-dzn \
https://github.com/iwatadive28/aichallenge-racingkart-wslg-dzn.git
cd aichallenge-racingkart-wslg-dzn
ルートB: 公式リポジトリをcloneして手動で変更する
公式リポジトリをベースに、自分で必要なファイルを追加・変更する方法です。
mkdir -p ~/aichallenge-work
cd ~/aichallenge-work
git clone https://github.com/AutomotiveAIChallenge/aichallenge-racingkart.git
cd aichallenge-racingkart
この場合、以降の手順に進む前に、この記事の後半にある「この記事で変更していること」を見ながら、必要なファイルを手で作ります。
最低限見るべき差分は次です。
docker-compose.dzn.yml
Dockerfile.dzn
aichallenge/simulator_scripts/dev.sh
Dockerfile.eval.dzn
Dockerfile.eval.dzn.batchvulkan
docker-compose.eval.dzn.batchvulkan.yml
Makefile
Dockerfile
build_autoware.bash
公開ブランチは、手動で作るときの参考実装として見てください。丸ごと信用するのではなく、自分の環境で必要な変更だけ取り込むのが安全です。
7. .envを設定する
cp .env.example .env
.env を開いて、少なくとも以下を設定します。
ROS_DOMAIN_ID=1
HOST_UID=1000
HOST_GID=1000
COMPOSE_FILE=docker-compose.yml:docker-compose.dzn.yml
COMPOSE_FILE が重要です。
この指定により、通常のcompose設定に加えて、Dozen/Vulkan用の docker-compose.dzn.yml が読み込まれます。
ルートBで進める場合は、先に docker-compose.dzn.yml を作っておく必要があります。
8. 公式のimageとAWSIMを準備する
ここは基本的に公式手順と同じです。
./setup.bash pull image
./setup.bash download awsim
環境チェックもしておきます。
./setup.bash doctor
9. dev imageをbuildする
./docker_build.sh dev
Intel Arc / Dozen用の派生imageを作ります。
docker build -f Dockerfile.dzn -t aichallenge-2025-dev:dzn .
Autoware workspaceをbuildします。
make autoware-build
私の16GBメモリ環境では、ビルド並列数を落とさないと厳しかったため、公開ブランチではbuildを低並列にしています。
ルートBで公式リポジトリから手動で進める場合は、メモリ不足でbuildが落ちるなら、Dockerfile や build_autoware.bash 側で並列数を落としてください。
10. make dev2を実行する
実行前にDDS設定を再投入します。
sudo ip link set lo multicast on
sudo sysctl -w net.core.rmem_max=2147483647
sudo sysctl -w net.core.rmem_default=2147483647
起動します。
make dev2
ルートAの公開ブランチ、またはルートBで同等の変更を入れた構成では、AWSIMは -batchmode -force-vulkan で起動します。
つまり、AWSIMのUnityウィンドウは表示されません。
一方で、Autoware側のRVizは表示されます。make dev2 では2台分なので、RVizが2枚出ます。
止めるとき:
make down
11. eval imageをbuildする
評価用imageはdev imageとは別です。
まず提出ファイルを作ります。
./create_submit_file.bash
公式の評価用imageをbuildします。
./docker_build.sh eval
このあと make eval を実行すると、ルートAの公開ブランチではMakefileが自動で Dockerfile.eval.dzn.batchvulkan を使い、Dozen/Vulkan用の評価imageを作ります。
ルートBで手動適用している場合は、同じ分岐をMakefileへ入れるか、手動で aichallenge-2025-eval:dzn-batchvulkan をbuildし、Dozen/Vulkan用のcompose overrideを指定して実行する必要があります。
12. make evalを実行する
実行前にDDS設定を再投入します。
sudo ip link set lo multicast on
sudo sysctl -w net.core.rmem_max=2147483647
sudo sysctl -w net.core.rmem_default=2147483647
評価を開始します。
make eval
ルートAの公開ブランチでは make eval が次のことをします。
-
Dockerfile.eval.dzn.batchvulkanからaichallenge-2025-eval:dzn-batchvulkanをbuild -
docker-compose.eval.dzn.batchvulkan.ymlを使って評価containerを起動 - AWSIM evalを
-batchmode -force-vulkanで起動 capture:=falserosbag:=falserun_rviz:=true
つまり、評価時はAWSIM GUIは出さず、RVizだけを出します。
ここは make dev2 と役割が違います。
-
make dev2: 2台分のAutoware/RVizで挙動を見る -
make eval: 評価用imageで6周完走できるか確認する
結果確認:
find output -name result-summary.json | sort | tail
例:
cat output/20260708-160658/d1/result-summary.json
finished=true、lap_count=6 になっていれば完走です。
$ cat output/20260708-160658/d1/result-summary.json
{
"schema_version": "v2",
"session": {
"required_laps": 6,
"timeout": 600.0,
"total_vehicles": 1
},
"vehicles": [
{
"vehicle_number": 1,
"vehicle_name": "GoKart1",
"final_position": 1,
"finished": true,
"lap_count": 6,
"laps": [
77.77189636230469,
70.61083221435547,
71.29045867919922,
71.20550537109375,
71.37541198730469,
71.12554931640625
],
"min_lap_time": 70.61083221435547,
"max_lap_time": 77.77189636230469,
"avg_lap_time": 72.22994232177735,
"total_lap_time": 433.379638671875
}
],
"laps": [
77.77189636230469,
70.61083221435547,
71.29045867919922,
71.20550537109375,
71.37541198730469,
71.12554931640625
],
"min_time": 70.61083221435547,
"total_lap_time": 433.379638671875,
"num_laps": 6
}
13. よくある詰まりどころ
AWSIMの黒い画面だけ出てRVizが出ない
通常の make eval や古い設定だと、AWSIM GUI側だけが見えることがあります。
この記事の目的は、AWSIM GUIを見ることではありません。
AWSIMはbatchで動かし、RVizで確認します。
ルートAの場合は、公開ブランチが正しいか確認してください。
git branch --show-current
期待:
docs/windows-wsl2-intel-dzn
.env の COMPOSE_FILE も確認します。
grep COMPOSE_FILE .env
期待:
COMPOSE_FILE=docker-compose.yml:docker-compose.dzn.yml
ルートBの場合は、ブランチ名ではなく、手動で作成した docker-compose.dzn.yml、Dockerfile.eval.dzn.batchvulkan、docker-compose.eval.dzn.batchvulkan.yml、Makefileの分岐が入っているかを確認してください。
make dev2でcontainer name conflictが出る
こんなエラーです。
Conflict. The container name "/aichallenge-racingkart-simulator-1" is already in use
前回のcontainerが残っています。
まずはこれ。
make down
それでも残る場合だけ、対象containerを消します。
docker rm -f aichallenge-racingkart-simulator-1
WSL再起動後にdev2が進まない
WSL再起動後はDDS設定が戻ります。
症状として、次のようなログが出ることがあります。
lo is not multicast-capable
failed to increase socket receive buffer size
rmw_create_node failed
再度入れます。
sudo ip link set lo multicast on
sudo sysctl -w net.core.rmem_max=2147483647
sudo sysctl -w net.core.rmem_default=2147483647
その後、起動し直します。
make down
make dev2
WSLがタイムアウトする
Windows側で次のようなエラーが出たことがあります。
Wsl/Service/CreateInstance/HCS_E_CONNECTION_TIMEOUT
まずPowerShellで試します。
wsl --shutdown
それでも戻らない場合は、PC再起動が一番確実です。
DockerやWSLが重くなった状態で make dev2 / make eval を何度も試すと起きやすい印象です。
llvmpipeになっている
AWSIMがCPUレンダリング側に落ちています。
確認:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/dzn_icd.x86_64.json \
vulkaninfo --summary
期待:
driverName = Dozen
deviceName = Microsoft Direct3D12 (...)
AWSIM logで llvmpipe、OpenGLCore、HDRP shader errorが出ている場合は、Dozen/Vulkan経路に乗っていません。
RVizがWindows側に出ない
まず、WSLgの基本確認をします。
sudo apt install -y x11-apps
xeyes
xeyes がWindows側に表示されない場合、RViz以前にWSLgの表示問題です。
私の環境では、一時的にRVizやxeyesのX11 windowは存在するのにWindows側に出ない状態がありました。最終的にはWindows側の表示・WSLg・リモートデスクトップ周りの問題として切り分け、ローカル画面で確認しました。
14. この記事で変更していること
公開ブランチでは、主に次を変えています。
ルートBで公式リポジトリから手動で進める場合は、この一覧をチェックリストとして使ってください。各ファイルの中身は公開ブランチを参考にできますが、自分の環境で不要な変更まで入れないように確認しながら進めるのが安全です。
-
docker-compose.dzn.yml- AWSIM devを
-batchmode -force-vulkanで起動 -
/dev/dxgと/usr/lib/wslをcontainerへ渡す
- AWSIM devを
-
aichallenge/simulator_scripts/dev.sh-
AWSIM_BATCHMODE=1のとき-batchmodeを付ける
-
-
Dockerfile.eval.dzn- eval imageへMesa/Dozenを追加
- eval時は
capture=false - eval時は
rosbag=false - eval時は
run_rviz=true - AWSIM evalを
-batchmode -force-vulkanで起動
-
Dockerfile.eval.dzn.batchvulkan/docker-compose.eval.dzn.batchvulkan.yml- Intel Arc環境で評価をGUIなしbatch Vulkanへ寄せる
-
Makefile-
Dockerfile.eval.dzn.batchvulkanがある場合、make evalでDozen評価imageを使う
-
-
Dockerfile/build_autoware.bash- 16GBメモリPCでもbuildしやすいよう低並列化
まとめ
Intel Arc搭載Windows PCなら、WSL2 + WSLg + Mesa Dozenの組み合わせで、自動運転AIチャレンジ2026の環境を動かせる可能性があります。
ただし、現時点で私が確認できたのはIntel Arc 140Tの環境です。
Intel UHDやN95系mini PCでは同じように完走するとは限りません。検証できた環境が増えたら、この記事か別記事に追記していきます。
ポイントはこの3つでした。
- AWSIM GUIは出さない
- AWSIMはbatch Vulkanで動かす
-
dev2もevalも、画面確認はRVizで行う
抜け漏れあるかもしれませんし、他の環境でも検証出来たり、うまくいかなかったら、コメントいただけると助かります。
Windows PCしか手元にない人が、自動運転AIチャレンジの環境に触る入口として参考になればうれしいです。
それでは、素敵な自動運転ライフを!




