2025年12月8日 星期一

ROS2 install for 2404

 這是一個非常重要的問題,因為 ROS 2 HumbleUbuntu 24.04 之間存在官方不相容的情況。

ROS 2 的官方支援對應關係如下:

Ubuntu 版本代號官方支援的 ROS 2 版本
Ubuntu 22.04 LTSJammy JellyfishROS 2 Humble Hawksbill (您需要的版本)
Ubuntu 24.04 LTSNoble NumbatROS 2 Jazzy Jalisco (官方推薦版本)

結論: 您無法透過標準的 apt 安裝方式在 Ubuntu 24.04 上安裝 ROS 2 Humble 的二進位包,因為它們是針對 Ubuntu 22.04 的系統函式庫編譯的,會造成相依性錯誤。


✅ 方案一:最推薦且穩定的路徑 (使用 ROS 2 Jazzy)

如果您可以接受使用更新、且官方為 Ubuntu 24.04 設計的 ROS 2 Jazzy 版本,這是最穩定、最推薦的解決方案。ROS 2 Jazzy 包含 Gazebo 的最新整合。

1. 安裝 ROS 2 Jazzy (適用於 Ubuntu 24.04)

執行以下命令來設定您的軟體源並安裝 Jazzy 的完整桌面版本:

Bash
# 1. 設定語系
sudo apt update && sudo apt install locales -y
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

# 2. 加入 ROS 2 軟體源
sudo apt install software-properties-common -y
sudo add-apt-repository universe -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# 3. 將 ROS 2 軟體源加入列表
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

# 4. 更新並安裝 ROS 2 桌面完整版 (含 Gazebo)
sudo apt update
sudo apt install ros-jazzy-desktop -y

# 5. 環境變數設定 (每次開啟終端機都會自動載入)
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc

2. 測試 Gazebo

ROS 2 Jazzy 預設使用新的 Gazebo (Ignition) Sim,而不是您提到的 Gazebo Classic

  • 啟動 Gazebo Sim (新版本):

    Bash
    ros2 launch ros_gz_sim_demos office.launch.py
    

⚠️ 方案二:堅持使用 Humble 的解決方案 (推薦降級 VM)

如果您必須使用 Humble 版本,您應該採取以下任一方法來避免 Ubuntu 24.04 的相容性問題:

最佳方法:將虛擬機系統降級 (最簡單穩定)

在 VirtualBox 中,將您的虛擬機基礎作業系統換成 Ubuntu 22.04 LTS。這是運行 Humble 和 Gazebo Classic 11 最穩定、最簡單的方法。

次佳方法:在 22.04 環境中使用 Docker

如果您不想重灌虛擬機,可以使用 Docker 容器技術在 Ubuntu 24.04 上運行一個包含 Humble 和 22.04 系統環境的隔離空間。

步驟:在 Ubuntu 22.04 上安裝 Humble 和 Gazebo Classic

如果您的 VM 已降級為 Ubuntu 22.04,請遵循以下步驟安裝 ROS 2 Humble + Gazebo Classic 11

Bash
# 1-3 步驟與方案一相同 (設定語系、加入 ROS 2 軟體源) ...

# 4. 更新並安裝 ROS 2 Humble 桌面完整版
# 此套件包含 Gazebo Classic 11 及 ROS 2 橋接套件 (gazebo-ros-pkgs)
sudo apt update
sudo apt install ros-humble-desktop-full -y 

# 5. 環境變數設定
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 6. 確認 Gazebo Classic 啟動
ros2 launch gazebo_ros gazebo.launch.py

針對 Gazebo Classic 的特別提醒

如果您已成功安裝 Humble (在 Ubuntu 22.04 上),請務必回頭確認您在上一輪對話中提到的 VirtualBox 3D 加速設定export LIBGL_DRI3_DISABLE=1 這兩個步驟。它們是確保 Gazebo Classic 在虛擬機中能夠正常顯示的關鍵

沒有留言:

張貼留言