#include <laser_scan_matcher.h>
|
void | addOdomToHistory (const nav_msgs::Odometry::ConstPtr &o) |
|
void | constructedScanToLDP (LDP &ldp) |
|
void | constructScan (const ros::Time ×tamp) |
|
void | createTfFromXYTheta (double x, double y, double theta, tf::Transform &t) |
|
void | doPredictPose (double delta_t) |
|
void | doPublishDebugTF (const ros::Time &time, const tf::Transform &odom_delta, const ros::Publisher &publisher, const std::string &frame) |
|
void | doPublishOdomRate (const ros::Time &time) |
|
void | doPublishScanRate (const ros::Time &time) |
|
nav_msgs::Odometry * | earliestOdomAfter (const ros::Time &time) |
|
tf::Vector3 | fusePoses (const tf::Transform &pose_delta) |
|
bool | getBaseToFootprintTf (const std::string &frame_id) |
|
bool | getBaseToLaserTf (const std::string &frame_id) |
|
double | getOdomDeltaT (const nav_msgs::Odometry::ConstPtr &o) |
|
void | getPrediction (double &pr_ch_x, double &pr_ch_y, double &pr_ch_a, double dt) |
|
void | initialposeCallback (const geometry_msgs::PoseWithCovarianceStamped::ConstPtr &pose_msg) |
|
void | initParams () |
|
void | laserScanToLDP (const sensor_msgs::LaserScan::ConstPtr &scan_msg, LDP &ldp) |
|
nav_msgs::Odometry * | latestOdomBefore (const ros::Time &time) |
|
void | mapCallback (const nav_msgs::OccupancyGrid::ConstPtr &map_msg) |
|
bool | newKeyframeNeeded (const tf::Transform &d) |
|
void | odomCallback (const nav_msgs::Odometry::ConstPtr &odom_msg) |
|
int | processScan (LDP &curr_ldp_scan, const ros::Time &time) |
|
int | processScan (LDP &curr_ldp_scan, LDP &ref_ldp_scan, const ros::Time &time) |
|
void | resetState () |
|
void | scanCallback (const sensor_msgs::LaserScan::ConstPtr &scan_msg) |
|
void | setTransSigmaMatrix (const double yaw) |
|
double | syncOdom (const ros::Time &time) |
|
Definition at line 75 of file laser_scan_matcher.h.
◆ LaserScanMatcher()
◆ ~LaserScanMatcher()
scan_tools::LaserScanMatcher::~LaserScanMatcher |
( |
| ) |
|
◆ addOdomToHistory()
void scan_tools::LaserScanMatcher::addOdomToHistory |
( |
const nav_msgs::Odometry::ConstPtr & |
o | ) |
|
|
private |
◆ constructedScanToLDP()
void scan_tools::LaserScanMatcher::constructedScanToLDP |
( |
LDP & |
ldp | ) |
|
|
private |
◆ constructScan()
void scan_tools::LaserScanMatcher::constructScan |
( |
const ros::Time & |
timestamp | ) |
|
|
private |
◆ createTfFromXYTheta()
void scan_tools::LaserScanMatcher::createTfFromXYTheta |
( |
double |
x, |
|
|
double |
y, |
|
|
double |
theta, |
|
|
tf::Transform & |
t |
|
) |
| |
|
private |
◆ doPredictPose()
void scan_tools::LaserScanMatcher::doPredictPose |
( |
double |
delta_t | ) |
|
|
private |
◆ doPublishDebugTF()
◆ doPublishOdomRate()
void scan_tools::LaserScanMatcher::doPublishOdomRate |
( |
const ros::Time & |
time | ) |
|
|
private |
◆ doPublishScanRate()
void scan_tools::LaserScanMatcher::doPublishScanRate |
( |
const ros::Time & |
time | ) |
|
|
private |
◆ earliestOdomAfter()
◆ fusePoses()
tf::Vector3 scan_tools::LaserScanMatcher::fusePoses |
( |
const tf::Transform & |
pose_delta | ) |
|
|
private |
◆ getBaseToFootprintTf()
bool scan_tools::LaserScanMatcher::getBaseToFootprintTf |
( |
const std::string & |
frame_id | ) |
|
|
private |
◆ getBaseToLaserTf()
bool scan_tools::LaserScanMatcher::getBaseToLaserTf |
( |
const std::string & |
frame_id | ) |
|
|
private |
◆ getOdomDeltaT()
double scan_tools::LaserScanMatcher::getOdomDeltaT |
( |
const nav_msgs::Odometry::ConstPtr & |
o | ) |
|
|
private |
◆ getPrediction()
void scan_tools::LaserScanMatcher::getPrediction |
( |
double & |
pr_ch_x, |
|
|
double & |
pr_ch_y, |
|
|
double & |
pr_ch_a, |
|
|
double |
dt |
|
) |
| |
|
private |
◆ initialposeCallback()
void scan_tools::LaserScanMatcher::initialposeCallback |
( |
const geometry_msgs::PoseWithCovarianceStamped::ConstPtr & |
pose_msg | ) |
|
|
private |
◆ initParams()
void scan_tools::LaserScanMatcher::initParams |
( |
| ) |
|
|
private |
◆ laserScanToLDP()
void scan_tools::LaserScanMatcher::laserScanToLDP |
( |
const sensor_msgs::LaserScan::ConstPtr & |
scan_msg, |
|
|
LDP & |
ldp |
|
) |
| |
|
private |
◆ latestOdomBefore()
◆ mapCallback()
void scan_tools::LaserScanMatcher::mapCallback |
( |
const nav_msgs::OccupancyGrid::ConstPtr & |
map_msg | ) |
|
|
private |
◆ newKeyframeNeeded()
bool scan_tools::LaserScanMatcher::newKeyframeNeeded |
( |
const tf::Transform & |
d | ) |
|
|
private |
◆ odomCallback()
void scan_tools::LaserScanMatcher::odomCallback |
( |
const nav_msgs::Odometry::ConstPtr & |
odom_msg | ) |
|
|
private |
◆ processScan() [1/2]
int scan_tools::LaserScanMatcher::processScan |
( |
LDP & |
curr_ldp_scan, |
|
|
const ros::Time & |
time |
|
) |
| |
|
private |
◆ processScan() [2/2]
int scan_tools::LaserScanMatcher::processScan |
( |
LDP & |
curr_ldp_scan, |
|
|
LDP & |
ref_ldp_scan, |
|
|
const ros::Time & |
time |
|
) |
| |
|
private |
◆ resetState()
void scan_tools::LaserScanMatcher::resetState |
( |
| ) |
|
|
private |
◆ scanCallback()
void scan_tools::LaserScanMatcher::scanCallback |
( |
const sensor_msgs::LaserScan::ConstPtr & |
scan_msg | ) |
|
|
private |
◆ setTransSigmaMatrix()
void scan_tools::LaserScanMatcher::setTransSigmaMatrix |
( |
const double |
yaw | ) |
|
|
private |
◆ syncOdom()
double scan_tools::LaserScanMatcher::syncOdom |
( |
const ros::Time & |
time | ) |
|
|
private |
◆ B_odom_
gsl_matrix* scan_tools::LaserScanMatcher::B_odom_ |
|
private |
◆ base_frame_
std::string scan_tools::LaserScanMatcher::base_frame_ |
|
private |
◆ base_to_footprint_
◆ base_to_laser_
◆ constructed_intensities_
std::vector<double> scan_tools::LaserScanMatcher::constructed_intensities_ |
|
private |
◆ constructed_ranges_
std::vector<double> scan_tools::LaserScanMatcher::constructed_ranges_ |
|
private |
◆ constructed_scan_publisher_
ros::Publisher scan_tools::LaserScanMatcher::constructed_scan_publisher_ |
|
private |
◆ current_odom_msg_
◆ debug_csm_
bool scan_tools::LaserScanMatcher::debug_csm_ |
|
private |
◆ debug_laser_delta_publisher_
ros::Publisher scan_tools::LaserScanMatcher::debug_laser_delta_publisher_ |
|
private |
◆ debug_odom_current_publisher_
ros::Publisher scan_tools::LaserScanMatcher::debug_odom_current_publisher_ |
|
private |
◆ debug_odom_delta_publisher_
ros::Publisher scan_tools::LaserScanMatcher::debug_odom_delta_publisher_ |
|
private |
◆ debug_odom_reference_publisher_
ros::Publisher scan_tools::LaserScanMatcher::debug_odom_reference_publisher_ |
|
private |
◆ f2b_
◆ f2b_kf_
◆ f2pcl_
◆ fixed_frame_
std::string scan_tools::LaserScanMatcher::fixed_frame_ |
|
private |
◆ footprint_to_base_
◆ have_map_
bool scan_tools::LaserScanMatcher::have_map_ |
|
private |
◆ I1_
gsl_matrix* scan_tools::LaserScanMatcher::I1_ |
|
private |
◆ I2_
gsl_matrix* scan_tools::LaserScanMatcher::I2_ |
|
private |
◆ initial_pose_
◆ initialized_
bool scan_tools::LaserScanMatcher::initialized_ |
|
private |
◆ initialpose_subscriber_
◆ initialpose_topic_
std::string scan_tools::LaserScanMatcher::initialpose_topic_ |
|
private |
◆ initialpose_valid_
bool scan_tools::LaserScanMatcher::initialpose_valid_ |
|
private |
◆ input_
sm_params scan_tools::LaserScanMatcher::input_ |
|
private |
◆ kalman_gain_
gsl_matrix* scan_tools::LaserScanMatcher::kalman_gain_ |
|
private |
◆ kalman_gain_comp_
gsl_matrix* scan_tools::LaserScanMatcher::kalman_gain_comp_ |
|
private |
◆ kf_dist_angular_
double scan_tools::LaserScanMatcher::kf_dist_angular_ |
|
private |
◆ kf_dist_linear_
double scan_tools::LaserScanMatcher::kf_dist_linear_ |
|
private |
◆ kf_dist_linear_sq_
double scan_tools::LaserScanMatcher::kf_dist_linear_sq_ |
|
private |
◆ laser_to_base_
◆ last_icp_time_
ros::Time scan_tools::LaserScanMatcher::last_icp_time_ |
|
private |
◆ map_occupancy_threshold_
double scan_tools::LaserScanMatcher::map_occupancy_threshold_ |
|
private |
◆ map_subscriber_
◆ max_allowed_range_
double scan_tools::LaserScanMatcher::max_allowed_range_ |
|
private |
◆ max_pose_delta_yaw_
double scan_tools::LaserScanMatcher::max_pose_delta_yaw_ |
|
private |
◆ max_variance_rot_
double scan_tools::LaserScanMatcher::max_variance_rot_ |
|
private |
◆ max_variance_trans_
double scan_tools::LaserScanMatcher::max_variance_trans_ |
|
private |
◆ measured_pose_
◆ measured_pose_publisher_
◆ mutex_
boost::mutex scan_tools::LaserScanMatcher::mutex_ |
|
private |
◆ nh_
◆ nh_private_
◆ no_odom_fusing_
bool scan_tools::LaserScanMatcher::no_odom_fusing_ |
|
private |
◆ observed_angle_inc_
double scan_tools::LaserScanMatcher::observed_angle_inc_ |
|
private |
◆ observed_angle_max_
double scan_tools::LaserScanMatcher::observed_angle_max_ |
|
private |
◆ observed_angle_min_
double scan_tools::LaserScanMatcher::observed_angle_min_ |
|
private |
◆ observed_range_max_
double scan_tools::LaserScanMatcher::observed_range_max_ |
|
private |
◆ observed_range_min_
double scan_tools::LaserScanMatcher::observed_range_min_ |
|
private |
◆ observed_scan_frame_
std::string scan_tools::LaserScanMatcher::observed_scan_frame_ |
|
private |
◆ observed_scan_time_
double scan_tools::LaserScanMatcher::observed_scan_time_ |
|
private |
◆ observed_time_inc_
double scan_tools::LaserScanMatcher::observed_time_inc_ |
|
private |
◆ odom_frame_
std::string scan_tools::LaserScanMatcher::odom_frame_ |
|
private |
◆ odom_history_
◆ odom_subscriber_
◆ orientation_covariance_
std::vector<double> scan_tools::LaserScanMatcher::orientation_covariance_ |
|
private |
◆ output_
sm_result scan_tools::LaserScanMatcher::output_ |
|
private |
◆ P2_
gsl_permutation* scan_tools::LaserScanMatcher::P2_ |
|
private |
◆ pcl2f_
◆ pose_publisher_
◆ pose_stamped_publisher_
◆ pose_with_covariance_publisher_
ros::Publisher scan_tools::LaserScanMatcher::pose_with_covariance_publisher_ |
|
private |
◆ pose_with_covariance_stamped_publisher_
ros::Publisher scan_tools::LaserScanMatcher::pose_with_covariance_stamped_publisher_ |
|
private |
◆ position_covariance_
std::vector<double> scan_tools::LaserScanMatcher::position_covariance_ |
|
private |
◆ predicted_pose_
◆ predicted_pose_in_pcl_
tf::Transform scan_tools::LaserScanMatcher::predicted_pose_in_pcl_ |
|
private |
◆ predicted_pose_publisher_
ros::Publisher scan_tools::LaserScanMatcher::predicted_pose_publisher_ |
|
private |
◆ prev_ldp_scan_
LDP scan_tools::LaserScanMatcher::prev_ldp_scan_ |
|
private |
◆ publish_base_tf_
bool scan_tools::LaserScanMatcher::publish_base_tf_ |
|
private |
◆ publish_constructed_scan_
bool scan_tools::LaserScanMatcher::publish_constructed_scan_ |
|
private |
◆ publish_debug_
bool scan_tools::LaserScanMatcher::publish_debug_ |
|
private |
◆ publish_measured_pose_
bool scan_tools::LaserScanMatcher::publish_measured_pose_ |
|
private |
◆ publish_odom_tf_
bool scan_tools::LaserScanMatcher::publish_odom_tf_ |
|
private |
◆ publish_pose_
bool scan_tools::LaserScanMatcher::publish_pose_ |
|
private |
◆ publish_pose_stamped_
bool scan_tools::LaserScanMatcher::publish_pose_stamped_ |
|
private |
◆ publish_pose_with_covariance_
bool scan_tools::LaserScanMatcher::publish_pose_with_covariance_ |
|
private |
◆ publish_pose_with_covariance_stamped_
bool scan_tools::LaserScanMatcher::publish_pose_with_covariance_stamped_ |
|
private |
◆ publish_predicted_pose_
bool scan_tools::LaserScanMatcher::publish_predicted_pose_ |
|
private |
◆ received_odom_
bool scan_tools::LaserScanMatcher::received_odom_ |
|
private |
◆ reference_odom_msg_
◆ scan_constructor_
◆ scan_downsample_rate_
int scan_tools::LaserScanMatcher::scan_downsample_rate_ |
|
private |
◆ scan_subscriber_
◆ Sigma_measured_
gsl_matrix* scan_tools::LaserScanMatcher::Sigma_measured_ |
|
private |
◆ Sigma_odom_
gsl_matrix* scan_tools::LaserScanMatcher::Sigma_odom_ |
|
private |
◆ Sigma_odom_trans_
gsl_matrix* scan_tools::LaserScanMatcher::Sigma_odom_trans_ |
|
private |
◆ Sigma_u_
gsl_matrix* scan_tools::LaserScanMatcher::Sigma_u_ |
|
private |
◆ skipped_poses_
int scan_tools::LaserScanMatcher::skipped_poses_ |
|
private |
◆ tf_broadcaster_
◆ tf_listener_
◆ theta_odom_
double scan_tools::LaserScanMatcher::theta_odom_ |
|
private |
◆ trans_sigma_
gsl_matrix* scan_tools::LaserScanMatcher::trans_sigma_ |
|
private |
◆ use_map_
bool scan_tools::LaserScanMatcher::use_map_ |
|
private |
◆ use_odom_
bool scan_tools::LaserScanMatcher::use_odom_ |
|
private |
◆ xvec_
gsl_vector* scan_tools::LaserScanMatcher::xvec_ |
|
private |
◆ yvec_
gsl_vector* scan_tools::LaserScanMatcher::yvec_ |
|
private |
The documentation for this class was generated from the following files: