@@ -17,13 +17,15 @@ ARG ROS2_DIST=humble
17
17
18
18
# ZED ROS2 Wrapper dependencies version
19
19
ARG XACRO_VERSION=2.0.8
20
+ ARG DRACO_VERSION=1.5.7
20
21
ARG DIAGNOSTICS_VERSION=4.0.0
21
22
ARG AMENT_LINT_VERSION=0.12.11
22
23
ARG ROBOT_LOCALIZATION_VERSION=3.5.3
23
24
ARG ZED_MSGS_VERSION=5.0.0
24
25
ARG NMEA_MSGS_VERSION=2.0.0
25
26
ARG ANGLES_VERSION=1.15.0
26
27
ARG GEOGRAPHIC_INFO_VERSION=1.0.6
28
+ ARG RCPPUTILS_VERSION=2.11.2
27
29
ARG POINTCLOUD_TRANSPORT_VERSION=1.0.18
28
30
ARG POINTCLOUD_TRANSPORT_PLUGINS_VERSION=1.0.11
29
31
ARG RMW_CYCLONEDDS_VERSION=1.3.4
@@ -58,7 +60,7 @@ RUN echo "# R${L4T_MAJOR} (release), REVISION: ${L4T_MINOR}" > /etc/nv_tegra_rel
58
60
apt-get update -y || true && \
59
61
apt-get install -y --no-install-recommends zstd wget less cmake curl gnupg2 \
60
62
build-essential python3 python3-pip python3-dev python3-setuptools libusb-1.0-0-dev \
61
- libgeographic-dev libdraco-dev zlib1g-dev -y && \
63
+ libgeographic-dev zlib1g-dev -y && \
62
64
pip install protobuf && \
63
65
wget -q --no-check-certificate -O ZED_SDK_Linux_JP.run \
64
66
${ZED_SDK_URL} && \
@@ -70,19 +72,17 @@ RUN echo "# R${L4T_MAJOR} (release), REVISION: ${L4T_MINOR}" > /etc/nv_tegra_rel
70
72
# Install the ZED ROS2 Wrapper
71
73
ENV ROS_DISTRO=${ROS2_DIST}
72
74
73
- # Copy the sources in the Docker image
74
- WORKDIR /root/ros2_ws/src
75
- COPY tmp_sources/ ./
76
-
77
75
# Install missing dependencies from the sources
78
76
WORKDIR /root/ros2_ws/src
79
77
RUN wget https://github.com/ros/xacro/archive/refs/tags/${XACRO_VERSION}.tar.gz -O - | tar -xvz && mv xacro-${XACRO_VERSION} xacro && \
78
+ wget https://github.com/google/draco/archive/refs/tags/${DRACO_VERSION}.tar.gz -O - | tar -xvz && mv draco-${DRACO_VERSION} draco && cd draco && mkdir -p build && cd build && cmake .. && make install && cd ../.. && \
80
79
wget https://github.com/ros/diagnostics/archive/refs/tags/${DIAGNOSTICS_VERSION}.tar.gz -O - | tar -xvz && mv diagnostics-${DIAGNOSTICS_VERSION} diagnostics && \
81
80
wget https://github.com/ament/ament_lint/archive/refs/tags/${AMENT_LINT_VERSION}.tar.gz -O - | tar -xvz && mv ament_lint-${AMENT_LINT_VERSION} ament-lint && \
82
81
wget https://github.com/cra-ros-pkg/robot_localization/archive/refs/tags/${ROBOT_LOCALIZATION_VERSION}.tar.gz -O - | tar -xvz && mv robot_localization-${ROBOT_LOCALIZATION_VERSION} robot-localization && \
83
82
wget https://github.com/stereolabs/zed-ros2-interfaces/archive/refs/tags/${ZED_MSGS_VERSION}.tar.gz -O - | tar -xvz && mv zed-ros2-interfaces-${ZED_MSGS_VERSION} zed-ros2-interfaces && \
84
83
wget https://github.com/ros-drivers/nmea_msgs/archive/refs/tags/${NMEA_MSGS_VERSION}.tar.gz -O - | tar -xvz && mv nmea_msgs-${NMEA_MSGS_VERSION} nmea_msgs && \
85
84
wget https://github.com/ros/angles/archive/refs/tags/${ANGLES_VERSION}.tar.gz -O - | tar -xvz && mv angles-${ANGLES_VERSION} angles && \
85
+ wget https://github.com/ros2/rcpputils/archive/refs/tags/${RCPPUTILS_VERSION}.tar.gz -O - | tar -xvz && mv rcpputils-${RCPPUTILS_VERSION} rcpputils && \
86
86
wget https://github.com/ros-perception/point_cloud_transport/archive/refs/tags/${POINTCLOUD_TRANSPORT_VERSION}.tar.gz -O - | tar -xvz && mv point_cloud_transport-${POINTCLOUD_TRANSPORT_VERSION} point_cloud_transport && \
87
87
wget https://github.com/ros-perception/point_cloud_transport_plugins/archive/refs/tags/${POINTCLOUD_TRANSPORT_PLUGINS_VERSION}.tar.gz -O - | tar -xvz && mv point_cloud_transport_plugins-${POINTCLOUD_TRANSPORT_PLUGINS_VERSION} point_cloud_transport_plugins && \
88
88
wget https://github.com/ros2/rmw_cyclonedds/archive/refs/tags/${RMW_CYCLONEDDS_VERSION}.tar.gz -O - | tar -xvz && mv rmw_cyclonedds-${RMW_CYCLONEDDS_VERSION} rmw_cyclonedds && \
@@ -93,11 +93,22 @@ RUN wget https://github.com/ros/xacro/archive/refs/tags/${XACRO_VERSION}.tar.gz
93
93
# Install cython
94
94
RUN python3 -m pip install --upgrade cython
95
95
96
- # Build the dependencies and the ZED ROS2 Wrapper
96
+ # Build the dependencies
97
97
WORKDIR /root/ros2_ws
98
98
RUN /bin/bash -c "source /opt/ros/$ROS_DISTRO/install/setup.bash && \
99
+ colcon build --parallel-workers $(nproc) --symlink-install \
100
+ --event-handlers console_direct+ --base-paths src"
101
+
102
+ # Copy the sources in the Docker image
103
+ WORKDIR /root/ros2_ws/src
104
+ COPY tmp_sources/ ./
105
+
106
+ # Build the ZED ROS2 Wrapper
107
+ WORKDIR /root/ros2_ws
108
+ RUN /bin/bash -c "source /root/ros2_ws/install/setup.bash && \
99
109
colcon build --parallel-workers $(nproc) --symlink-install \
100
110
--event-handlers console_direct+ --base-paths src \
111
+ --packages-select-regex '^zed.*' \
101
112
--cmake-args ' -DCMAKE_BUILD_TYPE=Release' \
102
113
' -DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs' \
103
114
' -DCMAKE_CXX_FLAGS="-Wl,--allow-shlib-undefined"' \
0 commit comments