From 2c0aae45d64927449402ff6bae8398fb39c25bda Mon Sep 17 00:00:00 2001 From: Pimpest <82343504+pimpest@users.noreply.github.com> Date: Mon, 6 Apr 2026 19:20:36 +0200 Subject: [PATCH] Updated docker file to use custom libcamera fork --- .gitmodules | 3 +++ Dockerfile | 28 ++++++++++++++++++++++++++-- ext/camera_ros | 1 + scripts/toid_base_build.sh | 3 ++- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 160000 ext/camera_ros diff --git a/.gitmodules b/.gitmodules index 4c994e1..9963ab5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "ext/BehaviorTree.ROS2"] path = ext/BehaviorTree.ROS2 url = https://github.com/BehaviorTree/BehaviorTree.ROS2.git +[submodule "ext/camera_ros"] + path = ext/camera_ros + url = https://github.com/christianrauch/camera_ros.git diff --git a/Dockerfile b/Dockerfile index c980ba2..d007a35 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ros:jazzy-ros-base +FROM ros:jazzy-perception ENV DEBIAN_FRONTEND=noninteractive @@ -6,10 +6,28 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && 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 @@ -22,13 +40,19 @@ 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 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 \ + rosdep install --from-paths ./ --ignore-src -r -y --skip-keys=libcamera \ && rm -rf /var/lib/apt/lists/* RUN rm -rf ./* diff --git a/ext/camera_ros b/ext/camera_ros new file mode 160000 index 0000000..121c98a --- /dev/null +++ b/ext/camera_ros @@ -0,0 +1 @@ +Subproject commit 121c98a7fef9ea745ad000ff28bf48da6dee994a diff --git a/scripts/toid_base_build.sh b/scripts/toid_base_build.sh index fff53f7..0c1190f 100755 --- a/scripts/toid_base_build.sh +++ b/scripts/toid_base_build.sh @@ -2,4 +2,5 @@ source /opt/ros/jazzy/setup.bash -colcon build --packages-up-to-regex "toid_(?!bt)" \ No newline at end of file +colcon build --packages-up-to-regex "toid_(?!bt)" +colcon build --packages-up-to-regex "camera_ros" \ No newline at end of file