types.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 
22 #pragma once
23 
24 #include <ArmarXCore/core/time.h>
25 
27 
30 
32 {
33  struct Human
34  {
36  Eigen::Vector2f linearVelocity;
38 
39  core::Pose2D estimateAt(const DateTime& time) const;
40 
42  static Human FromAron(const aron::data::DictPtr& dict);
43  };
44 
45  using Humans = std::vector<Human>;
46 
47 
48  struct HumanGroup
49  {
53 
55  static HumanGroup FromAron(const aron::data::DictPtr& dict);
56  };
57 
58  using HumanGroups = std::vector<HumanGroup>;
59 
61  {
62  float minDistance; // [m]
63  float epsilon; // [m]
64  };
65 
67  {
68  float minDistance; // [m]
69  float epsilon; // [m]
70  float exponent;
71  };
72 
73  struct ProxemicZone
74  {
78  float weight;
79  bool homotopicRelevance = true;
80  };
81 
82  using ProxemicZones = std::vector<ProxemicZone>;
83 
84 } // namespace armarx::navigation::human
armarx::navigation::human::HumanGroup
Definition: types.h:48
armarx::navigation::human::ExponentialPenaltyModel::minDistance
float minDistance
Definition: types.h:68
armarx::navigation::human::Human
Definition: types.h:33
armarx::navigation::human::LinearPenaltyModel
Definition: types.h:60
basic_types.h
armarx::navigation::human::ExponentialPenaltyModel
Definition: types.h:66
armarx::navigation::human::shapes::Polygon
A polygon with arbitrarily many vertices.
Definition: shapes.h:43
armarx::navigation::human::Human::pose
core::Pose2D pose
Definition: types.h:35
armarx::navigation::human
This file is part of ArmarX.
Definition: aron_conversions.cpp:9
armarx::navigation::human::HumanGroup::humans
Humans humans
Definition: types.h:51
armarx::navigation::human::Human::estimateAt
core::Pose2D estimateAt(const DateTime &time) const
Definition: types.cpp:9
armarx::navigation::human::Humans
std::vector< Human > Humans
Definition: types.h:45
Dict.h
armarx::navigation::human::ExponentialPenaltyModel::exponent
float exponent
Definition: types.h:70
armarx::navigation::human::HumanGroup::FromAron
static HumanGroup FromAron(const aron::data::DictPtr &dict)
Definition: types.cpp:47
armarx::navigation::core::Pose2D
Eigen::Isometry2f Pose2D
Definition: basic_types.h:34
armarx::navigation::human::Human::detectionTime
DateTime detectionTime
Definition: types.h:37
armarx::navigation::human::ProxemicZone::homotopicRelevance
bool homotopicRelevance
Definition: types.h:79
armarx::navigation::human::ProxemicZone::weight
float weight
Definition: types.h:78
armarx::navigation::human::ProxemicZones
std::vector< ProxemicZone > ProxemicZones
Definition: types.h:82
armarx::navigation::human::Human::toAron
aron::data::DictPtr toAron() const
Definition: types.cpp:18
armarx::navigation::human::ExponentialPenaltyModel::epsilon
float epsilon
Definition: types.h:69
armarx::navigation::human::ProxemicZone::pose
core::Pose2D pose
Definition: types.h:75
armarx::navigation::human::ProxemicZone
Definition: types.h:73
armarx::navigation::human::HumanGroup::detectionTime
DateTime detectionTime
Definition: types.h:52
armarx::navigation::human::ProxemicZone::penalty
ExponentialPenaltyModel penalty
Definition: types.h:77
armarx::navigation::human::Human::linearVelocity
Eigen::Vector2f linearVelocity
Definition: types.h:36
armarx::navigation::human::ProxemicZone::shape
shapes::Ellipse shape
Definition: types.h:76
armarx::navigation::human::HumanGroup::toAron
aron::data::DictPtr toAron() const
Definition: types.cpp:39
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
shapes.h
armarx::navigation::human::HumanGroup::shape
shapes::Polygon shape
Definition: types.h:50
armarx::navigation::human::LinearPenaltyModel::epsilon
float epsilon
Definition: types.h:63
armarx::navigation::human::Human::FromAron
static Human FromAron(const aron::data::DictPtr &dict)
Definition: types.cpp:26
armarx::navigation::human::shapes::Ellipse
An axis oriented ellipse with half-axes a and b along the x- and y-axis respectively.
Definition: shapes.h:34
time.h
armarx::navigation::human::HumanGroups
std::vector< HumanGroup > HumanGroups
Definition: types.h:58
armarx::navigation::human::LinearPenaltyModel::minDistance
float minDistance
Definition: types.h:62