Go to the documentation of this file.
4 #include "nav_msgs/OccupancyGrid.h"
5 #include "nav_msgs/GetMap.h"
6 #include "sensor_msgs/LaserScan.h"
14 #ifndef LASER_SIMULATOR
15 #define LASER_SIMULATOR
25 void set_laser_params(std::string frame_id,
double fov,
unsigned int beam_count,
double max_range,
double min_range,
double l_frequency);
28 void set_noise_params(
bool use_model,
double sigma_hit_reading,
double lambda_short_reading,
double z_hit,
double z_short,
double z_max,
double z_rand);
78 nav_msgs::OccupancyGrid
map;
99 std::uniform_real_distribution<double>
selector;
100 std::normal_distribution<double>
p_hit;
101 std::exponential_distribution<double>
p_short;
102 std::uniform_real_distribution<double>
p_rand;
double apply_range_noise(double range_reading)
void set_noise_params(bool use_model, double sigma_hit_reading, double lambda_short_reading, double z_hit, double z_short, double z_max, double z_rand)
void update_loop(const ros::TimerEvent &event)
void update_scan(double x, double y, double theta)
int get_map_occupancy(int x, int y)
double find_map_range(double x, double y, double theta)
sensor_msgs::LaserScan output_scan
std::exponential_distribution< double > p_short
void get_laser_pose(double *x, double *y, double *theta)
nav_msgs::OccupancyGrid map
std::normal_distribution< double > p_hit
void set_laser_params(std::string frame_id, double fov, unsigned int beam_count, double max_range, double min_range, double l_frequency)
std::uniform_real_distribution< double > selector
void get_map2world_coordinates(int map_x, int map_y, double *x, double *y)
std::default_random_engine rand_gen
void get_world2map_coordinates(double x, double y, int *map_x, int *map_y)
LaserScannerSimulator(ros::NodeHandle *nh)
std::uniform_real_distribution< double > p_rand
tf::StampedTransform rob_laser_tf