ProxemicZoneCreator.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 Tobias Gröger ( tobias dot groeger at student dot kit dot edu )
17 * @date 2022
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21#pragma once
22
24
26{
27
29 {
30
31 public:
33 {
34 float intimateWeight = 2.0;
35 float personalWeight = 1.0;
36
37 float intimateRadius = 400;
38 float personalRadius = 400;
39
40 float movementInfluence = 0.8;
41 // an offset applied to the intimate and personal zone in the coordinate system of the human
42 // a positive x-value means an offset to the right
43 // a positive y-value means an offset to the front
44 Eigen::Vector2f offset{50, 50};
45 };
46
48 {
49 intimatePenalty = {.minDistance = 0.1, .epsilon = 0, .exponent = 1.2};
50 personalPenalty = {.minDistance = 0.1, .epsilon = 0, .exponent = 1.2};
51 }
52
54 ExponentialPenaltyModel& intimatePenalty,
55 ExponentialPenaltyModel& personalPenalty) :
56 params(params), intimatePenalty(intimatePenalty), personalPenalty(personalPenalty)
57 {
58 }
59
61
62 private:
63 ProxemicParameters params;
64 ExponentialPenaltyModel intimatePenalty;
65 ExponentialPenaltyModel personalPenalty;
66 };
67
68} // namespace armarx::navigation::human
ProxemicZoneCreator(ProxemicParameters &params, ExponentialPenaltyModel &intimatePenalty, ExponentialPenaltyModel &personalPenalty)
ProxemicZones createProxemicZones(const Human &human)
This file is part of ArmarX.
std::vector< ProxemicZone > ProxemicZones
Definition types.h:84