@@ -58,126 +58,6 @@ AmclNode::AmclNode(const rclcpp::NodeOptions & options)
58
58
: nav2::LifecycleNode(" amcl" , " " , options)
59
59
{
60
60
RCLCPP_INFO (get_logger (), " Creating" );
61
-
62
- declare_parameter (
63
- " alpha1" , rclcpp::ParameterValue (0.2 ));
64
-
65
- declare_parameter (
66
- " alpha2" , rclcpp::ParameterValue (0.2 ));
67
-
68
- declare_parameter (
69
- " alpha3" , rclcpp::ParameterValue (0.2 ));
70
-
71
- declare_parameter (
72
- " alpha4" , rclcpp::ParameterValue (0.2 ));
73
-
74
- declare_parameter (
75
- " alpha5" , rclcpp::ParameterValue (0.2 ));
76
-
77
- declare_parameter (
78
- " base_frame_id" , rclcpp::ParameterValue (std::string (" base_footprint" )));
79
-
80
- declare_parameter (" beam_skip_distance" , rclcpp::ParameterValue (0.5 ));
81
- declare_parameter (" beam_skip_error_threshold" , rclcpp::ParameterValue (0.9 ));
82
- declare_parameter (" beam_skip_threshold" , rclcpp::ParameterValue (0.3 ));
83
- declare_parameter (" do_beamskip" , rclcpp::ParameterValue (false ));
84
-
85
- declare_parameter (
86
- " global_frame_id" , rclcpp::ParameterValue (std::string (" map" )));
87
-
88
- declare_parameter (
89
- " lambda_short" , rclcpp::ParameterValue (0.1 ));
90
-
91
- declare_parameter (
92
- " laser_likelihood_max_dist" , rclcpp::ParameterValue (2.0 ));
93
-
94
- declare_parameter (
95
- " laser_max_range" , rclcpp::ParameterValue (100.0 ));
96
-
97
- declare_parameter (
98
- " laser_min_range" , rclcpp::ParameterValue (-1.0 ));
99
-
100
- declare_parameter (
101
- " laser_model_type" , rclcpp::ParameterValue (std::string (" likelihood_field" )));
102
-
103
- declare_parameter (
104
- " set_initial_pose" , rclcpp::ParameterValue (false ));
105
-
106
- declare_parameter (
107
- " initial_pose.x" , rclcpp::ParameterValue (0.0 ));
108
-
109
- declare_parameter (
110
- " initial_pose.y" , rclcpp::ParameterValue (0.0 ));
111
-
112
- declare_parameter (
113
- " initial_pose.z" , rclcpp::ParameterValue (0.0 ));
114
-
115
- declare_parameter (
116
- " initial_pose.yaw" , rclcpp::ParameterValue (0.0 ));
117
-
118
- declare_parameter (
119
- " max_beams" , rclcpp::ParameterValue (60 ));
120
-
121
- declare_parameter (
122
- " max_particles" , rclcpp::ParameterValue (2000 ));
123
-
124
- declare_parameter (
125
- " min_particles" , rclcpp::ParameterValue (500 ));
126
-
127
- declare_parameter (
128
- " odom_frame_id" , rclcpp::ParameterValue (std::string (" odom" )));
129
-
130
- declare_parameter (" pf_err" , rclcpp::ParameterValue (0.05 ));
131
- declare_parameter (" pf_z" , rclcpp::ParameterValue (0.99 ));
132
-
133
- declare_parameter (
134
- " recovery_alpha_fast" , rclcpp::ParameterValue (0.0 ));
135
-
136
- declare_parameter (
137
- " recovery_alpha_slow" , rclcpp::ParameterValue (0.0 ));
138
-
139
- declare_parameter (
140
- " resample_interval" , rclcpp::ParameterValue (1 ));
141
-
142
- declare_parameter (" robot_model_type" ,
143
- rclcpp::ParameterValue (" nav2_amcl::DifferentialMotionModel" ));
144
-
145
- declare_parameter (
146
- " save_pose_rate" , rclcpp::ParameterValue (0.5 ));
147
-
148
- declare_parameter (" sigma_hit" , rclcpp::ParameterValue (0.2 ));
149
-
150
- declare_parameter (
151
- " tf_broadcast" , rclcpp::ParameterValue (true ));
152
-
153
- declare_parameter (
154
- " transform_tolerance" , rclcpp::ParameterValue (1.0 ));
155
-
156
- declare_parameter (
157
- " update_min_a" , rclcpp::ParameterValue (0.2 ));
158
-
159
- declare_parameter (
160
- " update_min_d" , rclcpp::ParameterValue (0.25 ));
161
-
162
- declare_parameter (" z_hit" , rclcpp::ParameterValue (0.5 ));
163
- declare_parameter (" z_max" , rclcpp::ParameterValue (0.05 ));
164
- declare_parameter (" z_rand" , rclcpp::ParameterValue (0.5 ));
165
- declare_parameter (" z_short" , rclcpp::ParameterValue (0.05 ));
166
-
167
- declare_parameter (
168
- " always_reset_initial_pose" , rclcpp::ParameterValue (false ));
169
-
170
- declare_parameter (
171
- " scan_topic" , rclcpp::ParameterValue (" scan" ));
172
-
173
- declare_parameter (
174
- " map_topic" , rclcpp::ParameterValue (" map" ));
175
-
176
- declare_parameter (
177
- " first_map_only" , rclcpp::ParameterValue (false ));
178
-
179
- declare_parameter (
180
- " freespace_downsampling" , rclcpp::ParameterValue (false ));
181
61
}
182
62
183
63
AmclNode::~AmclNode ()
@@ -1013,52 +893,54 @@ AmclNode::initParameters()
1013
893
double save_pose_rate;
1014
894
double tmp_tol;
1015
895
1016
- get_parameter (" alpha1" , alpha1_);
1017
- get_parameter (" alpha2" , alpha2_);
1018
- get_parameter (" alpha3" , alpha3_);
1019
- get_parameter (" alpha4" , alpha4_);
1020
- get_parameter (" alpha5" , alpha5_);
1021
- get_parameter (" base_frame_id" , base_frame_id_);
1022
- get_parameter (" beam_skip_distance" , beam_skip_distance_);
1023
- get_parameter (" beam_skip_error_threshold" , beam_skip_error_threshold_);
1024
- get_parameter (" beam_skip_threshold" , beam_skip_threshold_);
1025
- get_parameter (" do_beamskip" , do_beamskip_);
1026
- get_parameter (" global_frame_id" , global_frame_id_);
1027
- get_parameter (" lambda_short" , lambda_short_);
1028
- get_parameter (" laser_likelihood_max_dist" , laser_likelihood_max_dist_);
1029
- get_parameter (" laser_max_range" , laser_max_range_);
1030
- get_parameter (" laser_min_range" , laser_min_range_);
1031
- get_parameter (" laser_model_type" , sensor_model_type_);
1032
- get_parameter (" set_initial_pose" , set_initial_pose_);
1033
- get_parameter (" initial_pose.x" , initial_pose_x_);
1034
- get_parameter (" initial_pose.y" , initial_pose_y_);
1035
- get_parameter (" initial_pose.z" , initial_pose_z_);
1036
- get_parameter (" initial_pose.yaw" , initial_pose_yaw_);
1037
- get_parameter (" max_beams" , max_beams_);
1038
- get_parameter (" max_particles" , max_particles_);
1039
- get_parameter (" min_particles" , min_particles_);
1040
- get_parameter (" odom_frame_id" , odom_frame_id_);
1041
- get_parameter (" pf_err" , pf_err_);
1042
- get_parameter (" pf_z" , pf_z_);
1043
- get_parameter (" recovery_alpha_fast" , alpha_fast_);
1044
- get_parameter (" recovery_alpha_slow" , alpha_slow_);
1045
- get_parameter (" resample_interval" , resample_interval_);
1046
- get_parameter (" robot_model_type" , robot_model_type_);
1047
- get_parameter (" save_pose_rate" , save_pose_rate);
1048
- get_parameter (" sigma_hit" , sigma_hit_);
1049
- get_parameter (" tf_broadcast" , tf_broadcast_);
1050
- get_parameter (" transform_tolerance" , tmp_tol);
1051
- get_parameter (" update_min_a" , a_thresh_);
1052
- get_parameter (" update_min_d" , d_thresh_);
1053
- get_parameter (" z_hit" , z_hit_);
1054
- get_parameter (" z_max" , z_max_);
1055
- get_parameter (" z_rand" , z_rand_);
1056
- get_parameter (" z_short" , z_short_);
1057
- get_parameter (" first_map_only" , first_map_only_);
1058
- get_parameter (" always_reset_initial_pose" , always_reset_initial_pose_);
1059
- get_parameter (" scan_topic" , scan_topic_);
1060
- get_parameter (" map_topic" , map_topic_);
1061
- get_parameter (" freespace_downsampling" , freespace_downsampling_);
896
+ alpha1_ = this ->declare_or_get_parameter (" alpha1" , 0.2 );
897
+ alpha2_ = this ->declare_or_get_parameter (" alpha2" , 0.2 );
898
+ alpha3_ = this ->declare_or_get_parameter (" alpha3" , 0.2 );
899
+ alpha4_ = this ->declare_or_get_parameter (" alpha4" , 0.2 );
900
+ alpha5_ = this ->declare_or_get_parameter (" alpha5" , 0.2 );
901
+ base_frame_id_ = this ->declare_or_get_parameter (" base_frame_id" , std::string{" base_footprint" });
902
+ beam_skip_distance_ = this ->declare_or_get_parameter (" beam_skip_distance" , 0.5 );
903
+ beam_skip_error_threshold_ = this ->declare_or_get_parameter (" beam_skip_error_threshold" , 0.9 );
904
+ beam_skip_threshold_ = this ->declare_or_get_parameter (" beam_skip_threshold" , 0.3 );
905
+ do_beamskip_ = this ->declare_or_get_parameter (" do_beamskip" , false );
906
+ global_frame_id_ = this ->declare_or_get_parameter (" global_frame_id" , std::string{" map" });
907
+ lambda_short_ = this ->declare_or_get_parameter (" lambda_short" , 0.1 );
908
+ laser_likelihood_max_dist_ = this ->declare_or_get_parameter (" laser_likelihood_max_dist" , 2.0 );
909
+ laser_max_range_ = this ->declare_or_get_parameter (" laser_max_range" , 100.0 );
910
+ laser_min_range_ = this ->declare_or_get_parameter (" laser_min_range" , -1.0 );
911
+ sensor_model_type_ = this ->declare_or_get_parameter (
912
+ " laser_model_type" , std::string{" likelihood_field" });
913
+ set_initial_pose_ = this ->declare_or_get_parameter (" set_initial_pose" , false );
914
+ initial_pose_x_ = this ->declare_or_get_parameter (" initial_pose.x" , 0.0 );
915
+ initial_pose_y_ = this ->declare_or_get_parameter (" initial_pose.y" , 0.0 );
916
+ initial_pose_z_ = this ->declare_or_get_parameter (" initial_pose.z" , 0.0 );
917
+ initial_pose_yaw_ = this ->declare_or_get_parameter (" initial_pose.yaw" , 0.0 );
918
+ max_beams_ = this ->declare_or_get_parameter (" max_beams" , 60 );
919
+ max_particles_ = this ->declare_or_get_parameter (" max_particles" , 2000 );
920
+ min_particles_ = this ->declare_or_get_parameter (" min_particles" , 500 );
921
+ odom_frame_id_ = this ->declare_or_get_parameter (" odom_frame_id" , std::string{" odom" });
922
+ pf_err_ = this ->declare_or_get_parameter (" pf_err" , 0.05 );
923
+ pf_z_ = this ->declare_or_get_parameter (" pf_z" , 0.99 );
924
+ alpha_fast_ = this ->declare_or_get_parameter (" recovery_alpha_fast" , 0.0 );
925
+ alpha_slow_ = this ->declare_or_get_parameter (" recovery_alpha_slow" , 0.0 );
926
+ resample_interval_ = this ->declare_or_get_parameter (" resample_interval" , 1 );
927
+ robot_model_type_ = this ->declare_or_get_parameter (
928
+ " robot_model_type" , std::string{" nav2_amcl::DifferentialMotionModel" });
929
+ save_pose_rate = this ->declare_or_get_parameter (" save_pose_rate" , 0.5 );
930
+ sigma_hit_ = this ->declare_or_get_parameter (" sigma_hit" , 0.2 );
931
+ tf_broadcast_ = this ->declare_or_get_parameter (" tf_broadcast" , true );
932
+ tmp_tol = this ->declare_or_get_parameter (" transform_tolerance" , 1.0 );
933
+ a_thresh_ = this ->declare_or_get_parameter (" update_min_a" , 0.2 );
934
+ d_thresh_ = this ->declare_or_get_parameter (" update_min_d" , 0.25 );
935
+ z_hit_ = this ->declare_or_get_parameter (" z_hit" , 0.5 );
936
+ z_max_ = this ->declare_or_get_parameter (" z_max" , 0.05 );
937
+ z_rand_ = this ->declare_or_get_parameter (" z_rand" , 0.5 );
938
+ z_short_ = this ->declare_or_get_parameter (" z_short" , 0.05 );
939
+ first_map_only_ = this ->declare_or_get_parameter (" first_map_only" , false );
940
+ always_reset_initial_pose_ = this ->declare_or_get_parameter (" always_reset_initial_pose" , false );
941
+ scan_topic_ = this ->declare_or_get_parameter (" scan_topic" , std::string{" scan" });
942
+ map_topic_ = this ->declare_or_get_parameter (" map_topic" , std::string{" map" });
943
+ freespace_downsampling_ = this ->declare_or_get_parameter (" freespace_downsampling" , false );
1062
944
1063
945
save_pose_period_ = tf2::durationFromSec (1.0 / save_pose_rate);
1064
946
transform_tolerance_ = tf2::durationFromSec (tmp_tol);
0 commit comments