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 = 1000;
39 
40  float movementInfluence = 0.8;
41  // an offset applied to the 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{100, 150};
45  };
46 
47 
49  {
50  intimatePenalty = {.minDistance = 0.1, .epsilon = 0, .exponent = 1.2};
51  personalPenalty = {.minDistance = 0.1, .epsilon = 0, .exponent = 1.2};
52  }
54  ExponentialPenaltyModel& intimatePenalty,
55  ExponentialPenaltyModel& personalPenalty) :
56  params(params), intimatePenalty(intimatePenalty), personalPenalty(personalPenalty)
57  {
58  }
59 
60 
62 
63  private:
64  ProxemicParameters params;
65  ExponentialPenaltyModel intimatePenalty;
66  ExponentialPenaltyModel personalPenalty;
67  };
68 
69 } // namespace armarx::navigation::human
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters::movementInfluence
float movementInfluence
Definition: ProxemicZoneCreator.h:40
armarx::navigation::human::ExponentialPenaltyModel::minDistance
float minDistance
Definition: types.h:68
armarx::navigation::human::Human
Definition: types.h:33
armarx::navigation::human::ProxemicZoneCreator
Definition: ProxemicZoneCreator.h:28
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters::intimateWeight
float intimateWeight
Definition: ProxemicZoneCreator.h:34
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters::intimateRadius
float intimateRadius
Definition: ProxemicZoneCreator.h:37
armarx::navigation::human::ExponentialPenaltyModel
Definition: types.h:66
types.h
armarx::navigation::human
This file is part of ArmarX.
Definition: aron_conversions.cpp:9
armarx::navigation::human::ProxemicZones
std::vector< ProxemicZone > ProxemicZones
Definition: types.h:82
armarx::navigation::human::ProxemicZoneCreator::createProxemicZones
ProxemicZones createProxemicZones(const Human &human)
Definition: ProxemicZoneCreator.cpp:9
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters::personalWeight
float personalWeight
Definition: ProxemicZoneCreator.h:35
armarx::navigation::human::ProxemicZoneCreator::ProxemicZoneCreator
ProxemicZoneCreator(ProxemicParameters &params, ExponentialPenaltyModel &intimatePenalty, ExponentialPenaltyModel &personalPenalty)
Definition: ProxemicZoneCreator.h:53
armarx::navigation::human::ProxemicZoneCreator::ProxemicZoneCreator
ProxemicZoneCreator()
Definition: ProxemicZoneCreator.h:48
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters::personalRadius
float personalRadius
Definition: ProxemicZoneCreator.h:38
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters::offset
Eigen::Vector2f offset
Definition: ProxemicZoneCreator.h:44
armarx::navigation::human::ProxemicZoneCreator::ProxemicParameters
Definition: ProxemicZoneCreator.h:32