本記事では、Windows 11 上で ROS2(Humble)を手軽に体験するための最小構成をまとめます。ハードウェアは使用せず、まずは「ROS2 の基本コマンドが動く状態」を作ることに注力します。初学者でも迷わないように、Docker Desktop を中心とした構成図と位置づけの解説を含めてご紹介します。
1. 全体構成の理解:Docker Desktop の位置づけ
Windows では Linux 用の Docker Engine を直接動かせません。そのため Docker Desktop が中心(ハブ)となり、Windows と WSL2(Linux)をつないで Docker を実行しています。
■ Docker Desktop を使った ROS2 実行環境の構成図
Windows 11
├─ Docker Desktop(管理ツール)
│ └─ Docker Engine(WSL2 上で稼働する本体)
│
└─ WSL2(Linux カーネルを提供する仕組み)
└─ Ubuntu(利用者が操作する Linux 環境)
└─ docker コマンド(→ Docker Engine を操作)
└─ [ROS2 コンテナ] ros:humble-ros-base
└─ ROS2 Humble(今回の主役)
■ 各レイヤーの位置づけ
- Windows:すべての基盤。
- Docker Desktop:Docker Engine を起動・管理する中心。これが動いていないと Ubuntu でも docker は動かない。
- Docker Engine:コンテナを動かす本体。WSL2 の中で稼働。
- WSL2:Windows 上で Linux カーネルを動かす仕組み。
- Ubuntu:利用者が操作する Linux。docker コマンドで Docker Engine を利用。
- ROS2 コンテナ:ROS2 がセットアップ済みの“箱”。今回の主役環境。
■ 実作業の前に留意点
ここからの実作業ですが、Windows上での作業から始めて、wsl2、dokcerコンテナに進みます。これらの作業では途中でどこでの作業か結構混乱します。ここからの手順はどこでの作業か明確にしますので、確認しながら進めて下さい。
2. WSL2 の導入(Windows 11上の操作)
Windows11上で管理者のターミナルを起動します。
起動方法は分かりやすいのは以下だと思います。
スタートボタン –> 右クリック –> ターミナル(管理者)
起動出来たターミナルからWSL2 をインストールします。以下を実行します。
wsl --install
Ubuntu 起動されるので、ユーザー名とパスワードを設定すると準備完了です。この状態はubuntuにログインした状態です。以下は参考のスクリーンショットです。

3. Ubuntu(WSL2)上での初期設定
ここではUbuntuでの作業です。前項の続きでの作業をする場合はそのままです。あらためてUbuntuを起動する場合は、Windows11上で管理者のターミナルを起動してからwslと入力してwslを起動します。(現状、wslでは緑色と青のプロンプトです。)
wsl上で以下のようにUbuntuのアップデートを行います。
$ sudo apt update
$ sudo apt upgrade -y
以下、参考のスクリーンショットです。


これでubuntuの初期設定が完了です。
4. Docker Desktop のインストール
Windows11上での作業です。
以下を参考に Windows 版 Docker Desktop をインストールします。
https://docs.docker.jp/desktop/install/windows-install.html/
インストールが出来たら必ずスタートします。
スタートボタン –> (右上)すべて –> Docker Desktop で起動出来ます。
■ インストール後の確認設定
- Settings → General
・Use WSL 2 based engineにチェック - Settings → Resources → WSL Integration
・Ubuntu(例:Ubuntu-22.04)にチェック
これで Ubuntu から docker コマンドが利用可能になります。
5. Ubuntu から docker が動作するか確認
Ubuntu上での作業です。起動できていない場合は、ターミナルからwslコマンドでUbuntuを起動してください。
以下、Ubuntu上で実行します。
$ docker --version
Docker のバージョンが表示されれば、Docker Desktop → WSL2 → Ubuntu の連携が正常です。

以下のようなメッセージが表示されたら、Docker Desktop が起動できていないです。
The command ‘docker’ could not be found in this WSL 2 distro.
6. ROS2 Humble コンテナを起動する(最小構成)
Ubuntu上での作業です。wslの起動と緑と青のプロンプトを確認してください。
まずは公式の最小イメージ ros:humble-ros-base を起動します。
$ docker run -it --rm ros:humble-ros-base bash
次のようなプロンプトが表示されればコンテナ起動成功です。参考のスクリーンショットです。
root@xxxx:/#
7. コンテナ内で ROS2 を有効化し動作確認
以下、ROS2コンテナ内での作業です。
■ ROS2稼働環境のセットアップ
コンテナが起動できていなければUbuntuから前項のdocker runコマンドで起動してください。ROS2コンテナが起動出来ている状態で以下を入力してください。
$ source /opt/ros/humble/setup.bash
■ 動作確認コマンド
続けて以下を入力してください。
$ ros2 --help
■ トピック一覧(最初は空)
続けて以下を入力してください。
$ ros2 topic list

