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  * @date 2021
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
24 #include <filesystem>
25 #include <map>
26 #include <vector>
27 
28 #include <Eigen/Geometry>
29 
32 
35 #include <RobotAPI/libraries/armem_robot_state/aron/Proprioception.aron.generated.h>
36 #include <RobotAPI/libraries/armem_robot_state/aron/RobotDescription.aron.generated.h>
37 
39 {
40 
41  namespace description
42  {
44  {
45  // DateTime timestamp;
46 
47  std::string name;
48  PackagePath xml{"", std::filesystem::path("")};
49 
50  arondto::RobotDescriptionVisualization visualization;
51  arondto::RobotInfo info;
52  };
53 
54  using RobotDescriptions = std::vector<RobotDescription>;
55 
56  std::ostream& operator<<(std::ostream& os, const RobotDescription& rhs);
57 
58 
59  } // namespace description
60 
61  struct Twist
62  {
63  Eigen::Vector3f linear{Eigen::Vector3f::Zero()};
64  Eigen::Vector3f angular{Eigen::Vector3f::Zero()};
65  };
66 
68  {
70  };
71 
72  namespace proprioception
73  {
74 
75  struct ForceTorque
76  {
77  Eigen::Vector3f force;
78  Eigen::Vector3f gravityCompensatedForce;
79  Eigen::Vector3f torque;
80  Eigen::Vector3f gravityCompensatedTorque;
81  };
82 
83  struct JointState
84  {
85  std::string name;
86  float position;
87  };
88 
89  } // namespace proprioception
90 
91  namespace exteroception
92  {
93 
94  struct ToF
95  {
96  using DepthMatrixType = Eigen::MatrixXf; // FIXME uint16
97  using DepthSigmaMatrixType = Eigen::MatrixXf; // FIXME uint8
98  using TargetDetectedMatrixType = Eigen::MatrixXf; // FIXME uint8
99 
103 
104  std::string frame;
105  };
106 
107  } // namespace exteroception
108 
109  struct RobotState
110  {
111  using JointMap = std::map<std::string, float>;
112  using Pose = Eigen::Isometry3f;
113 
115 
118 
119  std::optional<armarx::armem::arondto::Proprioception> proprioception;
120  };
121 
122  struct Robot
123  {
125  std::string instance;
126 
128 
130 
131  std::string name() const;
132  };
133 
134  using Robots = std::vector<Robot>;
135  using RobotStates = std::vector<RobotState>;
136 
137  namespace localization
138  {
139 
141  {
142  std::string parentFrame;
143  std::string frame;
144 
145  std::string agent;
146 
148  };
149 
150  struct Transform
151  {
153 
154  Eigen::Isometry3f transform = Eigen::Isometry3f::Identity();
155 
156  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
157  };
158  } // namespace localization
159 
160 
161 } // namespace armarx::armem::robot_state
armarx::armem::robot_state::description::RobotDescription
Definition: types.h:43
armarx::armem::robot_state::exteroception::ToF::frame
std::string frame
Definition: types.h:104
armarx::armem::robot_state::Robot
Definition: types.h:122
armarx::armem::robot_state::description::operator<<
std::ostream & operator<<(std::ostream &os, const RobotDescription &rhs)
Definition: types.cpp:9
DateTime.h
armarx::armem::robot_state::RobotState
Definition: types.h:109
armarx::armem::robot_state::RobotState::JointMap
std::map< std::string, float > JointMap
Definition: types.h:111
armarx::armem::robot_state
Definition: RobotStatePredictionClient.cpp:42
armarx::armem::robot_state::proprioception::JointState::name
std::string name
Definition: types.h:85
armarx::armem::robot_state::exteroception::ToF
Definition: types.h:94
armarx::armem::robot_state::localization::Transform
Definition: types.h:150
armarx::armem::robot_state::description::RobotDescription::xml
PackagePath xml
Definition: types.h:48
armarx::armem::robot_state::RobotState::jointMap
JointMap jointMap
Definition: types.h:117
armarx::armem::robot_state::RobotState::timestamp
DateTime timestamp
Definition: types.h:114
armarx::armem::robot_state::proprioception::JointState
Definition: types.h:83
armarx::armem::robot_state::proprioception::ForceTorque::torque
Eigen::Vector3f torque
Definition: types.h:79
armarx::armem::robot_state::proprioception::ForceTorque::force
Eigen::Vector3f force
Definition: types.h:77
armarx::armem::robot_state::exteroception::ToF::TargetDetectedMatrixType
Eigen::MatrixXf TargetDetectedMatrixType
Definition: types.h:98
armarx::armem::robot_state::exteroception::ToF::depth
DepthMatrixType depth
Definition: types.h:100
armarx::armem::robot_state::Twist
Definition: types.h:61
armarx::armem::robot_state::RobotStates
std::vector< RobotState > RobotStates
Definition: forward_declarations.h:53
armarx::armem::robot_state::Robots
std::vector< Robot > Robots
Definition: forward_declarations.h:52
armarx::armem::robot_state::PlatformState::twist
Twist twist
Definition: types.h:69
armarx::armem::robot_state::localization::TransformHeader::parentFrame
std::string parentFrame
Definition: types.h:142
armarx::armem::robot_state::Robot::timestamp
DateTime timestamp
Definition: types.h:129
armarx::armem::robot_state::proprioception::ForceTorque::gravityCompensatedTorque
Eigen::Vector3f gravityCompensatedTorque
Definition: types.h:80
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:523
armarx::armem::robot_state::proprioception::JointState::position
float position
Definition: types.h:86
armarx::armem::robot_state::Robot::name
std::string name() const
Definition: types.cpp:20
armarx::armem::robot_state::Robot::config
RobotState config
Definition: types.h:127
armarx::armem::robot_state::RobotState::proprioception
std::optional< armarx::armem::arondto::Proprioception > proprioception
Definition: types.h:119
ObjectID.h
armarx::armem::robot_state::description::RobotDescriptions
std::vector< RobotDescription > RobotDescriptions
Definition: forward_declarations.h:46
armarx::armem::robot_state::localization::TransformHeader::agent
std::string agent
Definition: types.h:145
armarx::armem::robot_state::exteroception::ToF::sigma
DepthSigmaMatrixType sigma
Definition: types.h:101
armarx::armem::robot_state::localization::Transform::transform
Eigen::Isometry3f transform
Definition: types.h:154
armarx::armem::robot_state::description::RobotDescription::visualization
arondto::RobotDescriptionVisualization visualization
Definition: types.h:50
armarx::armem::robot_state::exteroception::ToF::DepthSigmaMatrixType
Eigen::MatrixXf DepthSigmaMatrixType
Definition: types.h:97
armarx::armem::robot_state::RobotState::globalPose
Pose globalPose
Definition: types.h:116
armarx::armem::robot_state::localization::TransformHeader::frame
std::string frame
Definition: types.h:143
armarx::armem::robot_state::Twist::angular
Eigen::Vector3f angular
Definition: types.h:64
armarx::armem::robot_state::Robot::instance
std::string instance
Definition: types.h:125
armarx::armem::robot_state::PlatformState
Definition: types.h:67
armarx::armem::robot_state::localization::Transform::header
TransformHeader header
Definition: types.h:152
armarx::armem::robot_state::Twist::linear
Eigen::Vector3f linear
Definition: types.h:63
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::armem::robot_state::proprioception::ForceTorque
Definition: types.h:75
armarx::armem::robot_state::RobotState::Pose
Eigen::Isometry3f Pose
Definition: types.h:112
armarx::armem::robot_state::description::RobotDescription::name
std::string name
Definition: types.h:47
armarx::armem::robot_state::localization::TransformHeader
Definition: types.h:140
armarx::armem::robot_state::exteroception::ToF::targetDetected
TargetDetectedMatrixType targetDetected
Definition: types.h:102
Time.h
armarx::PackagePath
Definition: PackagePath.h:55
armarx::armem::robot_state::exteroception::ToF::DepthMatrixType
Eigen::MatrixXf DepthMatrixType
Definition: types.h:96
armarx::armem::robot_state::proprioception::ForceTorque::gravityCompensatedForce
Eigen::Vector3f gravityCompensatedForce
Definition: types.h:78
armarx::armem::robot_state::description::RobotDescription::info
arondto::RobotInfo info
Definition: types.h:51
armarx::armem::robot_state::Robot::description
description::RobotDescription description
Definition: types.h:124
armarx::armem::robot_state::localization::TransformHeader::timestamp
armem::Time timestamp
Definition: types.h:147
PackagePath.h