#include <HumanoidLocalization.h>
|
unsigned | computeBeamStep (unsigned numBeams) const |
|
void | constrainMotion (const tf::Pose &odomPose) |
|
int | filterUniform (const PointCloud &cloud_in, PointCloud &cloud_out, int numSamples) const |
|
double | getCumParticleWeight () const |
| cumulative weight of all particles (=1 when normalized) More...
|
|
bool | getImuMsg (const ros::Time &stamp, ros::Time &imuStamp, double &angleX, double &angleY) const |
|
void | initZRP (double &z, double &roll, double &pitch) |
|
bool | isAboveMotionThreshold (const tf::Pose &odomTransform) |
|
bool | localizeWithMeasurement (const PointCloud &pc_filtered, const std::vector< float > &ranges, double max_range) |
|
bool | lookupPoseHeight (const ros::Time &t, double &poseHeight) const |
|
double | nEff () const |
|
void | normalizeWeights () |
|
void | prepareGeneralPointCloud (const sensor_msgs::PointCloud2::ConstPtr &msg, PointCloud &pc, std::vector< float > &ranges) const |
|
void | prepareLaserPointCloud (const sensor_msgs::LaserScanConstPtr &laser, PointCloud &pc, std::vector< float > &ranges) const |
|
void | publishPoseEstimate (const ros::Time &time, bool publish_eval) |
|
void | reset () |
|
void | timerCallback (const ros::TimerEvent &e) |
|
void | toLogForm () |
|
void | voxelGridSampling (const PointCloud &pc, pcl::PointCloud< int > &sampledIndices, double searchRadius) const |
|
Definition at line 82 of file HumanoidLocalization.h.
humanoid_localization::HumanoidLocalization::HumanoidLocalization |
( |
unsigned |
randomSeed | ) |
|
humanoid_localization::HumanoidLocalization::~HumanoidLocalization |
( |
| ) |
|
|
virtual |
unsigned humanoid_localization::HumanoidLocalization::computeBeamStep |
( |
unsigned |
numBeams | ) |
const |
|
protected |
void humanoid_localization::HumanoidLocalization::constrainMotion |
( |
const tf::Pose & |
odomPose | ) |
|
|
protected |
void humanoid_localization::HumanoidLocalization::filterGroundPlane |
( |
const PointCloud & |
pc, |
|
|
PointCloud & |
ground, |
|
|
PointCloud & |
nonground, |
|
|
double |
groundFilterDistance, |
|
|
double |
groundFilterAngle, |
|
|
double |
groundFilterPlaneDistance |
|
) |
| |
|
static |
int humanoid_localization::HumanoidLocalization::filterUniform |
( |
const PointCloud & |
cloud_in, |
|
|
PointCloud & |
cloud_out, |
|
|
int |
numSamples |
|
) |
| const |
|
protected |
unsigned humanoid_localization::HumanoidLocalization::getBestParticleIdx |
( |
| ) |
const |
tf::Pose humanoid_localization::HumanoidLocalization::getBestParticlePose |
( |
| ) |
const |
double humanoid_localization::HumanoidLocalization::getCumParticleWeight |
( |
| ) |
const |
|
protected |
bool humanoid_localization::HumanoidLocalization::getImuMsg |
( |
const ros::Time & |
stamp, |
|
|
ros::Time & |
imuStamp, |
|
|
double & |
angleX, |
|
|
double & |
angleY |
|
) |
| const |
|
protected |
Returns the IMU message with stamp closest to a given stamp.
- Parameters
-
[in] | stamp | Timestamp to search. |
[out] | imuStamp | Stamp of closest IMU message (or interpolation of two IMU messages). |
[out] | angleX | Interpolated roll angle. |
[out] | angleY | Interpolated pitch angle. |
- Returns
- Success.
Definition at line 880 of file HumanoidLocalization.cpp.
tf::Pose humanoid_localization::HumanoidLocalization::getMeanParticlePose |
( |
| ) |
const |
tf::Pose humanoid_localization::HumanoidLocalization::getParticlePose |
( |
unsigned |
particleIdx | ) |
const |
bool humanoid_localization::HumanoidLocalization::globalLocalizationCallback |
( |
std_srvs::Empty::Request & |
req, |
|
|
std_srvs::Empty::Response & |
res |
|
) |
| |
void humanoid_localization::HumanoidLocalization::imuCallback |
( |
const sensor_msgs::ImuConstPtr & |
msg | ) |
|
void humanoid_localization::HumanoidLocalization::initGlobal |
( |
| ) |
|
void humanoid_localization::HumanoidLocalization::initPoseCallback |
( |
const geometry_msgs::PoseWithCovarianceStampedConstPtr & |
msg | ) |
|
void humanoid_localization::HumanoidLocalization::initZRP |
( |
double & |
z, |
|
|
double & |
roll, |
|
|
double & |
pitch |
|
) |
| |
|
protected |
Initializes z, roll and pitch values either from parameters or fromo real (odom) values
Definition at line 290 of file HumanoidLocalization.cpp.
bool humanoid_localization::HumanoidLocalization::isAboveMotionThreshold |
( |
const tf::Pose & |
odomTransform | ) |
|
|
protected |
void humanoid_localization::HumanoidLocalization::laserCallback |
( |
const sensor_msgs::LaserScanConstPtr & |
msg | ) |
|
|
virtual |
bool humanoid_localization::HumanoidLocalization::localizeWithMeasurement |
( |
const PointCloud & |
pc_filtered, |
|
|
const std::vector< float > & |
ranges, |
|
|
double |
max_range |
|
) |
| |
|
protected |
bool humanoid_localization::HumanoidLocalization::lookupPoseHeight |
( |
const ros::Time & |
t, |
|
|
double & |
poseHeight |
|
) |
| const |
|
protected |
double humanoid_localization::HumanoidLocalization::nEff |
( |
| ) |
const |
|
protected |
nEff - returns the number of effective particles = 1/sum(w_i^2)
Needed for selective resampling (Doucet 98, Arulampalam 01), when nEff < n/2
Definition at line 1354 of file HumanoidLocalization.cpp.
void humanoid_localization::HumanoidLocalization::normalizeWeights |
( |
| ) |
|
|
protected |
Normalizes the weights and transforms from log to normal scale m_minWeight gives the lower bound for weight (normal scale). No adjustment will be done for minWeight = 0 (default)
Definition at line 1098 of file HumanoidLocalization.cpp.
void humanoid_localization::HumanoidLocalization::pauseLocalizationCallback |
( |
const std_msgs::BoolConstPtr & |
msg | ) |
|
bool humanoid_localization::HumanoidLocalization::pauseLocalizationSrvCallback |
( |
std_srvs::Empty::Request & |
req, |
|
|
std_srvs::Empty::Response & |
res |
|
) |
| |
void humanoid_localization::HumanoidLocalization::pointCloudCallback |
( |
const sensor_msgs::PointCloud2::ConstPtr & |
msg | ) |
|
|
virtual |
void humanoid_localization::HumanoidLocalization::prepareGeneralPointCloud |
( |
const sensor_msgs::PointCloud2::ConstPtr & |
msg, |
|
|
PointCloud & |
pc, |
|
|
std::vector< float > & |
ranges |
|
) |
| const |
|
protected |
Prepares a PointCloud msg to be integrated into the observations model. Filters near range, floor and subsamples a sparse point cloud (out of m_numSensorBeams points)
Definition at line 688 of file HumanoidLocalization.cpp.
void humanoid_localization::HumanoidLocalization::prepareLaserPointCloud |
( |
const sensor_msgs::LaserScanConstPtr & |
laser, |
|
|
PointCloud & |
pc, |
|
|
std::vector< float > & |
ranges |
|
) |
| const |
|
protected |
Prepares a LaserScan msg to be integrated into the observations model. Filters near range measurements out and creates a sparse point cloud (out of m_numSensorBeams points)
Definition at line 496 of file HumanoidLocalization.cpp.
void humanoid_localization::HumanoidLocalization::publishPoseEstimate |
( |
const ros::Time & |
time, |
|
|
bool |
publish_eval |
|
) |
| |
|
protected |
void humanoid_localization::HumanoidLocalization::resample |
( |
unsigned |
numParticles = 0 | ) |
|
Importance sampling from m_particles according to weights, resets weight to 1/numParticles. Uses low variance sampling
- Parameters
-
numParticles | how many particles to sample, 0 (default): keep size of particle distribution |
Definition at line 1169 of file HumanoidLocalization.cpp.
void humanoid_localization::HumanoidLocalization::reset |
( |
| ) |
|
|
protected |
bool humanoid_localization::HumanoidLocalization::resumeLocalizationSrvCallback |
( |
std_srvs::Empty::Request & |
req, |
|
|
std_srvs::Empty::Response & |
res |
|
) |
| |
void humanoid_localization::HumanoidLocalization::timerCallback |
( |
const ros::TimerEvent & |
e | ) |
|
|
protected |
void humanoid_localization::HumanoidLocalization::toLogForm |
( |
| ) |
|
|
protected |
void humanoid_localization::HumanoidLocalization::voxelGridSampling |
( |
const PointCloud & |
pc, |
|
|
pcl::PointCloud< int > & |
sampledIndices, |
|
|
double |
searchRadius |
|
) |
| const |
|
protected |
std::string humanoid_localization::HumanoidLocalization::m_baseFootprintId |
|
protected |
std::string humanoid_localization::HumanoidLocalization::m_baseFrameId |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_bestParticleAsMean |
|
protected |
int humanoid_localization::HumanoidLocalization::m_bestParticleIdx |
|
protected |
ros::Publisher humanoid_localization::HumanoidLocalization::m_bestPosePub |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_constrainMotionRP |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_constrainMotionZ |
|
protected |
ros::Publisher humanoid_localization::HumanoidLocalization::m_filteredPointCloudPub |
|
protected |
double humanoid_localization::HumanoidLocalization::m_filterMaxRange |
|
protected |
double humanoid_localization::HumanoidLocalization::m_filterMinRange |
|
protected |
std::string humanoid_localization::HumanoidLocalization::m_globalFrameId |
|
protected |
double humanoid_localization::HumanoidLocalization::m_groundFilterAngle |
|
protected |
double humanoid_localization::HumanoidLocalization::m_groundFilterDistance |
|
protected |
double humanoid_localization::HumanoidLocalization::m_groundFilterPlaneDistance |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_groundFilterPointCloud |
|
protected |
double humanoid_localization::HumanoidLocalization::m_headPitchRotationLastScan |
|
protected |
double humanoid_localization::HumanoidLocalization::m_headYawRotationLastScan |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_initFromTruepose |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_initGlobal |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_initialized |
|
protected |
Vector6d humanoid_localization::HumanoidLocalization::m_initNoiseStd |
|
protected |
Vector6d humanoid_localization::HumanoidLocalization::m_initPose |
|
protected |
tf::MessageFilter<geometry_msgs::PoseWithCovarianceStamped>* humanoid_localization::HumanoidLocalization::m_initPoseFilter |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_initPoseRealZRP |
|
protected |
tf::MessageFilter<sensor_msgs::LaserScan>* humanoid_localization::HumanoidLocalization::m_laserFilter |
|
protected |
boost::circular_buffer<sensor_msgs::Imu> humanoid_localization::HumanoidLocalization::m_lastIMUMsgBuffer |
|
protected |
ros::Time humanoid_localization::HumanoidLocalization::m_lastLaserTime |
|
protected |
tf::Pose humanoid_localization::HumanoidLocalization::m_lastLocalizedPose |
|
protected |
sensor data last integrated at this odom pose, to check if moved enough since then
Definition at line 284 of file HumanoidLocalization.h.
ros::Time humanoid_localization::HumanoidLocalization::m_lastPointCloudTime |
|
protected |
double humanoid_localization::HumanoidLocalization::m_minParticleWeight |
|
protected |
double humanoid_localization::HumanoidLocalization::m_nEffFactor |
|
protected |
int humanoid_localization::HumanoidLocalization::m_numParticles |
|
protected |
double humanoid_localization::HumanoidLocalization::m_observationThresholdHeadPitchRot |
|
protected |
double humanoid_localization::HumanoidLocalization::m_observationThresholdHeadYawRot |
|
protected |
double humanoid_localization::HumanoidLocalization::m_observationThresholdRot |
|
protected |
double humanoid_localization::HumanoidLocalization::m_observationThresholdTrans |
|
protected |
std::string humanoid_localization::HumanoidLocalization::m_odomFrameId |
|
protected |
tf::Pose humanoid_localization::HumanoidLocalization::m_odomPose |
|
protected |
Particles humanoid_localization::HumanoidLocalization::m_particles |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_paused |
|
protected |
ros::Subscriber humanoid_localization::HumanoidLocalization::m_pauseIntegrationSub |
|
protected |
tf::MessageFilter<sensor_msgs::PointCloud2>* humanoid_localization::HumanoidLocalization::m_pointCloudFilter |
|
protected |
geometry_msgs::PoseArray humanoid_localization::HumanoidLocalization::m_poseArray |
|
protected |
ros::Publisher humanoid_localization::HumanoidLocalization::m_poseArrayPub |
|
protected |
ros::Publisher humanoid_localization::HumanoidLocalization::m_poseEvalPub |
|
protected |
ros::Publisher humanoid_localization::HumanoidLocalization::m_poseOdomPub |
|
protected |
ros::Publisher humanoid_localization::HumanoidLocalization::m_poseTruePub |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_receivedSensorData |
|
protected |
EngineT humanoid_localization::HumanoidLocalization::m_rngEngine |
|
protected |
double humanoid_localization::HumanoidLocalization::m_sensorSampleDist |
|
protected |
double humanoid_localization::HumanoidLocalization::m_sensorSampleDistGroundFactor |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_syncedTruepose |
|
protected |
std::string humanoid_localization::HumanoidLocalization::m_targetFrameId |
|
protected |
double humanoid_localization::HumanoidLocalization::m_temporalSamplingRange |
|
protected |
ros::Timer humanoid_localization::HumanoidLocalization::m_timer |
|
protected |
double humanoid_localization::HumanoidLocalization::m_timerPeriod |
|
protected |
double humanoid_localization::HumanoidLocalization::m_transformTolerance |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_useIMU |
|
protected |
True = use IMU for initialization and observation models, false = use orientation from odometry.
Definition at line 292 of file HumanoidLocalization.h.
bool humanoid_localization::HumanoidLocalization::m_useRaycasting |
|
protected |
bool humanoid_localization::HumanoidLocalization::m_useTimer |
|
protected |
The documentation for this class was generated from the following files: