はじめに
こんにちは、kazuです。
ROS 2 Advent Calendar 2024の1日目は、Ubuntu24でROS2 humbleをsource buildするガイドです。
※あくまでapt経由でROS 2を入れることができない場合に時間をかけてやる作業です。
aptが使える場合(Ubuntu22とhumble,24とjazzy等)はapt経由で入れることを推奨します。
1. とりあえず公式通り進める
rosdepを使い始めるまでは基本的に公式ページ通りにやっていけば問題ないです
念の為実行するコマンドを載せておきます
locale設定
locale # UTF-8か確認します
sudo apt update && sudo apt 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 # sudo必要かもしれないです
apt関係追加
# timezoneの設定があるかもです5,78でいけます
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
必要なパッケージ追加
sudo apt update && sudo apt install -y \
python3-flake8-docstrings \
python3-pip \
python3-pytest-cov \
ros-dev-tools \
python3-flake8-blind-except \
python3-flake8-builtins \
python3-flake8-class-newline \
python3-flake8-comprehensions \
python3-flake8-deprecated \
python3-flake8-import-order \
python3-flake8-quotes \
python3-pytest-repeat \
python3-pytest-rerunfailures
ROS 2の追加
mkdir -p ~/ros2_humble/src
cd ~/ros2_humble
vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src
sudo apt upgrade
sudo rosdep init
2. rosdepに頑張ってもらう
rosdepでは基本的にros-humble-◯◯
をaptで入れようとします。
しかしros-humble-*系はUbuntu24.04に対応していないので無理やり書き換える必要があります。
ほかのプラットフォームでrosdepの依存関係をデバッグしているときや、プラットフォームが実際にとても似ていて、強制される必要があるときや、もちろん自動検索が失敗しているときなどで使えます。
raspberry pi 5では問題ありませんでしたが、他の環境でrosdep installのときに -os=ubuntu:jammyが必要と言われることがあります。原因不明ですがrosdep installの部分で失敗する場合最後に-os=ubuntu:jammy
を付け足してみてください。
echo 'export ROS_OS_OVERRIDE=ubuntu:jammy' >> ~/.bashrc
source ~/.bashrc
rosdep update
cd ~/ros2_humble
sudo apt install -y libfastrtps-dev
# 失敗したら最後に -os=ubuntu:jammy を付け足す
rosdep install --from-paths src --ignore-src -r -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
3. 無限ビルド編
あとはビルドして終わりです。
無限に時間がかかるので時間のあるときにやりましょう。
また時短コマンドを載せておきますが、公式ページ通りでも問題ないです
cd ~/ros2_humble
colcon build --symlink-install --cmake-args -DBUILD_TESTING=OFF
4. 動作確認
ビルドが終了したら動作確認をしてみましょう!
source ~/ros2_humble/install/setup.bash
ros2 run demo_nodes_cpp talker
source ~/ros2_humble/install/setup.bash
ros2 run demo_nodes_py listener
最後に
nav2の対応が最初はできていなかったり、パッケージがhumble止まりなのにhumble入らない!みたいなケースが結構ありそうなので記事にしてみました。
時間があればaptで入れるros-humble-*を自力で入れる記事も書きたいと思います。
明日は高瀬先生による「極私的ROSCon 2024まとめ」です!