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 <vector>
25 
26 #include <VirtualRobot/MathTools.h>
27 
28 #include <RobotAPI/interface/units/LaserScannerUnit.h>
30 
32 {
33 
34  struct Ellipsoid
35  {
36  Eigen::Isometry3f pose = Eigen::Isometry3f::Identity();
37 
38  Eigen::Vector2f radii = Eigen::Vector2f::Zero();
39  };
40 
41  struct Circle
42  {
43  Eigen::Vector2f center = Eigen::Vector2f::Zero();
44  float radius = 0.F;
45  };
46 
48  {
49  using Points = std::vector<Eigen::Vector2f>;
50  using Chain = Points;
51 
53 
56 
58 
60  };
61 
63  {
64  // TODO(fabian.reister): framed pose
65  std::string frame;
66  Eigen::Isometry3f frameGlobalPose;
67 
68  std::vector<LaserScannerFeature> features;
69 
70 
71  // std::vector<Ellipsoid> linesAsEllipsoids(float axisLength) const;
72  };
73 
74 
75 } // namespace armarx::navigation::memory
armarx::navigation::memory::LaserScannerFeatures
Definition: types.h:62
armarx::navigation::memory
Definition: ComponentInterface.ice:37
armarx::navigation::memory::LaserScannerFeature::ellipsoid
Ellipsoid ellipsoid
Definition: types.h:55
armarx::navigation::memory::LaserScannerFeature::points
Points points
Definition: types.h:59
armarx::navigation::memory::Ellipsoid::pose
Eigen::Isometry3f pose
Definition: types.h:36
armarx::navigation::memory::Ellipsoid::radii
Eigen::Vector2f radii
Definition: types.h:38
armarx::navigation::memory::LaserScannerFeatures::features
std::vector< LaserScannerFeature > features
Definition: types.h:68
armarx::navigation::memory::LaserScannerFeatures::frameGlobalPose
Eigen::Isometry3f frameGlobalPose
Definition: types.h:66
armarx::navigation::memory::LaserScannerFeature::chain
Chain chain
Definition: types.h:57
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:523
armarx::navigation::memory::Circle::center
Eigen::Vector2f center
Definition: types.h:43
armarx::navigation::memory::Ellipsoid
Definition: types.h:34
armarx::navigation::memory::Circle::radius
float radius
Definition: types.h:44
armarx::navigation::memory::Circle
Definition: types.h:41
armarx::navigation::memory::LaserScannerFeature::circle
Circle circle
Definition: types.h:54
armarx::navigation::memory::LaserScannerFeature::Chain
Points Chain
Definition: types.h:50
armarx::navigation::memory::LaserScannerFeatures::frame
std::string frame
Definition: types.h:65
Time.h
armarx::navigation::memory::LaserScannerFeature::Points
std::vector< Eigen::Vector2f > Points
Definition: types.h:49
armarx::navigation::memory::LaserScannerFeature
Definition: types.h:47
armarx::navigation::memory::LaserScannerFeature::convexHull
Points convexHull
Definition: types.h:52