Public Member Functions | |
AdaptiveMCL (ConfigFile *cf, int section) | |
virtual int | MainSetup (void) |
Sets up the resources needed by the driver thread. | |
void | Push (AMCLSensorData *data) |
virtual int | ProcessMessage (QueuePointer &resp_queue, player_msghdr *hdr, void *data) |
Message handler. | |
virtual void | UpdateSensorData (void) |
Private Member Functions | |
AMCLSensorData * | Peek (void) |
AMCLSensorData * | Pop (void) |
virtual void | Main (void) |
Main method for driver thread. | |
virtual void | MainQuit () |
Cleanup method for driver thread (called when main exits) | |
void | InitFilter (void) |
bool | UpdateFilter () |
void | PutDataLocalize (double time) |
void | PutDataPosition (pf_vector_t delta, double time) |
void | ProcessGeom (QueuePointer &resp_queue, player_msghdr_t *hdr) |
Private Attributes | |
player_devaddr_t | position_addr |
player_devaddr_t | localize_addr |
int | sensor_count |
AMCLSensor * | sensors [16] |
int | init_sensor |
int | action_sensor |
pf_t * | pf |
int | pf_min_samples |
int | pf_max_samples |
double | pf_err |
double | pf_z |
int | q_size |
int | q_start |
int | q_len |
AMCLSensorData ** | q_data |
int | hyp_count |
int | hyp_alloc |
amcl_hyp_t * | hyps |
pf_vector_t | best_hyp |
pthread_mutex_t | best_hyp_lock |
bool | pf_init |
bool | pf_init_internal |
pf_vector_t | pf_init_pose_mean |
pf_matrix_t | pf_init_pose_cov |
pf_vector_t | pf_odom_pose |
double | min_dr |
double | min_da |
Member Function Documentation
void AdaptiveMCL::Main | ( | void | ) | [private, virtual] |
Main method for driver thread.
drivers have their own thread of execution, created using StartThread(); this is the entry point for the driver thread, and must be overloaded by all threaded drivers.
Implements ThreadedDriver.
References Driver::ProcessMessages().
void AdaptiveMCL::MainQuit | ( | void | ) | [private, virtual] |
Cleanup method for driver thread (called when main exits)
Overload this method and to do additional cleanup when the driver thread exits.
Reimplemented from ThreadedDriver.
References PLAYER_MSG0, and ThreadedDriver::Shutdown().
int AdaptiveMCL::ProcessMessage | ( | QueuePointer & | resp_queue, |
player_msghdr * | hdr, | ||
void * | data | ||
) | [virtual] |
Message handler.
This function is called once for each message in the incoming queue. Reimplement it to provide message handling. Return 0 if you handled the message and -1 otherwise
- Parameters:
-
resp_queue The queue to which any response should go. hdr The message header data The message body
Reimplemented from Driver.
References player_localize_particle::alpha, player_localize_set_pose::cov, Driver::device_addr, Message::MatchMessage(), player_localize_get_particles::mean, player_localize_set_pose::mean, player_pose2d::pa, player_localize_get_particles::particles, player_localize_get_particles::particles_count, PLAYER_LOCALIZE_REQ_GET_PARTICLES, PLAYER_LOCALIZE_REQ_SET_POSE, PLAYER_MSGTYPE_REQ, PLAYER_MSGTYPE_RESP_ACK, PLAYER_POSITION2D_REQ_GET_GEOM, player_localize_particle::pose, Driver::Publish(), player_pose2d::px, player_pose2d::py, player_msghdr::size, and player_localize_get_particles::variance.
The documentation for this class was generated from the following files:
- amcl.h
- amcl.cc