24 #ifndef _PLUGINS_COLLI_SEARCH_OG_LASER_H_ 25 #define _PLUGINS_COLLI_SEARCH_OG_LASER_H_ 27 #include "../common/types.h" 28 #include "../utils/occupancygrid/occupancygrid.h" 30 #include <tf/transformer.h> 31 #include <utils/math/types.h> 32 #include <utils/time/time.h> 39 class Laser360Interface;
41 class ColliObstacleMap;
60 float update_occ_grid(
int mid_x,
int mid_y,
float inc,
float vx,
float vy);
97 float obstacle_in_path_distance(
float vx,
float vy);
101 std::vector<LaserPoint> *transform_laser_points(std::vector<LaserPoint> &laser_points,
105 void integrate_old_readings(
int mid_x,
112 void integrate_new_readings(
int mid_x,
124 void integrate_obstacle(
int x,
int y,
int width,
int height);
127 std::string reference_frame_;
128 std::string laser_frame_;
129 bool cfg_write_spam_debug_;
133 std::shared_ptr<RoboShapeColli> robo_shape_;
134 std::shared_ptr<ColliObstacleMap> obstacle_map_;
136 std::vector<LaserPoint> new_readings_;
137 std::vector<LaserPoint> old_readings_;
146 std::vector<bool> if_buffer_filled_;
149 float max_history_length_, min_history_length_;
150 int initial_history_size_;
153 float min_laser_length_;
154 float obstacle_distance_;
157 cfg_emergency_stop_beams_used_;
159 bool cfg_obstacle_inc_;
160 bool cfg_force_elipse_obstacle_;
162 bool cfg_delete_invisible_old_obstacles_;
163 int cfg_delete_invisible_old_obstacles_angle_min_;
164 int cfg_delete_invisible_old_obstacles_angle_max_;
Laser360Interface Fawkes BlackBoard Interface.
LaserOccupancyGrid(Laser360Interface *laser, Logger *logger, Configuration *config, tf::Transformer *listener, int width=150, int height=150, int cell_width=5, int cell_height=5)
Constructor.
void set_base_offset(float x, float y)
Set the offset of base_link from laser.
Cartesian coordinates (2D).
Fawkes library namespace.
point_t get_laser_position()
Get the laser's position in the grid.
A class for handling time.
colli_cell_cost_t get_cell_costs() const
Get cell costs.
float update_occ_grid(int mid_x, int mid_y, float inc, float vx, float vy)
Put the laser readings in the occupancy grid.
Costs of occupancy-grid cells.
void reset_old()
Reset all old readings and forget about the world state!
This OccGrid is derived by the Occupancy Grid originally from Andreas Strack, but modified for speed ...
Occupancy Grid class for general use.
~LaserOccupancyGrid()
Descturctor.
Point with cartesian coordinates as signed integers.
Interface for configuration handling.