From 583a3cc990af89684fdc41a49d0df931b5cfede1 Mon Sep 17 00:00:00 2001 From: Silvio Date: Thu, 20 Feb 2025 22:24:03 +0100 Subject: [PATCH 1/2] Fix compatibility with YARP 3.11 --- modules/Oculus_module/src/OculusModule.cpp | 26 +++++++++++++++---- .../src/OpenXRJoypadModule.cpp | 22 +++++++++++++--- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/modules/Oculus_module/src/OculusModule.cpp b/modules/Oculus_module/src/OculusModule.cpp index c6664862..245a613f 100644 --- a/modules/Oculus_module/src/OculusModule.cpp +++ b/modules/Oculus_module/src/OculusModule.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -17,6 +18,21 @@ #include +inline bool OculusModuleFrameExists(yarp::dev::IFrameTransform* frameTransformInterface, + const std::string& frameID) +{ + bool frameExists = false; +#if YARP_VERSION_MAJOR == 3 && YARP_VERSION_MINOR < 11 + frameExists = frameTransformInterface->frameExists(frameID); +#else + bool frameExistsOk = false; + bool frameExistsReturnValue = false; + frameExistsReturnValue = frameTransformInterface->frameExists(frameID, frameExistsOk); + frameExists = frameExistsOk && frameExistsReturnValue; +#endif + return frameExists; +} + Eigen::Ref> getRotation(yarp::sig::Matrix& m) { @@ -778,7 +794,7 @@ bool OculusModule::runningModule() if (m_useOpenXr) { - if (!m_frameTransformInterface->frameExists(m_headFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface,m_headFrameName)) { yError() << "[OculusModule::runningModule] The frame named " << m_headFrameName << " does not exist."; @@ -900,13 +916,13 @@ bool OculusModule::getTransforms() if (!m_useXsens) { // check if everything is ok - if (!m_frameTransformInterface->frameExists(m_rootFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface, m_rootFrameName)) { yError() << "[OculusModule::getTransforms] No " << m_rootFrameName << " frame."; return false; } - if (!m_frameTransformInterface->frameExists(m_headFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface, m_headFrameName)) { if (m_useOpenXr) @@ -993,14 +1009,14 @@ bool OculusModule::getTransforms() if (!m_useXsens && !m_useIFeel) { - if (!m_frameTransformInterface->frameExists(m_leftHandFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface, m_leftHandFrameName)) { yError() << "[OculusModule::getTransforms] No " << m_leftHandFrameName << " frame."; return false; } - if (!m_frameTransformInterface->frameExists(m_rightHandFrameName)) + if (!OculusModuleFrameExists(m_frameTransformInterface,m_rightHandFrameName)) { yError() << "[OculusModule::getTransforms] No " << m_rightHandFrameName << " frame."; return false; diff --git a/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp b/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp index d42d3b28..51b82bb0 100644 --- a/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp +++ b/modules/OpenXRJoypad_module/src/OpenXRJoypadModule.cpp @@ -36,6 +36,22 @@ #include #include +inline bool OpenXRJoypadModuleFrameExists(yarp::dev::IFrameTransform* frameTransformInterface, + const std::string& frameID) +{ + bool frameExists = false; +#if YARP_VERSION_MAJOR == 3 && YARP_VERSION_MINOR < 11 + frameExists = frameTransformInterface->frameExists(frameID); +#else + bool frameExistsOk = false; + bool frameExistsReturnValue = false; + frameExistsReturnValue = frameTransformInterface->frameExists(frameID, frameExistsOk); + frameExists = frameExistsOk && frameExistsReturnValue; +#endif + return frameExists; +} + + class RobotControlHelper { yarp::dev::PolyDriver m_robotDevice; /**< Main robot device. */ @@ -989,9 +1005,9 @@ struct OpenXRJoypadModule::Impl yarp::sig::Matrix& headOpenXR_T_rightHandOpenXR) { bool ok = true; - ok = ok && this->frameTransformInterface->frameExists(this->headFrameName); - ok = ok && this->frameTransformInterface->frameExists(this->leftHandFrameName); - ok = ok && this->frameTransformInterface->frameExists(this->rightHandFrameName); + ok = ok && OpenXRJoypadModuleFrameExists(this->frameTransformInterface, this->headFrameName); + ok = ok && OpenXRJoypadModuleFrameExists(this->frameTransformInterface, this->leftHandFrameName); + ok = ok && OpenXRJoypadModuleFrameExists(this->frameTransformInterface, this->rightHandFrameName); ok = ok && this->frameTransformInterface->getTransform(this->rightHandFrameName, // From e42a72f1b911b9a0517f4f3ed98d1311b87c32e2 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Thu, 20 Feb 2025 22:27:57 +0100 Subject: [PATCH 2/2] Bump version to 1.3.6 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c7488c44..f3ea439d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.5) set(CMAKE_CXX_STANDARD 14) project(walking-teleoperation - VERSION 1.3.5) + VERSION 1.3.6) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) include(WalkingTeleoperationFindDependencies)