35 lines
1.7 KiB
Docker
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"]
|