@@ -74,10 +74,14 @@ std::vector<rclcpp::Parameter> getDefaultKinematicParameters()
74
74
return parameters;
75
75
}
76
76
77
- rclcpp_lifecycle::LifecycleNode::SharedPtr makeTestNode (const std::string & name)
77
+ rclcpp_lifecycle::LifecycleNode::SharedPtr makeTestNode (
78
+ const std::string & name,
79
+ const std::vector<rclcpp::Parameter> & overrides = {})
78
80
{
79
- rclcpp::NodeOptions node_options = nav2_util::get_node_options_default () ;
81
+ rclcpp::NodeOptions node_options;
80
82
node_options.parameter_overrides (getDefaultKinematicParameters ());
83
+ node_options.parameter_overrides ().insert (
84
+ node_options.parameter_overrides ().end (), overrides.begin (), overrides.end ());
81
85
82
86
auto node = rclcpp_lifecycle::LifecycleNode::make_shared (name, node_options);
83
87
node->on_configure (node->get_current_state ());
@@ -142,8 +146,7 @@ TEST(VelocityIterator, standard_gen)
142
146
143
147
TEST (VelocityIterator, max_xy)
144
148
{
145
- auto nh = makeTestNode (" max_xy" );
146
- nh->set_parameters ({rclcpp::Parameter (" dwb.max_speed_xy" , 1.0 )});
149
+ auto nh = makeTestNode (" max_xy" , {rclcpp::Parameter (" dwb.max_speed_xy" , 1.0 )});
147
150
StandardTrajectoryGenerator gen;
148
151
gen.initialize (nh, " dwb" );
149
152
@@ -155,8 +158,7 @@ TEST(VelocityIterator, max_xy)
155
158
156
159
TEST (VelocityIterator, min_xy)
157
160
{
158
- auto nh = makeTestNode (" min_xy" );
159
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
161
+ auto nh = makeTestNode (" min_xy" , {rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
160
162
StandardTrajectoryGenerator gen;
161
163
gen.initialize (nh, " dwb" );
162
164
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists (zero);
@@ -167,8 +169,7 @@ TEST(VelocityIterator, min_xy)
167
169
168
170
TEST (VelocityIterator, min_theta)
169
171
{
170
- auto nh = makeTestNode (" min_theta" );
171
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
172
+ auto nh = makeTestNode (" min_theta" , {rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
172
173
StandardTrajectoryGenerator gen;
173
174
gen.initialize (nh, " dwb" );
174
175
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists (zero);
@@ -179,10 +180,11 @@ TEST(VelocityIterator, min_theta)
179
180
180
181
TEST (VelocityIterator, no_limits)
181
182
{
182
- auto nh = makeTestNode (" no_limits" );
183
- nh->set_parameters ({rclcpp::Parameter (" dwb.max_speed_xy" , -1.0 )});
184
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
185
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
183
+ auto nh = makeTestNode (
184
+ " no_limits" , {
185
+ rclcpp::Parameter (" dwb.max_speed_xy" , -1.0 ),
186
+ rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 ),
187
+ rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
186
188
StandardTrajectoryGenerator gen;
187
189
gen.initialize (nh, " dwb" );
188
190
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists (zero);
@@ -193,14 +195,15 @@ TEST(VelocityIterator, no_limits)
193
195
194
196
TEST (VelocityIterator, no_limits_samples)
195
197
{
196
- auto nh = makeTestNode (" no_limits_samples" );
197
- nh->set_parameters ({rclcpp::Parameter (" dwb.max_speed_xy" , -1.0 )});
198
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
199
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
200
- int x_samples = 10 , y_samples = 3 , theta_samples = 5 ;
201
- nh->set_parameters ({rclcpp::Parameter (" dwb.vx_samples" , x_samples)});
202
- nh->set_parameters ({rclcpp::Parameter (" dwb.vy_samples" , y_samples)});
203
- nh->set_parameters ({rclcpp::Parameter (" dwb.vtheta_samples" , theta_samples)});
198
+ const int x_samples = 10 , y_samples = 3 , theta_samples = 5 ;
199
+ auto nh = makeTestNode (
200
+ " no_limits_samples" , {
201
+ rclcpp::Parameter (" dwb.max_speed_xy" , -1.0 ),
202
+ rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 ),
203
+ rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 ),
204
+ rclcpp::Parameter (" dwb.vx_samples" , x_samples),
205
+ rclcpp::Parameter (" dwb.vy_samples" , y_samples),
206
+ rclcpp::Parameter (" dwb.vtheta_samples" , theta_samples)});
204
207
StandardTrajectoryGenerator gen;
205
208
gen.initialize (nh, " dwb" );
206
209
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists (zero);
@@ -210,8 +213,7 @@ TEST(VelocityIterator, no_limits_samples)
210
213
211
214
TEST (VelocityIterator, dwa_gen)
212
215
{
213
- auto nh = makeTestNode (" dwa_gen" );
214
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
216
+ auto nh = makeTestNode (" dwa_gen" , {rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
215
217
dwb_plugins::LimitedAccelGenerator gen;
216
218
gen.initialize (nh, " dwb" );
217
219
std::vector<nav_2d_msgs::msg::Twist2D> twists = gen.getTwists (zero);
@@ -222,8 +224,7 @@ TEST(VelocityIterator, dwa_gen)
222
224
223
225
TEST (VelocityIterator, nonzero)
224
226
{
225
- auto nh = makeTestNode (" nonzero" );
226
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
227
+ auto nh = makeTestNode (" nonzero" , {rclcpp::Parameter (" dwb.min_speed_theta" , -1.0 )});
227
228
dwb_plugins::LimitedAccelGenerator gen;
228
229
gen.initialize (nh, " dwb" );
229
230
nav_2d_msgs::msg::Twist2D initial;
@@ -273,9 +274,8 @@ const double DEFAULT_SIM_TIME = 1.7;
273
274
274
275
TEST (TrajectoryGenerator, basic)
275
276
{
276
- auto nh = makeTestNode (" basic" );
277
+ auto nh = makeTestNode (" basic" , { rclcpp::Parameter ( " dwb.linear_granularity " , 0.5 )} );
277
278
StandardTrajectoryGenerator gen;
278
- nh->set_parameters ({rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
279
279
gen.initialize (nh, " dwb" );
280
280
dwb_msgs::msg::Trajectory2D res = gen.generateTrajectory (origin, forward, forward);
281
281
matchTwist (res.velocity , forward);
@@ -290,10 +290,11 @@ TEST(TrajectoryGenerator, basic)
290
290
291
291
TEST (TrajectoryGenerator, basic_no_last_point)
292
292
{
293
- auto nh = makeTestNode (" basic_no_last_point" );
293
+ auto nh = makeTestNode (
294
+ " basic_no_last_point" , {
295
+ rclcpp::Parameter (" dwb.include_last_point" , false ),
296
+ rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
294
297
StandardTrajectoryGenerator gen;
295
- nh->set_parameters ({rclcpp::Parameter (" dwb.include_last_point" , false )});
296
- nh->set_parameters ({rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
297
298
gen.initialize (nh, " dwb" );
298
299
dwb_msgs::msg::Trajectory2D res = gen.generateTrajectory (origin, forward, forward);
299
300
matchTwist (res.velocity , forward);
@@ -308,9 +309,8 @@ TEST(TrajectoryGenerator, basic_no_last_point)
308
309
309
310
TEST (TrajectoryGenerator, too_slow)
310
311
{
311
- auto nh = makeTestNode (" too_slow" );
312
+ auto nh = makeTestNode (" too_slow" , { rclcpp::Parameter ( " dwb.linear_granularity " , 0.5 )} );
312
313
StandardTrajectoryGenerator gen;
313
- nh->set_parameters ({rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
314
314
gen.initialize (nh, " dwb" );
315
315
nav_2d_msgs::msg::Twist2D cmd;
316
316
cmd.x = 0.2 ;
@@ -326,9 +326,8 @@ TEST(TrajectoryGenerator, too_slow)
326
326
327
327
TEST (TrajectoryGenerator, holonomic)
328
328
{
329
- auto nh = makeTestNode (" holonomic" );
329
+ auto nh = makeTestNode (" holonomic" , { rclcpp::Parameter ( " dwb.linear_granularity " , 0.5 )} );
330
330
StandardTrajectoryGenerator gen;
331
- nh->set_parameters ({rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
332
331
gen.initialize (nh, " dwb" );
333
332
nav_2d_msgs::msg::Twist2D cmd;
334
333
cmd.x = 0.3 ;
@@ -346,10 +345,11 @@ TEST(TrajectoryGenerator, holonomic)
346
345
347
346
TEST (TrajectoryGenerator, twisty)
348
347
{
349
- auto nh = makeTestNode (" twisty" );
348
+ auto nh = makeTestNode (
349
+ " twisty" , {
350
+ rclcpp::Parameter (" dwb.linear_granularity" , 0.5 ),
351
+ rclcpp::Parameter (" dwb.angular_granularity" , 0.025 )});
350
352
StandardTrajectoryGenerator gen;
351
- nh->set_parameters ({rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
352
- nh->set_parameters ({rclcpp::Parameter (" dwb.angular_granularity" , 0.025 )});
353
353
gen.initialize (nh, " dwb" );
354
354
nav_2d_msgs::msg::Twist2D cmd;
355
355
cmd.x = 0.3 ;
@@ -370,10 +370,11 @@ TEST(TrajectoryGenerator, twisty)
370
370
371
371
TEST (TrajectoryGenerator, sim_time)
372
372
{
373
- auto nh = makeTestNode (" sim_time" );
374
373
const double sim_time = 2.5 ;
375
- nh->set_parameters ({rclcpp::Parameter (" dwb.sim_time" , sim_time)});
376
- nh->set_parameters ({rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
374
+ auto nh = makeTestNode (
375
+ " sim_time" , {
376
+ rclcpp::Parameter (" dwb.sim_time" , sim_time),
377
+ rclcpp::Parameter (" dwb.linear_granularity" , 0.5 )});
377
378
StandardTrajectoryGenerator gen;
378
379
gen.initialize (nh, " dwb" );
379
380
dwb_msgs::msg::Trajectory2D res = gen.generateTrajectory (origin, forward, forward);
@@ -389,12 +390,13 @@ TEST(TrajectoryGenerator, sim_time)
389
390
390
391
TEST (TrajectoryGenerator, accel)
391
392
{
392
- auto nh = makeTestNode (" accel" );
393
- nh->set_parameters ({rclcpp::Parameter (" dwb.sim_time" , 5.0 )});
394
- nh->set_parameters ({rclcpp::Parameter (" dwb.discretize_by_time" , true )});
395
- nh->set_parameters ({rclcpp::Parameter (" dwb.time_granularity" , 1.0 )});
396
- nh->set_parameters ({rclcpp::Parameter (" dwb.acc_lim_x" , 0.1 )});
397
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
393
+ auto nh = makeTestNode (
394
+ " accel" , {
395
+ rclcpp::Parameter (" dwb.sim_time" , 5.0 ),
396
+ rclcpp::Parameter (" dwb.discretize_by_time" , true ),
397
+ rclcpp::Parameter (" dwb.time_granularity" , 1.0 ),
398
+ rclcpp::Parameter (" dwb.acc_lim_x" , 0.1 ),
399
+ rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
398
400
StandardTrajectoryGenerator gen;
399
401
gen.initialize (nh, " dwb" );
400
402
@@ -412,13 +414,14 @@ TEST(TrajectoryGenerator, accel)
412
414
413
415
TEST (TrajectoryGenerator, dwa)
414
416
{
415
- auto nh = makeTestNode (" dwa" );
416
- nh->set_parameters ({rclcpp::Parameter (" dwb.sim_period" , 1.0 )});
417
- nh->set_parameters ({rclcpp::Parameter (" dwb.sim_time" , 5.0 )});
418
- nh->set_parameters ({rclcpp::Parameter (" dwb.discretize_by_time" , true )});
419
- nh->set_parameters ({rclcpp::Parameter (" dwb.time_granularity" , 1.0 )});
420
- nh->set_parameters ({rclcpp::Parameter (" dwb.acc_lim_x" , 0.1 )});
421
- nh->set_parameters ({rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
417
+ auto nh = makeTestNode (
418
+ " dwa" , {
419
+ rclcpp::Parameter (" dwb.sim_period" , 1.0 ),
420
+ rclcpp::Parameter (" dwb.sim_time" , 5.0 ),
421
+ rclcpp::Parameter (" dwb.discretize_by_time" , true ),
422
+ rclcpp::Parameter (" dwb.time_granularity" , 1.0 ),
423
+ rclcpp::Parameter (" dwb.acc_lim_x" , 0.1 ),
424
+ rclcpp::Parameter (" dwb.min_speed_xy" , -1.0 )});
422
425
dwb_plugins::LimitedAccelGenerator gen;
423
426
gen.initialize (nh, " dwb" );
424
427
0 commit comments