toolbox_types.hpp
Go to the documentation of this file.
1 /*
2  * toolbox_types
3  * Copyright (c) 2019, Samsung Research America
4  *
5  * THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
6  * COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
7  * COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
8  * AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
9  *
10  * BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO
11  * BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS
12  * CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
13  * CONDITIONS.
14  *
15  */
16 
17 /* Author: Steven Macenski */
18 
19 #ifndef SLAM_TOOLBOX_TOOLBOX_TYPES_H_
20 #define SLAM_TOOLBOX_TOOLBOX_TYPES_H_
21 
22 #include <map>
23 #include <vector>
24 
25 #include "tf/transform_datatypes.h"
26 #include "tf2_ros/buffer.h"
28 #include "sensor_msgs/LaserScan.h"
29 #include "geometry_msgs/PoseWithCovarianceStamped.h"
31 #include "karto_sdk/Mapper.h"
32 
33 // compute linear index for given map coords
34 #define MAP_IDX(sx, i, j) ((sx) * (j) + (i))
35 
36 namespace toolbox_types
37 {
38 
39 // object containing a scan pointer and a position
40 struct PosedScan
41 {
42  PosedScan(sensor_msgs::LaserScan::ConstPtr scan_in, karto::Pose2 pose_in) :
43  scan(scan_in), pose(pose_in)
44  {
45  }
46  sensor_msgs::LaserScan::ConstPtr scan;
48 };
49 
50 // object containing a vertex pointer and an updated score
52 {
54  : vertex_(vertex), score_(score)
55  {
56  }
57 
58  double GetScore()
59  {
60  return score_;
61  }
62 
64  {
65  return vertex_;
66  }
67 
69  double score_;
70 };
71 
72 typedef std::vector<ScoredVertex> ScoredVertices;
73 typedef std::vector<karto::Vertex<karto::LocalizedRangeScan>*> Vertices;
74 
75 // types of pause functionality available
77 {
81 };
82 
83 // types of sensor processing
85 {
86  PROCESS = 0,
90 };
91 
92 // Pause state
94 {
96  {
97  state_map_[NEW_MEASUREMENTS] = false;
98  state_map_[VISUALIZING_GRAPH] = false;
99  state_map_[PROCESSING] = false;
100  };
101 
102  void set(const PausedApplication& app, const bool& state)
103  {
104  boost::mutex::scoped_lock lock(pause_mutex_);
105  state_map_[app] = state;
106  };
107 
108  bool get(const PausedApplication& app)
109  {
110  boost::mutex::scoped_lock lock(pause_mutex_);
111  return state_map_[app];
112  };
113 
114  std::map<PausedApplication, bool> state_map_;
115  boost::mutex pause_mutex_;
116 };
117 
118 typedef std::map<karto::Name, std::map<int, karto::Vertex<karto::LocalizedRangeScan>*>> VerticeMap;
119 typedef std::vector<karto::Edge<karto::LocalizedRangeScan>*> EdgeVector;
120 typedef std::map<int, karto::Vertex<karto::LocalizedRangeScan>*> ScanMap;
121 typedef std::vector<karto::Vertex<karto::LocalizedRangeScan>*> ScanVector;
122 typedef slam_toolbox_msgs::DeserializePoseGraph::Request procType;
123 
124 typedef std::unordered_map<int, Eigen::Vector3d>::iterator GraphIterator;
125 typedef std::unordered_map<int, Eigen::Vector3d>::const_iterator ConstGraphIterator;
126 
127 } // end namespace
128 
129 #endif //SLAM_TOOLBOX_TOOLBOX_TYPES_H_
app
ScoredVertex(karto::Vertex< karto::LocalizedRangeScan > *vertex, double score)
sensor_msgs::LaserScan::ConstPtr scan
karto::Vertex< karto::LocalizedRangeScan > * GetVertex()
std::vector< karto::Vertex< karto::LocalizedRangeScan > * > Vertices
std::vector< karto::Edge< karto::LocalizedRangeScan > * > EdgeVector
karto::Vertex< karto::LocalizedRangeScan > * vertex_
std::unordered_map< int, Eigen::Vector3d >::const_iterator ConstGraphIterator
std::vector< karto::Vertex< karto::LocalizedRangeScan > * > ScanVector
std::vector< ScoredVertex > ScoredVertices
std::map< PausedApplication, bool > state_map_
std::map< karto::Name, std::map< int, karto::Vertex< karto::LocalizedRangeScan > * > > VerticeMap
slam_toolbox_msgs::DeserializePoseGraph::Request procType
PosedScan(sensor_msgs::LaserScan::ConstPtr scan_in, karto::Pose2 pose_in)
std::map< int, karto::Vertex< karto::LocalizedRangeScan > * > ScanMap
std::unordered_map< int, Eigen::Vector3d >::iterator GraphIterator


slam_toolbox
Author(s): Steve Macenski
autogenerated on Mon Feb 28 2022 23:46:49