スポンサー広告
※ご注意:古い情報が含まれる場合があります

本サイトの記事には、過去の技術情報や設定手順が含まれています。現在の環境では動作しない可能性もありますので、ご利用の際はご注意ください。

Windows 11 で ROS2 を最速体験する:Docker環境構築ガイド

本記事では、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 PiNVIDIA 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 ノードの作成」から始めていきましょう。
ご興味があれば、ぜひ続けてご覧ください。
ありがとうございます。

次回は以下です。
Docker 上で ROS2 ノードを実装する:乱数温度センサーで学ぶ pub/sub