RobotGiver.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
27
29{
30
31 /**
32 * @brief The robot is acting as the giver
33 *
34 * The giver will first look at the receiver's face during reach. At a certain distance to the receiver, it will then look at the receiver's hand.
35 * Once the object is exchanged, the giver will then look at the receivers face.
36 */
38 {
39 public:
41
42 struct Params
43 {
44
45 //! the distance below which the hand targets will be generated.
47
50
51 float handPriorityScaling = 1000;
52
53 float headPriority = 100;
54
56 };
57
58 std::vector<gaze_targets::GazeTarget>
60
61 protected:
62 private:
63 std::vector<gaze_targets::GazeTarget>
64 updateTargetsPreHandover(const armem::human::HumanPose& human) const;
65
66 std::vector<gaze_targets::GazeTarget>
67 updateTargetsAfterHandover(const armem::human::HumanPose& human) const;
68
69 const Params params;
70
71 Phase phase_;
72 };
73} // namespace armarx::view_selection::target_provider::handover
HandoverTargetProvider(const std::string &humanTrackingId, const VirtualRobot::RobotPtr &robot)
std::vector< gaze_targets::GazeTarget > updateTargets(const armem::human::HumanPose &human) override
HandoverTargetProvider(const std::string &humanTrackingId, const VirtualRobot::RobotPtr &robot)
float maxHandoverInitializationDistance
the distance below which the hand targets will be generated.
Definition RobotGiver.h:46