Site Logo

yasunori.jp

Yasunori Toshimitsu | 利光泰徳

ホーム / ブログ / RoboStackを...


RoboStackを使って仮想環境内にROS2をインストールする

2025年02月15日

最近はあまりネイティブのUbuntu OSを起動しておらず、大体全てをWindows上のWSLで済ませているのですが、その中でROSを使いたいときにとても便利なのが、mambaの仮想環境内にROSをインストールできるRoboStackです。例えば、通常のROSのインストール手順だとUbuntuのバージョンに制約があったりします(最新のROS 2 JazzyはUbuntu24.04にのみ対応している、等)が、仮想環境なら基本的にOSのバージョンを問いません。また、仮想環境を使えば同じマシン内でROS 1とROS 2を共存させることさえ可能です。ベース環境を汚すことなくROSを使いたい場合、RoboStackは最強だと思います。

尚、インストールできるパッケージがRoboStackに登録されているものに限られるなど、制約もあるのでROSをがっつり使いたい場合は通常のインストール手段の方が良いと思います。なお、2025年2月時点の情報で書かれているのでもし公式チュートリアルとの差が生じてしまっている場合適宜読み替えて実行していってください。

今回使うパッケージマネージャのキャラ解説

パッケージマネージャ関連の用語がconda、mamba、miniforge、conda-forgeなどいちいち似ていてとてもややこしいのですが、ひととおり説明してみます(この記事を書くために初めてちゃんと調べました)

それでは、ROS2環境を作っていきましょう。おおむねRoboStackのチュートリアル通りですが、躓いたところをピックアップしているので、もとの記事と合わせて読んでいってほしいです。

1. miniforgeをインストール

miniforgeのREADME通り、

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"

でインストーラをダウンロードして、

bash Miniforge3-$(uname)-$(uname -m).sh

でインストールします。

2. ROSをインストール

これもチュートリアル通り、まずros_envという仮想環境を作り

mamba create -n ros_env python=3.11

それをアクティベートして環境内に入ります

mamba activate ros_env

ここで「mamba initしてください」みたいな文句を言われる場合があるので、その場合はmamba init(zshシェルを使っている場合はmamba init zsh)してターミナルを開きなおしてからもう一度mamba activate ros_envしなおしてください。

その後は、チュートリアルにある通りconda config --env ****のコマンドを実行してどのチャンネルを有効化したいかを設定していき、ついに

# 最新のROS2ディストリビューションのJazzy Jaliscoをインストールする場合
mamba install ros-jazzy-desktop

でROSのパッケージがインストールできます!これでrviz2を実行すればあら不思議、

WindowsなのにRvizが起動できました!(最新のWSL2を使っていれば、X Serverなどの設定なしにGUIも表示できます)

続いて、“Installation tools for local development”の通り、cmakecolcon-common-extensionsなどのインストールも済ませてください。

3. colcon用環境をセットアップする

次はROS2の”Using colcon to build packages”チュートリアルにしたがってビルド環境を構築していきます。

最初のコマンドのsudo apt install python3-colcon-common-extensionsについては、既に上でcolcon-common-extensionsmambaでインストールしているので不要です。また、source /opt/ros/jazzy/setup.bashについてもmamba activate ros_envの時点で実行されるので不要です。

4. ROSパッケージのインストールについて

バイナリが公開されているROSパッケージは通常はsudo apt install ros-jazzy-joint-state-publisherのようにaptでインストールしますが、私たちはmamba環境内に、mambaを使ってインストールしないといけません。(aptで入れようとしてもおおもとのROS2がベースシステムにはインストールされていないので失敗してしまうはずです)

インストールしたいパッケージがhttps://robostack.github.io/jazzy.htmlにあることを確認して、

mamba install ros-jazzy-joint-state-publisher-gui

のようにインストールしてください。ここにないパッケージの場合、残念ながらソースからビルドする必要があります。この制約が、RoboStack版ROSの弱点かもしれません。

それでは皆様、快適なROS 2ライフを!



New posts


RoboStackを使って仮想環境内にROS2をインストールする
2025.02/15
Microsoft激推しのCopilotキーでChatGPTを開いてしまおう
2024.12/24
ファンタジースプリングスにも影響を与えた「アールヌーヴォー」の聖地、ナンシーを巡る旅
2024.11/08
自分のロボットをMuJoCoでシミュレーションしよう!CADからMJCFを作る方法
2024.07/13

more...