SetCustomGazeTarget.cpp
Go to the documentation of this file.
1 #include "SetCustomGazeTarget.h"
2 
3 #include <memory>
4 
5 #include <Eigen/Core>
6 #include <Eigen/Geometry>
7 
9 
11 {
12 
13 
15  Base(DefaultSkillDescription()), srv_(services)
16  {
17  }
18 
19  void
21  {
22  srv_.emplace(srv);
23  }
24 
26  SetCustomGazeTarget::init(const Base::SpecializedInitInput& in)
27  {
28  gazeTarget.emplace(); // populate optional
29  std::string frame = in.parameters.frame;
30  std::string agent = in.parameters.agent;
31  FramedPosition targetPos{
32  Eigen::Vector3f{in.parameters.x, in.parameters.y, in.parameters.z}, frame, agent};
33  gaze_targets::TargetPriority priority{gaze_targets::AttentionType::TaskDriven,
34  in.parameters.priority};
36  armarx::core::time::Duration::MilliSeconds(in.parameters.duration_ms);
37  gaze_targets::GazeTarget target{
38  "SetCustomGazeTarget", targetPos, priority, duration, false};
39  gazeTarget.emplace(target);
40 
41  //fromAron(in.params.target, gazeTarget.value());
42 
43  return ::armarx::skills::Skill::InitResult{
44  .status = ::armarx::skills::TerminatedSkillStatus::Succeeded};
45  }
46 
48  SetCustomGazeTarget::main(const Base::SpecializedMainInput& in)
49  {
50  ARMARX_CHECK(gazeTarget.has_value());
51 
52  ARMARX_INFO << "Committing gaze target " << gazeTarget.value();
53  srv_->viewSelectionClient.commitGazeTarget(gazeTarget.value());
54 
55  return ::armarx::skills::Skill::MainResult{
56  .status = ::armarx::skills::TerminatedSkillStatus::Succeeded};
57  }
58 
59  void
60  SetCustomGazeTarget::onStopRequested()
61  {
62  if (gazeTarget.has_value())
63  {
64  srv_->viewSelectionClient.commitGazeTarget(gazeTarget.value());
65  }
66  }
67 
70  {
71  ParamType defaultParameters;
72  defaultParameters.frame = "root";
73  defaultParameters.agent = "Armar7";
74  defaultParameters.priority = 1;
75  defaultParameters.duration_ms = 1000;
76  defaultParameters.x = 0;
77  defaultParameters.y = 1500;
78  defaultParameters.z = 1500;
80  .skillId =
82  .description = "Set a gaze target by coordinate, agent and frame. Supported frames "
83  "include the Global frame and the robot root frames.",
84  .rootProfileDefaults = defaultParameters.toAron(),
86  .parametersType = Params::ToAronType(),
87  };
88  }
89 
90 
91 } // namespace armarx::view_selection::skills
armarx::view_selection::skills
This file is part of ArmarX.
Definition: constants.cpp:25
armarx::skills::SimpleSpecializedSkill< arondto::SetCustomGazeTargetParams >::init
Skill::InitResult init() final
Definition: SimpleSpecializedSkill.h:62
armarx::skills::SimpleSpecializedSkill< arondto::SetCustomGazeTargetParams >::ParamType
arondto::SetCustomGazeTargetParams ParamType
Definition: SimpleSpecializedSkill.h:14
armarx::skills::SkillID::skillName
std::string skillName
Definition: SkillID.h:41
armarx::skills::SkillDescription
Definition: SkillDescription.h:17
boost::target
Vertex target(const detail::edge_base< Directed, Vertex > &e, const PCG &)
Definition: point_cloud_graph.h:668
armarx::view_selection::skills::constants::skill_names::SetCustomGazeTarget
const std::string SetCustomGazeTarget
Definition: constants.cpp:49
armarx::view_selection::skills::SetCustomGazeTarget::SetCustomGazeTarget
SetCustomGazeTarget(const Context &services)
Definition: SetCustomGazeTarget.cpp:14
ARMARX_CHECK
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
Definition: ExpressionException.h:82
armarx::view_selection::gaze_targets::AttentionType::TaskDriven
@ TaskDriven
Task-Driven attention has highest priority.
armarx::FramedPosition
The FramedPosition class.
Definition: FramedPose.h:157
armarx::view_selection::skills::SetCustomGazeTarget::Context
Definition: SetCustomGazeTarget.h:42
armarx::skills::SkillDescription::skillId
SkillID skillId
Definition: SkillDescription.h:19
armarx::skills::SimpleSpecializedSkill
Definition: SimpleSpecializedSkill.h:10
armarx::skills::Skill::MainResult
A result struct for th main method of a skill.
Definition: Skill.h:39
armarx::view_selection::skills::SetCustomGazeTarget::connect
void connect(const Context &srv)
Definition: SetCustomGazeTarget.cpp:20
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
armarx::skills::SimpleSpecializedSkill< arondto::SetCustomGazeTargetParams >::main
Skill::MainResult main() final
Definition: SimpleSpecializedSkill.h:71
armarx::core::time::Duration
Represents a duration.
Definition: Duration.h:16
armarx::skills::Skill::InitResult
A result struct for skill initialization.
Definition: Skill.h:27
SetCustomGazeTarget.h
GazeTarget.h
armarx::skills::SkillID
Definition: SkillID.h:14
armarx::view_selection::skills::SetCustomGazeTarget::DefaultSkillDescription
static armarx::skills::SkillDescription DefaultSkillDescription()
Definition: SetCustomGazeTarget.cpp:69
armarx::core::time::Duration::MilliSeconds
static Duration MilliSeconds(std::int64_t milliSeconds)
Constructs a duration in milliseconds.
Definition: Duration.cpp:48