Public Member Functions | Private Member Functions | Private Attributes | List of all members
LaserScannerSimulator Class Reference

#include <laser_simulator.h>

Public Member Functions

 LaserScannerSimulator (ros::NodeHandle *nh)
 
void set_laser_params (std::string frame_id, double fov, unsigned int beam_count, double max_range, double min_range, double l_frequency)
 
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 start ()
 
void stop ()
 
 ~LaserScannerSimulator ()
 

Private Member Functions

double apply_range_noise (double range_reading)
 
double find_map_range (double x, double y, double theta)
 
void get_laser_pose (double *x, double *y, double *theta)
 
void get_map ()
 
void get_map2world_coordinates (int map_x, int map_y, double *x, double *y)
 
int get_map_occupancy (int x, int y)
 
void get_params ()
 
void get_world2map_coordinates (double x, double y, int *map_x, int *map_y)
 
void update_loop (const ros::TimerEvent &event)
 
void update_scan (double x, double y, double theta)
 

Private Attributes

bool have_map
 
bool is_running
 
int l_beams
 
double l_fov
 
std::string l_frame
 
double l_frequency
 
double l_max_range
 
double l_min_range
 
std::string l_scan_topic
 
double lambda_short
 
ros::Publisher laser_pub
 
ros::Timer loop_timer
 
nav_msgs::OccupancyGrid map
 
std::string map_service
 
ros::NodeHandlenh_ptr
 
sensor_msgs::LaserScan output_scan
 
std::normal_distribution< double > p_hit
 
std::uniform_real_distribution< double > p_rand
 
std::exponential_distribution< double > p_short
 
std::default_random_engine rand_gen
 
tf::StampedTransform rob_laser_tf
 
std::uniform_real_distribution< double > selector
 
double sigma_hit
 
tf::TransformListener tl
 
bool use_noise_model
 
double z_mix [4]
 

Detailed Description

Definition at line 17 of file laser_simulator.h.

Constructor & Destructor Documentation

◆ LaserScannerSimulator()

LaserScannerSimulator::LaserScannerSimulator ( ros::NodeHandle nh)

Definition at line 5 of file laser_simulator.cpp.

◆ ~LaserScannerSimulator()

LaserScannerSimulator::~LaserScannerSimulator ( )

Definition at line 16 of file laser_simulator.cpp.

Member Function Documentation

◆ apply_range_noise()

double LaserScannerSimulator::apply_range_noise ( double  range_reading)
private

applies sensor noise to the calculated range

Definition at line 263 of file laser_simulator.cpp.

◆ find_map_range()

double LaserScannerSimulator::find_map_range ( double  x,
double  y,
double  theta 
)
private

raytracing, calculates intersection with the map for a single ray

Definition at line 156 of file laser_simulator.cpp.

◆ get_laser_pose()

void LaserScannerSimulator::get_laser_pose ( double *  x,
double *  y,
double *  theta 
)
private

finds the pose of the laser in the map frame

Definition at line 100 of file laser_simulator.cpp.

◆ get_map()

void LaserScannerSimulator::get_map ( )
private

gets the current map

Definition at line 72 of file laser_simulator.cpp.

◆ get_map2world_coordinates()

void LaserScannerSimulator::get_map2world_coordinates ( int  map_x,
int  map_y,
double *  x,
double *  y 
)
private

get real-world coordinates of map cell

Definition at line 312 of file laser_simulator.cpp.

◆ get_map_occupancy()

int LaserScannerSimulator::get_map_occupancy ( int  x,
int  y 
)
private

get occupancy of specified cell

Definition at line 319 of file laser_simulator.cpp.

◆ get_params()

void LaserScannerSimulator::get_params ( )
private

gets parameters from the parameter server

Definition at line 21 of file laser_simulator.cpp.

◆ get_world2map_coordinates()

void LaserScannerSimulator::get_world2map_coordinates ( double  x,
double  y,
int *  map_x,
int *  map_y 
)
private

get map cell corresponding to real-world coordinates

Definition at line 305 of file laser_simulator.cpp.

◆ set_laser_params()

void LaserScannerSimulator::set_laser_params ( std::string  frame_id,
double  fov,
unsigned int  beam_count,
double  max_range,
double  min_range,
double  l_frequency 
)

updates the laser scanner parameters

Definition at line 89 of file laser_simulator.cpp.

◆ set_noise_params()

void LaserScannerSimulator::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 
)

