RobotReceiver.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 2022
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
26 
28 {
29 
30  /**
31  * @brief The robot is acting as the receiver
32  *
33  * The receiver will look at the giver's hand during reach and transfer phase. Once it received the object, it will look at the giver's face.
34  *
35  */
37  {
38  public:
40 
41  struct Params
42  {
43 
44  //! the distance below which the hand targets will be generated.
46 
48 
51 
52  float handPriorityScaling = 1000;
53 
54  float headPriority = 100;
55 
56  float minHandoverDistance = 500;
57  };
58 
59  RobotReceiver(const std::string& humanTrackingId, const VirtualRobot::RobotPtr& robot);
60 
61  std::vector<gaze_targets::GazeTarget>
62  updateTargets(const armem::human::HumanPose& human) override;
63 
64  // TODO: used to be private, but is now also needed by lookAtHumanFace/lookAtHumanHand skills
65  /*private:*/
66  std::vector<gaze_targets::GazeTarget>
68 
69  std::vector<gaze_targets::GazeTarget>
71 
72  const Params params;
73  };
74 } // namespace armarx::view_selection::target_provider::handover
armarx::view_selection::target_provider::handover::RobotReceiver::Params::minHandReachoutDistance
float minHandReachoutDistance
Definition: RobotReceiver.h:49
armarx::view_selection::target_provider::handover
This file is part of ArmarX.
Definition: HandoverTargetProvider.cpp:3
armarx::view_selection::target_provider::handover::HandoverTargetProvider
Definition: HandoverTargetProvider.h:34
armarx::view_selection::target_provider::handover::RobotReceiver::Params::headPriority
float headPriority
Definition: RobotReceiver.h:54
armarx::view_selection::target_provider::handover::HandoverTargetProvider::HandoverTargetProvider
HandoverTargetProvider(const std::string &humanTrackingId, const VirtualRobot::RobotPtr &robot)
Definition: HandoverTargetProvider.cpp:5
armarx::view_selection::target_provider::handover::RobotReceiver::Params::maxHandReachoutDistance
float maxHandReachoutDistance
Definition: RobotReceiver.h:50
armarx::view_selection::target_provider::handover::RobotReceiver::Params::minHandoverDistance
float minHandoverDistance
Definition: RobotReceiver.h:56
armarx::view_selection::target_provider::handover::RobotReceiver::Params
Definition: RobotReceiver.h:41
armarx::view_selection::target_provider::handover::RobotReceiver::Params::maxHandoverInitializationDistance
float maxHandoverInitializationDistance
the distance below which the hand targets will be generated.
Definition: RobotReceiver.h:45
armarx::armem::human::HumanPose
Definition: types.h:30
armarx::view_selection::target_provider::handover::RobotReceiver::RobotReceiver
RobotReceiver(const std::string &humanTrackingId, const VirtualRobot::RobotPtr &robot)
Definition: RobotReceiver.cpp:37
HandoverTargetProvider.h
armarx::view_selection::target_provider::handover::RobotReceiver::Params::handPriorityScaling
float handPriorityScaling
Definition: RobotReceiver.h:52
armarx::view_selection::target_provider::handover::RobotReceiver::Params::maxHandsInitializationDistance
float maxHandsInitializationDistance
Definition: RobotReceiver.h:47
armarx::view_selection::target_provider::handover::RobotReceiver
The robot is acting as the receiver.
Definition: RobotReceiver.h:36
armarx::view_selection::target_provider::handover::RobotReceiver::updateTargetsPreHandover
std::vector< gaze_targets::GazeTarget > updateTargetsPreHandover(const armem::human::HumanPose &human) const
Definition: RobotReceiver.cpp:62
armarx::view_selection::target_provider::handover::RobotReceiver::params
const Params params
Definition: RobotReceiver.h:72
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:19
armarx::view_selection::target_provider::handover::RobotReceiver::updateTargetsAfterHandover
std::vector< gaze_targets::GazeTarget > updateTargetsAfterHandover(const armem::human::HumanPose &human) const
Definition: RobotReceiver.cpp:239
armarx::view_selection::target_provider::handover::RobotReceiver::updateTargets
std::vector< gaze_targets::GazeTarget > updateTargets(const armem::human::HumanPose &human) override
Definition: RobotReceiver.cpp:44
types.h