LookAtHumanHand.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @author Fabian Reister ( fabian dot reister at kit dot edu )
17  * @date 2023
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
26 
30 
32 #include <armarx/view_selection/skills/aron/LookAtHumanHand.aron.generated.h>
35 
37 
39 {
41  virtual public armarx::skills::SimpleSpecializedSkill<arondto::LookAtHumanHandParams>
42  {
43  public:
44  using Params = arondto::LookAtHumanHandParams;
46 
47  struct Services
48  {
53  };
54 
55  LookAtHumanHand(const Services& srv); // FIXME add params
56 
57  private:
59 
61 
62  void update();
63  std::optional<armem::human::HumanPose> getLatestPoseOfRequestedHuman();
64 
65  void onStopRequested() override;
66 
67  public:
70  {
71  ParamType defaultParameters;
72  // TODO(): set parameter defaults
73 
76  .description = "Look at the face of a human specified by their tracking ID.",
77  .rootProfileDefaults = defaultParameters.toAron(),
79  .parametersType = Params::ToAronType()};
80  }
81 
82  protected:
83  private:
84  std::optional<Services> srv_;
85 
86  std::string humanTrackingId;
88  std::unique_ptr<target_provider::handover::RobotReceiver> handoverTargetProvider;
89 
90  struct
91  {
92  double updatePeriodMs = 1000. / 30.;
93  } properties;
94  };
95 
96 } // namespace armarx::view_selection::skills
armarx::view_selection::skills
This file is part of ArmarX.
Definition: constants.cpp:25
armarx::view_selection::skills::constants::skill_names::LookAtHumanHand
const std::string LookAtHumanHand
Definition: constants.cpp:39
armarx::skills::SimpleSpecializedSkill< arondto::LookAtHumanHandParams >::init
Skill::InitResult init() final
Definition: SimpleSpecializedSkill.h:62
armarx::view_selection::skills::LookAtHumanHand::Services::robot
const VirtualRobot::RobotPtr & robot
Definition: LookAtHumanHand.h:52
armarx::skills::SimpleSpecializedSkill< arondto::LookAtHumanHandParams >::ParamType
arondto::LookAtHumanHandParams ParamType
Definition: SimpleSpecializedSkill.h:14
armarx::view_selection::skills::LookAtHumanHand::updatePeriodMs
double updatePeriodMs
Definition: LookAtHumanHand.h:92
armarx::skills::SkillID::skillName
std::string skillName
Definition: SkillID.h:41
armarx::skills::SkillDescription
Definition: SkillDescription.h:17
armarx::armem::robot_state::RobotReader::Hand
Hand
Definition: RobotReader.h:91
Duration.h
armarx::view_selection::client::ViewSelection
Definition: ViewSelection.h:37
SimpleSpecializedSkill.h
armarx::skills::SimpleSpecializedSkill::SpecializedMainInput
Definition: SimpleSpecializedSkill.h:24
armarx::core::time::Duration::Seconds
static Duration Seconds(std::int64_t seconds)
Constructs a duration in seconds.
Definition: Duration.cpp:72
armarx::armem::MemoryID
A memory ID.
Definition: MemoryID.h:47
ManagedIceObject.h
RobotReceiver.h
ViewSelection.h
armarx::skills::SkillDescription::skillId
SkillID skillId
Definition: SkillDescription.h:19
armarx::skills::SimpleSpecializedSkill
Definition: SimpleSpecializedSkill.h:10
armarx::view_selection::skills::LookAtHumanHand::Services::humanPoseMemoryID
const armarx::armem::MemoryID humanPoseMemoryID
Definition: LookAtHumanHand.h:51
armarx::view_selection::skills::LookAtHumanHand::LookAtHumanHand
LookAtHumanHand(const Services &srv)
Definition: LookAtHumanHand.cpp:10
RobotReader.h
constants.h
armarx::skills::Skill::MainResult
A result struct for th main method of a skill.
Definition: Skill.h:39
SimpleSkill.h
HumanPoseReader.h
armarx::view_selection::skills::LookAtHumanHand::Params
arondto::LookAtHumanHandParams Params
Definition: LookAtHumanHand.h:44
armarx::skills::SimpleSpecializedSkill::SpecializedInitInput
Definition: SimpleSpecializedSkill.h:18
armarx::skills::SimpleSpecializedSkill< arondto::LookAtHumanHandParams >::main
Skill::MainResult main() final
Definition: SimpleSpecializedSkill.h:71
armarx::view_selection::skills::LookAtHumanHand::Services::viewSelectionClient
client::ViewSelection & viewSelectionClient
Definition: LookAtHumanHand.h:50
armarx::view_selection::skills::LookAtHumanHand::Services::memoryNameSystem
armem::client::MemoryNameSystem & memoryNameSystem
Definition: LookAtHumanHand.h:49
armarx::view_selection::skills::LookAtHumanHand::DefaultSkillDescription
static armarx::skills::SkillDescription DefaultSkillDescription()
Definition: LookAtHumanHand.h:69
armarx::skills::Skill::InitResult
A result struct for skill initialization.
Definition: Skill.h:27
armarx::view_selection::skills::LookAtHumanHand::Services
Definition: LookAtHumanHand.h:47
armarx::armem::client::MemoryNameSystem
The memory name system (MNS) client.
Definition: MemoryNameSystem.h:73
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:19
armarx::view_selection::skills::LookAtHumanHand
Definition: LookAtHumanHand.h:40