5 #include <VirtualRobot/XML/RobotIO.h>
18 #include <armarx/view_selection/skills/aron/LookAt.aron.generated.h>
25 Base(DefaultSkillDescription()), srv_(srv)
32 return ::armarx::skills::Skill::InitResult{
33 .
status = ::armarx::skills::TerminatedSkillStatus::Succeeded};
41 Clock::Now(), in.parameters.objectPoseProvider);
50 fromAron(in.parameters.object, objectID);
52 const std::string objectName = objectID.dataset() +
"/" + objectID.className();
53 ARMARX_INFO <<
"Searching for object name `" << objectName <<
"`";
55 const auto isMatchingDescription = [&objectID](
const auto&
description) ->
bool
58 const auto descriptionIt =
59 std::find_if(descriptions.begin(), descriptions.end(), isMatchingDescription);
61 <<
"Description " << objectID <<
" not available";
64 std::optional<armarx::armem::articulated_object::ArticulatedObject> objectOpt =
67 objectID.instanceName(),
68 in.parameters.objectPoseProvider);
77 <<
"' from XML file '" << xmlFilename <<
"'";
79 auto object = VirtualRobot::RobotIO::loadRobot(
80 xmlFilename, VirtualRobot::RobotIO::RobotDescription::eStructure);
85 object->setName(objectID.str());
89 const auto node =
object->getRobotNode(in.parameters.node);
92 const Eigen::Vector3f globalPose = node->getGlobalPosition();
95 const armarx::view_selection::gaze_targets::arondto::GazeTarget gazeTarget = [&]()
97 armarx::view_selection::gaze_targets::arondto::GazeTarget gazeTarget;
99 "LookAtArticulatedObjectFrame_" + objectID.str() +
":" + in.parameters.node;
101 gazeTarget.position.header.agent =
"";
104 gazeTarget.position.position = globalPose;
106 gazeTarget.duration =
109 gazeTarget.priority.attentionType =
111 gazeTarget.priority.priority = in.parameters.priority;
114 gazeTarget.keepInQueue =
false;
121 using Parameters = armarx::view_selection::skills::arondto::LookAtParams;
128 armarx::view_selection::skills::constants::
129 ViewSelectionSkillProviderName},
131 Parameters subSkillParams = subSkill.getRootProfileParameters();
133 subSkillParams.target = gazeTarget;
137 if (
update.has_value() and not
update->hasBeenSucceeded())
147 LookAtArticulatedObjectFrame::onStopRequested()
155 defaults.priority = 100;
156 defaults.objectPoseProvider = std::nullopt;
161 .rootProfileDefaults = defaults.toAron(),
163 .parametersType = Params::ToAronType(),
164 .resultType = Result::ToAronType(),