Python ROS2 プログラム 高専4年生

【ROS2講座⓪】ROS2 Humble環境の構築~windows×Docker~【Python】

こちらのコースではロボット制御を行う上で避けては通れない、ROS2の基本的な概要について学んでゆきます。

ROSは学習環境を整えるのが大変なのですが、今回はWindows上の仮想Ubuntu環境を使って、ROS2の学習環境を整える方法をご紹介します。

次回からはこちらの環境を使ってハンズオン形式で学習を進めてゆきます。

ROSの概要についてはこちら

環境

本講座では以下の環境を想定して実習を進めます。

ROS初心者最大の躓きポイントは学習環境の構築です。

パソコンの状態や細かい環境の違いによってエラーが出たり、うまくいかなかったりします。

本講座では環境をそろえる為に、Dockerという仮想環境を使い、その上でUbuntuとROS2を動かします。

項目内容
ホストOSWindows 10/11
仮想化ツールDocker
コンテナOSUbuntu 22.04
ROS2ディストリビューションHumble Hawksbill
依存ライブラリPython 3、colcon、その他ROS2依存パッケージ
開発ツールVSCode(リモート開発拡張)、ターミナル、ROS2 CLIツール
推奨システム要件CPU: 64-bit、メモリ: 8GB以上、ストレージ: 20GB以上の空き容量

互換性の注意点

  1. 対応するUbuntuバージョンの選択
    • ROS 2の各バージョンは、特定のUbuntuバージョンで最適に動作します。他のバージョンを使用すると、依存関係の問題が発生する可能性があるため、公式の推奨バージョンを使用してください。
  2. Pythonバージョン
    • ROS 2は、Pythonを多用しているため、対応するPythonのバージョンにも注意が必要です。
  3. LTSの使用
    • 実運用環境ではLTSバージョンを使用することで、長期的な安定性とサポートが得られます。

以下は、ROS 2バージョン一覧です。(2025年1月更新)

DistroRelease dateLogoEOL dateLTS対応Ubuntuバージョン
Jazzy JaliscoMay 2024TBDMay 2029Ubuntu 24.04 LTS (予定)
Iron IrwiniMay 2023TBDMay 2025Ubuntu 22.04 LTS
Humble HawksbillMay 2022TBDMay 2027Ubuntu 22.04 LTS
Galactic GeocheloneMay 2021TBDNovember 2022Ubuntu 20.04 LTS
Foxy FitzroyJune 2020TBDMay 2023Ubuntu 20.04 LTS
Eloquent ElusorNovember 2019TBDNovember 2020Ubuntu 18.04 LTS

Dockerのインストール

Dockerとは?

Dockerは、アプリケーションを軽量なコンテナ(仮想環境)としてパッケージ化、配布、実行するためのプラットフォームです。従来の仮想マシン(VM)と異なり、OS全体を仮想化せず、ホストOSのカーネルを共有するため、以下のような特徴があります:

Dockerの特徴

  1. 軽量で高速
    • コンテナはホストOSのカーネルを利用するため、起動時間が短くリソース消費も少ない。
  2. 移植性
    • アプリケーションをコンテナ化することで、どんな環境(Windows、Mac、Linux)でも同じ動作を保証できる。
  3. 開発・デプロイの効率化
    • 開発環境と本番環境の差異をなくし、デプロイ作業が容易になる。
  4. 依存関係の解消
    • 必要なライブラリや設定をすべてコンテナ内に閉じ込められるので、他のプロジェクトとの競合が発生しない。

Dockerの導入手順

以下は、Windows 10/11にDockerを導入する手順です。

1. システム要件を確認

  • Windows 10:
    • バージョン1903以降(64-bit)。
    • WSL2(Windows Subsystem for Linux 2)が有効であること。
  • Windows 11:
    • 標準でWSL2が利用可能。

2. Docker Desktopのダウンロードとインストール

  1. 公式サイトにアクセス。Windows用、AMD64を選択し、「Docker Desktop for Windows」をダウンロードします。
  1. ダウンロードしたインストーラを実行して、指示に従いインストールします。
  1. インストール中に、WSL2を有効化するオプションが表示された場合はオンにします。

3. WSL2の有効化(Windows10の場合)

  • 管理者権限のコマンドプロンプトを開き、以下を実行します。
wsl --install
  • 再起動後、Docker Desktopを起動するとWSL2バックエンドが有効化されます。

初回起動時に以下のようなウィンドウが表示された場合は、WSLのアップデートが必要です。

コマンドプロンプトで以下のコマンドを実行してください。

コマンドはCtrl+shift+Vで貼り付けることができます。

wsl --update

4. 動作確認

コマンドプロンプトやPowerShellで以下を実行します。

docker --version

正常にインストールされていれば、Dockerのバージョンが表示されます。

初回起動時は以下のように表示されます。

右上のSkipを押していただいて問題ありません。

UbuntuとROS2環境の導入

Dockerではコンテナと呼ばれる環境を用意してその環境の中でプログラムを動かしてゆきます。

様々なコンテナが公開、自作されていますが、今回はUbuntu、ROS2、エディタなどがすべてインストール済みの素晴らしいコンテナを作ってくださった方がいらっしゃいますので、そちらをありがたく使わせていただきます。

詳しくはこちらの記事をご覧ください。

ROS/ROS2のGUIをWebブラウザ経由でお手軽に試せるDockerfileを公開しました https://memoteki.net/archives/2955 (Tiryoh様)

コマンドプロンプトを起動し、以下のコマンドを入力します。

docker run -p 6080:80 --shm-size=512m tiryoh/ros2-desktop-vnc:humble

10GB以上のデータをダウンロードしますので、しばらく放置します。

放置し、最終的に以下のような表示が出れば完了です。
(途中で止まる、起動していないなどが起きた場合は再起動して再度コマンドを実行してみてください)

ブラウザ上でhttp://127.0.0.1:6080にアクセスし、接続をクリックします。

Docker Desktopを立ち上げると、コンテナの実行状況が確認できます。

次回からはこちらのソフト上でもコンテナの利用開始と停止を操作できます。(コマンドプロンプト上からも可能です)

ブラウザ上でUbuntu22.04のデスクトップが表示されれば成功です。

Ubuntu×ROS2の動作テスト

Terminatorをクリックし、ターミナルを起動します。

ROSでは複数のプログラムを起動し、動かしてゆきます。今回は2つ動かしてみるので、ターミナルを上下に2分割します。

ターミナルの画面上で右クリックし、Spilit Horizontallyをクリックします。

片方のターミナルで以下を実行し、

ros2 run turtlesim turtlesim_node

もう片方のターミナルで以下を実行します。(Ctrl+Shift+Vで貼り付けできます)

ターミナル上で入力する際は途中でTabキーを押すと、次の文字を予測して自動入力してくれます。うまく活用して脱字が無いようにします。

ros2 run turtlesim turtle_teleop_key

以下のように Teleopを実行したターミナルがアクティブな状態で、上下左右のカーソルキーを押すと、シミュレータ上の亀が動きます。

問題なく操作できれば、ROS2は無事動いています。

次回からは本格的にROS2の勉強を始めてゆきます。
公式チュートリアルを抜粋、一部改良した物になりますので、さらに詳しく知りたい方は公式チュートリアルを一通りやってみることをお勧めします。

 ROS 2 Documentation: Humble ( https://docs.ros.org/en/humble/Tutorials.html

次回はこちら

Follow me!

-Python, ROS2, プログラム, 高専4年生
-, ,

PAGE TOP