ed_sensor_integration
laser/updater.h
Go to the documentation of this file.
1 #ifndef ED_LASER_LASER_UPDATER_H_
2 #define ED_LASER_LASER_UPDATER_H_
3 
5 
6 #include <ed/convex_hull.h>
7 #include <ed/init_data.h>
8 #include <ed/world_model.h>
9 
11 
12 #include <map>
13 #include <string>
14 
16 
18 {
19 
20 public:
34 
44  void update(const ed::WorldModel& world, std::vector<double>& sensor_ranges,
45  const geo::Pose3D& sensor_pose, const double timestamp, ed::UpdateRequest& req);
46 
56  void configureLaserModel(uint num_beams, double angle_min, double angle_max, double range_min, double range_max)
57  {
58  lrf_model_.setNumBeams(num_beams);
59  lrf_model_.setAngleLimits(angle_min, angle_max);
60  lrf_model_.setRangeLimits(range_min, range_max);
61  }
62 
68  inline void setLaserFrame(const std::string& frame_id) { lrf_frame_ = frame_id; }
69 
73  unsigned int getNumBeams() { return lrf_model_.getNumBeams(); }
74 
82  void renderWorld(const geo::Pose3D& sensor_pose, const ed::WorldModel& world, std::vector<double>& model_ranges);
83 
84  // parameters
85  uint min_segment_size_pixels_; // in nr of laser points
92 
93 private:
100  void associate(std::vector<double>& sensor_ranges, const std::vector<double>& model_ranges);
101 
106 
110  EntityUpdate segmentToConvexHull(const ScanSegment& segment, const geo::Pose3D& sensor_pose, const std::vector<double>& sensor_ranges);
111 
112  // PARAMETERS
115 
117 
118 };
119 
120 #endif
ScanSegment
std::vector< unsigned int > ScanSegment
Definition: laser/updater.h:15
geo::LaserRangeFinder::setAngleLimits
void setAngleLimits(double min, double max)
geo::LaserRangeFinder::getNumBeams
uint getNumBeams() const
ed::UpdateRequest
LaserUpdater::configure
void configure(tue::Configuration &config)
Configure updater.
Definition: laser/updater.cpp:258
std::string
init_data.h
EntityUpdate
collection structure for laser entities
Definition: kinect/entity_update.h:9
geo::LaserRangeFinder::setRangeLimits
void setRangeLimits(double min, double max)
LaserUpdater::min_cluster_size_
double min_cluster_size_
Definition: laser/updater.h:88
LaserUpdater::setLaserFrame
void setLaserFrame(const std::string &frame_id)
set the frame of the laser model
Definition: laser/updater.h:68
std::vector< unsigned int >
convex_hull.h
LaserUpdater::segment_depth_threshold_
double segment_depth_threshold_
Definition: laser/updater.h:87
LaserUpdater::segment
std::vector< ScanSegment > segment(const std::vector< double > &sensor_ranges)
divide the sensor ranges into segments
Definition: laser/updater.cpp:484
LaserUpdater::world_association_distance_
double world_association_distance_
Definition: laser/updater.h:86
LaserUpdater::min_segment_size_pixels_
uint min_segment_size_pixels_
Definition: laser/updater.h:85
geo::Transform3T
LaserUpdater::max_cluster_size_
double max_cluster_size_
Definition: laser/updater.h:89
entity_update.h
LaserUpdater::configureLaserModel
void configureLaserModel(uint num_beams, double angle_min, double angle_max, double range_min, double range_max)
configure the LRF model based on a laserscan message
Definition: laser/updater.h:56
tue::config::ReaderWriter
LaserUpdater::update
void update(const ed::WorldModel &world, std::vector< double > &sensor_ranges, const geo::Pose3D &sensor_pose, const double timestamp, ed::UpdateRequest &req)
update update the worldmodel based on a novel laserscan message.
Definition: laser/updater.cpp:278
LaserRangeFinder.h
LaserUpdater::segmentToConvexHull
EntityUpdate segmentToConvexHull(const ScanSegment &segment, const geo::Pose3D &sensor_pose, const std::vector< double > &sensor_ranges)
convert a segment of ranges to a convex hull
Definition: laser/updater.cpp:565
LaserUpdater::fit_entities_
bool fit_entities_
Definition: laser/updater.h:90
geo::LaserRangeFinder::setNumBeams
void setNumBeams(uint n)
LaserUpdater::renderWorld
void renderWorld(const geo::Pose3D &sensor_pose, const ed::WorldModel &world, std::vector< double > &model_ranges)
render the worldmodel as would be seen by the lrf.
Definition: laser/updater.cpp:451
req
string req
LaserUpdater::max_gap_size_
uint max_gap_size_
Definition: laser/updater.h:91
map
LaserUpdater::getNumBeams
unsigned int getNumBeams()
get the number of beams of the model
Definition: laser/updater.h:73
ed::WorldModel
LaserUpdater::lrf_frame_
std::string lrf_frame_
Definition: laser/updater.h:114
geo::LaserRangeFinder
world_model.h
LaserUpdater::lrf_model_
geo::LaserRangeFinder lrf_model_
Definition: laser/updater.h:113
LaserUpdater::associate
void associate(std::vector< double > &sensor_ranges, const std::vector< double > &model_ranges)
associate: filter sensor information and remove ranges that can be associated with the worldmodel....
Definition: laser/updater.cpp:471
LaserUpdater
Definition: laser/updater.h:17
LaserUpdater::pose_cache
std::map< ed::UUID, geo::Pose3D > pose_cache
Definition: laser/updater.h:116
config
tue::config::ReaderWriter config
string