From a6deda1f87af90e25d0332d1f725a9ed77723711 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 7 Aug 2026 18:09:34 +0200 Subject: [PATCH 01/17] added transport_interface and dls_hal --- .gitmodules | 8 +++++++- CMakeLists.txt | 2 ++ dls_hal | 1 + transport_interfaces | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 160000 dls_hal create mode 160000 transport_interfaces diff --git a/.gitmodules b/.gitmodules index af4163c..65ccd38 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,4 +12,10 @@ url = https://github.com/iit-DLSLab/dls2_msgs.git [submodule "pinocchio-gluecode"] path = pinocchio-gluecode - url = https://github.com/iit-DLSLab/pinocchio-gluecode.git \ No newline at end of file + url = https://github.com/iit-DLSLab/pinocchio-gluecode.git +[submodule "transport_interfaces"] + path = transport_interfaces + url = git@github.com:iit-DLSLab/transport_interfaces.git +[submodule "dls_hal"] + path = dls_hal + url = git@github.com:iit-DLSLab/dls_hal.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f53b7b..5cdc9f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,8 @@ endif() set(DLS_MESSAGE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/dls2_msgs CACHE PATH "Path to the dls2_msgs folder" ) +add_subdirectory(transport_interfaces) +add_subdirectory(dls_hal) add_subdirectory(dls2) option(BUILD_DLS2_MSGS "Build the dls2_msgs submodule. Disable when dls2_msgs is pre-installed (e.g. in CI)." ON) if(BUILD_DLS2_MSGS) diff --git a/dls_hal b/dls_hal new file mode 160000 index 0000000..f5e2fea --- /dev/null +++ b/dls_hal @@ -0,0 +1 @@ +Subproject commit f5e2fea3061b3433047ddcfd049e19a00ab360e9 diff --git a/transport_interfaces b/transport_interfaces new file mode 160000 index 0000000..33c041d --- /dev/null +++ b/transport_interfaces @@ -0,0 +1 @@ +Subproject commit 33c041d651df54608ba91b0bf5977d0f85e236bb From 1903dad45298f833cfb3f33eedffb7d6bd6d1f2d Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 7 Aug 2026 18:10:00 +0200 Subject: [PATCH 02/17] update dls2, dls_hal, dls2_ros2_interface and transport_interfaces --- dls2 | 2 +- dls2_ros2_interface | 2 +- dls_hal | 2 +- transport_interfaces | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dls2 b/dls2 index a7cfb1d..cc53fb6 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit a7cfb1d0aa0dd33ce5769473a3c8037e883f0bc2 +Subproject commit cc53fb6d4517f5ed0aad7374ee52ac817483bc2c diff --git a/dls2_ros2_interface b/dls2_ros2_interface index 521f83f..1678b04 160000 --- a/dls2_ros2_interface +++ b/dls2_ros2_interface @@ -1 +1 @@ -Subproject commit 521f83fd682e7aa349ab503cb15c12735ff7d80f +Subproject commit 1678b04e357f471d17daf0e59b6ff995c453f0ab diff --git a/dls_hal b/dls_hal index f5e2fea..9282bee 160000 --- a/dls_hal +++ b/dls_hal @@ -1 +1 @@ -Subproject commit f5e2fea3061b3433047ddcfd049e19a00ab360e9 +Subproject commit 9282bee6725efa38e5001c5ede4bb9b9e95c42c4 diff --git a/transport_interfaces b/transport_interfaces index 33c041d..52435fd 160000 --- a/transport_interfaces +++ b/transport_interfaces @@ -1 +1 @@ -Subproject commit 33c041d651df54608ba91b0bf5977d0f85e236bb +Subproject commit 52435fdc76438aa12aa84da07422438ad5148a49 From e8162172be8ce33a7ccddece3fc5be71e90f1d03 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 7 Aug 2026 18:10:29 +0200 Subject: [PATCH 03/17] fix cmake vars --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cdc9f2..e106509 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,16 +6,17 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) endif() -set(DLS_MESSAGE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/dls2_msgs +set(DLS_MESSAGE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/transport_interfaces/transports/fastdds/dls2_msgs CACHE PATH "Path to the dls2_msgs folder" ) + +if(NOT CMAKE_INSTALL_RPATH) + set(CMAKE_INSTALL_RPATH "/opt/dls2/lib;/opt/dls2/hardwares/lib" CACHE STRING "RPATH for installed binaries" FORCE) +endif() + add_subdirectory(transport_interfaces) add_subdirectory(dls_hal) add_subdirectory(dls2) -option(BUILD_DLS2_MSGS "Build the dls2_msgs submodule. Disable when dls2_msgs is pre-installed (e.g. in CI)." ON) -if(BUILD_DLS2_MSGS) - add_subdirectory(dls2_msgs) -endif() add_subdirectory(robotlib) add_subdirectory(pinocchio-gluecode) add_subdirectory(visualizers/rviz_interface) From d1f5a75eb6a5244d2b3d19bfb4365e51479d5679 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 7 Aug 2026 18:11:33 +0200 Subject: [PATCH 04/17] submodule dls2 - cleanup --- dls2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dls2 b/dls2 index cc53fb6..017ec75 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit cc53fb6d4517f5ed0aad7374ee52ac817483bc2c +Subproject commit 017ec75f54ce0e549190fd8509de4e85e986674c From 9abd8c9417e6a9810711b27ef55f76377e87b5cc Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 7 Aug 2026 19:10:46 +0200 Subject: [PATCH 05/17] sudmoduel dls2: fixed plugin skeleton --- dls2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dls2 b/dls2 index 017ec75..2c207ff 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit 017ec75f54ce0e549190fd8509de4e85e986674c +Subproject commit 2c207ff5361cb5a7cc29fb064fea2699a09d8f24 From e0ba6e9f30ea14d0b5a2008b0b3fe533bdb215c7 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Mon, 31 Aug 2026 16:45:10 +0200 Subject: [PATCH 06/17] fixed path to robot description --- dls2 | 2 +- dls_hal | 2 +- transport_interfaces | 2 +- visualizers/rviz_interface/src/rviz_interface.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dls2 b/dls2 index 2c207ff..69676a9 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit 2c207ff5361cb5a7cc29fb064fea2699a09d8f24 +Subproject commit 69676a973166239df692fb25ab83d6814f009abb diff --git a/dls_hal b/dls_hal index 9282bee..b913e0c 160000 --- a/dls_hal +++ b/dls_hal @@ -1 +1 @@ -Subproject commit 9282bee6725efa38e5001c5ede4bb9b9e95c42c4 +Subproject commit b913e0c85eb25825f7bcb48745709152e2362844 diff --git a/transport_interfaces b/transport_interfaces index 52435fd..0232317 160000 --- a/transport_interfaces +++ b/transport_interfaces @@ -1 +1 @@ -Subproject commit 52435fdc76438aa12aa84da07422438ad5148a49 +Subproject commit 0232317fd2f53a35018b13e86db37aec8c60f77c diff --git a/visualizers/rviz_interface/src/rviz_interface.cpp b/visualizers/rviz_interface/src/rviz_interface.cpp index 8ce6d20..2590e09 100644 --- a/visualizers/rviz_interface/src/rviz_interface.cpp +++ b/visualizers/rviz_interface/src/rviz_interface.cpp @@ -101,7 +101,7 @@ namespace periodic_app_plugin // Run robot state publisher in a separate shell command, so rviz can // visualize the robot while this plugin publishes joint states and tf. std::string urdf_path = "/usr/include/" + robot_name + - "_description/urdfs/" + robot_name + "_ros.urdf"; + "-description/urdfs/" + robot_name + "_ros.urdf"; const std::string bash_command = ". /usr/bin/dls2/scripts/setup_ros2_for_dls2.bash && " "setsid ros2 run robot_state_publisher robot_state_publisher " From 42f494f2f23fccea1ef0ee2b87bea11dd535ccc4 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Mon, 31 Aug 2026 16:46:22 +0200 Subject: [PATCH 07/17] fixed path to robot description --- pinocchio-gluecode | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pinocchio-gluecode b/pinocchio-gluecode index caa8468..58ffaca 160000 --- a/pinocchio-gluecode +++ b/pinocchio-gluecode @@ -1 +1 @@ -Subproject commit caa8468b58792fd81191b7fbb1eeb77a2d3ce3d0 +Subproject commit 58ffaca8aaf3bcf973ed1dd972c24086471caf48 From 0702281c168efd994e28de5e7657bd046a53ab6a Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Tue, 1 Sep 2026 12:59:16 +0200 Subject: [PATCH 08/17] fixed dls_hal installation --- dls_hal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dls_hal b/dls_hal index b913e0c..dd07a53 160000 --- a/dls_hal +++ b/dls_hal @@ -1 +1 @@ -Subproject commit b913e0c85eb25825f7bcb48745709152e2362844 +Subproject commit dd07a53e2e8e210061db68d55dc879622e2a0959 From 0ddb7ec6c6c85f7b262424863997ca77ab9f010b Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 11 Sep 2026 14:16:24 +0200 Subject: [PATCH 09/17] docs: update GettingStarted.md for clarity on yaml structure and startup procedure --- dls2 | 2 +- docs/GettingStarted.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dls2 b/dls2 index 69676a9..b29b77c 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit 69676a973166239df692fb25ab83d6814f009abb +Subproject commit b29b77c684c902108619f86d758b8692edfbf9fd diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index 9261d35..8d816c0 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -61,7 +61,7 @@ To start interacting with the DLS2 network, you can now launch the console layer At this point you are now ready to start sending commands to the DLS2 network through the console. -You can also customize the set of nodes you want to launch by creating your yaml file. To do that the yaml file has to contain the following structure +You can also customize the set of nodes you want to launch by creating your yaml file. For example you can use the following structure ``` # layers layers: [] @@ -89,7 +89,7 @@ To launch your configuration file, you need to pass its path to the startup comm dls --startup=/startup.yml -The supervisor and the DDS servers are automatically launched when using the startup procedure. +The supervisor and the DDS servers are automatically launched when using the startup procedure if `run_supervisor` and `run_servers`, respectively, are omitted or set to `true`. Set either option to `false` to skip launching that component. For a list of all available entries, see the [startup configuration reference](../dls2/doc/StartupConfiguration.md). ## Mixed routine To launch the DLS2 network you could also use a mixed approach: load some layers and nodes with the startup routine and others with the manual steps. \ No newline at end of file From cf21b48d04c060c3e432bf67d82b6ded78e41006 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 11 Sep 2026 14:40:21 +0200 Subject: [PATCH 10/17] docs: clarify startup procedure for supervisor and DDS servers in GettingStarted.md --- docs/GettingStarted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index 8d816c0..874e9d1 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -89,7 +89,7 @@ To launch your configuration file, you need to pass its path to the startup comm dls --startup=/startup.yml -The supervisor and the DDS servers are automatically launched when using the startup procedure if `run_supervisor` and `run_servers`, respectively, are omitted or set to `true`. Set either option to `false` to skip launching that component. For a list of all available entries, see the [startup configuration reference](../dls2/doc/StartupConfiguration.md). +The supervisor and the DDS servers are launched by the startup procedure only when `run_supervisor` and `run_servers`, respectively, are explicitly set to `true` in the YAML file. Both options default to `false`; omitting an option or setting it to `false` skips launching that component. Automatic simulation model loading also requires `load_model: true`; omitting it or setting it to `false` skips model loading. For a list of all available entries, see the [startup configuration reference](../dls2/doc/StartupConfiguration.md). ## Mixed routine To launch the DLS2 network you could also use a mixed approach: load some layers and nodes with the startup routine and others with the manual steps. \ No newline at end of file From 174c09bbd5fc78d32195fb41c895e2ef7ea62d10 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 11 Sep 2026 14:41:36 +0200 Subject: [PATCH 11/17] update submodules dls_hal, dls2, dls2_ros2_inteface, transport_interfaces --- dls2 | 2 +- dls2_ros2_interface | 2 +- dls_hal | 2 +- transport_interfaces | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dls2 b/dls2 index b29b77c..5426978 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit b29b77c684c902108619f86d758b8692edfbf9fd +Subproject commit 54269782f7b2ba0026e3973ce5e3cf80e2a84487 diff --git a/dls2_ros2_interface b/dls2_ros2_interface index 1678b04..dcb3d80 160000 --- a/dls2_ros2_interface +++ b/dls2_ros2_interface @@ -1 +1 @@ -Subproject commit 1678b04e357f471d17daf0e59b6ff995c453f0ab +Subproject commit dcb3d802fc1f359fab751fdc84b65a55a8fd7b96 diff --git a/dls_hal b/dls_hal index 257c327..b2530b7 160000 --- a/dls_hal +++ b/dls_hal @@ -1 +1 @@ -Subproject commit 257c3270e7c1a83361fd40192987bd14981b525b +Subproject commit b2530b77357a453ed557f3eb4ba0b6e5a1d604fc diff --git a/transport_interfaces b/transport_interfaces index 0232317..32453ae 160000 --- a/transport_interfaces +++ b/transport_interfaces @@ -1 +1 @@ -Subproject commit 0232317fd2f53a35018b13e86db37aec8c60f77c +Subproject commit 32453ae18e1d9e1b6f6d767f01d441428db60e89 From 2d52f26eec6abf8df6cc00d87a42d2132b0fc0b6 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Fri, 11 Sep 2026 14:42:05 +0200 Subject: [PATCH 12/17] removed dls2_msgs due to last merge --- dls2_msgs | 1 - 1 file changed, 1 deletion(-) delete mode 160000 dls2_msgs diff --git a/dls2_msgs b/dls2_msgs deleted file mode 160000 index 9cfecb3..0000000 --- a/dls2_msgs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9cfecb3835f6fcebe84909299e6f10b565a24409 From 79a5c2efb428c005974b70fec567424246c595f0 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Mon, 14 Sep 2026 11:21:52 +0200 Subject: [PATCH 13/17] dls and dls2_ros2_interface submodule updates --- dls2 | 2 +- dls2_ros2_interface | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dls2 b/dls2 index 5426978..bf1c926 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit 54269782f7b2ba0026e3973ce5e3cf80e2a84487 +Subproject commit bf1c92619b178983bcc087a426e7d48f0aa16f6f diff --git a/dls2_ros2_interface b/dls2_ros2_interface index dcb3d80..f32ec37 160000 --- a/dls2_ros2_interface +++ b/dls2_ros2_interface @@ -1 +1 @@ -Subproject commit dcb3d802fc1f359fab751fdc84b65a55a8fd7b96 +Subproject commit f32ec37d89e3e13c8af7d46449bd989051066ded From 699e17ffb0c31a9757df4cad32c7fad3976f5938 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Tue, 15 Sep 2026 10:38:01 +0200 Subject: [PATCH 14/17] robustify ros2 msgs generation --- CMakeLists.txt | 27 ++---------------- cmake/dls_message_paths.cmake | 10 +++++++ cmake/generate_ros2_messages.cmake | 46 ++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 24 deletions(-) create mode 100644 cmake/dls_message_paths.cmake create mode 100644 cmake/generate_ros2_messages.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index e106509..661c816 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,9 +6,7 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) endif() -set(DLS_MESSAGE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/transport_interfaces/transports/fastdds/dls2_msgs - CACHE PATH "Path to the dls2_msgs folder" -) +include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/dls_message_paths.cmake") if(NOT CMAKE_INSTALL_RPATH) set(CMAKE_INSTALL_RPATH "/opt/dls2/lib;/opt/dls2/hardwares/lib" CACHE STRING "RPATH for installed binaries" FORCE) @@ -21,28 +19,9 @@ add_subdirectory(robotlib) add_subdirectory(pinocchio-gluecode) add_subdirectory(visualizers/rviz_interface) -# generate ROS2 messages from IDL files each time CMake is run, to ensure they are always up to date with the IDL definitions -message(STATUS "Generating ROS2 messages from IDL files...") -set (DLS2_ROS2_INTERFACE_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dls2_ros2_interface/ros2_ws/src) -set (DLS2_ROS2_INTERFACE_DIR ${DLS2_ROS2_INTERFACE_SRC_DIR}/dls2_interface) - - -# remove .msg files from the ROS2 interface src directory to avoid conflicts with the newly generated ones -file(GLOB DLS_MSG_FILES CONFIGURE_DEPENDS "${DLS2_ROS2_INTERFACE_DIR}/msg/*.msg") -foreach(msg_file IN LISTS DLS_MSG_FILES) - file(REMOVE ${msg_file}) -endforeach() - -file(GLOB DLS_IDL_FILES CONFIGURE_DEPENDS "${DLS_MESSAGE_FOLDER}/idls/*.idl") -foreach(idl_file IN LISTS DLS_IDL_FILES) - execute_process( - COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${DLS2_ROS2_INTERFACE_DIR}/scripts ${DLS2_ROS2_INTERFACE_DIR}/scripts/idl_to_msg.py ${idl_file} -o ${DLS2_ROS2_INTERFACE_SRC_DIR}/ - WORKING_DIRECTORY ${DLS2_ROS2_INTERFACE_DIR} - RESULT_VARIABLE result - ) -endforeach() +include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/generate_ros2_messages.cmake") # install setup_ros2_for_dls2.bash install(FILES dls2_ros2_interface/ros2_ws/src/dls2_interface/scripts/setup_ros2_for_dls2.bash DESTINATION /usr/bin/dls2/scripts/ -) \ No newline at end of file +) diff --git a/cmake/dls_message_paths.cmake b/cmake/dls_message_paths.cmake new file mode 100644 index 0000000..79a1a2e --- /dev/null +++ b/cmake/dls_message_paths.cmake @@ -0,0 +1,10 @@ +# Configure the IDL source directory before adding dependent subdirectories. +set(DLS_MESSAGE_DEFAULT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/transport_interfaces/transports/fastdds/dls2_msgs") +set(DLS_MESSAGE_FOLDER "${DLS_MESSAGE_DEFAULT_FOLDER}" + CACHE PATH "Path to the dls2_msgs folder" +) +# Older build caches can still point to the former dls2_msgs location. +if(NOT IS_DIRECTORY "${DLS_MESSAGE_FOLDER}/idls") + message(WARNING "DLS_MESSAGE_FOLDER '${DLS_MESSAGE_FOLDER}' has no idls directory; using '${DLS_MESSAGE_DEFAULT_FOLDER}'.") + set(DLS_MESSAGE_FOLDER "${DLS_MESSAGE_DEFAULT_FOLDER}" CACHE PATH "Path to the dls2_msgs folder" FORCE) +endif() diff --git a/cmake/generate_ros2_messages.cmake b/cmake/generate_ros2_messages.cmake new file mode 100644 index 0000000..7806c7c --- /dev/null +++ b/cmake/generate_ros2_messages.cmake @@ -0,0 +1,46 @@ +# Regenerate ROS2 messages from IDL definitions on every CMake configure. +message(STATUS "Generating ROS2 messages from IDL files...") +set(DLS2_ROS2_INTERFACE_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/dls2_ros2_interface/ros2_ws/src") +set(DLS2_ROS2_INTERFACE_DIR "${DLS2_ROS2_INTERFACE_SRC_DIR}/dls2_interface") +find_package(Python3 REQUIRED COMPONENTS Interpreter) +file(GLOB DLS_IDL_FILES CONFIGURE_DEPENDS "${DLS_MESSAGE_FOLDER}/idls/*.idl") +if(NOT DLS_IDL_FILES) + message(FATAL_ERROR "No IDL files found in '${DLS_MESSAGE_FOLDER}/idls'. Existing ROS2 messages were preserved.") +endif() +set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS + ${DLS_IDL_FILES} "${DLS2_ROS2_INTERFACE_DIR}/scripts/idl_to_msg.py") + +# Generate in the build tree first so a conversion failure preserves existing messages. +set(DLS_ROS2_MSG_STAGE "${CMAKE_CURRENT_BINARY_DIR}/generated_ros2_messages") +file(REMOVE_RECURSE "${DLS_ROS2_MSG_STAGE}") +file(MAKE_DIRECTORY "${DLS_ROS2_MSG_STAGE}") +foreach(idl_file IN LISTS DLS_IDL_FILES) + execute_process( + COMMAND "${Python3_EXECUTABLE}" "${DLS2_ROS2_INTERFACE_DIR}/scripts/idl_to_msg.py" + "${idl_file}" --strict -o "${DLS_ROS2_MSG_STAGE}" + WORKING_DIRECTORY "${DLS2_ROS2_INTERFACE_DIR}" + RESULT_VARIABLE DLS_IDL_RESULT + OUTPUT_VARIABLE DLS_IDL_OUTPUT + ERROR_VARIABLE DLS_IDL_ERROR + ) + if(NOT "${DLS_IDL_RESULT}" STREQUAL "0") + message(FATAL_ERROR "ROS2 message generation failed for '${idl_file}':\n${DLS_IDL_OUTPUT}\n${DLS_IDL_ERROR}\nExisting ROS2 messages were preserved.") + endif() +endforeach() + +file(GLOB DLS_GENERATED_MSG_FILES "${DLS_ROS2_MSG_STAGE}/dls2_interface/msg/*.msg") +if(NOT DLS_GENERATED_MSG_FILES) + message(FATAL_ERROR "No dls2_interface messages were generated. Existing ROS2 messages were preserved.") +endif() +file(COPY ${DLS_GENERATED_MSG_FILES} DESTINATION "${DLS2_ROS2_INTERFACE_DIR}/msg") + +# Remove obsolete messages only after all conversions and the copy have succeeded. +file(GLOB DLS_MSG_FILES "${DLS2_ROS2_INTERFACE_DIR}/msg/*.msg") +foreach(msg_file IN LISTS DLS_MSG_FILES) + get_filename_component(msg_name "${msg_file}" NAME) + if(NOT EXISTS "${DLS_ROS2_MSG_STAGE}/dls2_interface/msg/${msg_name}") + file(REMOVE "${msg_file}") + endif() +endforeach() +list(LENGTH DLS_GENERATED_MSG_FILES DLS_GENERATED_MSG_COUNT) +message(STATUS "Generated ${DLS_GENERATED_MSG_COUNT} ROS2 messages in ${DLS2_ROS2_INTERFACE_DIR}/msg") From 9c4bf00db5b710067c73220d16e19e16a7ce5930 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Tue, 15 Sep 2026 10:44:45 +0200 Subject: [PATCH 15/17] submodules update due to new hal --- dls2 | 2 +- dls2_ros2_interface | 2 +- pinocchio-gluecode | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dls2 b/dls2 index 3e50e23..8c373a0 160000 --- a/dls2 +++ b/dls2 @@ -1 +1 @@ -Subproject commit 3e50e234e34429f11cfbaec94cbae830c2ff89a1 +Subproject commit 8c373a08c631c25c76c1a17ce661bcadbff5491b diff --git a/dls2_ros2_interface b/dls2_ros2_interface index c564672..d1364dc 160000 --- a/dls2_ros2_interface +++ b/dls2_ros2_interface @@ -1 +1 @@ -Subproject commit c564672812ecde70e29cff8eb91d247df8abb626 +Subproject commit d1364dc88ac9659c369a894704460cd4da125fbb diff --git a/pinocchio-gluecode b/pinocchio-gluecode index caa8468..7913f26 160000 --- a/pinocchio-gluecode +++ b/pinocchio-gluecode @@ -1 +1 @@ -Subproject commit caa8468b58792fd81191b7fbb1eeb77a2d3ce3d0 +Subproject commit 7913f262a3644fff826ed5b6b3b02c0ca7377594 From 019d9faf16ee418324a41dec4645ee65f8215ac2 Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Tue, 15 Sep 2026 11:06:12 +0200 Subject: [PATCH 16/17] fixed path to dls2_msgs for cicd --- .github/scripts/install_dls2_msgs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/scripts/install_dls2_msgs.sh b/.github/scripts/install_dls2_msgs.sh index 0446cb6..65cb6d1 100755 --- a/.github/scripts/install_dls2_msgs.sh +++ b/.github/scripts/install_dls2_msgs.sh @@ -23,8 +23,8 @@ if [ -z "$TOKEN" ]; then fi export GH_TOKEN="$TOKEN" -# Resolve the dls2_msgs submodule commit SHA pinned in this repo -SHA="$(git -C "$(dirname "${BASH_SOURCE[0]}")/../.." ls-tree HEAD dls2_msgs | awk '{print $3}')" +# Resolve the dls2_msgs submodule commit SHA pinned in transport_interfaces +SHA="$(git -C "$(dirname "${BASH_SOURCE[0]}")/../../transport_interfaces" ls-tree HEAD transports/fastdds/dls2_msgs | awk '{print $3}')" echo "dls2_msgs submodule is pinned to commit: $SHA" # Find the release tag that points to that commit From 81a681b11ae2a7a4a285c649e435e8754a13ee2a Mon Sep 17 00:00:00 2001 From: MMarcus95 Date: Tue, 15 Sep 2026 13:03:59 +0200 Subject: [PATCH 17/17] submodule update transport_interfaces --- transport_interfaces | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transport_interfaces b/transport_interfaces index f1dd1da..85fe334 160000 --- a/transport_interfaces +++ b/transport_interfaces @@ -1 +1 @@ -Subproject commit f1dd1dadc19c3251e4224f2ce3dd1036f72a5e73 +Subproject commit 85fe334df67d671d1ef17c6c4c35ed50d573a989