Files
NODEDC_MISSION_CORE/simulation/ai-polygon/navigation/Dockerfile
T

35 lines
1.7 KiB
Docker

FROM ros:humble-ros-base-jammy
LABEL com.nodedc.product="mission-core" \
com.nodedc.stack="ai-polygon" \
com.nodedc.role="terrain-navigation" \
com.nodedc.managed-by="ai-polygon-worker" \
org.opencontainers.image.source="https://github.com/HongbiaoZ/autonomous_exploration_development_environment" \
org.opencontainers.image.revision="158e67b31b644ed1e8b06eb1d7f70e183cc62591"
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates build-essential python3-numpy python3-yaml \
python3-colcon-common-extensions ros-humble-pcl-ros \
ros-humble-pcl-conversions ros-humble-tf2-geometry-msgs \
ros-humble-sensor-msgs-py ros-humble-rclpy \
&& rm -rf /var/lib/apt/lists/*
# Upstream's terrain analysis and collision-free motion primitives are unchanged.
# Keep the exact sources and their declared BSD package licenses in the image.
WORKDIR /opt/cmu
RUN curl -fL --retry 3 \
https://codeload.github.com/HongbiaoZ/autonomous_exploration_development_environment/tar.gz/158e67b31b644ed1e8b06eb1d7f70e183cc62591 \
-o /tmp/upstream.tgz \
&& mkdir upstream src \
&& tar -xzf /tmp/upstream.tgz -C upstream --strip-components=1 \
&& cp -a upstream/src/local_planner upstream/src/terrain_analysis src/ \
&& source /opt/ros/humble/setup.bash \
&& MAKEFLAGS=-j2 colcon build --base-paths src --parallel-workers 1 \
--cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \
&& rm /tmp/upstream.tgz
ENV ROS_LOCALHOST_ONLY=1 ROS_DOMAIN_ID=83
WORKDIR /adapter
ENTRYPOINT ["/bin/bash", "-c", "source /opt/ros/humble/setup.bash && source /opt/cmu/install/setup.bash && exec python3 /adapter/navigation/server.py"]