#include <laser_sensor.H>
Public Member Functions | |
laser_sensor_t (dSpaceID world_space, dGeomID ground, simulated_object_t *robot, timer_t *timer, char const *cfg_fname) | |
void | read_config_file (char const *) |
void | set_laser_beam_angles () |
double | test_laser_collision (int cycle, int laser_angle) |
void | update_position (dBodyID carb) |
void | command (int cmd, double value) |
void | simulate_component () |
virtual | ~laser_sensor_t () |
Private Attributes | |
int | m_scan_cycle |
scan_data_t | m_laser_scan |
simulated_object_t * | m_robot |
scan_observer_t * | m_scan_observer |
dSpaceID | m_thisSpace |
dGeomID | m_thisGround |
dGeomID | m_laser_ray |
int | m_laser_id |
double | m_laserRange |
int | m_rotation_degrees |
double | m_laser_beam_angles [4][SCAN_MAX_BEAMS] |
Friends | |
class | scan_observer_t |
laser_sensor_t::laser_sensor_t | ( | dSpaceID | world_space, | |
dGeomID | ground, | |||
simulated_object_t * | robot, | |||
timer_t * | timer, | |||
char const * | cfg_fname | |||
) |
laser_sensor_t::~laser_sensor_t | ( | ) | [virtual] |
void laser_sensor_t::command | ( | int | cmd, | |
double | value | |||
) |
void laser_sensor_t::read_config_file | ( | char const * | cfg_fname | ) |
References ANGLEX, ANGLEY, ANGLEZ, m_laser_id, m_laserRange, cajun::components_t::m_orientation_on_robot, cajun::components_t::m_position_on_robot, m_rotation_degrees, POSX, POSY, and POSZ.
Referenced by laser_sensor_t().
void laser_sensor_t::set_laser_beam_angles | ( | ) |
References cajun::angle(), and m_laser_beam_angles.
Referenced by laser_sensor_t().
void laser_sensor_t::simulate_component | ( | ) |
References ANGLEX, ANGLEY, ANGLEZ, D2R, cajun::HomogTformPt(), cajun::sim_world_object_t::m_carb, cajun::components_t::m_global_position, m_laser_beam_angles, m_laser_ray, m_laser_scan, m_laserRange, cajun::components_t::m_orientation_on_robot, m_robot, m_scan_cycle, POSX, POSY, POSZ, test_laser_collision(), cajun::tform_mult(), and update_position().
Referenced by laser_sensor_t(), and cajun::scan_observer_t::timeout().
double laser_sensor_t::test_laser_collision | ( | int | cycle, | |
int | laser_angle | |||
) |
References m_laser_ray, m_laserRange, and m_thisSpace.
Referenced by simulate_component().
void laser_sensor_t::update_position | ( | dBodyID | carb | ) | [virtual] |
Reimplemented from cajun::components_t.
References cajun::HomogTformPt(), cajun::components_t::m_global_position, cajun::components_t::m_position_on_robot, POSX, POSY, POSZ, and cajun::tform_mult().
Referenced by simulate_component().
friend class scan_observer_t [friend] |
Referenced by laser_sensor_t().
double cajun::laser_sensor_t::m_laser_beam_angles[4][SCAN_MAX_BEAMS] [private] |
Referenced by set_laser_beam_angles(), and simulate_component().
int cajun::laser_sensor_t::m_laser_id [private] |
Referenced by laser_sensor_t(), and read_config_file().
dGeomID cajun::laser_sensor_t::m_laser_ray [private] |
Referenced by laser_sensor_t(), simulate_component(), and test_laser_collision().
scan_data_t cajun::laser_sensor_t::m_laser_scan [private] |
Referenced by simulate_component(), and cajun::scan_observer_t::timeout().
double cajun::laser_sensor_t::m_laserRange [private] |
Referenced by laser_sensor_t(), read_config_file(), simulate_component(), and test_laser_collision().
simulated_object_t* cajun::laser_sensor_t::m_robot [private] |
int cajun::laser_sensor_t::m_rotation_degrees [private] |
Referenced by read_config_file().
int cajun::laser_sensor_t::m_scan_cycle [private] |
Referenced by laser_sensor_t(), and simulate_component().
Referenced by laser_sensor_t(), and ~laser_sensor_t().
dGeomID cajun::laser_sensor_t::m_thisGround [private] |
Referenced by laser_sensor_t().
dSpaceID cajun::laser_sensor_t::m_thisSpace [private] |
Referenced by laser_sensor_t(), and test_laser_collision().