14 #include <armarx/view_selection/skills/aron/LookAt.aron.generated.h>
27 return ::armarx::skills::Skill::InitResult{
28 .
status = ::armarx::skills::TerminatedSkillStatus::Succeeded};
37 fromAron(in.parameters.object, objectID);
43 ARMARX_INFO <<
"Memory query did not provide any observation for " << objectID;
49 const Eigen::Vector3f globalPosition = objectObservation.
objectPoseGlobal.block<3, 1>(0, 3);
52 const armarx::view_selection::gaze_targets::arondto::GazeTarget gazeTarget = [&]()
54 armarx::view_selection::gaze_targets::arondto::GazeTarget gazeTarget;
55 gazeTarget.name =
"LookAtObject_" + objectID.
str();
57 gazeTarget.position.header.agent =
"";
60 gazeTarget.position.position = globalPosition;
65 gazeTarget.priority.attentionType =
67 gazeTarget.priority.priority = in.parameters.priority;
70 gazeTarget.keepInQueue =
false;
77 using Parameters = armarx::view_selection::skills::arondto::LookAtParams;
84 armarx::view_selection::skills::constants::
85 ViewSelectionSkillProviderName},
87 Parameters subSkillParams = subSkill.getRootProfileParameters();
89 subSkillParams.target = gazeTarget;
93 if (
update.has_value() and not
update->hasBeenSucceeded())
103 LookAtObject::onStopRequested()
111 defaults.priority = 100;
113 defaults.durationSeconds = 1.5;
117 .description =
"Look at the location where an instance of the object class has most "
118 "recently been seen.",
119 .rootProfileDefaults = defaults.toAron(),
121 .parametersType = Params::ToAronType(),
122 .resultType = Result::ToAronType(),