Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
pfuclt_omni_dataset::PFPublisher Class Reference

The PFPublisher class - implements publishing for the ParticleFilter class using ROS. More...

#include <pfuclt_publisher.h>

Inheritance diagram for pfuclt_omni_dataset::PFPublisher:
Inheritance graph
[legend]

Classes

struct  PublishData
 

Public Member Functions

ParticleFiltergetPFReference ()
 getPFReference - retrieve a reference to the base class's members More...
 
void gtDataCallback (const read_omni_dataset::LRMGTData::ConstPtr &)
 gtDataCallback - callback of ground truth data More...
 
void nextIteration ()
 nextIteration - extends the base class method to add the ROS publishing More...
 
 PFPublisher (struct PFinitData &data, struct PublishData publishData)
 PFPublisher - constructor. More...
 
void resize_particles (const uint n)
 resize_particles - change to a different number of particles and resize the publishing message More...
 
- Public Member Functions inherited from pfuclt_omni_dataset::ParticleFilter
void assign (const pdata_t value)
 assign - assign a value to every particle in all subsets More...
 
void assign (const pdata_t value, const uint index)
 assign - assign a value to every particle in one subset More...
 
void dynamicReconfigureCallback (pfuclt_omni_dataset::DynamicConfig &)
 dynamicReconfigureCallback - Dynamic reconfigure callback for dynamically setting variables during runtime More...
 
ParticleFiltergetPFReference ()
 getPFReference - retrieve a reference to this object - to be overloaded by deriving classes so that the base class can be returned More...
 
void init ()
 init - initialize the particle filter set with the default randomized values More...
 
void init (const std::vector< double > &customRandInit, const std::vector< double > &customPosInit)
 init - initialize the particle filter set with custom values More...
 
bool isInitialized ()
 isInitialized - simple interface to access private member initialized_ More...
 
subparticles_toperator[] (int index)
 operator [] - array subscripting access to the private particle set More...
 
const subparticles_toperator[] (int index) const
 operator [] - const version of the array subscripting access, when using it on const intantiations of the class More...
 
 ParticleFilter (struct PFinitData &data)
 ParticleFilter - constructor. More...
 
void predict (const uint robotNumber, const Odometry odom, const ros::Time stamp)
 predict - prediction step in the particle filter set with the received odometry More...
 
void printWeights (std::string pre)
 printWeights More...
 
void saveAllLandmarkMeasurementsDone (const uint robotNumber)
 saveAllLandmarkMeasurementsDone - call this function when all landmark measurements have been performed by a certain robot More...
 
void saveAllTargetMeasurementsDone (const uint robotNumber)
 saveAllTargetMeasurementsDone - call this function when all target measurements have been performed by a certain robot More...
 
void saveLandmarkObservation (const uint robotNumber, const uint landmarkNumber, const LandmarkObservation obs, ros::Time stamp)
 saveLandmarkObservation - saves the landmark observation to a buffer of observations More...
 
void saveLandmarkObservation (const uint robotNumber, const uint landmarkNumber, const bool found)
 saveLandmarkObservation - change the measurement buffer state More...
 
void saveTargetObservation (const uint robotNumber, const TargetObservation obs, ros::Time stamp)
 saveTargetObservation - saves the target observation to a buffer of observations More...
 
void saveTargetObservation (const uint robotNumber, const bool found)
 saveTargetObservation - change the measurement buffer state More...
 
std::size_t size ()
 size - interface to the size of the particle filter More...
 
void updateTargetIterationTime (ros::Time tRos)
 updateTargetIterationTime - the main robot should call this method after the target callback More...
 

Public Attributes

struct pfuclt_omni_dataset::PFPublisher::PublishData pubData
 
- Public Attributes inherited from pfuclt_omni_dataset::ParticleFilter
boost::shared_ptr< std::ostringstream > iteration_oss
 
uint O_TARGET
 
uint O_WEIGHT
 

Private Member Functions

void publishEstimate ()
 
void publishGTData ()
 
void publishParticles ()
 
