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 Fabian Reister ( fabian dot reister at kit dot edu )
17
* @author Christian R. G. Dreher ( c dot dreher at kit dot edu )
18
* @date 2021
19
* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20
* GNU General Public License
21
*/
22
23
#pragma once
24
25
#include <chrono>
26
#include <mutex>
27
#include <optional>
28
29
#include <Eigen/Geometry>
30
31
#include <SimoxUtility/meta/enum/EnumNames.hpp>
32
#include <VirtualRobot/VirtualRobot.h>
33
34
// #include <ArmarXCore/interface/serialization/Eigen/Eigen_fdi.h>
35
36
#include <
armarx/navigation/core/DynamicScene.h
>
37
#include <
armarx/navigation/core/Graph.h
>
38
#include <
armarx/navigation/core/StaticScene.h
>
39
#include <
armarx/navigation/core/basic_types.h
>
40
41
namespace
armarx::navigation::core
42
{
43
enum class
NavigationFrame
44
{
45
Relative
,
46
Absolute
47
};
48
49
inline
const
simox::meta::EnumNames<NavigationFrame>
NavigationFrameNames
{
50
{
NavigationFrame::Relative
,
"Relative"
},
51
{
NavigationFrame::Absolute
,
"Absolute"
}};
52
53
54
struct
VelocityLimits
55
{
56
float
linear
;
57
float
angular
;
58
};
59
60
61
62
63
64
class
TimeServerInterface;
65
66
struct
SceneGraph
67
{
68
core::Graphs
subgraphs
;
69
};
70
71
struct
Scene
72
{
73
DateTime
timestamp
=
DateTime::Invalid
();
74
75
std::optional<core::StaticScene>
staticScene
= std::nullopt;
76
std::optional<core::DynamicScene>
dynamicScene
= std::nullopt;
77
78
VirtualRobot::RobotPtr
robot
;
79
core::Twist
platformVelocity
=
core::Twist::Zero
();
80
81
std::optional<core::SceneGraph>
graph
;
82
};
83
84
struct
PIDParams
85
{
86
float
Kp
{1.0};
87
float
Ki
{0.F};
88
float
Kd
{0.F};
89
};
90
91
struct
TwistLimits
92
{
93
float
linear
{
std::numeric_limits<float>::max
()};
94
float
angular
{
std::numeric_limits<float>::max
()};
95
};
96
97
}
// namespace armarx::navigation::core
armarx::navigation::core::PIDParams
Definition:
types.h:84
armarx::navigation::core::Scene::graph
std::optional< core::SceneGraph > graph
Definition:
types.h:81
armarx::navigation::core::Scene::robot
VirtualRobot::RobotPtr robot
Definition:
types.h:78
armarx::navigation::core::Scene::staticScene
std::optional< core::StaticScene > staticScene
Definition:
types.h:75
armarx::navigation::core::NavigationFrame
NavigationFrame
Definition:
types.h:43
basic_types.h
armarx::navigation::core::Twist::Zero
static Twist Zero()
Definition:
basic_types.cpp:13
DynamicScene.h
armarx::navigation::core::Graphs
std::vector< Graph > Graphs
Definition:
Graph.h:104
armarx::navigation::core
This file is part of ArmarX.
Definition:
aron_conversions.cpp:13
StaticScene.h
armarx::navigation::core::TwistLimits::linear
float linear
Definition:
types.h:93
armarx::navigation::core::VelocityLimits::angular
float angular
Definition:
types.h:57
armarx::navigation::core::SceneGraph::subgraphs
core::Graphs subgraphs
Definition:
types.h:68
armarx::navigation::core::TwistLimits::angular
float angular
Definition:
types.h:94
armarx::navigation::core::Twist
Definition:
basic_types.h:53
armarx::navigation::core::NavigationFrameNames
const simox::meta::EnumNames< NavigationFrame > NavigationFrameNames
Definition:
types.h:49
armarx::navigation::core::Scene::platformVelocity
core::Twist platformVelocity
Definition:
types.h:79
armarx::navigation::core::Scene::timestamp
DateTime timestamp
Definition:
types.h:73
armarx::navigation::core::NavigationFrame::Absolute
@ Absolute
armarx::navigation::core::PIDParams::Ki
float Ki
Definition:
types.h:87
armarx::navigation::core::TwistLimits
Definition:
types.h:91
max
T max(T t1, T t2)
Definition:
gdiam.h:48
armarx::navigation::core::Scene
Definition:
types.h:71
armarx::navigation::core::PIDParams::Kp
float Kp
Definition:
types.h:86
armarx::navigation::core::Scene::dynamicScene
std::optional< core::DynamicScene > dynamicScene
Definition:
types.h:76
armarx::navigation::core::PIDParams::Kd
float Kd
Definition:
types.h:88
armarx::core::time::DateTime
Represents a point in time.
Definition:
DateTime.h:24
Graph.h
armarx::navigation::core::NavigationFrame::Relative
@ Relative
armarx::navigation::core::VelocityLimits::linear
float linear
Definition:
types.h:56
armarx::navigation::core::VelocityLimits
Definition:
types.h:54
armarx::navigation::core::SceneGraph
Definition:
types.h:66
armarx::core::time::DateTime::Invalid
static DateTime Invalid()
Definition:
DateTime.cpp:60
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition:
Bus.h:18
armarx
navigation
core
types.h
Generated on Sat Sep 14 2024 09:13:47 for armarx_documentation by
1.8.17