はじめに
ROS2をWindows環境で利用したいと考え、公式サイトのインストールガイドを試された方も多いかと思います。特に最新版の ROS2 Jazzy Jalisco は、Python のバージョン指定などが厳密であり、既存の環境との競合や依存関係の解決に苦労された経験があるかもしれません。
本記事では、このような公式インストールでのつまずきを回避し、より安定した ROS 2 環境を Windows 11 上に構築できる Robostack を利用する方法をご紹介します。Robostack は、conda パッケージマネージャーを活用することで、ROS 2 とその依存関係をクリーンな環境に簡単にインストールできます。
Robostack とは?
Robostack は、科学技術計算分野で広く使われているパッケージマネージャーである conda を利用して、ROS や関連ライブラリをクロスプラットフォームで提供するプロジェクトです。Windows, macOS, Linux のそれぞれ一貫した方法で ROS 環境を構築できる点が大きな特長です。
conda 環境を利用するため、システム全体の Python やその他のライブラリに影響を与えることなく、分離された環境で ROS 2 を実行できます。これにより、依存関係の衝突などの問題を大幅に軽減できます。
前提条件
本記事を進めるにあたり、以下の環境が必要となります。
- Windows11(or 10)のPC
- インターネット接続
- Mambaforge のインストール
-
Visual Studio 20119 or 2022
* Visual Studio 2022の場合はコマンドラインツール(mamba install vs2022_win-64
)
Robostack を使った ROS 2 Jazzy のインストール手順
それでは、Robostack を使って ROS 2 Jazzy 環境を構築する手順を説明します。Powershellはサポートされておらず、mambaのコマンドが利用できるMiniforge Promptプロンプトを使用することをお勧めします。
-
conda 環境の作成
まず、ROS 2 Jazzy 用の新しい conda 環境を作成します。環境名は任意ですが、ここでは
robostack_jazzy
とします。ROS 2 Jazzy は Python 3.11 を推奨しているため、バージョンを指定して作成します。mamba create -n robostack_jazzy python=3.11
実行すると、必要なパッケージとその依存関係が表示され、インストール確認が求められますので
y
と入力して進めます。 -
作成した環境のアクティベート
作成した環境をアクティベートします。今後、この環境で ROS 2 を利用する際は、必ずこのコマンドを実行してから作業を開始します。
mamba activate robostack_jazzy
プロンプトの先頭に
(robostack_jazzy)
のように環境名が表示されれば成功です。 -
Robostack チャンネルの追加
Robostack のパッケージは、特定の conda チャンネルで配布されています。以下のコマンドを実行して、必要なチャンネルを追加します。
conda config --env --add channels conda-forge conda config --env --remove channels defaults conda config --env --add channels robostack-jazzy
-
ROS 2 Jazzy パッケージのインストール
いよいよ ROS 2 Jazzy の主要パッケージをインストールします。ここでは、一般的な開発に必要なツールが含まれる
ros-jazzy-desktop
をインストールします。mamba install ros-jazzy-desktop
このコマンドを実行すると、ROS 2 Jazzy およびその依存関係にある多くのパッケージがインストールされます。時間がかかる場合がありますので、完了するまで待ちます。途中でインストール確認が求められたら
y
を入力してください。
環境を非アクティブ化して再アクティブ化し、構成された ROS 環境を初期化します。mamba deactivate mamba activate robostack_jazzy
-
開発ツールのインストール
以下のコマンドで開発支援ツールをインストールします。
mamba install compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools rosdep
動作確認
インストールが完了したら、正しく環境が構築できたか確認してみましょう。
-
簡単な ROS 2 プログラムの実行 (talker/listener)
ROS 2 の基本的な通信を確認するために、
demo_nodes_cpp
パッケージのtalker
とdemo_nodes_py
パッケージのlistener
を実行してみます。ターミナルを2つ開きます。 それぞれのターミナルで、以下の手順を実行してください。
-
ターミナル 1:
talker
ノードを実行します。mamba activate robostack_jazzy ros2 run demo_nodes_cpp talker
このターミナルには、メッセージをパブリッシュしていることを示すログが繰り返し表示されます。
-
ターミナル 2:
listener
ノードを実行します。mamba activate robostack_jazzy ros2 run demo_nodes_py listener
このターミナルには、
talker
から送信されたメッセージを受信していることを示すログが繰り返し表示されます。
両方のターミナルで期待されるログが表示されていれば、Robostack を使った ROS 2 Jazzy 環境の構築と基本的な通信の動作確認は成功です!
-
まとめ
本記事では、Windows 11 環境で公式の ROS 2 インストールで発生しがちな Python のバージョン問題などを回避するために、Robostack を利用して ROS 2 Jazzy 環境を構築する手順を解説しました。conda を利用することで、システムの環境を汚さずにクリーンな ROS 2 環境を構築できるのが Robostack の大きなメリットです。
今回構築した環境をベースに、ご自身の ROS 2 開発を進めてみてください。必要に応じて、conda install
コマンドで他の ROS 2 パッケージを追加インストールすることも可能です。
- Robostack ドキュメント: https://robostack.github.io/
この記事が、Windows 環境で ROS 2 を始めたい方の助けになれば幸いです。