welcom ! Handel home

2025年1月11日 星期六

支持 ROS Noetic Dockerfile Note

 以下是基於 dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt 的 Dockerfile 範例,

用於構建支持 ROS Noetic 的開發環境:


Dockerfile 範例:

# 使用 dorowu 提供的輕量級 Ubuntu 20.04 桌面環境作為基礎映像

FROM dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt


# 設置維護者信息(可選)

LABEL maintainer="your_email@example.com"


# 設置非交互模式,避免安裝過程中提示

ENV DEBIAN_FRONTEND=noninteractive


# 更新系統並安裝必要工具

RUN apt-get update && apt-get install -y \

    lsb-release \

    gnupg2 \

    curl \

    wget \

    nano \

    build-essential \

    python3-pip \

    && rm -rf /var/lib/apt/lists/*


# 添加 ROS 官方軟件源

RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'


# 添加 ROS 軟件源密鑰

RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654


# 安裝 ROS Noetic 桌面完整版

RUN apt-get update && apt-get install -y ros-noetic-desktop-full


# 初始化 rosdep

RUN apt-get install -y python3-rosdep \

    && rosdep init \

    && rosdep update


# 安裝 ROS 開發工具

RUN apt-get install -y \

    python3-rosinstall \

    python3-rosinstall-generator \

    python3-wstool \

    python3-catkin-tools \

    && rm -rf /var/lib/apt/lists/*


# 配置環境變數,使 ROS 能在容器內正常使用

RUN echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc


# 確保 ROS 環境對所有用戶可用

RUN echo "source /opt/ros/noetic/setup.bash" >> /etc/skel/.bashrc \

    && echo "source /opt/ros/noetic/setup.bash" >> /root/.bashrc


# 創建工作空間目錄

RUN mkdir -p /home/ubuntu/catkin_ws/src && \

    chown -R ubuntu:ubuntu /home/ubuntu/catkin_ws


# 設置工作目錄為容器啟動時的默認目錄

WORKDIR /home/ubuntu/catkin_ws


# 設置默認用戶和環境

USER ubuntu


# 自動加載 ROS 環境

CMD ["bash", "-c", "source /opt/ros/noetic/setup.bash && /bin/bash"]

說明

基礎映像:


使用 dorowu/ubuntu-desktop-lxde-vnc:focal-lxqt 作為基礎映像,提供輕量級桌面環境和 VNC 支援。

ROS 軟件源:


添加 ROS 軟件源,並使用密鑰驗證。

安裝 ROS Noetic:


安裝 ros-noetic-desktop-full,包含 ROS 核心、Rviz、Gazebo 等常用功能。

初始化 rosdep:


使用 rosdep 自動解析和安裝系統依賴。

安裝開發工具:


包括 catkin 和 wstool,用於構建和管理 ROS 工作空間。

環境配置:


將 source /opt/ros/noetic/setup.bash 添加到 .bashrc,自動加載 ROS 環境。

工作空間設置:


創建默認的 ROS 工作空間 /home/ubuntu/catkin_ws,並設置工作目錄。

使用指導

構建映像

docker build -t ros-noetic-desktop .

運行容器

docker run -d \

  -p 5901:5901 -p 6080:6080 \

  --name ros_noetic \

  ros-noetic-desktop

進入容器

docker exec -it ros_noetic bash

啟動 VNC

通過 VNC 客戶端連接:localhost:5901

使用 Web 瀏覽器連接:http://localhost:6080

擴展與自定義

安裝額外軟件:


如需使用特定工具(如 Gazebo 或 MoveIt),可以在 Dockerfile 中添加相應的安裝指令。

修改分辨率:


運行容器時設置分辨率:

docker run -d -e RESOLUTION=1920x1080 ros-noetic-desktop

共享目錄:


挂載宿主機目錄到容器中,便於文件共享:

docker run -v /host/path:/home/ubuntu/shared -it ros-noetic-desktop

沒有留言: