Ubuntu で ROS 2 Jazzy Jalisco のビルドとインストール(ソースコードを使用)
python-rosdep などのパッケージも現在の Ubuntu では提供されていない。
Jazzy Jalisco の対象プラットフォームは,Tier 1 が Ubuntu 24.04 (Noble) 64ビット,Tier 3 が Ubuntu 22.04 (Jammy) 64ビットおよび Debian 12 (Bookworm) 64ビットである。
【目次】
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
C/C++ コンパイラと Make とビルドツールのインストール
ソフトウェアをソースコードからビルドするには、C/C++コンパイラ (通常はGCC) や make ユーティリティといった開発ツールが必要である。Ubuntuでは、これらのツールは build-essential パッケージにまとめられている。インストールするには,端末で,次のコマンドを実行する。
sudo apt -y install build-essential libtool texinfo dpkg-dev pkg-config
libtool, texinfo, dpkg-dev, pkg-config は、より複雑なビルドやパッケージ管理の際に役立つ開発関連ツールである。
ロケールの設定
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 のビルドとインストール
https://docs.ros.org/en/jazzy/Installation/Alternatives/Ubuntu-Development-Setup.html の記述に従うapt リポジトリの追加
開発ツールの入手のため,Ubuntu の universe リポジトリと ROS 2 の apt リポジトリを有効にする。端末で,次のコマンドを実行する。
sudo apt -y install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt -y install curl
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
インストール作業を開始するためのソフトウェアのインストール
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install \
python3-flake8-blind-except \
python3-flake8-class-newline \
python3-flake8-deprecated \
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
ros-dev-tools には,ソースコードの取得に使う vcstool,依存関係の解決に使う rosdep,ビルドに使う colcon が含まれる。
いくつかの前準備
- ワークスペースの生成とソースコードの取得
mkdir -p ~/ros2_jazzy/src cd ~/ros2_jazzy wget https://raw.githubusercontent.com/ros2/ros2/jazzy/ros2.repos vcs import src < ros2.repos - rosdep の初期化と更新
sudo rosdep init rosdep update - 前提ソフトウェアのインストール
cd ~/ros2_jazzy sudo apt update rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"Ubuntu を基にした他のディストリビューション(Linux Mint など)で
Unsupported OSのエラーが出る場合は,上のコマンドに--os=ubuntu:nobleを追加する。 - colcon mixin の設定
colcon mixin add default https://github.com/colcon/colcon-mixin-repository/raw/master/index.yaml colcon mixin update default - ワークスペースの構築
apt などで別途 ROS 2 をインストールしている場合は,その設定を読み込んでいない端末でビルドを行う。
printenv | grep -i ROSの出力が空であることを確認する。cd ~/ros2_jazzy colcon build --symlink-install --mixin release特定のパッケージのビルドで問題が起きる場合は,
--packages-skipオプションでそのパッケージを除外できる(例:colcon build --symlink-install --packages-skip image_tools intra_process_demo)。
環境設定と動作確認
- 環境設定ファイルの読み込み
. ~/ros2_jazzy/install/local_setup.bash - C++ の talker の実行
端末で,次のコマンドを実行する.
. ~/ros2_jazzy/install/local_setup.bash ros2 run demo_nodes_cpp talker - Python の listener の実行
別の端末で,次のコマンドを実行する.
. ~/ros2_jazzy/install/local_setup.bash ros2 run demo_nodes_py listener - 結果の確認
talker 側に
Publishing,listener 側にI heardのメッセージが表示されること。これにより C++ と Python の両方の API が動作していることを確認できる。
ROS 2 の更新
ソースコードからインストールした ROS 2 を最新版に更新する手順を示す- ros2.repos ファイルの待避と,その最新版の取得
cd ~/ros2_jazzy mv -i ros2.repos ros2.repos.old wget https://raw.githubusercontent.com/ros2/ros2/jazzy/ros2.repos diff -u ros2.repos ros2.repos.old - 取得済みリポジトリの情報の更新
vcs custom --args remote update - ソースコードの更新
vcs import src < ros2.repos vcs pull src - ワークスペースのリビルド
colcon build --symlink-install - ワークスペースの状態の書き出し
現在のワークスペース内の各リポジトリのバージョンを記録・共有するときは,次のコマンドを実行する。
cd ~/ros2_jazzy vcs export src > my_ros2.repos