ed_sensor_integration
kinect/updater.h
Go to the documentation of this file.
1 #ifndef ED_KINECT_UPDATER_H_
2 #define ED_KINECT_UPDATER_H_
3 
4 
5 #include "ed/kinect/fitter.h"
6 #include "ed/kinect/segmenter.h"
8 
9 #include <cv_bridge/cv_bridge.h>
10 #include <pcl/point_cloud.h>
11 #include <pcl/point_types.h>
12 #include <pcl_conversions/pcl_conversions.h>
14 
15 #include <filesystem>
16 #include <map>
17 #include <string>
18 #include <vector>
19 // ----------------------------------------------------------------------------------------------------
20 
22 {
24 
25  // Symbolic description of area to be updated (e.g. "on_top_of cabinet")
27 
28  // When applying background removal, amount of padding given to the world model (the more padding
29  // the points are 'cut away')
31 
32  // When refitting an entity, this states the maximum change in yaw (in radians), i.e., the fitted
33  // yaw will deviate at most 'max_yaw_change' from the estimated yaw
35 
36  // Should the supporting entity be fitted
38 };
39 
40 // ----------------------------------------------------------------------------------------------------
41 
43 {
44  UpdateResult(ed::UpdateRequest& update_req_) : update_req(update_req_) {}
45 
50 };
51 
52 // ----------------------------------------------------------------------------------------------------
53 
54 class Updater
55 {
56 
57 public:
58 
60 
61  ~Updater();
62 
63  bool update(const ed::WorldModel& world, const rgbd::ImageConstPtr& image, const geo::Pose3D& sensor_pose,
64  const UpdateRequest& req, UpdateResult& res);
65 
66 private:
79  void publishSegmentationResults(const cv::Mat& filtered_depth_image, const cv::Mat& rgb,
80  const geo::Pose3D& sensor_pose, std::vector<cv::Mat>& clustered_images,
81  const std::vector<cv::Rect>& boxes, std::vector<EntityUpdate>& res_updates);
82 
84 
86 
87  // Stores for each segmented entity with which area description it was found
89 
90  //For displaying SAM MASK
91  ros::Publisher mask_pub_;
92  ros::Publisher cloud_pub_;
93  ros::Publisher box_pub_;
94  bool verbose;
95 
96 };
97 
98 #endif
Updater::verbose
bool verbose
Definition: kinect/updater.h:94
UpdateResult::update_req
ed::UpdateRequest & update_req
Definition: kinect/updater.h:48
ed::UpdateRequest
std::string
std::shared_ptr
vector
std::stringstream
geo::Transform3T
filesystem
UpdateRequest::background_padding
double background_padding
Definition: kinect/updater.h:30
image
cv::Mat image
UpdateResult::entity_updates
std::vector< EntityUpdate > entity_updates
Definition: kinect/updater.h:46
tue::config::ReaderWriter
segmenter.h
Updater
Definition: kinect/updater.h:54
Updater::~Updater
~Updater()
Definition: kinect/updater.cpp:49
UpdateResult::error
std::stringstream error
Definition: kinect/updater.h:49
Updater::Updater
Updater(tue::Configuration config)
Definition: kinect/updater.cpp:24
Updater::cloud_pub_
ros::Publisher cloud_pub_
Definition: kinect/updater.h:92
req
string req
Updater::fitter_
Fitter fitter_
Definition: kinect/updater.h:83
UpdateRequest::UpdateRequest
UpdateRequest()
Definition: kinect/updater.h:23
map
UpdateRequest::area_description
std::string area_description
Definition: kinect/updater.h:26
ed::WorldModel
UpdateResult::removed_entity_ids
std::vector< ed::UUID > removed_entity_ids
Definition: kinect/updater.h:47
UpdateRequest::max_yaw_change
double max_yaw_change
Definition: kinect/updater.h:34
configuration.h
entity_update.h
Updater::publishSegmentationResults
void publishSegmentationResults(const cv::Mat &filtered_depth_image, const cv::Mat &rgb, const geo::Pose3D &sensor_pose, std::vector< cv::Mat > &clustered_images, const std::vector< cv::Rect > &boxes, std::vector< EntityUpdate > &res_updates)
Publish segmentation results and pointcloud estimation as ROS messages.
Definition: kinect/updater.cpp:306
Updater::update
bool update(const ed::WorldModel &world, const rgbd::ImageConstPtr &image, const geo::Pose3D &sensor_pose, const UpdateRequest &req, UpdateResult &res)
Definition: kinect/updater.cpp:55
UpdateRequest::fit_supporting_entity
bool fit_supporting_entity
Definition: kinect/updater.h:37
UpdateRequest
Definition: kinect/updater.h:21
fitter.h
Updater::mask_pub_
ros::Publisher mask_pub_
Definition: kinect/updater.h:91
UpdateResult::UpdateResult
UpdateResult(ed::UpdateRequest &update_req_)
Definition: kinect/updater.h:44
Fitter
The Fitter class contains the algorithm to do the 2D fit of an entity.
Definition: fitter.h:100
std::unique_ptr< Segmenter >
Updater::box_pub_
ros::Publisher box_pub_
Definition: kinect/updater.h:93
Updater::id_to_area_description_
std::map< ed::UUID, std::string > id_to_area_description_
Definition: kinect/updater.h:88
Updater::segmenter_
std::unique_ptr< Segmenter > segmenter_
Definition: kinect/updater.h:85
UpdateResult
Definition: kinect/updater.h:42
config
tue::config::ReaderWriter config
string