46 lines
1.3 KiB
Docker
46 lines
1.3 KiB
Docker
# ============================================================
|
|
# ROV Autonomy Stack — ARM64 Container Image
|
|
# Target: Raspberry Pi 5 running Ubuntu 24.04 LTS
|
|
# Base: ROS2 Jazzy on Ubuntu 24.04
|
|
# ============================================================
|
|
|
|
FROM ros:jazzy-ros-base-noble
|
|
|
|
# Set non-interactive apt installs
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install ROS2 dependencies and tools
|
|
RUN apt-get update && apt-get install -y \
|
|
# ROS2 packages required by the stack
|
|
ros-jazzy-mavros \
|
|
ros-jazzy-mavros-extras \
|
|
ros-jazzy-robot-localization \
|
|
ros-jazzy-cv-bridge \
|
|
ros-jazzy-image-transport \
|
|
# Python dependencies
|
|
python3-pip \
|
|
python3-opencv \
|
|
# Build tools
|
|
python3-colcon-common-extensions \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install geographic datasets required by MAVROS
|
|
RUN /opt/ros/jazzy/lib/mavros/install_geographiclib_datasets.sh
|
|
|
|
# Create workspace directory
|
|
WORKDIR /ros2_ws
|
|
|
|
# Copy workspace source into image
|
|
COPY src/ src/
|
|
|
|
# Build the workspace
|
|
RUN /bin/bash -c "source /opt/ros/jazzy/setup.bash && \
|
|
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release"
|
|
|
|
# Copy and configure entrypoint
|
|
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
|
RUN chmod +x /docker-entrypoint.sh
|
|
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
CMD ["ros2", "launch", "rov_bringup", "rov_full.launch.py"]
|