49 ROS_ERROR(
"One of IMU and Odometry must be enabled");
54 pnh.
param(
"robot_frame",
frame_ids_[
"base_link"], std::string(
"base_link"));
58 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/clip_near",
"clip_near");
59 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/clip_far",
"clip_far");
60 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/clip_z_min",
"clip_z_min");
61 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/clip_z_max",
"clip_z_max");
62 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/match_dist_min",
"match_dist_min");
63 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/match_dist_flat",
"match_dist_flat");
64 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/match_weight",
"match_weight");
65 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/num_points",
"num_points");
66 mcl_3dl_compat::paramRename<double>(pnh,
"likelihood/num_points_global",
"num_points_global");
68 mcl_3dl_compat::paramRename<double>(pnh,
"beam/clip_near",
"clip_beam_near");
69 mcl_3dl_compat::paramRename<double>(pnh,
"beam/clip_far",
"clip_beam_far");
70 mcl_3dl_compat::paramRename<double>(pnh,
"beam/clip_z_min",
"clip_beam_z_min");
71 mcl_3dl_compat::paramRename<double>(pnh,
"beam/clip_z_max",
"clip_beam_z_max");
72 mcl_3dl_compat::paramRename<double>(pnh,
"beam/num_points",
"num_points_beam");
73 mcl_3dl_compat::paramRename<double>(pnh,
"beam/beam_likelihood",
"beam_likelihood");
74 mcl_3dl_compat::paramRename<double>(pnh,
"beam/ang_total_ref",
"ang_total_ref");
95 double map_update_interval_t;
96 pnh.param(
"map_update_interval_interval", map_update_interval_t, 2.0);
106 pnh.param(
"global_localization_grid_ang", grid_ang, 0.524);
138 pnh.param(
"acc_var",
acc_var_, M_PI / 4.0);
143 pnh.param(
"fix_ang",
fix_ang_, 0.1);
151 double match_output_interval_t;
152 pnh.param(
"match_output_interval_interval", match_output_interval_t, 0.2);
155 double tf_tolerance_t;
156 pnh.param(
"tf_tolerance", tf_tolerance_t, 0.05);
165 const float float_max = std::numeric_limits<float>::max();
173 double roll, pitch, yaw;
174 double v_x, v_y, v_z;
175 double v_roll, v_pitch, v_yaw;
176 pnh.param(
"init_x", x, 0.0);
177 pnh.param(
"init_y", y, 0.0);
178 pnh.param(
"init_z", z, 0.0);
179 pnh.param(
"init_roll", roll, 0.0);
180 pnh.param(
"init_pitch", pitch, 0.0);
181 pnh.param(
"init_yaw", yaw, 0.0);
182 pnh.param(
"init_var_x", v_x, 2.0);
183 pnh.param(
"init_var_y", v_y, 2.0);
184 pnh.param(
"init_var_z", v_z, 0.5);
185 pnh.param(
"init_var_roll", v_roll, 0.1);
186 pnh.param(
"init_var_pitch", v_pitch, 0.1);
187 pnh.param(
"init_var_yaw", v_yaw, 0.5);
193 Vec3(v_roll, v_pitch, v_yaw));
bool load(ros::NodeHandle &nh)
double update_downsample_x_
double resample_var_roll_
double unmatch_output_dist_
double match_output_dist_
double update_downsample_z_
double expansion_var_roll_
TFSIMD_FORCE_INLINE const tfScalar & y() const
std::shared_ptr< ros::Duration > map_update_interval_
int total_accum_cloud_max_
double global_localization_grid_
State6DOF initial_pose_std_
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val) const
std::array< float, 3 > std_warn_thresh_
TFSIMD_FORCE_INLINE const tfScalar & x() const
double odom_err_integ_lin_tc_
double expansion_var_yaw_
TFSIMD_FORCE_INLINE const tfScalar & z() const
std::map< std::string, std::string > frame_ids_
double expansion_var_pitch_
double odom_err_integ_ang_tc_
double match_ratio_thresh_
bool use_random_sampler_with_normal_
std::shared_ptr< ros::Duration > match_output_interval_
std::shared_ptr< ros::Duration > tf_tolerance_
double odom_err_integ_lin_sigma_
double update_downsample_y_
int global_localization_div_yaw_
double odom_err_integ_ang_sigma_
double resample_var_pitch_
std::array< float, 4 > dist_weight_