快轉到主要內容

一起來!五步驟輕鬆打造你的 ROS2 容器化服務——Advantech 技術實驗大揭密

· loading
作者
Advantech ESS
目錄

背景故事:為什麼大家都在談「容器化」?
#

想像一下,你要讓機器人服務在不同電腦、不同環境下穩定運作,傳統安裝步驟繁瑣、環境配置又容易出錯。這時候,Docker 容器就像是把你的服務裝進「行李箱」,不論走到哪都能「一鍵開箱」馬上啟動!

在智慧製造、物流、醫療等領域,ROS(Robot Operating System)已經是機器人開發的主力平台;而 ROS2 則為分散式、多設備協作帶來更多可能。容器化正好解決了部署 ROS2 服務時的「落地難題」——讓開發、測試、上線全都標準化。


Advantech 技術實驗:如何 5 步驟打造你的 ROS2 容器
#

這次實驗,我們以 Advantech 自家開發的 ROS2 基底映像(advigw/dev-ros2-<ROS_DISTRO>:1.0.0),示範如何用 Docker 快速包裝一個 ROS2 應用服務。以下是我們實際操作的步驟:

步驟一:打造專屬 Dockerfile
#

首先,建立一個名為 Dockerfile 的文件。這份文件就像「食譜」,決定你的 ROS2 服務容器會有哪些配料(依賴)、怎麼煮(安裝指令)、以及開箱即用的自動啟動功能。

FROM advigw/dev-ros2-<ROS_DISTRO>:1.0.0

# 1. 複製應用所需檔案到容器
# WORKDIR /root
# COPY prerequisite/<your_application> /root/prerequisite

# 2. 安裝相關套件或依賴
# RUN apt-get update
# RUN apt-get install <some_dependency>

# 3. 設定容器啟動時自動執行的應用
# CMD [<application_command>]

步驟二:用 Docker CLI 建置映像檔
#

開啟終端機,在專案目錄下輸入:

docker build -t ros-example -f Dockerfile .

這樣就會產生一個名為 ros-example 的容器映像,之後就能輕鬆複製、部署啦!

步驟三:撰寫 docker-compose.yml 統籌多服務
#

想同時管理多個服務?用 docker-compose.yml 檔案就對了!這份設定檔能一次定義好所有容器要怎麼啟動、彼此怎麼連線,還能輕鬆調整環境變數。

version: '2.1'

services:
  ros-example:
    image: ros-example
    container_name: ros-example
    restart: always
    networks:
      - adv-ros-network
    logging:
      options:
        max-size: 10M
    environment:
      - ROS_DOMAIN_ID=${ROS_DOMAIN_ID}

networks:
  adv-ros-network:
    name: adv-ros-network

步驟四:一鍵啟動所有容器
#

所有設定完成後,在有 docker-compose.yml 的資料夾輸入:

docker-compose -f docker-compose.yml up -d

小提醒: 執行這步時,建議不要加上 sudo,否則 ROS_DOMAIN_ID 這個重要環境變數可能會失效喔!

步驟五:即時進入容器驗證
#

最後,開一個互動式 shell,直接進到 ROS2 服務容器裡面進行測試:

docker exec -it ros-example bash

這樣就能隨時檢查應用運作狀態,或進行進一步開發啦!


實驗亮點與應用價值
#

  • 快速部署,省時省力:開發人員、客戶只要幾行指令,就能把 ROS2 服務搬到任何一台裝有 Docker 的電腦上。
  • 環境一致,減少錯誤:不用再擔心「我這邊可以,你那邊不行」的問題,容器幫你把軟體環境都包好!
  • 彈性擴展,未來無限:利用 Compose 管理多個 ROS2 服務,未來要串接 AI、IoT 或其他先進應用都超簡單。
  • Advantech 持續創新:這套流程建立在我們自家開發的 ROS2 映像,並結合產業實際需求,展現我們在機器人與自動化領域的深厚實力。

結語與未來展望
#

這次的實驗證明,只要善用容器技術,ROS2 的部署與管理可以變得如此簡單!Advantech 不僅提供穩定可靠的開發基礎,更持續研發更聰明、更彈性的技術解決方案,助攻客戶快速落地 AIoT、智慧機器人等創新應用。

未來,我們將繼續優化容器化流程,導入更多自動化、遠端維運與安全性強化功能,攜手夥伴一起開創智慧產業新局!想知道更多技術細節或應用案例?持續鎖定 Advantech 部落格,讓我們一起玩轉科技新未來!

相關文章

讓 SUSI 進入容器世界!Advantech 研發團隊 Docker 化實驗全紀錄
· loading
機器人感官神同步!Advantech Time Sync Viewer 助您揪出時間不同步的搗蛋鬼
· loading
揭秘ROS2 Domain ID設定術:讓機器人團隊溝通零干擾!
· loading