a81b99cd3c
Need to investigate lidar startup
52 lines
1.7 KiB
Docker
52 lines
1.7 KiB
Docker
FROM ros:jazzy
|
|
|
|
# Create the workspace and copy all source directories into it
|
|
WORKDIR /ros2_ws
|
|
COPY src ./src/
|
|
COPY patches ./patches/
|
|
COPY upstream.jazzy.repos ./upstream.jazzy.repos
|
|
|
|
# Stage any dual ROS1/ROS2 packages (e.g. livox_ros_driver2) for ROS2 without
|
|
# modifying their upstream source: generate package.xml from package_ROS2.xml so
|
|
# colcon can discover them. The ROS2 build is selected via -DROS_EDITION below.
|
|
# RUN for d in $(find /ros2_ws/src -type f -name package_ROS2.xml -exec dirname {} \;); do \
|
|
# cp -f "$d/package_ROS2.xml" "$d/package.xml"; \
|
|
# done
|
|
|
|
# Import all upstream repostories
|
|
RUN vcs import ./src/upstream < ./upstream.jazzy.repos
|
|
|
|
# Fixup the livox package for ros2 build
|
|
RUN cd ./src/upstream/livox_ros_driver2 && \
|
|
rm -rf launch package.xml && \
|
|
ln -sfn launch_ROS2 launch && \
|
|
ln -sfn package_ROS2.xml package.xml
|
|
|
|
# Apply patches to upstream
|
|
# RUN ./patches/apply_patches.sh
|
|
|
|
# Install dependencies with rosdep
|
|
RUN apt-get update && \
|
|
rosdep update && \
|
|
rosdep install --from-paths src --ignore-src -r -y && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN cd src/upstream/livox_sdk && \
|
|
mkdir -p build && \
|
|
cd build && rm -rf * && \
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release && \
|
|
make -j && \
|
|
make install
|
|
|
|
# Build the workspace with symlink install
|
|
RUN . /opt/ros/jazzy/setup.sh && \
|
|
colcon build --symlink-install \
|
|
--packages-ignore unitree_lidar_ros2 unitree_lidar_ros unitree_lidar_sdk fast_lio \
|
|
--cmake-args -DROS_EDITION=ROS2 -DDISTRO_ROS=jazzy
|
|
|
|
# Source the overlay on container startup
|
|
RUN echo "source /opt/ros/jazzy/setup.bash" >> /root/.bashrc && \
|
|
echo "source /ros2_ws/install/setup.bash" >> /root/.bashrc
|
|
|
|
CMD ["bash"]
|