void publishRobotStates ()
 
void publishTargetObservations ()
 
void publishTargetState ()
 

Private Attributes

ros::Publisher estimatePublisher_
 
ros::Subscriber GT_sub_
 
read_omni_dataset::Estimate msg_estimate_
 
read_omni_dataset::LRMGTData msg_GT_
 
pfuclt_omni_dataset::particles msg_particles_
 
ros::Publisher particlePublisher_
 
std::vector< ros::Publisher > particleStdPublishers_
 
std::vector< tf2_ros::TransformBroadcaster > robotBroadcasters
 
std::vector< ros::Publisher > robotEstimatePublishers_
 
std::vector< ros::Publisher > robotGTPublishers_
 
ros::Publisher targetEstimatePublisher_
 
ros::Publisher targetGTPublisher_
 
ros::Publisher targetObservationsPublisher_
 
ros::Publisher targetParticlePublisher_
 

Additional Inherited Members

- Protected Member Functions inherited from pfuclt_omni_dataset::ParticleFilter
void copyParticle (particles_t &p_To, particles_t &p_From, uint i_To, uint i_From)
 copyParticle - copies a whole particle from one particle set to another More...
 
void copyParticle (particles_t &p_To, particles_t &p_From, uint i_To, uint i_From, uint subFirst, uint subLast)
 copyParticle - copies some subparticle sets of a particle from one particle set to another More...
 
void estimate ()
 estimate - state estimation through weighted means of particle weights More...
 
void fuseRobots ()
 fuseRobots - fuse robot states step More...
 
void fuseTarget ()
 fuseTarget - fuse target state step More...
 
void modifiedMultinomialResampler (uint startAt)
 modifiedMultinomialResampler - a costly resampler that keeps 50% of the particles and implements the multinomial resampler on the rest More...
 
void predictTarget ()
 predictTarget - predict target state step More...
 
void resample ()
 resample - the resampling step More...
 
void resetWeights (pdata_t val)
 resetWeights - assign the value val to all particle weights More...
 
void spreadTargetParticlesSphere (float particlesRatio, pdata_t center[3], float radius)
 spreadTargetParticlesSphere - spread a percentage of the target particle in a sphere around center More...
 
- Protected Attributes inherited from pfuclt_omni_dataset::ParticleFilter
std::vector< std::vector< LandmarkObservation > > bufLandmarkObservations_
 
std::vector< TargetObservationbufTargetObservations_
 
bool converged_
 
ros::WallDuration deltaIteration_
 
ros::WallDuration durationSum
 
struct pfuclt_omni_dataset::ParticleFilter::dynamicVariables_s dynamicVariables_
 
bool initialized_
 
ros::WallTime iterationEvalTime_
 
const std::vector< Landmark > & landmarksMap_
 
ros::Time latestObservationTime_
 
const uint mainRobotID_
 
ros::WallDuration maxDeltaIteration_
 
ros::NodeHandle & nh_
 
const uint nLandmarks_
 
uint nParticles_
 
const uint nRobots_
 
const uint nStatesPerRobot_
 
const uint nSubParticleSets_
 
const uint nTargets_
 
uint16_t numberIterations
 
TimeEval odometryTime_
 
particles_t particles_
 
const std::vector< bool > & robotsUsed_
 
ros::Time savedLatestObservationTime_
 
RNGType seed_
 
struct State state_
 
TimeEval targetIterationTime_
 
particles_t weightComponents_
 

Detailed Description

The PFPublisher class - implements publishing for the ParticleFilter class using ROS.

Definition at line 27 of file pfuclt_publisher.h.

Constructor & Destructor Documentation

pfuclt_omni_dataset::PFPublisher::PFPublisher ( struct PFinitData data,
struct PublishData  publishData 
)

PFPublisher - constructor.

Parameters
data- a structure with the necessary initializing data for the ParticleFilter class
publishData- a structure with some more data for this class

Definition at line 6 of file pfuclt_publisher.cpp.

Member Function Documentation

