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
