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"]