使用 Docker 建立 ROS 2 Humble 映像
這裡是一個範例,使用 docker build
來建立 ROS 2 Humble 的 Docker 映像。
1. 創建 Dockerfile
$mkdir ros2_humble_docker
$cd ros2_humble_docker
$mkdir src
$nano Dockerfile
在你的專案目錄(例如 ros2_humble_docker
)內建立一個 Dockerfile
,內容如下:
2. 建立 Docker 映像
在 Dockerfile
所在的目錄中,執行以下指令來 建立 Docker 映像:
這將建立一個名為 ros2_humble
的 Docker 映像。
3. 運行容器
當 Docker 映像建立完成後,您可以啟動一個 ROS 2 Humble 容器:
這將開啟一個終端,並讓你進入 ROS 2 環境。
4. 測試 ROS 2
進入容器後,您可以測試 ROS 2 是否正確運行:
如果 ROS 2 安裝正確,你應該會看到當前的 ROS 2 版本(Humble)和可用的話題(topics)。
可選:在 Docker 容器中執行 ROS 2 範例
如果您想在 Docker 容器內執行 ROS 2 的 Publisher / Subscriber 測試,請執行以下命令:
開啟第一個終端,執行 Talker(發送訊息)
開啟另一個終端,執行 Listener(接收訊息)
如果一切正常,你應該會在 listener
的輸出中看到 talker
發送的訊息。
結論
這個 Dockerfile
允許你快速建立 ROS 2 Humble 環境,並支援自訂 ROS 2 專案(可透過 COPY ./src ./src
來引入自訂套件)。透過 Docker,你可以在不同系統上輕鬆部署 ROS 2,確保開發環境的一致性。
📌 推薦使用情境
- ROS 2 開發環境標準化
- 快速測試 ROS 2 功能
- 輕鬆共享開發環境(可以
docker push
到 Docker Hub)
Dockerfile 是用來建立一個基於官方 ROS 2 Humble 長版本映像的容器,其中包含了設置和編譯 ROS 2 工作區的指令。讓我們逐步分析每部分的內容及其目的:
基礎映像 :
dockerfile使用官方的 ROS 2 Humble 長版本作為基礎。
設定環境變數 :
dockerfile設置
DEBIAN_FRONTEND
為noninteractive
,使得在安裝過程中不會有交互式輸入要求。更新系統和安裝工具 :
dockerfile更新包資料庫,並安裝
python3-colcon-common-extensions
、python3-pip
和git
工具。清理/var/lib/apt/lists/*
是為了減少容器大小。設定工作目錄 :
dockerfile設置工作目錄為
/root/ros2_ws
,這是您將要操作的 ROS 工作區。複製檔案 :
dockerfile將當前目錄下的
src
資料夾內容複製到容器中的/root/ros2_ws/src
。安裝相依套件 :
dockerfile更新包資料庫,並使用
rosdep
安裝src
目錄下套件所需的相依項。安裝示例節點 :
dockerfile安裝 ROS 2 Humble 示例节点套件
ros-humble-demo-nodes-cpp
。編譯工作區 :
dockerfile載入 ROS 2 環境並使用
colcon
命令來編譯您的工作區。設定環境變數 :
dockerfile將 ROS 的設置腳本加入
~/.bashrc
,以便在容器內啟動 bash shell 時自動源這些設定。設置鉤子 :
dockerfile設置
SHELL
為一個 bash 命令,以便在後續指令中自動源.bashrc
。設定啟動命令 :
dockerfile容器啟動時執行
bash
命令,進入交互式 shell 環境。根據實際需求可以修改這部分。
總的來說,這個 Dockerfile 設計了一個 ROS 2 的開發和測試環境,並提供了基本的套件安裝和配置。根據實際需求,您可能需要調整相依套件、加入其他自定義設置或節點測試腳本等部分。
沒有留言:
張貼留言