From 3b3e9e67d91968851cb3e69a93937d4e56ec2678 Mon Sep 17 00:00:00 2001 From: Patrick Dormanns <patrick.dormanns@student.kit.edu> Date: Mon, 26 Feb 2024 14:57:10 +0100 Subject: [PATCH] error handling for FramdPosition-conversion --- source/armarx/control/pointing/core/Pointing.cpp | 14 +++++++++++++- source/armarx/control/pointing/core/Pointing.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/source/armarx/control/pointing/core/Pointing.cpp b/source/armarx/control/pointing/core/Pointing.cpp index e9824dac..2da46f95 100644 --- a/source/armarx/control/pointing/core/Pointing.cpp +++ b/source/armarx/control/pointing/core/Pointing.cpp @@ -30,7 +30,7 @@ namespace armarx::control::pointing::core VirtualRobot::RobotPtr robot = getRobot(); - Eigen::Vector3f target = params.target.toGlobalEigen(robot); + Eigen::Vector3f target = toGlobal(params.target, robot); visualizeTarget(target); armarx::TrajectoryPtr traj = computeArmTrajectory(robot, params.side, target); @@ -70,6 +70,18 @@ namespace armarx::control::pointing::core return robot; } + Eigen::Vector3f + Pointing::toGlobal(const FramedPosition& framedPosition, VirtualRobot::RobotPtr robot) + { + if (not(framedPosition.frame == armarx::GlobalFrame || + robot->hasRobotNode(framedPosition.frame))) + { + ARMARX_ERROR << "'" << framedPosition.frame << "' is not a valid frame name"; + throw armarx::exceptions::local::PointingFailedException(); + } + return framedPosition.toGlobalEigen(robot); + } + void Pointing::visualizeTarget(const Eigen::Vector3f& target) { diff --git a/source/armarx/control/pointing/core/Pointing.h b/source/armarx/control/pointing/core/Pointing.h index c36d9b88..3e035804 100644 --- a/source/armarx/control/pointing/core/Pointing.h +++ b/source/armarx/control/pointing/core/Pointing.h @@ -92,6 +92,8 @@ namespace armarx::control::pointing::core private: VirtualRobot::RobotPtr getRobot(); + Eigen::Vector3f toGlobal(const armarx::FramedPosition&, VirtualRobot::RobotPtr); + void visualizeTarget(const Eigen::Vector3f& target); armarx::TrajectoryPtr -- GitLab