From a50875e79ed0c73abda38c3c3a2d7812a2447d33 Mon Sep 17 00:00:00 2001 From: Raphael Grimm <raphael.grimm@kit.edu> Date: Tue, 4 Aug 2020 22:41:05 +0200 Subject: [PATCH] Extend RobotNameHelper --- .../RobotStatechartHelpers/RobotNameHelper.cpp | 18 ++++++++++++++++-- .../RobotStatechartHelpers/RobotNameHelper.h | 10 ++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp index a9ecec5e4..6053d0196 100644 --- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp +++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp @@ -25,6 +25,8 @@ #include <ArmarXCore/core/util/StringHelpers.h> #include <ArmarXCore/core/exceptions/local/ExpressionException.h> +#include <ArmarXCore/core/system/ArmarXDataPath.h> +#include <ArmarXCore/core/system/cmake/CMakePackageFinder.h> #include <ArmarXCore/statechart/xmlstates/profiles/StatechartProfiles.h> #include <ArmarXCore/util/CPPUtility/trace.h> @@ -32,7 +34,6 @@ namespace armarx { - void RobotNameHelper::writeRobotInfoNode( const RobotInfoNodePtr& n, std::ostream& str, @@ -225,6 +226,14 @@ namespace armarx return select("HandModelPath"); } + std::string RobotNameHelper::Arm::getAbsoluteHandModelPath() const + { + ArmarXDataPath::FindPackageAndAddDataPath(getHandModelPackage()); + auto path = getHandModelPath(); + return ArmarXDataPath::getAbsolutePath(path, path) ? + path : ""; + } + std::string RobotNameHelper::Arm::getHandModelPackage() const { ARMARX_TRACE; @@ -289,7 +298,12 @@ namespace armarx return tcp->getPoseInRootFrame().inverse() * hand->getPoseInRootFrame(); } - RobotNameHelper::Arm RobotNameHelper::RobotArm::getArm() const + const VirtualRobot::RobotPtr& RobotNameHelper::RobotArm::getRobot() const + { + return robot; + } + + const RobotNameHelper::Arm& RobotNameHelper::RobotArm::getArm() const { return arm; } diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h index 703c0ae83..0a4fdd59a 100644 --- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h +++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h @@ -74,6 +74,7 @@ namespace armarx std::string getHandControllerName() const; std::string getHandRootNode() const; std::string getHandModelPath() const; + std::string getAbsoluteHandModelPath() const; std::string getHandModelPackage() const; RobotArm addRobot(const VirtualRobot::RobotPtr& robot) const; @@ -104,7 +105,8 @@ namespace armarx VirtualRobot::RobotNodePtr getTCP() const; VirtualRobot::RobotNodePtr getHandRootNode() const; Eigen::Matrix4f getTcp2HandRootTransform() const; - Arm getArm() const; + const Arm& getArm() const; + const VirtualRobot::RobotPtr& getRobot() const; RobotArm(const Arm& arm, const VirtualRobot::RobotPtr& robot); RobotArm() = default; @@ -114,7 +116,7 @@ namespace armarx RobotArm& operator=(const RobotArm&) = default; private: - const Arm arm; + Arm arm; VirtualRobot::RobotPtr robot; }; @@ -123,6 +125,10 @@ namespace armarx static RobotNameHelperPtr Create(const RobotInfoNodePtr& robotInfo, const StatechartProfilePtr& profile); RobotNameHelper(const RobotInfoNodePtr& robotInfo, const StatechartProfilePtr& profile = nullptr); + RobotNameHelper(RobotNameHelper&&) = default; + RobotNameHelper(const RobotNameHelper&) = default; + RobotNameHelper& operator=(RobotNameHelper&&) = default; + RobotNameHelper& operator=(const RobotNameHelper&) = default; Arm getArm(const std::string& side) const; RobotArm getRobotArm(const std::string& side, const VirtualRobot::RobotPtr& robot) const; -- GitLab