FROM ros:jazzy-perception ENV DEBIAN_FRONTEND=noninteractive # ---------- System dependencies ---------- RUN apt-get update && apt-get upgrade && apt-get install -y \ python3-colcon-common-extensions \ python3-rosdep \ meson cmake \ build-essential \ udev \ git # ---------- Libcamera ---------- WORKDIR /extras RUN apt-get install -y libboost-dev \ libgnutls28-dev openssl libtiff5-dev \ pybind11-dev \ qtbase5-dev libqt5core5a libqt5gui5 libqt5widgets5 \ python3-yaml python3-ply python3-jinja2 python3-pip\ libglib2.0-dev libgstreamer-plugins-base1.0-dev \ build-essential RUN git clone https://github.com/raspberrypi/libcamera.git \ && cd libcamera \ && meson setup build --buildtype=release -Dpipelines=rpi/vc4,rpi/pisp -Dipas=rpi/vc4,rpi/pisp -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=disabled -Ddocumentation=disabled -Dpycamera=enabled \ && ninja -C build install # ---------- Initialize rosdep ---------- RUN rosdep init || true RUN rosdep update # ---------- Workspace ---------- WORKDIR /ros_ws # ---------- Copy package.xml files ---------- COPY toid_bot_description/package.xml toid_bot_description/package.xml COPY toid_control/package.xml toid_control/package.xml COPY toid_msgs/package.xml toid_msgs/package.xml COPY toid_odometry/package.xml toid_odometry/package.xml COPY toid_lidar/package.xml toid_lidar/package.xml COPY toid_interaction/package.xml toid_interaction/package.xml COPY toid_costmaps/package.xml toid_costmaps/package.xml COPY toid_bt/package.xml toid_bt/package.xml COPY toid_spinner_controller/package.xml toid_spinner_controller/package.xml COPY toid_behaviors/package.xml toid_behaviors/package.xml COPY toid_navigation/package.xml toid_navigation/package.xml COPY toid_vision/package.xml toid_vision/package.xml COPY ext/camera_ros/package.xml ext/camera_ros/package.xml COPY ext/BehaviorTree.ROS2/ ext/BehaviorTree.ROS2/ # ---------- Install dependencies ---------- RUN . /opt/ros/jazzy/setup.sh && \ rosdep install --from-paths ./ --ignore-src -r -y --skip-keys=libcamera \ && rm -rf /var/lib/apt/lists/* RUN rm -rf ./* RUN cat <> /root/.bashrc source /opt/ros/jazzy/setup.bash if [[ -f ./install/setup.bash ]]; then source ./install/setup.bash fi EOF CMD ["sleep", "infinity"]