ParticleFilter* pfuclt_omni_dataset::PFPublisher::getPFReference ( )
inline

getPFReference - retrieve a reference to the base class's members

Remarks
C++ surely is awesome
Returns
returns a reference to the base ParticleFilter for this object

Definition at line 100 of file pfuclt_publisher.h.

void pfuclt_omni_dataset::PFPublisher::gtDataCallback ( const read_omni_dataset::LRMGTData::ConstPtr &  gtMsgReceived)

gtDataCallback - callback of ground truth data

Definition at line 313 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::nextIteration ( )
virtual

nextIteration - extends the base class method to add the ROS publishing

Reimplemented from pfuclt_omni_dataset::ParticleFilter.

Definition at line 318 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::publishEstimate ( )
private

Definition at line 186 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::publishGTData ( )
private

Definition at line 263 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::publishParticles ( )
private

Definition at line 69 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::publishRobotStates ( )
private

Definition at line 122 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::publishTargetObservations ( )
private

Definition at line 195 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::publishTargetState ( )
private

Definition at line 162 of file pfuclt_publisher.cpp.

void pfuclt_omni_dataset::PFPublisher::resize_particles ( const uint  n)
inlinevirtual

resize_particles - change to a different number of particles and resize the publishing message

Parameters
n- the desired number of particles

Reimplemented from pfuclt_omni_dataset::ParticleFilter.

Definition at line 45 of file pfuclt_publisher.h.

Member Data Documentation

ros::Publisher pfuclt_omni_dataset::PFPublisher::estimatePublisher_
private

Definition at line 60 of file pfuclt_publisher.h.

ros::Subscriber pfuclt_omni_dataset::PFPublisher::GT_sub_
private

Definition at line 59 of file pfuclt_publisher.h.

read_omni_dataset::Estimate pfuclt_omni_dataset::PFPublisher::msg_estimate_
private

Definition at line 69 of file pfuclt_publisher.h.

read_omni_dataset::LRMGTData pfuclt_omni_dataset::PFPublisher::msg_GT_
private

Definition at line 67 of file pfuclt_publisher.h.

pfuclt_omni_dataset::particles pfuclt_omni_dataset::PFPublisher::msg_particles_
private

Definition at line 68 of file pfuclt_publisher.h.

ros::Publisher pfuclt_omni_dataset::PFPublisher::particlePublisher_
private

Definition at line 60 of file pfuclt_publisher.h.

std::vector<ros::Publisher> pfuclt_omni_dataset::PFPublisher::particleStdPublishers_
private

Definition at line 62 of file pfuclt_publisher.h.

struct pfuclt_omni_dataset::PFPublisher::PublishData pfuclt_omni_dataset::PFPublisher::pubData
std::vector<tf2_ros::TransformBroadcaster> pfuclt_omni_dataset::PFPublisher::robotBroadcasters
private

Definition at line 71 of file pfuclt_publisher.h.

std::vector<ros::Publisher> pfuclt_omni_dataset::PFPublisher::robotEstimatePublishers_
private

Definition at line 64 of file pfuclt_publisher.h.

std::vector<ros::Publisher> pfuclt_omni_dataset::PFPublisher::robotGTPublishers_
private

Definition at line 63 of file pfuclt_publisher.h.

ros::Publisher pfuclt_omni_dataset::PFPublisher::targetEstimatePublisher_
private

Definition at line 60 of file pfuclt_publisher.h.

ros::Publisher pfuclt_omni_dataset::PFPublisher::targetGTPublisher_
private

Definition at line 60 of file pfuclt_publisher.h.

ros::Publisher pfuclt_omni_dataset::PFPublisher::targetObservationsPublisher_
private

Definition at line 65 of file pfuclt_publisher.h.

ros::Publisher pfuclt_omni_dataset::PFPublisher::targetParticlePublisher_
private

Definition at line 60 of file pfuclt_publisher.h.


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


pfuclt_omni_dataset
Author(s):
autogenerated on Tue Jul 4 2017 19:38:38