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

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

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

1. RoboStackをセットアップする

Getting Startedページに従ってインストールします。私はROS 2 Jazzyを使っているので、別のディストリビューションを使いたい場合はコマンド中の名前を適宜読み替えてください。

curl -fsSL https://pixi.sh/install.sh | bash
# pixiコマンドを使えるように、ここでターミナルを開き直す

# ホームディレクトリに移動し、環境のワークスペースを作る
cd
# 新しいプロジェクトとディレクトリを作成する
pixi init ros_ws --channel https://prefix.dev/robostack-jazzy

以降のpixiコマンドは、ros_wsディレクトリ内で実行してください。

cd ros_ws
# ROS 2のパッケージを追加する
pixi add ros-jazzy-desktop

これでインストール完了です!pixi run rviz2を実行すればあら不思議、

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

Pythonパッケージを入れる前に:pipの競合を確認する

Pythonパッケージはpixi run pip install <パッケージ名>でインストールできますが、pixi環境内のpipが使われているか確認してください。pipがまだ入っていない場合は、まずインストールします。

cd ~/ros_ws
pixi add pip
# 正しいpipが使われているか確認する
pixi run which pip

whichの出力が~/ros_ws/.pixi/envs/default/bin/pipに相当するパスになっていればOKです。私の環境では、~/.bashrcや~/.zshrcにあるmamba / condaの初期化スクリプトが干渉したようで、mamba環境内のpipが表示されてしまいました。同じことが起きた場合は、それらの初期化処理を~/.bashrcや~/.zshrcからコメントアウトし、ターミナルを開き直してから、もう一度pixi run which pipが正しいバイナリを指しているか確認してください。

2. ROS 2プロジェクトを追加してビルドする

プロジェクトのソースコードを置くsrcディレクトリを作ります。

cd ~/ros_ws
mkdir src
cd src

必要なROS 2リポジトリを~/ros_ws/srcにクローンしてください。その後、ワークスペースのルートに戻り、colconなどのビルドツールを使うための開発ツールをインストールします。

cd ~/ros_ws
pixi add ros-dev-tools

これで、次のコマンドでビルドできます。

pixi run colcon build --symlink-install

ソースからビルドしたプログラムを実行できるようにするには、ROS 2をシステムに直接インストールした場合はsource install/setup.bashを実行します。pixiの場合は、ビルド後に~/ros_ws/pixi.tomlへ次の設定を追加してください。

[target.unix.activation]
scripts = ["install/setup.bash"]

3. ROS 2のプログラムを実行する

pixi環境内でコマンドを実行するときは、次の2点を忘れないようにしてください。

例えば、こんな感じです。

cd ~/ros_ws
# 環境内にnumpyをインストールする
pixi run pip install numpy
# 環境内でPythonプログラムを実行する
pixi run python my_program.py
# もちろんROS 2のコマンドにも使う
pixi run ros2 run demo_nodes_cpp talker

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

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

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

pixi add ros-jazzy-joint-state-publisher-gui ros-jazzy-xacro

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

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