Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
27afff6
update route pub
ibrahimhroob Jul 25, 2025
615a85f
Update QoS profile for TopoMap2Vis subscription and ensure float-type…
ibrahimhroob Sep 10, 2025
495da2a
Merge branch 'aoc' into exec-policy
lcastri Oct 15, 2025
74cecd2
Merge pull request #208 from LCAS/exec-policy
lcastri Oct 15, 2025
57ea88e
headder added to executepolicymodegoal (#210)
ibrahimhroob Nov 21, 2025
ecaf2c9
Add navigation area subscription and tunnel detection to EdgeActionMa…
ibrahimhroob Nov 27, 2025
82f06c1
Merge pull request #212 from LCAS:edge_bug_fix_from_tunnel_to_align_node
ibrahimhroob Nov 27, 2025
ffa48ac
Add target edge path publishing to EdgeActionManager
ibrahimhroob Nov 27, 2025
a086d61
Merge pull request #213 from LCAS:center_edge
ibrahimhroob Nov 27, 2025
37a01ef
Add intermediate orientation override for smoother navigation flow
Nov 27, 2025
aeebdc2
Merge pull request #214 from LCAS/allow_intermediate_orientation_over…
ibrahimhroob Nov 27, 2025
a3d6d18
Initial plan
Copilot Nov 28, 2025
73ec810
Add flexible properties system for nodes and edges
Copilot Nov 28, 2025
b86eea4
Add namespace guidance and map validation script
Copilot Nov 28, 2025
a079c56
Add convention for using package names as namespaces
marc-hanheide Nov 28, 2025
21ef387
Update README files to enhance documentation and add flexible propert…
marc-hanheide Dec 16, 2025
22f5572
Update CI workflow to include 'aoc' branch for push and pull request …
marc-hanheide Dec 16, 2025
ea27f99
Add tag trigger to CI workflow for push events
marc-hanheide Dec 16, 2025
d818dbb
Enhance documentation for flexible properties system with namespace o…
marc-hanheide Dec 16, 2025
7e025ea
Add GitHub Actions workflow to validate YAML schema
marc-hanheide Dec 16, 2025
f4e7912
Merge pull request #216 from LCAS/copilot/add-flexible-node-edge-prop…
marc-hanheide Dec 16, 2025
e20571b
Merge branch 'humble-dev' into aoc
ibrahimhroob Dec 16, 2025
725b830
Enhance EdgeActionManager with row operation handling and boundary no…
ibrahimhroob Dec 16, 2025
04d5857
Fix closest node handling in TopologicalNavServer to improve navigati…
Jan 7, 2026
d0f6788
Merge pull request #229 from LCAS/closest_node_bug_fix
marc-hanheide Jan 12, 2026
03748ef
Refactor EdgeActionManager to simplify row operation handling and imp…
ibrahimhroob Jan 18, 2026
4c4f48a
Initial plan
Copilot Jan 20, 2026
10ecb07
Add Copilot instructions, AGENTS.md, and REVIEW.md for AI coding agents
Copilot Jan 20, 2026
e510774
Merge pull request #233 from LCAS/copilot/prepare-repository-for-ai-a…
marc-hanheide Jan 20, 2026
4da1944
Update AGENTS.md with comprehensive codebase analysis for agent_prep …
marc-hanheide Jan 27, 2026
ae231f6
Merge pull request #237 from LCAS/agent_prep
marc-hanheide Jan 27, 2026
4a0e62a
Enhance EdgeActionManager and add flexible properties system (#235)
ibrahimhroob Feb 3, 2026
bd8ab5b
change default param to be more clearly functional (#246)
Iranaphor Apr 19, 2026
b70c2b6
Contribute upstream aoc from jabas (#247)
marc-hanheide Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
89 changes: 69 additions & 20 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,75 @@
FROM lcas.lincoln.ac.uk/lcas/ros:humble
ARG BASE_IMAGE=ros:jazzy
ARG ROS_DISTRO=jazzy

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y upgrade \
&& apt-get -y install --no-install-recommends ros-humble-desktop ros-humble-simulation bash-completion python3-colcon-common-extensions \
nano syslog-ng \
build-essential \
curl \
swig \
python3-pip \
ros-humble-rviz2 \
python3-rosinstall-generator \
wget
FROM ${BASE_IMAGE} AS base

RUN useradd -rm -d /home/lcas -s /bin/bash -g root -G sudo -u 1001 lcas
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN rm -rf /var/lib/apt/lists/* \
&& apt-get update --fix-missing \
&& apt-get -y install --no-install-recommends --fix-missing \
ros-${ROS_DISTRO}-rviz2 \
bash-completion \
python3-colcon-common-extensions \
python3-pip \
python3-rosdep \
ros-${ROS_DISTRO}-rqt-graph \
&& rm -rf /var/lib/apt/lists/*

RUN echo "source /opt/ros/humble/setup.bash" >> /home/lcas/.bashrc
############################################################################################################
# Intermediate stage: extract only package.xml files so that the rosdep cache
# is only invalidated when package.xml files actually change, not on every
# source-tree modification. The bind-mount hash covers the whole tree, but the
# COPY --from below is content-addressed on /tmp/pkg-only alone.
FROM base AS pkg_xmls_only
RUN --mount=type=bind,target=/tmp/source-tree-ro,readonly \
find /tmp/source-tree-ro -name "package.xml" | while IFS= read -r f; do \
rel="${f#/tmp/source-tree-ro/}"; \
mkdir -p "/tmp/pkg-only/$(dirname "$rel")"; \
cp "$f" "/tmp/pkg-only/$rel"; \
done

RUN pip3 install bloom

COPY *repos *.sh /tmp/.devcontainer/
RUN bash /tmp/.devcontainer/install.sh

RUN mkdir -p /home/lcas/ws/src && ln -s /workspaces /home/lcas/ws/src/workspaces
WORKDIR /home/lcas/ws

############################################################################################################
FROM base AS deps_installed
LABEL org.opencontainers.image.target="deps_installed"

COPY --from=pkg_xmls_only /tmp/pkg-only /tmp/pkg-only

RUN echo "Installing dependencies" && \
cd /tmp/pkg-only && \
echo "Running rosdep update..." && \
rosdep update --rosdistro ${ROS_DISTRO} && \
echo "Running apt-get update..." && \
apt-get update && \
echo "Running rosdep install..." && \
rosdep install --from-paths . --ignore-src --rosdistro ${ROS_DISTRO} -y || echo "rosdep install failed, continuing with flag to keep going" && \
rosdep install --from-paths . --ignore-src --rosdistro ${ROS_DISTRO} -y -r

FROM deps_installed AS devcontainer
# do an initial build to speed up development
RUN --mount=type=bind,target=/workspace/src \
. /opt/ros/${ROS_DISTRO}/setup.sh && \
cd /workspace && \
colcon build --continue-on-error

RUN echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> /etc/bash.bashrc
RUN echo "if [ -f /workspace/install/setup.bash ]; then source /workspace/install/setup.bash; fi" >> /etc/bash.bashrc
RUN echo "alias build='(cd /workspace && colcon build)'" >> /etc/bash.bashrc


FROM devcontainer AS build
COPY ./ /workspace/src
WORKDIR /workspace
ENV ROS2_WS=/workspace

# Do an initial build to speed up development
RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && colcon build --continue-on-error"

# ----------------------------------------------------------------------------------------------------
FROM build AS final

RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && colcon build"

ENV MAP_FILE=/workspace/src/topological_navigation/config/test_simple_tmap2.yaml
CMD ["/bin/bash", "-lc", "source /workspace/install/setup.bash && exec ros2 launch topological_navigation topological_navigation.launch.py map_path:=$MAP_FILE"]
36 changes: 36 additions & 0 deletions .devcontainer/compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
services:
vnc:
image: lcas.lincoln.ac.uk/vnc
volumes:
- x11:/tmp/.X11-unix
# devices:
# - /dev/dri:/dev/dri
networks:
- ros_net
shm_size: '2gb'
stdin_open: true
tty: true

topo-nav:
build:
context: ../
dockerfile: .devcontainer/Dockerfile
target: devcontainer
volumes:
- x11:/tmp/.X11-unix
- ../:/workspace/src:cached
stdin_open: true
tty: true
networks:
- ros_net
depends_on:
- vnc
environment:
- DISPLAY=:1.0
- ROS_DOMAIN_ID=10

volumes:
x11:

networks:
ros_net:
58 changes: 13 additions & 45 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,61 +1,29 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "topological_navigation",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
// "image": "lcas.lincoln.ac.uk/lcas/ros:humble",
"build": {
"dockerfile": "Dockerfile",
"context": "."
},

// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
"ghcr.io/devcontainers/features/desktop-lite:1": {}
},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
"forwardPorts": [6080, 5901],
"dockerComposeFile": "compose.yaml",
"service": "topo-nav",
"workspaceFolder": "/workspace/src",
"updateRemoteUserUID": true,

"forwardPorts": ["vnc:5801"],
"portsAttributes": {
"6080": {
"label": "novnc"
},
"5901": {
"label": "vnc"
}
},
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "bash .devcontainer/run.sh",
"containerUser": "lcas",
// Configure tool-specific properties.
// "customizations": {},
"runArgs": [ "--security-opt", "seccomp=unconfined", "--cap-add=NET_ADMIN" ],
"vnc:5801": { "label": "novnc" }
},

"containerEnv": {
"ROS_LOCALHOST_ONLY": "0",
"LIBGL_ALWAYS_SOFTWARE": "1" // Needed for software rendering of opengl
},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
"customizations": {
"customizations": {
"vscode": {
"extensions": [
"dotjoshjohnson.xml",
"zachflower.uncrustify",
"ms-python.python",
"AlessandroSofia.ros2-topic-viewer",
"ms-vscode.cpptools",
"redhat.vscode-yaml",
"smilerobotics.urdf",
"streetsidesoftware.code-spell-checker",
"twxs.cmake",
"king2021.vnc-extension",
"nonanonno.vscode-ros2",
"deitry.colcon-helper",
"yzhang.markdown-all-in-one",
"github.vscode-github-actions"
"github.vscode-github-actions",
"ArshadKhan.topological-map-visual"
]
}
}

}
}
23 changes: 0 additions & 23 deletions .devcontainer/install.sh

This file was deleted.

9 changes: 0 additions & 9 deletions .devcontainer/lcas.repos

This file was deleted.

26 changes: 0 additions & 26 deletions .devcontainer/run.sh

This file was deleted.

Loading
Loading