Ubuntu で ROS 2 のソースコードからのビルドとインストール

ROS 2 Lyrical Luth をソースコードからビルドしてインストールする手順を説明する。Lyrical Luth は 2026年5月のリリースで、サポート期限は 2031年5月である。

deb パッケージは Ubuntu 26.04 向けに提供されている。Ubuntu 24.04 と Debian 12 は Tier 3 であり、ソースコードからビルドして使う。ROS 2 本体のコードを変更する場合も、ソースコードからビルドする。

関連する外部ページ】は https://docs.ros.org/en/lyrical/Installation/Alternatives/Ubuntu-Development-Setup.html

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

ロケールの設定

ROS 2 は UTF-8 のロケールで動作する。端末で、次のコマンドを実行する。

sudo apt update
sudo apt -y install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale

ROS 2 のビルドに必要な前提ソフトウェア

  1. apt のリポジトリの設定

    Ubuntu の universe リポジトリを有効にし、ros2-apt-source をインストールする。ros2-apt-source は、ROS 2 のリポジトリの URL と署名鍵を設定するパッケージである。

    端末で、次のコマンドを実行する。

    sudo apt update
    sudo apt -y install software-properties-common curl
    sudo add-apt-repository -y universe
    export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F'"' '{print $4}')
    curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
    sudo dpkg -i /tmp/ros2-apt-source.deb
    
  2. 開発ツールのインストール

    ビルドに使う colcon、ソースコードの取得に使う vcstool、依存パッケージの解決に使う rosdep は、ros-dev-tools に含まれる。

    端末で、次のコマンドを実行する。

    sudo apt update
    sudo apt -y install \
      python3-mypy \
      python3-pip \
      python3-pytest \
      python3-pytest-cov \
      python3-pytest-mock \
      python3-pytest-repeat \
      python3-pytest-rerunfailures \
      python3-pytest-runner \
      python3-pytest-timeout \
      ros-dev-tools
    

ソースコードの取得とビルド

  1. ソースコードの取得

    ワークスペースを作り、ros2.repos に書かれたリポジトリを src の下に取得する。端末で、次のコマンドを実行する。

    mkdir -p ~/ros2_lyrical/src
    cd ~/ros2_lyrical
    vcs import --input https://raw.githubusercontent.com/ros2/ros2/lyrical/ros2.repos src
    
  2. 依存パッケージのインストール

    rosdep で依存パッケージをインストールする。--skip-keys に指定したものは、ソースコードからビルドするか、使わないため、対象外とする。端末で、次のコマンドを実行する。sudo rosdep init は、システムで一度だけ実行する。

    cd ~/ros2_lyrical
    sudo apt update
    sudo rosdep init
    rosdep update
    rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-7.7.0 urdfdom_headers"
    
  3. colcon の mixin の設定

    mixin は、ビルドのオプションに名前を付けた設定である。次の手順のビルドで使う release を利用できるようにする。端末で、次のコマンドを実行する。

    colcon mixin add default https://github.com/colcon/colcon-mixin-repository/raw/master/index.yaml
    colcon mixin update default
    
  4. ビルド

    deb パッケージ版の ROS 2 の設定が有効な端末では、ビルドが失敗する。printenv | grep -i ROS の出力が空であることを確認してからビルドする。

    端末で、次のコマンドを実行する。ビルドには時間がかかる。終了後、Summaryfailed のパッケージが無いことを確認する。

    printenv | grep -i ROS
    cd ~/ros2_lyrical
    colcon build --symlink-install --mixin release
    

動作確認

  1. talker の実行

    ビルドしたワークスペースの設定を読み込み、C++ のノードを実行する。この設定は端末ごとに必要である。端末で、次のコマンドを実行する。

    source ~/ros2_lyrical/install/local_setup.bash
    ros2 run demo_nodes_cpp talker
    
  2. listener の実行

    別の端末で、次のコマンドを実行する。talker 側に Publishing、listener 側に I heard と表示されれば、C++ と Python の API が動作している。

    source ~/ros2_lyrical/install/local_setup.bash
    ros2 run demo_nodes_py listener
    
  3. ノードとトピックの一覧の表示

    別の端末で、次のコマンドを実行する。

    source ~/ros2_lyrical/install/local_setup.bash
    ros2 node list
    ros2 topic list
    

アンインストール

ワークスペースのディレクトリを削除する。端末で、次のコマンドを実行する。

rm -rf ~/ros2_lyrical