ここまで動作すれば、ROS2の基本コマンドが Windows上のUbuntuのROSコンテナで正しく動いていることが確認できます。
終了する際は、exit と入力するか、ウインドウを閉じてください。
まとめ:第一弾のゴール
- Windows に WSL2(Linux の基盤)を構築
- Docker Desktop で Docker Engine を起動
- Ubuntu から docker コマンドで ROS2 コンテナを実行
- ROS2 のコマンドが正常に動作
何回かWindowsの再起動から順番に起動して慣れればいいと思います。
補足:ROS2 の体験ができたら、次は本格的な環境構築へ
今回の記事では、Windows 11・WSL2・Docker Desktop を利用して、手軽に ROS2(Humble)を体験できる環境を構築しました。この構成は「まずは ROS2 に触れてみたい」「インストールによる依存関係の問題を避けたい」という目的に非常に適しています。
一方で、ROS2 を継続的に学習・開発する場合は、用途に応じてより本格的な環境を選択することができます。以下では、代表的な環境構築パターンをご紹介します。
1. PC に Ubuntu を単独インストールして利用する
最も安定し、ROS2 の公式サポートに最も近い構成が「物理 PC に Ubuntu をそのままインストールする」方式です。
Ubuntu は ROS2 の標準環境であり、ほぼすべての機能がネイティブに動作します。
- 高速・安定・トラブルが少ない
- USB-LiDAR、モーター制御、IMU、カメラなど実機環境がフル活用可能
- GUI(RViz2 / Gazebo)も最高の安定性で動く
本格的な ROS2 ロボット開発を行う場合、この方式が最も「間違いがない」選択肢です。
2. Windows と Ubuntu のデュアルブート環境を構築する
既存の Windows PC を残しつつ、Ubuntu を本格利用したい場合はデュアルブートが適しています。
- Ubuntu をネイティブ実行できるため ROS2 と相性が良い
- WSL2 よりもハードウェア制御が行いやすい
- Windows も残せるため、学習用途に柔軟に対応
ただし起動の切替が必要である点と、パーティション分割作業などの難易度はやや高めです。
3. Raspberry Pi や Jetson などのボードコンピュータを利用する
ROS2 の実機ロボット開発では、Raspberry Pi や NVIDIA Jetson がよく使われます。
- センサー接続(I2C、SPI、UART)に強い
- 小型ロボットの制御に最適
- クラウド連携やエッジAIとも相性が良い
Docker 体験後に「実機で動かす」ステップとして最適で、学習効果も高い選択肢です。
4. VPS やクラウド上に ROS2 ノードを置く
物理ハードウェアを使う必要がない用途(可視化、計算、バックエンド処理など)では、VPS(仮想サーバー)やクラウドを利用する方法もあります。
- ハードを接続できないが、ROS2 の ノード処理 や ネットワーク通信 は可能
- 拠点間通信(VPN・DDS over WAN)にも活用できる
- 遠隔ロボットシステムの中核処理として利用可能
特に、ROS2 は分散処理に強いため、センシングのみローカル、計算・地図生成はクラウド、といった構成も可能です。
5. Windows 上のネイティブ Docker 環境で複数ノードを構築する
今回のように docker を使う方式は、ROS2 の「開発・テスト・CI」にも向いています。
依存関係を分離できるため、複数プロジェクトを扱うエンジニアに有効です。
- 1PC 上で複数 ROS2 環境を同時に再現可能
- 本番環境(Raspberry Pi や Jetson)に近い環境を Dockerfile で共有できる
- チーム開発でも環境差異が出ない
学習 → 実務 と一貫した開発環境として利用できます。
まとめ:Docker 体験後はどの環境にも発展できます
今回の記事で構築した Docker Desktop + WSL2 + Ubuntu の構成は、あくまで “導入体験” に最適化されたものです。ROS2 の基本概念(ノード、pub/sub、サービス、パッケージ)を理解したあとは、用途に応じてより実践的な環境へ移行できます。
- より安定した環境で使いたい → Ubuntu 単体インストール
- Windows も使い続けたい → デュアルブート
- ロボット実機を組みたい → Raspberry Pi / Jetson
- クラウド活用したい → VPS 上で ROS2 ノード構築
- 開発環境を統一したい → Docker でプロジェクト管理
まずは本記事の構成で ROS2 の「動作・構造・概念」を理解し、その後ご自身の目的に合った環境へ発展させれば、ROS2 は自在に使えるようになります。次回は、Docker 上で動く簡単な ROS2 ノードの作成に進みます。
次回予告:ROS2 ノードを実際に作って動かしてみる
ここまでで、Windows 11 の上に WSL2・Ubuntu・Docker Desktop を組み合わせ、ROS2(Humble)が動作する基盤を準備しました。ROS2 の概念やコマンドライン操作に触れるには十分な環境です。
次のステップでは、いよいよ 「ROS2 ノードを自分で作って動かす」 ところに進みます。まずはハードウェアを使わず、Docker 上でシンプルに動く 乱数温度センサー(publisher) と、値を受け取る subscriber を作っていきます。
■ 次回扱う内容(第二弾)
- Docker 上で Python ベースの ROS2 パッケージを作成
- 0〜40℃の乱数を publish する「仮想温度センサー」ノード
- 送られてきた温度を受信して表示する subscriber ノード
- 「デバイスを接続しなくても ROS2 の pub/sub が理解できる」構成
- ROS2 の疎結合性(複数センサー → 同じ subscriber)が分かるデモ
このステップを通じて、ROS2 の最も基本的かつ重要な概念である「ノード」「トピック」「publisher」「subscriber」を実際に手を動かしながら理解できます。
まずは次回、最初の一歩として「ROS2 ノードの作成」から始めていきましょう。
ご興味があれば、ぜひ続けてご覧ください。
ありがとうございます。



