diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp index 349eca66f847b5d3000b6418241f2fd304b3f304..2116b6184a12599143454ac06c83c2be99d15219 100644 --- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp +++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.cpp @@ -29,6 +29,8 @@ #include <ArmarXCore/core/system/cmake/CMakePackageFinder.h> #include <ArmarXCore/statechart/xmlstates/profiles/StatechartProfiles.h> #include <ArmarXCore/util/CPPUtility/trace.h> +#include <ArmarXCore/core/system/ArmarXDataPath.cpp> + #include <Eigen/Dense> @@ -246,6 +248,12 @@ namespace armarx return select("PalmCollisionModel"); } + std::string RobotNameHelper::Arm::getFullHandCollisionModel() const + { + ARMARX_TRACE; + return select("FullHandCollisionModel"); + } + RobotNameHelper::RobotArm RobotNameHelper::Arm::addRobot(const VirtualRobot::RobotPtr& robot) const { ARMARX_TRACE; @@ -298,6 +306,14 @@ namespace armarx return robot->getRobotNode(arm.getPalmCollisionModel()); } + VirtualRobot::TriMeshModelPtr RobotNameHelper::RobotArm::getFullHandCollisionModel() const + { + ARMARX_TRACE; + std::string abs; + ARMARX_CHECK_EXPRESSION(ArmarXDataPath::SearchReadableFile(arm.getFullHandCollisionModel(), abs)); + return VirtualRobot::TriMeshModel::FromFile(abs); + } + VirtualRobot::RobotNodePtr RobotNameHelper::RobotArm::getHandRootNode() const { ARMARX_TRACE; diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h index b4db8b858c70273d24e1f4e6b615037aa49c2faf..d37ecea9db567faab03640bc9d2ce12815f6f65b 100644 --- a/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h +++ b/source/RobotAPI/libraries/RobotStatechartHelpers/RobotNameHelper.h @@ -26,6 +26,7 @@ #include <RobotAPI/interface/core/RobotState.h> #include <VirtualRobot/Robot.h> +#include <VirtualRobot/Visualization/TriMeshModel.h> namespace armarx { @@ -77,6 +78,7 @@ namespace armarx std::string getAbsoluteHandModelPath() const; std::string getHandModelPackage() const; std::string getPalmCollisionModel() const; + std::string getFullHandCollisionModel() const; RobotArm addRobot(const VirtualRobot::RobotPtr& robot) const; Arm(const std::shared_ptr<const RobotNameHelper>& rnh, const std::string& side); @@ -106,6 +108,7 @@ namespace armarx VirtualRobot::RobotNodePtr getTCP() const; VirtualRobot::RobotNodePtr getHandRootNode() const; VirtualRobot::RobotNodePtr getPalmCollisionModel() const; + VirtualRobot::TriMeshModelPtr getFullHandCollisionModel() const; Eigen::Matrix4f getTcp2HandRootTransform() const; const Arm& getArm() const; const VirtualRobot::RobotPtr& getRobot() const;