updates the noise model parameters

Definition at line 277 of file laser_simulator.cpp.

◆ start()

void LaserScannerSimulator::start ( )

start the simulation loop

Definition at line 44 of file laser_simulator.cpp.

◆ stop()

void LaserScannerSimulator::stop ( )

stop everything

Definition at line 52 of file laser_simulator.cpp.

◆ update_loop()

void LaserScannerSimulator::update_loop ( const ros::TimerEvent event)
private

Definition at line 59 of file laser_simulator.cpp.

◆ update_scan()

void LaserScannerSimulator::update_scan ( double  x,
double  y,
double  theta 
)
private

updates the laser scan based on current 2D pose of the scanner in map coordinates

Definition at line 120 of file laser_simulator.cpp.

Member Data Documentation

◆ have_map

bool LaserScannerSimulator::have_map
private

Definition at line 79 of file laser_simulator.h.

◆ is_running

bool LaserScannerSimulator::is_running
private

Definition at line 74 of file laser_simulator.h.

◆ l_beams

int LaserScannerSimulator::l_beams
private

Definition at line 86 of file laser_simulator.h.

◆ l_fov

double LaserScannerSimulator::l_fov
private

Definition at line 85 of file laser_simulator.h.

◆ l_frame

std::string LaserScannerSimulator::l_frame
private

Definition at line 84 of file laser_simulator.h.

◆ l_frequency

double LaserScannerSimulator::l_frequency
private

Definition at line 89 of file laser_simulator.h.

◆ l_max_range

double LaserScannerSimulator::l_max_range
private

Definition at line 87 of file laser_simulator.h.

◆ l_min_range

double LaserScannerSimulator::l_min_range
private

Definition at line 88 of file laser_simulator.h.

◆ l_scan_topic

std::string LaserScannerSimulator::l_scan_topic
private

Definition at line 81 of file laser_simulator.h.

◆ lambda_short

double LaserScannerSimulator::lambda_short
private

Definition at line 95 of file laser_simulator.h.

◆ laser_pub

ros::Publisher LaserScannerSimulator::laser_pub
private

Definition at line 70 of file laser_simulator.h.

◆ loop_timer

ros::Timer LaserScannerSimulator::loop_timer
private

Definition at line 73 of file laser_simulator.h.

◆ map

nav_msgs::OccupancyGrid LaserScannerSimulator::map
private

Definition at line 78 of file laser_simulator.h.

◆ map_service

std::string LaserScannerSimulator::map_service
private

Definition at line 77 of file laser_simulator.h.

◆ nh_ptr

ros::NodeHandle* LaserScannerSimulator::nh_ptr
private

Definition at line 69 of file laser_simulator.h.

◆ output_scan

sensor_msgs::LaserScan LaserScannerSimulator::output_scan
private

Definition at line 105 of file laser_simulator.h.

◆ p_hit

std::normal_distribution<double> LaserScannerSimulator::p_hit
private

Definition at line 100 of file laser_simulator.h.

◆ p_rand

std::uniform_real_distribution<double> LaserScannerSimulator::p_rand
private

Definition at line 102 of file laser_simulator.h.

◆ p_short

std::exponential_distribution<double> LaserScannerSimulator::p_short
private

Definition at line 101 of file laser_simulator.h.

◆ rand_gen

std::default_random_engine LaserScannerSimulator::rand_gen
private

Definition at line 98 of file laser_simulator.h.

◆ rob_laser_tf

tf::StampedTransform LaserScannerSimulator::rob_laser_tf
private

Definition at line 90 of file laser_simulator.h.

◆ selector

std::uniform_real_distribution<double> LaserScannerSimulator::selector
private

Definition at line 99 of file laser_simulator.h.

◆ sigma_hit

double LaserScannerSimulator::sigma_hit
private

Definition at line 94 of file laser_simulator.h.

◆ tl

tf::TransformListener LaserScannerSimulator::tl
private

Definition at line 71 of file laser_simulator.h.

◆ use_noise_model

bool LaserScannerSimulator::use_noise_model
private

Definition at line 93 of file laser_simulator.h.

◆ z_mix

double LaserScannerSimulator::z_mix[4]
private

Definition at line 96 of file laser_simulator.h.


The documentation for this class was generated from the following files:


mobile_robot_simulator
Author(s): Mikkel Rath Pedersen
autogenerated on Fri Jun 3 2022 03:02:19