welcom ! Handel home

2025年4月14日 星期一

ESP32 + micro-ROS 編譯環境 的 Dockerfile

 以下是適用於 ESP32 + micro-ROS 編譯環境Dockerfile,可在容器內直接建立 firmware 並燒錄到 ESP32。這個環境使用 ROS 2 Humble 為基礎,並支援編譯 freertos + esp32 的 micro-ROS 應用。


Dockerfile(支援 micro-ROS + ESP32)

dockerfile
FROM ros:humble # 安裝必要套件 RUN apt update && apt install -y \ python3-pip \ python3-colcon-common-extensions \ build-essential \ git \ curl \ cmake \ gcc \ g++ \ unzip \ python3-rosdep \ python3-vcstool \ python3-argcomplete \ nano \ wget \ libpython3-dev \ pipx # 安裝 ESP-IDF 工具鏈(需要 Python 3.7+) RUN pip install esptool cryptography # 安裝 micro-ROS setup 工具 WORKDIR /root/microros_ws RUN git clone -b humble https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup RUN rosdep update RUN rosdep install --from-path src --ignore-src -y # 編譯 micro_ros_setup RUN . /opt/ros/humble/setup.sh && \ colcon build && \ . install/local_setup.sh # 建立 firmware workspace for ESP32 RUN . /opt/ros/humble/setup.sh && \ . install/local_setup.sh && \ ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32 # 設定預設工作目錄 WORKDIR /root/microros_ws/firmware

🚀 使用方式

1. 建立並啟動容器

bash
docker build -t microros_esp32 . docker run -it --rm \ --device=/dev/ttyUSB0 \ --name microros_dev \ -v $PWD:/root/microros_ws/firmware \ microros_esp32

2. 在容器內完成以下步驟

bash
# 設定通訊方式(UART) ros2 run micro_ros_setup configure_firmware.sh serial --dev /dev/ttyUSB0 # 建立 firmware ros2 run micro_ros_setup build_firmware.sh # 燒錄 firmware(ESP32 須進入 boot 模式) ros2 run micro_ros_setup flash_firmware.sh

✅ 可選擴充

  • 如果你使用 ESP32-C3 / S3,可修改 create_firmware_ws.sh 為對應的板型

  • 若需支援 Wi-Fi(UDP),可改成:

    bash
    ros2 run micro_ros_setup configure_firmware.sh udp --ip 192.168.1.100 --port 8888

需要我幫你生成 app.c 範例,或製作成 docker-compose 自動化整合嗎?也可以協助你做完整 UART ↔ ROS2 測試流程!

沒有留言: