This commit is contained in:
2026-08-03 14:04:19 +09:00
parent 4b181e5ad3
commit d560ce6f82
48 changed files with 19866 additions and 555 deletions
+41
View File
@@ -0,0 +1,41 @@
FROM future-nav2:humble
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
ENV DEBIAN_FRONTEND=noninteractive \
ROS_DISTRO=humble \
TURTLEBOT3_MODEL=burger \
NAV2_WORKSPACE=/workspace/nav2-slam_ws
# Nav2 and SLAM Toolbox are provided by the base image. Module workspaces may
# override those packages with local sources, while Gazebo and TurtleBot3 are
# added here for the source-based simulator modules.
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
python3-argcomplete \
python3-colcon-common-extensions \
python3-rosdep \
python3-vcstool \
python3-pip \
ros-humble-gazebo-plugins \
ros-humble-gazebo-ros-pkgs \
ros-humble-turtlebot3-description \
ros-humble-turtlebot3-gazebo \
ros-humble-turtlebot3-msgs \
ros-humble-xacro \
ros-humble-tf-transformations \
&& rm -rf /var/lib/apt/lists/* \
&& rosdep init 2>/dev/null || true
RUN rosdep update
COPY docker-entrypoint.sh /usr/local/bin/studio-nav2-entrypoint
RUN chmod +x /usr/local/bin/studio-nav2-entrypoint \
&& mkdir -p "${NAV2_WORKSPACE}/src"
WORKDIR /workspace
ENTRYPOINT ["/usr/local/bin/studio-nav2-entrypoint"]
CMD ["bash"]
+34
View File
@@ -0,0 +1,34 @@
# Nav2 Development Image
`nav2-dev:humble` is the source-build runtime for Nav2 learning modules. It
contains ROS 2 Humble, Gazebo, colcon, and rosdep, but intentionally does not
contain Nav2, TurtleBot3, or SLAM Toolbox source code.
Build it from this directory:
```bash
./build.sh
```
Mount a composed module workspace and build its sources:
```bash
docker run --rm -it --network host \
-e DISPLAY="$DISPLAY" \
-e TURTLEBOT3_MODEL=burger \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "$HOME/autonomy-studio/workspaces/nav2-slam_ws:/workspace/nav2-slam_ws" \
nav2-dev:humble bash
cd "$NAV2_WORKSPACE"
rosdep install --from-paths src --ignore-src -r -y
colcon build
```
The composed workspace must contain all direct source dependencies. For Nav2,
include its shared packages such as `nav2_common`, `nav2_util`, and `nav2_msgs`
alongside the module packages being built.
On later container starts, the entrypoint automatically sources
`/workspace/nav2-slam_ws/install/setup.bash`, so source-built packages override
the base ROS installation.
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
docker build -t nav2-dev:humble "$(cd "$(dirname "$0")" && pwd)"
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -e
source "/opt/ros/${ROS_DISTRO}/setup.bash"
# A prior colcon build takes precedence over apt packages when the workspace
# is mounted. This makes source edits immediately available to ROS commands.
if [[ -f "${NAV2_WORKSPACE}/install/setup.bash" ]]; then
source "${NAV2_WORKSPACE}/install/setup.bash"
fi
exec "$@"