From fcda2227d9e05e220a7aa2bc4083f1c13c48b1c4 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Fri, 13 Mar 2026 18:19:11 +0000 Subject: [PATCH 01/11] wip: start building the format of the new devcontainer using aoc base --- .devcontainer/Dockerfile | 27 +++++++------ .devcontainer/compose.yaml | 38 +++++++++++++++++++ .devcontainer/devcontainer.json | 29 +++++--------- .devcontainer/oldDockerfile | 26 +++++++++++++ .../topological_nav_simulator}/README.md | 0 .../config/fake_nav2.rviz | 0 .../launch/fake_nav2.launch.py | 0 .../topological_nav_simulator}/package.xml | 0 .../resource/topological_nav_simulator | 0 .../topological_nav_simulator}/setup.cfg | 0 .../topological_nav_simulator}/setup.py | 0 .../test/test_virtual_robot.py | 0 .../topological_nav_simulator/__init__.py | 0 .../fake_nav2_server.py | 0 .../virtual_robot.py | 0 .../topological_navigation}/CHANGELOG.rst | 0 .../topological_navigation}/CMakeLists.txt | 0 .../topological_navigation}/LICENSE | 0 .../topological_navigation}/README.md | 0 .../config/template_action.yaml | 0 .../config/template_edge.yaml | 0 .../config/template_node.yaml | 0 .../config/test_complex_tmap2.yaml | 0 .../config/test_simple_tmap2.yaml | 0 .../config/tmap-schema.yaml | 0 .../launch/topological_navigation.launch.py | 0 .../topological_navigation}/package.xml | 0 .../resource/topological_navigation | 0 .../rviz/topological_navigation.rviz | 0 .../topological_navigation}/setup.cfg | 0 .../topological_navigation}/setup.py | 0 .../topological_navigation}/test/__init__.py | 0 .../topological_navigation}/test/conftest.py | 0 .../test/fixtures/README.md | 0 .../test/fixtures/complex_map.yaml | 0 .../test/fixtures/mixed_actions_map.yaml | 0 .../test/fixtures/polygon_shapes_map.yaml | 0 .../test/fixtures/simple_map.yaml | 0 .../test/static_transformer.py | 0 .../test/test_convert_tmap.py | 0 .../test/test_localisation2.py | 0 .../test/test_navigation_graph.py | 0 .../test/test_navigationcore.py | 0 .../test/test_networkx_utils.py | 0 .../test/test_tmap_utils.py | 0 .../test/test_validate_map.py | 0 .../topological_navigation/__init__.py | 0 .../topological_navigation/convert_tmap.py | 0 .../navigation_graph.py | 0 .../topological_navigation/networkx_utils.py | 0 .../scripts/__init__.py | 0 .../scripts/localisation2.py | 0 .../scripts/manual_topomapping.py | 0 .../scripts/map_manager2.py | 0 .../scripts/navigation2.py | 0 .../topological_navigation/tmap_utils.py | 0 .../topological_navigation/validate_map.py | 0 .../CHANGELOG.rst | 0 .../CMakeLists.txt | 0 .../topological_navigation_msgs}/LICENSE | 0 .../action/BuildTopPrediction.action | 0 .../action/ExecutePolicyMode.action | 0 .../action/GotoNode.action | 0 .../msg/AddEdgeReq.msg | 0 .../msg/AddNodeReq.msg | 0 .../msg/ClosestEdges.msg | 0 .../msg/CurrentEdge.msg | 0 .../topological_navigation_msgs}/msg/Edge.msg | 0 .../msg/ExecutePolicyModeFeedback.msg | 0 .../msg/ExecutePolicyModeGoal.msg | 0 .../msg/GotoNodeFeedback.msg | 0 .../msg/NavRoute.msg | 0 .../msg/NavStatistics.msg | 0 .../msg/SetInfluenceZoneReq.msg | 0 .../msg/TopologicalMap.msg | 0 .../msg/TopologicalNode.msg | 0 .../msg/TopologicalOccupiedNode.msg | 0 .../msg/TopologicalRoute.msg | 0 .../msg/UpdateEdgeConfigReq.msg | 0 .../msg/Vertex.msg | 0 .../topological_navigation_msgs}/package.xml | 0 .../srv/EvaluateEdge.srv | 0 .../srv/EvaluateNode.srv | 0 .../srv/GetRouteBetween.srv | 0 .../srv/GetRouteTo.srv | 0 .../srv/LoadTopoNavTestScenario.srv | 0 .../srv/LocalisePose.srv | 0 .../srv/ReconfAtEdges.srv | 0 .../srv/RunTopoNavTestScenario.srv | 0 .../srv/WriteTopologicalMap.srv | 0 .../topological_map_visualiser.launch.py | 0 .../package.xml | 0 .../resource/topological_navigation_visual | 0 .../topological_navigation_visual}/setup.cfg | 0 .../topological_navigation_visual}/setup.py | 0 .../test/__init__.py | 0 .../topological_navigation_visual/__init__.py | 0 .../policy_marker.py | 0 .../scripts/__init__.py | 0 .../scripts/topological_map_visualiser.py | 0 .../scripts/topological_visual.py | 0 101 files changed, 86 insertions(+), 34 deletions(-) create mode 100644 .devcontainer/compose.yaml create mode 100644 .devcontainer/oldDockerfile rename {topological_nav_simulator => src/topological_nav_simulator}/README.md (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/config/fake_nav2.rviz (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/launch/fake_nav2.launch.py (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/package.xml (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/resource/topological_nav_simulator (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/setup.cfg (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/setup.py (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/test/test_virtual_robot.py (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/topological_nav_simulator/__init__.py (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/topological_nav_simulator/fake_nav2_server.py (100%) rename {topological_nav_simulator => src/topological_nav_simulator}/topological_nav_simulator/virtual_robot.py (100%) rename {topological_navigation => src/topological_navigation}/CHANGELOG.rst (100%) rename {topological_navigation => src/topological_navigation}/CMakeLists.txt (100%) rename {topological_navigation => src/topological_navigation}/LICENSE (100%) rename {topological_navigation => src/topological_navigation}/README.md (100%) rename {topological_navigation => src/topological_navigation}/config/template_action.yaml (100%) rename {topological_navigation => src/topological_navigation}/config/template_edge.yaml (100%) rename {topological_navigation => src/topological_navigation}/config/template_node.yaml (100%) rename {topological_navigation => src/topological_navigation}/config/test_complex_tmap2.yaml (100%) rename {topological_navigation => src/topological_navigation}/config/test_simple_tmap2.yaml (100%) rename {topological_navigation => src/topological_navigation}/config/tmap-schema.yaml (100%) rename {topological_navigation => src/topological_navigation}/launch/topological_navigation.launch.py (100%) rename {topological_navigation => src/topological_navigation}/package.xml (100%) rename {topological_navigation => src/topological_navigation}/resource/topological_navigation (100%) rename {topological_navigation => src/topological_navigation}/rviz/topological_navigation.rviz (100%) rename {topological_navigation => src/topological_navigation}/setup.cfg (100%) rename {topological_navigation => src/topological_navigation}/setup.py (100%) rename {topological_navigation => src/topological_navigation}/test/__init__.py (100%) rename {topological_navigation => src/topological_navigation}/test/conftest.py (100%) rename {topological_navigation => src/topological_navigation}/test/fixtures/README.md (100%) rename {topological_navigation => src/topological_navigation}/test/fixtures/complex_map.yaml (100%) rename {topological_navigation => src/topological_navigation}/test/fixtures/mixed_actions_map.yaml (100%) rename {topological_navigation => src/topological_navigation}/test/fixtures/polygon_shapes_map.yaml (100%) rename {topological_navigation => src/topological_navigation}/test/fixtures/simple_map.yaml (100%) rename {topological_navigation => src/topological_navigation}/test/static_transformer.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_convert_tmap.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_localisation2.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_navigation_graph.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_navigationcore.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_networkx_utils.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_tmap_utils.py (100%) rename {topological_navigation => src/topological_navigation}/test/test_validate_map.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/__init__.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/convert_tmap.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/navigation_graph.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/networkx_utils.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/scripts/__init__.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/scripts/localisation2.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/scripts/manual_topomapping.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/scripts/map_manager2.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/scripts/navigation2.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/tmap_utils.py (100%) rename {topological_navigation => src/topological_navigation}/topological_navigation/validate_map.py (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/CHANGELOG.rst (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/CMakeLists.txt (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/LICENSE (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/action/BuildTopPrediction.action (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/action/ExecutePolicyMode.action (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/action/GotoNode.action (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/AddEdgeReq.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/AddNodeReq.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/ClosestEdges.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/CurrentEdge.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/Edge.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/ExecutePolicyModeFeedback.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/ExecutePolicyModeGoal.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/GotoNodeFeedback.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/NavRoute.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/NavStatistics.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/SetInfluenceZoneReq.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/TopologicalMap.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/TopologicalNode.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/TopologicalOccupiedNode.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/TopologicalRoute.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/UpdateEdgeConfigReq.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/msg/Vertex.msg (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/package.xml (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/EvaluateEdge.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/EvaluateNode.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/GetRouteBetween.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/GetRouteTo.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/LoadTopoNavTestScenario.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/LocalisePose.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/ReconfAtEdges.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/RunTopoNavTestScenario.srv (100%) rename {topological_navigation_msgs => src/topological_navigation_msgs}/srv/WriteTopologicalMap.srv (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/launch/topological_map_visualiser.launch.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/package.xml (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/resource/topological_navigation_visual (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/setup.cfg (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/setup.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/test/__init__.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/topological_navigation_visual/__init__.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/topological_navigation_visual/policy_marker.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/topological_navigation_visual/scripts/__init__.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/topological_navigation_visual/scripts/topological_map_visualiser.py (100%) rename {topological_navigation_visual => src/topological_navigation_visual}/topological_navigation_visual/scripts/topological_visual.py (100%) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 74d19e93..23bfa9a4 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,26 +1,25 @@ -FROM ros:humble +ARG BASE_IMAGE=lcas.lincoln.ac.uk/ros:humble-staging +ARG USERNAME=ros +ARG ROS_DISTRO=humble + +FROM ${BASE_IMAGE} AS devcontainer + +COPY . /home/$USERNAME/workspace + +USER root RUN rm -rf /var/lib/apt/lists/* \ && apt-get update --fix-missing \ - && export DEBIAN_FRONTEND=noninteractive \ && apt-get -y install --no-install-recommends --fix-missing \ - ros-humble-desktop \ + ros-${ROS_DISTRO}-desktop \ bash-completion \ python3-colcon-common-extensions \ python3-pip \ python3-vcstool \ python3-rosdep \ - nano \ - git \ && rm -rf /var/lib/apt/lists/* -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 echo "source /opt/ros/humble/setup.bash" >> /home/lcas/.bashrc - -COPY *.sh /tmp/.devcontainer/ -RUN bash /tmp/.devcontainer/install.sh +# RUN rosdep update --rosdistro ${ROS_DISTRO} && apt-get update \ +# && rosdep install --from-paths /home/ros/workspace --ignore-src -r -y -RUN mkdir -p /home/lcas/ws/src && ln -s /workspaces /home/lcas/ws/src/workspaces -WORKDIR /home/lcas/ws +USER ${USERNAME} diff --git a/.devcontainer/compose.yaml b/.devcontainer/compose.yaml new file mode 100644 index 00000000..3a571e0a --- /dev/null +++ b/.devcontainer/compose.yaml @@ -0,0 +1,38 @@ +services: + vnc: + image: lcas.lincoln.ac.uk/vnc:staging + # renable if you want to run standalone + # ports: + # - "5801:5801" + 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 + volumes: + - x11:/tmp/.X11-unix + - ../:/home/ros/workspace: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: \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6ae27733..5a8a5e1d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,27 +1,16 @@ { "name": "topological_navigation", - "build": { - "dockerfile": "Dockerfile", - "context": "." - }, + "dockerComposeFile": "compose.yaml", + "service": "topo-nav", + "workspaceFolder": "/home/ros/workspace", - "features": { - "ghcr.io/devcontainers/features/desktop-lite:1": {} - }, + // "forwardPorts": ["vnc:5801"], + // "portsAttributes": { + // "vnc:5801": { "label": "novnc" } + // }, - "forwardPorts": [6080], - "portsAttributes": { - "6080": { "label": "novnc" } - }, - - "postCreateCommand": "bash .devcontainer/run.sh", - "containerUser": "lcas", - "runArgs": ["--security-opt", "seccomp=unconfined"], - - "containerEnv": { - "ROS_LOCALHOST_ONLY": "0", - "LIBGL_ALWAYS_SOFTWARE": "1" - }, + // "postCreateCommand": "bash .devcontainer/run.sh", + "containerUser": "ros", "customizations": { "vscode": { diff --git a/.devcontainer/oldDockerfile b/.devcontainer/oldDockerfile new file mode 100644 index 00000000..74d19e93 --- /dev/null +++ b/.devcontainer/oldDockerfile @@ -0,0 +1,26 @@ +FROM ros:humble + +RUN rm -rf /var/lib/apt/lists/* \ + && apt-get update --fix-missing \ + && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends --fix-missing \ + ros-humble-desktop \ + bash-completion \ + python3-colcon-common-extensions \ + python3-pip \ + python3-vcstool \ + python3-rosdep \ + nano \ + git \ + && rm -rf /var/lib/apt/lists/* + +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 echo "source /opt/ros/humble/setup.bash" >> /home/lcas/.bashrc + +COPY *.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 diff --git a/topological_nav_simulator/README.md b/src/topological_nav_simulator/README.md similarity index 100% rename from topological_nav_simulator/README.md rename to src/topological_nav_simulator/README.md diff --git a/topological_nav_simulator/config/fake_nav2.rviz b/src/topological_nav_simulator/config/fake_nav2.rviz similarity index 100% rename from topological_nav_simulator/config/fake_nav2.rviz rename to src/topological_nav_simulator/config/fake_nav2.rviz diff --git a/topological_nav_simulator/launch/fake_nav2.launch.py b/src/topological_nav_simulator/launch/fake_nav2.launch.py similarity index 100% rename from topological_nav_simulator/launch/fake_nav2.launch.py rename to src/topological_nav_simulator/launch/fake_nav2.launch.py diff --git a/topological_nav_simulator/package.xml b/src/topological_nav_simulator/package.xml similarity index 100% rename from topological_nav_simulator/package.xml rename to src/topological_nav_simulator/package.xml diff --git a/topological_nav_simulator/resource/topological_nav_simulator b/src/topological_nav_simulator/resource/topological_nav_simulator similarity index 100% rename from topological_nav_simulator/resource/topological_nav_simulator rename to src/topological_nav_simulator/resource/topological_nav_simulator diff --git a/topological_nav_simulator/setup.cfg b/src/topological_nav_simulator/setup.cfg similarity index 100% rename from topological_nav_simulator/setup.cfg rename to src/topological_nav_simulator/setup.cfg diff --git a/topological_nav_simulator/setup.py b/src/topological_nav_simulator/setup.py similarity index 100% rename from topological_nav_simulator/setup.py rename to src/topological_nav_simulator/setup.py diff --git a/topological_nav_simulator/test/test_virtual_robot.py b/src/topological_nav_simulator/test/test_virtual_robot.py similarity index 100% rename from topological_nav_simulator/test/test_virtual_robot.py rename to src/topological_nav_simulator/test/test_virtual_robot.py diff --git a/topological_nav_simulator/topological_nav_simulator/__init__.py b/src/topological_nav_simulator/topological_nav_simulator/__init__.py similarity index 100% rename from topological_nav_simulator/topological_nav_simulator/__init__.py rename to src/topological_nav_simulator/topological_nav_simulator/__init__.py diff --git a/topological_nav_simulator/topological_nav_simulator/fake_nav2_server.py b/src/topological_nav_simulator/topological_nav_simulator/fake_nav2_server.py similarity index 100% rename from topological_nav_simulator/topological_nav_simulator/fake_nav2_server.py rename to src/topological_nav_simulator/topological_nav_simulator/fake_nav2_server.py diff --git a/topological_nav_simulator/topological_nav_simulator/virtual_robot.py b/src/topological_nav_simulator/topological_nav_simulator/virtual_robot.py similarity index 100% rename from topological_nav_simulator/topological_nav_simulator/virtual_robot.py rename to src/topological_nav_simulator/topological_nav_simulator/virtual_robot.py diff --git a/topological_navigation/CHANGELOG.rst b/src/topological_navigation/CHANGELOG.rst similarity index 100% rename from topological_navigation/CHANGELOG.rst rename to src/topological_navigation/CHANGELOG.rst diff --git a/topological_navigation/CMakeLists.txt b/src/topological_navigation/CMakeLists.txt similarity index 100% rename from topological_navigation/CMakeLists.txt rename to src/topological_navigation/CMakeLists.txt diff --git a/topological_navigation/LICENSE b/src/topological_navigation/LICENSE similarity index 100% rename from topological_navigation/LICENSE rename to src/topological_navigation/LICENSE diff --git a/topological_navigation/README.md b/src/topological_navigation/README.md similarity index 100% rename from topological_navigation/README.md rename to src/topological_navigation/README.md diff --git a/topological_navigation/config/template_action.yaml b/src/topological_navigation/config/template_action.yaml similarity index 100% rename from topological_navigation/config/template_action.yaml rename to src/topological_navigation/config/template_action.yaml diff --git a/topological_navigation/config/template_edge.yaml b/src/topological_navigation/config/template_edge.yaml similarity index 100% rename from topological_navigation/config/template_edge.yaml rename to src/topological_navigation/config/template_edge.yaml diff --git a/topological_navigation/config/template_node.yaml b/src/topological_navigation/config/template_node.yaml similarity index 100% rename from topological_navigation/config/template_node.yaml rename to src/topological_navigation/config/template_node.yaml diff --git a/topological_navigation/config/test_complex_tmap2.yaml b/src/topological_navigation/config/test_complex_tmap2.yaml similarity index 100% rename from topological_navigation/config/test_complex_tmap2.yaml rename to src/topological_navigation/config/test_complex_tmap2.yaml diff --git a/topological_navigation/config/test_simple_tmap2.yaml b/src/topological_navigation/config/test_simple_tmap2.yaml similarity index 100% rename from topological_navigation/config/test_simple_tmap2.yaml rename to src/topological_navigation/config/test_simple_tmap2.yaml diff --git a/topological_navigation/config/tmap-schema.yaml b/src/topological_navigation/config/tmap-schema.yaml similarity index 100% rename from topological_navigation/config/tmap-schema.yaml rename to src/topological_navigation/config/tmap-schema.yaml diff --git a/topological_navigation/launch/topological_navigation.launch.py b/src/topological_navigation/launch/topological_navigation.launch.py similarity index 100% rename from topological_navigation/launch/topological_navigation.launch.py rename to src/topological_navigation/launch/topological_navigation.launch.py diff --git a/topological_navigation/package.xml b/src/topological_navigation/package.xml similarity index 100% rename from topological_navigation/package.xml rename to src/topological_navigation/package.xml diff --git a/topological_navigation/resource/topological_navigation b/src/topological_navigation/resource/topological_navigation similarity index 100% rename from topological_navigation/resource/topological_navigation rename to src/topological_navigation/resource/topological_navigation diff --git a/topological_navigation/rviz/topological_navigation.rviz b/src/topological_navigation/rviz/topological_navigation.rviz similarity index 100% rename from topological_navigation/rviz/topological_navigation.rviz rename to src/topological_navigation/rviz/topological_navigation.rviz diff --git a/topological_navigation/setup.cfg b/src/topological_navigation/setup.cfg similarity index 100% rename from topological_navigation/setup.cfg rename to src/topological_navigation/setup.cfg diff --git a/topological_navigation/setup.py b/src/topological_navigation/setup.py similarity index 100% rename from topological_navigation/setup.py rename to src/topological_navigation/setup.py diff --git a/topological_navigation/test/__init__.py b/src/topological_navigation/test/__init__.py similarity index 100% rename from topological_navigation/test/__init__.py rename to src/topological_navigation/test/__init__.py diff --git a/topological_navigation/test/conftest.py b/src/topological_navigation/test/conftest.py similarity index 100% rename from topological_navigation/test/conftest.py rename to src/topological_navigation/test/conftest.py diff --git a/topological_navigation/test/fixtures/README.md b/src/topological_navigation/test/fixtures/README.md similarity index 100% rename from topological_navigation/test/fixtures/README.md rename to src/topological_navigation/test/fixtures/README.md diff --git a/topological_navigation/test/fixtures/complex_map.yaml b/src/topological_navigation/test/fixtures/complex_map.yaml similarity index 100% rename from topological_navigation/test/fixtures/complex_map.yaml rename to src/topological_navigation/test/fixtures/complex_map.yaml diff --git a/topological_navigation/test/fixtures/mixed_actions_map.yaml b/src/topological_navigation/test/fixtures/mixed_actions_map.yaml similarity index 100% rename from topological_navigation/test/fixtures/mixed_actions_map.yaml rename to src/topological_navigation/test/fixtures/mixed_actions_map.yaml diff --git a/topological_navigation/test/fixtures/polygon_shapes_map.yaml b/src/topological_navigation/test/fixtures/polygon_shapes_map.yaml similarity index 100% rename from topological_navigation/test/fixtures/polygon_shapes_map.yaml rename to src/topological_navigation/test/fixtures/polygon_shapes_map.yaml diff --git a/topological_navigation/test/fixtures/simple_map.yaml b/src/topological_navigation/test/fixtures/simple_map.yaml similarity index 100% rename from topological_navigation/test/fixtures/simple_map.yaml rename to src/topological_navigation/test/fixtures/simple_map.yaml diff --git a/topological_navigation/test/static_transformer.py b/src/topological_navigation/test/static_transformer.py similarity index 100% rename from topological_navigation/test/static_transformer.py rename to src/topological_navigation/test/static_transformer.py diff --git a/topological_navigation/test/test_convert_tmap.py b/src/topological_navigation/test/test_convert_tmap.py similarity index 100% rename from topological_navigation/test/test_convert_tmap.py rename to src/topological_navigation/test/test_convert_tmap.py diff --git a/topological_navigation/test/test_localisation2.py b/src/topological_navigation/test/test_localisation2.py similarity index 100% rename from topological_navigation/test/test_localisation2.py rename to src/topological_navigation/test/test_localisation2.py diff --git a/topological_navigation/test/test_navigation_graph.py b/src/topological_navigation/test/test_navigation_graph.py similarity index 100% rename from topological_navigation/test/test_navigation_graph.py rename to src/topological_navigation/test/test_navigation_graph.py diff --git a/topological_navigation/test/test_navigationcore.py b/src/topological_navigation/test/test_navigationcore.py similarity index 100% rename from topological_navigation/test/test_navigationcore.py rename to src/topological_navigation/test/test_navigationcore.py diff --git a/topological_navigation/test/test_networkx_utils.py b/src/topological_navigation/test/test_networkx_utils.py similarity index 100% rename from topological_navigation/test/test_networkx_utils.py rename to src/topological_navigation/test/test_networkx_utils.py diff --git a/topological_navigation/test/test_tmap_utils.py b/src/topological_navigation/test/test_tmap_utils.py similarity index 100% rename from topological_navigation/test/test_tmap_utils.py rename to src/topological_navigation/test/test_tmap_utils.py diff --git a/topological_navigation/test/test_validate_map.py b/src/topological_navigation/test/test_validate_map.py similarity index 100% rename from topological_navigation/test/test_validate_map.py rename to src/topological_navigation/test/test_validate_map.py diff --git a/topological_navigation/topological_navigation/__init__.py b/src/topological_navigation/topological_navigation/__init__.py similarity index 100% rename from topological_navigation/topological_navigation/__init__.py rename to src/topological_navigation/topological_navigation/__init__.py diff --git a/topological_navigation/topological_navigation/convert_tmap.py b/src/topological_navigation/topological_navigation/convert_tmap.py similarity index 100% rename from topological_navigation/topological_navigation/convert_tmap.py rename to src/topological_navigation/topological_navigation/convert_tmap.py diff --git a/topological_navigation/topological_navigation/navigation_graph.py b/src/topological_navigation/topological_navigation/navigation_graph.py similarity index 100% rename from topological_navigation/topological_navigation/navigation_graph.py rename to src/topological_navigation/topological_navigation/navigation_graph.py diff --git a/topological_navigation/topological_navigation/networkx_utils.py b/src/topological_navigation/topological_navigation/networkx_utils.py similarity index 100% rename from topological_navigation/topological_navigation/networkx_utils.py rename to src/topological_navigation/topological_navigation/networkx_utils.py diff --git a/topological_navigation/topological_navigation/scripts/__init__.py b/src/topological_navigation/topological_navigation/scripts/__init__.py similarity index 100% rename from topological_navigation/topological_navigation/scripts/__init__.py rename to src/topological_navigation/topological_navigation/scripts/__init__.py diff --git a/topological_navigation/topological_navigation/scripts/localisation2.py b/src/topological_navigation/topological_navigation/scripts/localisation2.py similarity index 100% rename from topological_navigation/topological_navigation/scripts/localisation2.py rename to src/topological_navigation/topological_navigation/scripts/localisation2.py diff --git a/topological_navigation/topological_navigation/scripts/manual_topomapping.py b/src/topological_navigation/topological_navigation/scripts/manual_topomapping.py similarity index 100% rename from topological_navigation/topological_navigation/scripts/manual_topomapping.py rename to src/topological_navigation/topological_navigation/scripts/manual_topomapping.py diff --git a/topological_navigation/topological_navigation/scripts/map_manager2.py b/src/topological_navigation/topological_navigation/scripts/map_manager2.py similarity index 100% rename from topological_navigation/topological_navigation/scripts/map_manager2.py rename to src/topological_navigation/topological_navigation/scripts/map_manager2.py diff --git a/topological_navigation/topological_navigation/scripts/navigation2.py b/src/topological_navigation/topological_navigation/scripts/navigation2.py similarity index 100% rename from topological_navigation/topological_navigation/scripts/navigation2.py rename to src/topological_navigation/topological_navigation/scripts/navigation2.py diff --git a/topological_navigation/topological_navigation/tmap_utils.py b/src/topological_navigation/topological_navigation/tmap_utils.py similarity index 100% rename from topological_navigation/topological_navigation/tmap_utils.py rename to src/topological_navigation/topological_navigation/tmap_utils.py diff --git a/topological_navigation/topological_navigation/validate_map.py b/src/topological_navigation/topological_navigation/validate_map.py similarity index 100% rename from topological_navigation/topological_navigation/validate_map.py rename to src/topological_navigation/topological_navigation/validate_map.py diff --git a/topological_navigation_msgs/CHANGELOG.rst b/src/topological_navigation_msgs/CHANGELOG.rst similarity index 100% rename from topological_navigation_msgs/CHANGELOG.rst rename to src/topological_navigation_msgs/CHANGELOG.rst diff --git a/topological_navigation_msgs/CMakeLists.txt b/src/topological_navigation_msgs/CMakeLists.txt similarity index 100% rename from topological_navigation_msgs/CMakeLists.txt rename to src/topological_navigation_msgs/CMakeLists.txt diff --git a/topological_navigation_msgs/LICENSE b/src/topological_navigation_msgs/LICENSE similarity index 100% rename from topological_navigation_msgs/LICENSE rename to src/topological_navigation_msgs/LICENSE diff --git a/topological_navigation_msgs/action/BuildTopPrediction.action b/src/topological_navigation_msgs/action/BuildTopPrediction.action similarity index 100% rename from topological_navigation_msgs/action/BuildTopPrediction.action rename to src/topological_navigation_msgs/action/BuildTopPrediction.action diff --git a/topological_navigation_msgs/action/ExecutePolicyMode.action b/src/topological_navigation_msgs/action/ExecutePolicyMode.action similarity index 100% rename from topological_navigation_msgs/action/ExecutePolicyMode.action rename to src/topological_navigation_msgs/action/ExecutePolicyMode.action diff --git a/topological_navigation_msgs/action/GotoNode.action b/src/topological_navigation_msgs/action/GotoNode.action similarity index 100% rename from topological_navigation_msgs/action/GotoNode.action rename to src/topological_navigation_msgs/action/GotoNode.action diff --git a/topological_navigation_msgs/msg/AddEdgeReq.msg b/src/topological_navigation_msgs/msg/AddEdgeReq.msg similarity index 100% rename from topological_navigation_msgs/msg/AddEdgeReq.msg rename to src/topological_navigation_msgs/msg/AddEdgeReq.msg diff --git a/topological_navigation_msgs/msg/AddNodeReq.msg b/src/topological_navigation_msgs/msg/AddNodeReq.msg similarity index 100% rename from topological_navigation_msgs/msg/AddNodeReq.msg rename to src/topological_navigation_msgs/msg/AddNodeReq.msg diff --git a/topological_navigation_msgs/msg/ClosestEdges.msg b/src/topological_navigation_msgs/msg/ClosestEdges.msg similarity index 100% rename from topological_navigation_msgs/msg/ClosestEdges.msg rename to src/topological_navigation_msgs/msg/ClosestEdges.msg diff --git a/topological_navigation_msgs/msg/CurrentEdge.msg b/src/topological_navigation_msgs/msg/CurrentEdge.msg similarity index 100% rename from topological_navigation_msgs/msg/CurrentEdge.msg rename to src/topological_navigation_msgs/msg/CurrentEdge.msg diff --git a/topological_navigation_msgs/msg/Edge.msg b/src/topological_navigation_msgs/msg/Edge.msg similarity index 100% rename from topological_navigation_msgs/msg/Edge.msg rename to src/topological_navigation_msgs/msg/Edge.msg diff --git a/topological_navigation_msgs/msg/ExecutePolicyModeFeedback.msg b/src/topological_navigation_msgs/msg/ExecutePolicyModeFeedback.msg similarity index 100% rename from topological_navigation_msgs/msg/ExecutePolicyModeFeedback.msg rename to src/topological_navigation_msgs/msg/ExecutePolicyModeFeedback.msg diff --git a/topological_navigation_msgs/msg/ExecutePolicyModeGoal.msg b/src/topological_navigation_msgs/msg/ExecutePolicyModeGoal.msg similarity index 100% rename from topological_navigation_msgs/msg/ExecutePolicyModeGoal.msg rename to src/topological_navigation_msgs/msg/ExecutePolicyModeGoal.msg diff --git a/topological_navigation_msgs/msg/GotoNodeFeedback.msg b/src/topological_navigation_msgs/msg/GotoNodeFeedback.msg similarity index 100% rename from topological_navigation_msgs/msg/GotoNodeFeedback.msg rename to src/topological_navigation_msgs/msg/GotoNodeFeedback.msg diff --git a/topological_navigation_msgs/msg/NavRoute.msg b/src/topological_navigation_msgs/msg/NavRoute.msg similarity index 100% rename from topological_navigation_msgs/msg/NavRoute.msg rename to src/topological_navigation_msgs/msg/NavRoute.msg diff --git a/topological_navigation_msgs/msg/NavStatistics.msg b/src/topological_navigation_msgs/msg/NavStatistics.msg similarity index 100% rename from topological_navigation_msgs/msg/NavStatistics.msg rename to src/topological_navigation_msgs/msg/NavStatistics.msg diff --git a/topological_navigation_msgs/msg/SetInfluenceZoneReq.msg b/src/topological_navigation_msgs/msg/SetInfluenceZoneReq.msg similarity index 100% rename from topological_navigation_msgs/msg/SetInfluenceZoneReq.msg rename to src/topological_navigation_msgs/msg/SetInfluenceZoneReq.msg diff --git a/topological_navigation_msgs/msg/TopologicalMap.msg b/src/topological_navigation_msgs/msg/TopologicalMap.msg similarity index 100% rename from topological_navigation_msgs/msg/TopologicalMap.msg rename to src/topological_navigation_msgs/msg/TopologicalMap.msg diff --git a/topological_navigation_msgs/msg/TopologicalNode.msg b/src/topological_navigation_msgs/msg/TopologicalNode.msg similarity index 100% rename from topological_navigation_msgs/msg/TopologicalNode.msg rename to src/topological_navigation_msgs/msg/TopologicalNode.msg diff --git a/topological_navigation_msgs/msg/TopologicalOccupiedNode.msg b/src/topological_navigation_msgs/msg/TopologicalOccupiedNode.msg similarity index 100% rename from topological_navigation_msgs/msg/TopologicalOccupiedNode.msg rename to src/topological_navigation_msgs/msg/TopologicalOccupiedNode.msg diff --git a/topological_navigation_msgs/msg/TopologicalRoute.msg b/src/topological_navigation_msgs/msg/TopologicalRoute.msg similarity index 100% rename from topological_navigation_msgs/msg/TopologicalRoute.msg rename to src/topological_navigation_msgs/msg/TopologicalRoute.msg diff --git a/topological_navigation_msgs/msg/UpdateEdgeConfigReq.msg b/src/topological_navigation_msgs/msg/UpdateEdgeConfigReq.msg similarity index 100% rename from topological_navigation_msgs/msg/UpdateEdgeConfigReq.msg rename to src/topological_navigation_msgs/msg/UpdateEdgeConfigReq.msg diff --git a/topological_navigation_msgs/msg/Vertex.msg b/src/topological_navigation_msgs/msg/Vertex.msg similarity index 100% rename from topological_navigation_msgs/msg/Vertex.msg rename to src/topological_navigation_msgs/msg/Vertex.msg diff --git a/topological_navigation_msgs/package.xml b/src/topological_navigation_msgs/package.xml similarity index 100% rename from topological_navigation_msgs/package.xml rename to src/topological_navigation_msgs/package.xml diff --git a/topological_navigation_msgs/srv/EvaluateEdge.srv b/src/topological_navigation_msgs/srv/EvaluateEdge.srv similarity index 100% rename from topological_navigation_msgs/srv/EvaluateEdge.srv rename to src/topological_navigation_msgs/srv/EvaluateEdge.srv diff --git a/topological_navigation_msgs/srv/EvaluateNode.srv b/src/topological_navigation_msgs/srv/EvaluateNode.srv similarity index 100% rename from topological_navigation_msgs/srv/EvaluateNode.srv rename to src/topological_navigation_msgs/srv/EvaluateNode.srv diff --git a/topological_navigation_msgs/srv/GetRouteBetween.srv b/src/topological_navigation_msgs/srv/GetRouteBetween.srv similarity index 100% rename from topological_navigation_msgs/srv/GetRouteBetween.srv rename to src/topological_navigation_msgs/srv/GetRouteBetween.srv diff --git a/topological_navigation_msgs/srv/GetRouteTo.srv b/src/topological_navigation_msgs/srv/GetRouteTo.srv similarity index 100% rename from topological_navigation_msgs/srv/GetRouteTo.srv rename to src/topological_navigation_msgs/srv/GetRouteTo.srv diff --git a/topological_navigation_msgs/srv/LoadTopoNavTestScenario.srv b/src/topological_navigation_msgs/srv/LoadTopoNavTestScenario.srv similarity index 100% rename from topological_navigation_msgs/srv/LoadTopoNavTestScenario.srv rename to src/topological_navigation_msgs/srv/LoadTopoNavTestScenario.srv diff --git a/topological_navigation_msgs/srv/LocalisePose.srv b/src/topological_navigation_msgs/srv/LocalisePose.srv similarity index 100% rename from topological_navigation_msgs/srv/LocalisePose.srv rename to src/topological_navigation_msgs/srv/LocalisePose.srv diff --git a/topological_navigation_msgs/srv/ReconfAtEdges.srv b/src/topological_navigation_msgs/srv/ReconfAtEdges.srv similarity index 100% rename from topological_navigation_msgs/srv/ReconfAtEdges.srv rename to src/topological_navigation_msgs/srv/ReconfAtEdges.srv diff --git a/topological_navigation_msgs/srv/RunTopoNavTestScenario.srv b/src/topological_navigation_msgs/srv/RunTopoNavTestScenario.srv similarity index 100% rename from topological_navigation_msgs/srv/RunTopoNavTestScenario.srv rename to src/topological_navigation_msgs/srv/RunTopoNavTestScenario.srv diff --git a/topological_navigation_msgs/srv/WriteTopologicalMap.srv b/src/topological_navigation_msgs/srv/WriteTopologicalMap.srv similarity index 100% rename from topological_navigation_msgs/srv/WriteTopologicalMap.srv rename to src/topological_navigation_msgs/srv/WriteTopologicalMap.srv diff --git a/topological_navigation_visual/launch/topological_map_visualiser.launch.py b/src/topological_navigation_visual/launch/topological_map_visualiser.launch.py similarity index 100% rename from topological_navigation_visual/launch/topological_map_visualiser.launch.py rename to src/topological_navigation_visual/launch/topological_map_visualiser.launch.py diff --git a/topological_navigation_visual/package.xml b/src/topological_navigation_visual/package.xml similarity index 100% rename from topological_navigation_visual/package.xml rename to src/topological_navigation_visual/package.xml diff --git a/topological_navigation_visual/resource/topological_navigation_visual b/src/topological_navigation_visual/resource/topological_navigation_visual similarity index 100% rename from topological_navigation_visual/resource/topological_navigation_visual rename to src/topological_navigation_visual/resource/topological_navigation_visual diff --git a/topological_navigation_visual/setup.cfg b/src/topological_navigation_visual/setup.cfg similarity index 100% rename from topological_navigation_visual/setup.cfg rename to src/topological_navigation_visual/setup.cfg diff --git a/topological_navigation_visual/setup.py b/src/topological_navigation_visual/setup.py similarity index 100% rename from topological_navigation_visual/setup.py rename to src/topological_navigation_visual/setup.py diff --git a/topological_navigation_visual/test/__init__.py b/src/topological_navigation_visual/test/__init__.py similarity index 100% rename from topological_navigation_visual/test/__init__.py rename to src/topological_navigation_visual/test/__init__.py diff --git a/topological_navigation_visual/topological_navigation_visual/__init__.py b/src/topological_navigation_visual/topological_navigation_visual/__init__.py similarity index 100% rename from topological_navigation_visual/topological_navigation_visual/__init__.py rename to src/topological_navigation_visual/topological_navigation_visual/__init__.py diff --git a/topological_navigation_visual/topological_navigation_visual/policy_marker.py b/src/topological_navigation_visual/topological_navigation_visual/policy_marker.py similarity index 100% rename from topological_navigation_visual/topological_navigation_visual/policy_marker.py rename to src/topological_navigation_visual/topological_navigation_visual/policy_marker.py diff --git a/topological_navigation_visual/topological_navigation_visual/scripts/__init__.py b/src/topological_navigation_visual/topological_navigation_visual/scripts/__init__.py similarity index 100% rename from topological_navigation_visual/topological_navigation_visual/scripts/__init__.py rename to src/topological_navigation_visual/topological_navigation_visual/scripts/__init__.py diff --git a/topological_navigation_visual/topological_navigation_visual/scripts/topological_map_visualiser.py b/src/topological_navigation_visual/topological_navigation_visual/scripts/topological_map_visualiser.py similarity index 100% rename from topological_navigation_visual/topological_navigation_visual/scripts/topological_map_visualiser.py rename to src/topological_navigation_visual/topological_navigation_visual/scripts/topological_map_visualiser.py diff --git a/topological_navigation_visual/topological_navigation_visual/scripts/topological_visual.py b/src/topological_navigation_visual/topological_navigation_visual/scripts/topological_visual.py similarity index 100% rename from topological_navigation_visual/topological_navigation_visual/scripts/topological_visual.py rename to src/topological_navigation_visual/topological_navigation_visual/scripts/topological_visual.py From 45105154d09b3d0d99e04ea8698cd4a55f3a9f0a Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Fri, 13 Mar 2026 18:40:55 +0000 Subject: [PATCH 02/11] wip: cleanup devcontainer config --- .devcontainer/Dockerfile | 12 ++++++++---- .devcontainer/compose.yaml | 2 +- .devcontainer/devcontainer.json | 14 +++++++------- .devcontainer/install.sh | 11 ----------- .devcontainer/oldDockerfile | 26 -------------------------- .devcontainer/run.sh | 23 ----------------------- 6 files changed, 16 insertions(+), 72 deletions(-) delete mode 100644 .devcontainer/install.sh delete mode 100644 .devcontainer/oldDockerfile delete mode 100644 .devcontainer/run.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 23bfa9a4..fd12dadb 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -18,8 +18,12 @@ RUN rm -rf /var/lib/apt/lists/* \ python3-vcstool \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* - -# RUN rosdep update --rosdistro ${ROS_DISTRO} && apt-get update \ -# && rosdep install --from-paths /home/ros/workspace --ignore-src -r -y - + USER ${USERNAME} + +RUN rosdep update --rosdistro ${ROS_DISTRO} &&\ + sudo apt-get update && \ + rosdep install --from-paths /home/ros/workspace/src --ignore-src -r -y + +WORKDIR /home/ros/workspace +RUN colcon build --symlink-install diff --git a/.devcontainer/compose.yaml b/.devcontainer/compose.yaml index 3a571e0a..95dbb2c8 100644 --- a/.devcontainer/compose.yaml +++ b/.devcontainer/compose.yaml @@ -20,7 +20,7 @@ services: dockerfile: .devcontainer/Dockerfile volumes: - x11:/tmp/.X11-unix - - ../:/home/ros/workspace:cached + - ../:/home/ros/workspace stdin_open: true tty: true networks: diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 5a8a5e1d..56da8ac8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,14 +3,14 @@ "dockerComposeFile": "compose.yaml", "service": "topo-nav", "workspaceFolder": "/home/ros/workspace", - - // "forwardPorts": ["vnc:5801"], - // "portsAttributes": { - // "vnc:5801": { "label": "novnc" } - // }, - - // "postCreateCommand": "bash .devcontainer/run.sh", "containerUser": "ros", + "remoteUser": "ros", + "updateRemoteUserUID": true, + + "forwardPorts": ["vnc:5801"], + "portsAttributes": { + "vnc:5801": { "label": "novnc" } + }, "customizations": { "vscode": { diff --git a/.devcontainer/install.sh b/.devcontainer/install.sh deleted file mode 100644 index 4177d81e..00000000 --- a/.devcontainer/install.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source /opt/ros/humble/setup.bash -apt-get update -rosdep init || true -rosdep --rosdistro=humble update - -rm -rf /var/lib/apt/lists/* - diff --git a/.devcontainer/oldDockerfile b/.devcontainer/oldDockerfile deleted file mode 100644 index 74d19e93..00000000 --- a/.devcontainer/oldDockerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM ros:humble - -RUN rm -rf /var/lib/apt/lists/* \ - && apt-get update --fix-missing \ - && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends --fix-missing \ - ros-humble-desktop \ - bash-completion \ - python3-colcon-common-extensions \ - python3-pip \ - python3-vcstool \ - python3-rosdep \ - nano \ - git \ - && rm -rf /var/lib/apt/lists/* - -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 echo "source /opt/ros/humble/setup.bash" >> /home/lcas/.bashrc - -COPY *.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 diff --git a/.devcontainer/run.sh b/.devcontainer/run.sh deleted file mode 100644 index 94104a10..00000000 --- a/.devcontainer/run.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -e - -source /opt/ros/humble/setup.bash - -# Only run apt/rosdep update if not done before (avoid hanging on rebuild) -MARKER="/home/lcas/.postCreateDone" -if [ ! -f "$MARKER" ]; then - sudo apt-get update -qq || true - rosdep --rosdistro=humble update --include-eol-distros || true - cd /home/lcas/ws - rosdep install --from-paths ./src -i -y --rosdistro=humble || true - touch "$MARKER" -fi - -cd /home/lcas/ws -colcon build --symlink-install - -# Add workspace sourcing to bashrc (idempotent) -grep -q "install/setup.bash" ~/.bashrc 2>/dev/null || \ - echo "source /home/lcas/ws/install/setup.bash" >> ~/.bashrc - From 53a0549e57dcfea29cb7131959504ac71dd7691a Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Fri, 13 Mar 2026 19:07:21 +0000 Subject: [PATCH 03/11] wip: cleanup --- .devcontainer/Dockerfile | 38 ++++++++++++++++++++------------------ .devcontainer/compose.yaml | 2 +- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index fd12dadb..3a26fba1 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,29 +1,31 @@ ARG BASE_IMAGE=lcas.lincoln.ac.uk/ros:humble-staging -ARG USERNAME=ros ARG ROS_DISTRO=humble FROM ${BASE_IMAGE} AS devcontainer -COPY . /home/$USERNAME/workspace - USER root RUN rm -rf /var/lib/apt/lists/* \ - && apt-get update --fix-missing \ - && apt-get -y install --no-install-recommends --fix-missing \ - ros-${ROS_DISTRO}-desktop \ - bash-completion \ - python3-colcon-common-extensions \ - python3-pip \ - python3-vcstool \ - python3-rosdep \ - && rm -rf /var/lib/apt/lists/* - -USER ${USERNAME} - +&& apt-get update --fix-missing \ +&& apt-get -y install --no-install-recommends --fix-missing \ +ros-${ROS_DISTRO}-desktop \ +bash-completion \ +python3-colcon-common-extensions \ +python3-pip \ +python3-vcstool \ +python3-rosdep \ +&& rm -rf /var/lib/apt/lists/* + +USER ros + +COPY ./ /home/ros/workspace/ + +WORKDIR /home/ros/workspace +RUN sudo rm -rf log/ build/ install/ +# && \ mkdir log build install + RUN rosdep update --rosdistro ${ROS_DISTRO} &&\ sudo apt-get update && \ - rosdep install --from-paths /home/ros/workspace/src --ignore-src -r -y + rosdep install --from-paths ./src --ignore-src -r -y -WORKDIR /home/ros/workspace -RUN colcon build --symlink-install +# RUN colcon build --symlink-install diff --git a/.devcontainer/compose.yaml b/.devcontainer/compose.yaml index 95dbb2c8..665d64ef 100644 --- a/.devcontainer/compose.yaml +++ b/.devcontainer/compose.yaml @@ -20,7 +20,7 @@ services: dockerfile: .devcontainer/Dockerfile volumes: - x11:/tmp/.X11-unix - - ../:/home/ros/workspace + # - ../:/home/ros/workspace stdin_open: true tty: true networks: From 58d1c2e22b74437829d40f9d8aebc35f7547053a Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Thu, 19 Mar 2026 10:43:49 +0000 Subject: [PATCH 04/11] wip --- .devcontainer/Dockerfile | 32 +++++++++++++++++--------------- .devcontainer/compose.yaml | 2 +- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index fd12dadb..68e2a7f2 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,29 +1,31 @@ ARG BASE_IMAGE=lcas.lincoln.ac.uk/ros:humble-staging -ARG USERNAME=ros ARG ROS_DISTRO=humble FROM ${BASE_IMAGE} AS devcontainer -COPY . /home/$USERNAME/workspace - USER root RUN rm -rf /var/lib/apt/lists/* \ && apt-get update --fix-missing \ && apt-get -y install --no-install-recommends --fix-missing \ - ros-${ROS_DISTRO}-desktop \ - bash-completion \ - python3-colcon-common-extensions \ - python3-pip \ - python3-vcstool \ - python3-rosdep \ + ros-${ROS_DISTRO}-desktop \ + bash-completion \ + python3-colcon-common-extensions \ + python3-pip \ + python3-vcstool \ + python3-rosdep \ && rm -rf /var/lib/apt/lists/* - -USER ${USERNAME} - + +USER ros + +COPY ./ /home/ros/workspace/ + +WORKDIR /home/ros/workspace +RUN sudo rm -rf log/ build/ install/ +# && \ mkdir log build install + RUN rosdep update --rosdistro ${ROS_DISTRO} &&\ sudo apt-get update && \ - rosdep install --from-paths /home/ros/workspace/src --ignore-src -r -y + rosdep install --from-paths ./src --ignore-src -r -y -WORKDIR /home/ros/workspace -RUN colcon build --symlink-install +# RUN colcon build --symlink-install diff --git a/.devcontainer/compose.yaml b/.devcontainer/compose.yaml index 95dbb2c8..665d64ef 100644 --- a/.devcontainer/compose.yaml +++ b/.devcontainer/compose.yaml @@ -20,7 +20,7 @@ services: dockerfile: .devcontainer/Dockerfile volumes: - x11:/tmp/.X11-unix - - ../:/home/ros/workspace + # - ../:/home/ros/workspace stdin_open: true tty: true networks: From edbd883a2ebadf2af62ee8d26749d42a87349056 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Thu, 19 Mar 2026 12:04:08 +0000 Subject: [PATCH 05/11] feat: create demo target --- .devcontainer/Dockerfile | 16 +++++++++++++--- .devcontainer/compose.yaml | 9 ++++++++- demo.compose.yaml | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 demo.compose.yaml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 68e2a7f2..557de20b 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -21,11 +21,21 @@ USER ros COPY ./ /home/ros/workspace/ WORKDIR /home/ros/workspace -RUN sudo rm -rf log/ build/ install/ -# && \ mkdir log build install +RUN sudo rm -rf log/ build/ install/ && \ + sudo chown -R ros:ros /home/ros/workspace + +ENV ROS2_WS=/home/ros/workspace RUN rosdep update --rosdistro ${ROS_DISTRO} &&\ sudo apt-get update && \ rosdep install --from-paths ./src --ignore-src -r -y -# RUN colcon build --symlink-install +RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && source /home/ros/.bashrc && colcon build --continue-on-error" + + +# ---------------------------------------------------------------------------------------------------- +FROM devcontainer AS demo + +RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && source /home/ros/.bashrc && colcon build" + +CMD ["/bin/bash", "-lc", "source /home/ros/workspace/install/setup.bash && exec ros2 launch topological_navigation topological_navigation.launch.py"] \ No newline at end of file diff --git a/.devcontainer/compose.yaml b/.devcontainer/compose.yaml index 665d64ef..8431d0ff 100644 --- a/.devcontainer/compose.yaml +++ b/.devcontainer/compose.yaml @@ -18,9 +18,13 @@ services: build: context: ../ dockerfile: .devcontainer/Dockerfile + target: devcontainer volumes: - x11:/tmp/.X11-unix - # - ../:/home/ros/workspace + - ../:/home/ros/workspace + - colcon_build:/home/ros/workspace/build + - colcon_install:/home/ros/workspace/install + - colcon_log:/home/ros/workspace/log stdin_open: true tty: true networks: @@ -33,6 +37,9 @@ services: volumes: x11: + colcon_build: + colcon_install: + colcon_log: networks: ros_net: \ No newline at end of file diff --git a/demo.compose.yaml b/demo.compose.yaml new file mode 100644 index 00000000..18c6d742 --- /dev/null +++ b/demo.compose.yaml @@ -0,0 +1,37 @@ +services: + vnc: + image: lcas.lincoln.ac.uk/vnc:staging + ports: + - "5801:5801" + 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: demo + volumes: + - x11:/tmp/.X11-unix + stdin_open: true + tty: true + networks: + - ros_net + depends_on: + - vnc + environment: + - DISPLAY=:1.0 + - ROS_DOMAIN_ID=10 + +volumes: + x11: + +networks: + ros_net: \ No newline at end of file From f7409da585ae380a30a8556c6e4fa5c84d412736 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Thu, 19 Mar 2026 12:16:39 +0000 Subject: [PATCH 06/11] chore: mv nav2 docs into correct src folder --- .../topological_navigation}/doc/NAVIGATION2.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {topological_navigation => src/topological_navigation}/doc/NAVIGATION2.md (100%) diff --git a/topological_navigation/doc/NAVIGATION2.md b/src/topological_navigation/doc/NAVIGATION2.md similarity index 100% rename from topological_navigation/doc/NAVIGATION2.md rename to src/topological_navigation/doc/NAVIGATION2.md From 9de3988ee0b9e4908801d672f3fded0a6607f1b5 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Fri, 20 Mar 2026 13:58:36 +0000 Subject: [PATCH 07/11] feat: specify the map file and fake robot disable via env --- .devcontainer/Dockerfile | 9 +- demo.compose.yaml | 4 +- .../launch/topological_navigation.launch.py | 267 ++++++++++-------- 3 files changed, 150 insertions(+), 130 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 557de20b..717e3d61 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -8,11 +8,10 @@ USER root RUN rm -rf /var/lib/apt/lists/* \ && apt-get update --fix-missing \ && apt-get -y install --no-install-recommends --fix-missing \ - ros-${ROS_DISTRO}-desktop \ + ros-${ROS_DISTRO}-rviz2 \ bash-completion \ python3-colcon-common-extensions \ python3-pip \ - python3-vcstool \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* @@ -30,12 +29,14 @@ RUN rosdep update --rosdistro ${ROS_DISTRO} &&\ sudo apt-get update && \ rosdep install --from-paths ./src --ignore-src -r -y +# Do an initial build to speed up development RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && source /home/ros/.bashrc && colcon build --continue-on-error" # ---------------------------------------------------------------------------------------------------- -FROM devcontainer AS demo +FROM devcontainer AS final RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && source /home/ros/.bashrc && colcon build" -CMD ["/bin/bash", "-lc", "source /home/ros/workspace/install/setup.bash && exec ros2 launch topological_navigation topological_navigation.launch.py"] \ No newline at end of file +ENV MAP_FILE=/home/ros/workspace/src/topological_navigation/config/test_simple_tmap2.yaml +CMD ["/bin/bash", "-lc", "source /home/ros/workspace/install/setup.bash && exec ros2 launch topological_navigation topological_navigation.launch.py map_path:=$MAP_FILE"] \ No newline at end of file diff --git a/demo.compose.yaml b/demo.compose.yaml index 18c6d742..7cc2b65d 100644 --- a/demo.compose.yaml +++ b/demo.compose.yaml @@ -17,7 +17,7 @@ services: build: context: . dockerfile: .devcontainer/Dockerfile - target: demo + target: final volumes: - x11:/tmp/.X11-unix stdin_open: true @@ -29,6 +29,8 @@ services: environment: - DISPLAY=:1.0 - ROS_DOMAIN_ID=10 + - MAP_FILE=/home/ros/workspace/src/topological_navigation/config/test_complex_tmap2.yaml + - FAKE_ROBOT=true volumes: x11: diff --git a/src/topological_navigation/launch/topological_navigation.launch.py b/src/topological_navigation/launch/topological_navigation.launch.py index 7a147cbb..53ef8774 100644 --- a/src/topological_navigation/launch/topological_navigation.launch.py +++ b/src/topological_navigation/launch/topological_navigation.launch.py @@ -27,140 +27,157 @@ from ament_index_python.packages import get_package_share_directory from launch import LaunchDescription from launch.actions import DeclareLaunchArgument, TimerAction +from launch.conditions import IfCondition from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node def generate_launch_description(): - topo_nav_share = get_package_share_directory('topological_navigation') + topo_nav_share = get_package_share_directory("topological_navigation") # --- Default paths --- default_map = os.path.join( - topo_nav_share, 'config', 'mixed_actions_map.yaml', + topo_nav_share, + "config", + "mixed_actions_map.yaml", ) default_rviz = os.path.join( - topo_nav_share, 'rviz', 'topological_navigation.rviz', + topo_nav_share, + "rviz", + "topological_navigation.rviz", ) - return LaunchDescription([ - # ============================================================= - # Launch arguments - # ============================================================= - DeclareLaunchArgument( - 'map_path', default_value=default_map, - description='Absolute path to a .tmap2.yaml topological map', - ), - DeclareLaunchArgument( - 'rviz_config', default_value=default_rviz, - description='Path to the RViz config file', - ), - DeclareLaunchArgument( - 'initial_x', default_value='0.0', - description='Initial robot X position', - ), - DeclareLaunchArgument( - 'initial_y', default_value='0.0', - description='Initial robot Y position', - ), - DeclareLaunchArgument( - 'initial_yaw', default_value='0.0', - description='Initial robot yaw (radians)', - ), - - # ============================================================= - # 1. Map Manager - # ============================================================= - Node( - package='topological_navigation', - executable='map_manager2.py', - name='topological_map_manager_2', - output='screen', - arguments=[LaunchConfiguration('map_path')], - ), - - # ============================================================= - # 2. Localisation (delayed 2 s so map is published first) - # ============================================================= - TimerAction( - period=2.0, - actions=[ - Node( - package='topological_navigation', - executable='localisation2.py', - name='topological_localisation', - output='screen', - ), - ], - ), - - # ============================================================= - # 3. Fake Nav2 simulator (delayed 2 s) - # ============================================================= - TimerAction( - period=2.0, - actions=[ - Node( - package='topological_nav_simulator', - executable='fake_nav2_server', - name='fake_nav2_server', - output='screen', - parameters=[{ - 'initial_x': LaunchConfiguration('initial_x'), - 'initial_y': LaunchConfiguration('initial_y'), - 'initial_yaw': LaunchConfiguration('initial_yaw'), - }], - ), - ], - ), - - # ============================================================= - # 4. Topological navigation server (delayed 3 s) - # ============================================================= - TimerAction( - period=3.0, - actions=[ - Node( - package='topological_navigation', - executable='navigation2.py', - name='topological_navigation', - output='screen', - ), - ], - ), - - # ============================================================= - # 5. Topological map visualiser (delayed 4 s) - # ============================================================= - TimerAction( - period=4.0, - actions=[ - Node( - package='topological_navigation_visual', - executable='topological_map_visualiser.py', - name='topological_map_visualiser', - output='screen', - parameters=[{ - 'edit_mode': True, - }], - ), - ], - ), - - # ============================================================= - # 6. RViz (delayed 5 s) - # ============================================================= - TimerAction( - period=5.0, - actions=[ - Node( - package='rviz2', - executable='rviz2', - name='rviz2', - output='screen', - arguments=[ - '-d', LaunchConfiguration('rviz_config'), - ], - ), - ], - ), - ]) + return LaunchDescription( + [ + # ============================================================= + # Launch arguments + # ============================================================= + DeclareLaunchArgument( + "map_path", + default_value=default_map, + description="Absolute path to a .tmap2.yaml topological map", + ), + DeclareLaunchArgument( + "rviz_config", + default_value=default_rviz, + description="Path to the RViz config file", + ), + DeclareLaunchArgument( + "initial_x", + default_value="0.0", + description="Initial robot X position", + ), + DeclareLaunchArgument( + "initial_y", + default_value="0.0", + description="Initial robot Y position", + ), + DeclareLaunchArgument( + "initial_yaw", + default_value="0.0", + description="Initial robot yaw (radians)", + ), + DeclareLaunchArgument( + "fake_robot", + default_value="true", + description="Use the fake Nav2 simulator", + ), + # ============================================================= + # 1. Map Manager + # ============================================================= + Node( + package="topological_navigation", + executable="map_manager2.py", + name="topological_map_manager_2", + output="screen", + arguments=[LaunchConfiguration("map_path")], + ), + # ============================================================= + # 2. Localisation (delayed 2 s so map is published first) + # ============================================================= + TimerAction( + period=2.0, + actions=[ + Node( + package="topological_navigation", + executable="localisation2.py", + name="topological_localisation", + output="screen", + ), + ], + ), + # ============================================================= + # 3. Fake Nav2 simulator (delayed 2 s, conditional) + # ============================================================= + TimerAction( + period=2.0, + condition=IfCondition(LaunchConfiguration("fake_robot")), + actions=[ + Node( + package="topological_nav_simulator", + executable="fake_nav2_server", + name="fake_nav2_server", + output="screen", + parameters=[ + { + "initial_x": LaunchConfiguration("initial_x"), + "initial_y": LaunchConfiguration("initial_y"), + "initial_yaw": LaunchConfiguration("initial_yaw"), + } + ], + ), + ], + ), + # ============================================================= + # 4. Topological navigation server (delayed 3 s) + # ============================================================= + TimerAction( + period=3.0, + actions=[ + Node( + package="topological_navigation", + executable="navigation2.py", + name="topological_navigation", + output="screen", + ), + ], + ), + # ============================================================= + # 5. Topological map visualiser (delayed 4 s) + # ============================================================= + TimerAction( + period=4.0, + actions=[ + Node( + package="topological_navigation_visual", + executable="topological_map_visualiser.py", + name="topological_map_visualiser", + output="screen", + parameters=[ + { + "edit_mode": True, + } + ], + ), + ], + ), + # ============================================================= + # 6. RViz (delayed 5 s) + # ============================================================= + TimerAction( + period=5.0, + actions=[ + Node( + package="rviz2", + executable="rviz2", + name="rviz2", + output="screen", + arguments=[ + "-d", + LaunchConfiguration("rviz_config"), + ], + ), + ], + ), + ] + ) From 53d44030353425f6b13ea83e378927860a7ffa50 Mon Sep 17 00:00:00 2001 From: Marc Hanheide Date: Mon, 23 Mar 2026 07:51:52 +0000 Subject: [PATCH 08/11] Update CI workflow to remove pull request branch filter Removed branch specification for pull requests in CI workflow. Build for all PRs --- .github/workflows/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 434f75db..533b971d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -6,7 +6,6 @@ on: tags: # Also run CI on tags. - '*' pull_request: - branches: [ humble-dev, aoc ] jobs: # ------------------------------------------------------------------- @@ -73,4 +72,4 @@ jobs: if: ${{ matrix.ros_version == 2 }} uses: ros-tooling/action-ros-ci@v0.3 with: - target-ros2-distro: ${{ matrix.ros_distribution }} \ No newline at end of file + target-ros2-distro: ${{ matrix.ros_distribution }} From e6f4ba51e5ec2a80198bcf9a49e7399e7b2e3c50 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Wed, 8 Apr 2026 14:40:01 +0100 Subject: [PATCH 09/11] fix: update ci path, update image --- .devcontainer/Dockerfile | 21 +++++++-------------- .devcontainer/compose.yaml | 7 ++----- .github/workflows/ci.yaml | 4 ++-- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 717e3d61..8269b0d6 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,8 +3,6 @@ ARG ROS_DISTRO=humble FROM ${BASE_IMAGE} AS devcontainer -USER root - RUN rm -rf /var/lib/apt/lists/* \ && apt-get update --fix-missing \ && apt-get -y install --no-install-recommends --fix-missing \ @@ -15,28 +13,23 @@ RUN rm -rf /var/lib/apt/lists/* \ python3-rosdep \ && rm -rf /var/lib/apt/lists/* -USER ros - -COPY ./ /home/ros/workspace/ +COPY ./ /workspace +WORKDIR /workspace +ENV ROS2_WS=/workspace -WORKDIR /home/ros/workspace -RUN sudo rm -rf log/ build/ install/ && \ - sudo chown -R ros:ros /home/ros/workspace - -ENV ROS2_WS=/home/ros/workspace +RUN sudo rm -rf log/ build/ install/ RUN rosdep update --rosdistro ${ROS_DISTRO} &&\ sudo apt-get update && \ rosdep install --from-paths ./src --ignore-src -r -y # Do an initial build to speed up development -RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && source /home/ros/.bashrc && colcon build --continue-on-error" - +RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && colcon build --continue-on-error" # ---------------------------------------------------------------------------------------------------- FROM devcontainer AS final -RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && source /home/ros/.bashrc && colcon build" +RUN /bin/bash -lc "source /opt/ros/${ROS_DISTRO}/setup.bash && colcon build" ENV MAP_FILE=/home/ros/workspace/src/topological_navigation/config/test_simple_tmap2.yaml -CMD ["/bin/bash", "-lc", "source /home/ros/workspace/install/setup.bash && exec ros2 launch topological_navigation topological_navigation.launch.py map_path:=$MAP_FILE"] \ No newline at end of file +CMD ["/bin/bash", "-lc", "source /workspace/install/setup.bash && exec ros2 launch topological_navigation topological_navigation.launch.py map_path:=$MAP_FILE"] diff --git a/.devcontainer/compose.yaml b/.devcontainer/compose.yaml index 8431d0ff..a2925966 100644 --- a/.devcontainer/compose.yaml +++ b/.devcontainer/compose.yaml @@ -1,9 +1,6 @@ services: vnc: - image: lcas.lincoln.ac.uk/vnc:staging - # renable if you want to run standalone - # ports: - # - "5801:5801" + image: lcas.lincoln.ac.uk/vnc volumes: - x11:/tmp/.X11-unix devices: @@ -42,4 +39,4 @@ volumes: colcon_log: networks: - ros_net: \ No newline at end of file + ros_net: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 533b971d..608e4e94 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -31,7 +31,7 @@ jobs: pip install pytest pyyaml jsonschema networkx scipy numpy - name: Run topological_navigation unit tests - working-directory: topological_navigation + working-directory: src/topological_navigation run: | python -m pytest test/ \ --ignore=test/test_navigationcore.py \ @@ -39,7 +39,7 @@ jobs: -v --tb=short - name: Run topological_nav_simulator unit tests - working-directory: topological_nav_simulator + working-directory: src/topological_nav_simulator run: | python -m pytest test/ -v --tb=short || true # These tests require geometry_msgs (ROS 2); they are From 25345980241f1b0794da23826de5b6ab4df4d301 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Wed, 8 Apr 2026 14:44:26 +0100 Subject: [PATCH 10/11] wip: test commit to use ros toolings version --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 608e4e94..b64ced16 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -65,7 +65,7 @@ jobs: image: ${{ matrix.docker_image }} steps: - name: setup ROS environment - uses: LCAS/setup-ros@master + uses: ros-tooling/setup-ros@main with: required-ros-distributions: ${{ matrix.ros_distribution }} - name: build and test ROS 2 From f67fca9c077fd11236496e1d2199d298113d0c7c Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Wed, 8 Apr 2026 14:52:00 +0100 Subject: [PATCH 11/11] ci: add jazzy testing --- .github/workflows/ci.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b64ced16..5026d54f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -49,11 +49,13 @@ jobs: # Full ROS 2 build + colcon test # ------------------------------------------------------------------- test_docker: + name: ROS Testing ${{ matrix.ros_distribution }} runs-on: ubuntu-latest strategy: matrix: ros_distribution: - humble + - jazzy include: # Humble Hawksbill (May 2022 - May 2027) @@ -61,6 +63,11 @@ jobs: ros_distribution: humble ros_version: 2 + # Jazzy Jalisco (May 2024 - May 2029) + - docker_image: ubuntu:noble + ros_distribution: jazzy + ros_version: 2 + container: image: ${{ matrix.docker_image }} steps: