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_;
Interface for configuration handling.
Laser360Interface Fawkes BlackBoard Interface.
This OccGrid is derived by the Occupancy Grid originally from Andreas Strack, but modified for speed ...
float update_occ_grid(int mid_x, int mid_y, float inc, float vx, float vy)
Put the laser readings in the occupancy grid.
void set_base_offset(float x, float y)
Set the offset of base_link from laser.
~LaserOccupancyGrid()
Descturctor.
colli_cell_cost_t get_cell_costs() const
Get cell costs.
void reset_old()
Reset all old readings and forget about the world state!
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.
point_t get_laser_position()
Get the laser's position in the grid.
Occupancy Grid class for general use.
A class for handling time.
Fawkes library namespace.
Cartesian coordinates (2D).
Costs of occupancy-grid cells.
Point with cartesian coordinates as signed integers.