@@ -334,15 +334,288 @@ void StartPlannerModuleManager::updateModuleParams(
334
334
335
335
auto & p = parameters_;
336
336
337
- [[maybe_unused]] const std::string ns = name_ + " ." ;
338
-
339
- std::for_each (observers_.begin (), observers_.end (), [&](const auto & observer) {
340
- if (!observer.expired ()) {
341
- const auto start_planner_ptr = std::dynamic_pointer_cast<StartPlannerModule>(observer.lock ());
342
- if (start_planner_ptr) {
343
- start_planner_ptr->updateModuleParams (p);
344
- }
345
- }
337
+ const std::string ns = " start_planner." ;
338
+
339
+ {
340
+ updateParam<double >(parameters, ns + " th_arrived_distance" , p->th_arrived_distance );
341
+ updateParam<double >(parameters, ns + " th_stopped_velocity" , p->th_stopped_velocity );
342
+ updateParam<double >(parameters, ns + " th_stopped_time" , p->th_stopped_time );
343
+ updateParam<double >(parameters, ns + " prepare_time_before_start" , p->prepare_time_before_start );
344
+ updateParam<double >(
345
+ parameters, ns + " th_turn_signal_on_lateral_offset" , p->th_turn_signal_on_lateral_offset );
346
+ updateParam<double >(
347
+ parameters, ns + " th_distance_to_middle_of_the_road" , p->th_distance_to_middle_of_the_road );
348
+ updateParam<double >(
349
+ parameters, ns + " intersection_search_length" , p->intersection_search_length );
350
+ updateParam<double >(
351
+ parameters, ns + " length_ratio_for_turn_signal_deactivation_near_intersection" ,
352
+ p->length_ratio_for_turn_signal_deactivation_near_intersection );
353
+
354
+ updateParam<double >(
355
+ parameters, ns + " collision_check_margin_from_front_object" ,
356
+ p->collision_check_margin_from_front_object );
357
+ updateParam<double >(parameters, ns + " th_moving_object_velocity" , p->th_moving_object_velocity );
358
+ updateParam<double >(parameters, ns + " center_line_path_interval" , p->center_line_path_interval );
359
+ updateParam<bool >(parameters, ns + " enable_shift_pull_out" , p->enable_shift_pull_out );
360
+ updateParam<double >(
361
+ parameters, ns + " shift_collision_check_distance_from_end" ,
362
+ p->shift_collision_check_distance_from_end );
363
+ updateParam<double >(
364
+ parameters, ns + " minimum_shift_pull_out_distance" , p->minimum_shift_pull_out_distance );
365
+ updateParam<int >(
366
+ parameters, ns + " lateral_acceleration_sampling_num" , p->lateral_acceleration_sampling_num );
367
+ updateParam<double >(parameters, ns + " lateral_jerk" , p->lateral_jerk );
368
+ updateParam<double >(parameters, ns + " maximum_lateral_acc" , p->maximum_lateral_acc );
369
+ updateParam<double >(parameters, ns + " minimum_lateral_acc" , p->minimum_lateral_acc );
370
+ updateParam<double >(parameters, ns + " maximum_curvature" , p->maximum_curvature );
371
+ updateParam<double >(parameters, ns + " deceleration_interval" , p->deceleration_interval );
372
+ updateParam<bool >(parameters, ns + " enable_geometric_pull_out" , p->enable_geometric_pull_out );
373
+ updateParam<bool >(parameters, ns + " divide_pull_out_path" , p->divide_pull_out_path );
374
+ updateParam<double >(
375
+ parameters, ns + " arc_path_interval" , p->parallel_parking_parameters .pull_out_path_interval );
376
+ updateParam<double >(
377
+ parameters, ns + " lane_departure_margin" ,
378
+ p->parallel_parking_parameters .pull_out_lane_departure_margin );
379
+ updateParam<double >(
380
+ parameters, ns + " pull_out_max_steer_angle" ,
381
+ p->parallel_parking_parameters .pull_out_max_steer_angle );
382
+ updateParam<bool >(parameters, ns + " enable_back" , p->enable_back );
383
+ updateParam<double >(parameters, ns + " max_back_distance" , p->max_back_distance );
384
+ updateParam<double >(
385
+ parameters, ns + " backward_search_resolution" , p->backward_search_resolution );
386
+ updateParam<double >(
387
+ parameters, ns + " backward_path_update_duration" , p->backward_path_update_duration );
388
+ updateParam<double >(
389
+ parameters, ns + " ignore_distance_from_lane_end" , p->ignore_distance_from_lane_end );
390
+ }
391
+ {
392
+ const std::string ns = " start_planner.freespace_planner." ;
393
+
394
+ updateParam<bool >(parameters, ns + " enable_freespace_planner" , p->enable_freespace_planner );
395
+ updateParam<double >(
396
+ parameters, ns + " end_pose_search_start_distance" , p->end_pose_search_start_distance );
397
+ updateParam<double >(
398
+ parameters, ns + " end_pose_search_end_distance" , p->end_pose_search_end_distance );
399
+ updateParam<double >(parameters, ns + " end_pose_search_interval" , p->end_pose_search_interval );
400
+ updateParam<double >(parameters, ns + " velocity" , p->freespace_planner_velocity );
401
+ updateParam<double >(parameters, ns + " vehicle_shape_margin" , p->vehicle_shape_margin );
402
+ updateParam<double >(
403
+ parameters, ns + " time_limit" , p->freespace_planner_common_parameters .time_limit );
404
+ updateParam<double >(
405
+ parameters, ns + " minimum_turning_radius" ,
406
+ p->freespace_planner_common_parameters .minimum_turning_radius );
407
+ updateParam<double >(
408
+ parameters, ns + " maximum_turning_radius" ,
409
+ p->freespace_planner_common_parameters .maximum_turning_radius );
410
+ updateParam<int >(
411
+ parameters, ns + " turning_radius_size" ,
412
+ p->freespace_planner_common_parameters .turning_radius_size );
413
+ }
414
+ {
415
+ const std::string ns = " start_planner.freespace_planner.search_configs." ;
416
+
417
+ updateParam<int >(
418
+ parameters, ns + " theta_size" , p->freespace_planner_common_parameters .theta_size );
419
+ updateParam<double >(
420
+ parameters, ns + " angle_goal_range" , p->freespace_planner_common_parameters .angle_goal_range );
421
+ updateParam<double >(
422
+ parameters, ns + " curve_weight" , p->freespace_planner_common_parameters .curve_weight );
423
+ updateParam<double >(
424
+ parameters, ns + " reverse_weight" , p->freespace_planner_common_parameters .reverse_weight );
425
+ updateParam<double >(
426
+ parameters, ns + " lateral_goal_range" ,
427
+ p->freespace_planner_common_parameters .lateral_goal_range );
428
+ updateParam<double >(
429
+ parameters, ns + " longitudinal_goal_range" ,
430
+ p->freespace_planner_common_parameters .longitudinal_goal_range );
431
+ }
432
+
433
+ {
434
+ const std::string ns = " start_planner.freespace_planner.costmap_configs." ;
435
+
436
+ updateParam<int >(
437
+ parameters, ns + " obstacle_threshold" ,
438
+ p->freespace_planner_common_parameters .obstacle_threshold );
439
+ }
440
+
441
+ {
442
+ const std::string ns = " start_planner.freespace_planner.astar." ;
443
+
444
+ updateParam<bool >(parameters, ns + " use_back" , p->astar_parameters .use_back );
445
+ }
446
+ {
447
+ const std::string ns = " start_planner.freespace_planner.rrtstar." ;
448
+
449
+ updateParam<bool >(parameters, ns + " enable_update" , p->rrt_star_parameters .enable_update );
450
+ updateParam<bool >(
451
+ parameters, ns + " use_informed_sampling" , p->rrt_star_parameters .use_informed_sampling );
452
+ updateParam<double >(
453
+ parameters, ns + " max_planning_time" , p->rrt_star_parameters .max_planning_time );
454
+ updateParam<double >(parameters, ns + " neighbor_radius" , p->rrt_star_parameters .neighbor_radius );
455
+ updateParam<double >(parameters, ns + " margin" , p->rrt_star_parameters .margin );
456
+ updateParam<double >(
457
+ parameters, ns + " stop_condition.maximum_deceleration_for_stop" ,
458
+ p->maximum_deceleration_for_stop );
459
+ updateParam<double >(
460
+ parameters, ns + " stop_condition.maximum_jerk_for_stop" , p->maximum_jerk_for_stop );
461
+ }
462
+
463
+ const std::string base_ns = " start_planner.path_safety_check." ;
464
+
465
+ const std::string ego_path_ns = base_ns + " ego_predicted_path." ;
466
+
467
+ {
468
+ updateParam<double >(
469
+ parameters, ego_path_ns + " min_velocity" , p->ego_predicted_path_params .min_velocity );
470
+ updateParam<double >(
471
+ parameters, ego_path_ns + " min_acceleration" , p->ego_predicted_path_params .acceleration );
472
+ updateParam<double >(
473
+ parameters, ego_path_ns + " time_horizon_for_front_object" ,
474
+ p->ego_predicted_path_params .time_horizon_for_front_object );
475
+ updateParam<double >(
476
+ parameters, ego_path_ns + " time_horizon_for_rear_object" ,
477
+ p->ego_predicted_path_params .time_horizon_for_rear_object );
478
+ updateParam<double >(
479
+ parameters, ego_path_ns + " time_resolution" , p->ego_predicted_path_params .time_resolution );
480
+ updateParam<double >(
481
+ parameters, ego_path_ns + " delay_until_departure" ,
482
+ p->ego_predicted_path_params .delay_until_departure );
483
+ }
484
+
485
+ const std::string obj_filter_ns = base_ns + " target_filtering." ;
486
+
487
+ {
488
+ updateParam<double >(
489
+ parameters, obj_filter_ns + " safety_check_time_horizon" ,
490
+ p->objects_filtering_params .safety_check_time_horizon );
491
+ updateParam<double >(
492
+ parameters, obj_filter_ns + " safety_check_time_resolution" ,
493
+ p->objects_filtering_params .safety_check_time_resolution );
494
+ updateParam<double >(
495
+ parameters, obj_filter_ns + " object_check_forward_distance" ,
496
+ p->objects_filtering_params .object_check_forward_distance );
497
+ updateParam<double >(
498
+ parameters, obj_filter_ns + " object_check_backward_distance" ,
499
+ p->objects_filtering_params .object_check_backward_distance );
500
+ updateParam<double >(
501
+ parameters, obj_filter_ns + " ignore_object_velocity_threshold" ,
502
+ p->objects_filtering_params .ignore_object_velocity_threshold );
503
+ updateParam<bool >(
504
+ parameters, obj_filter_ns + " include_opposite_lane" ,
505
+ p->objects_filtering_params .include_opposite_lane );
506
+ updateParam<bool >(
507
+ parameters, obj_filter_ns + " invert_opposite_lane" ,
508
+ p->objects_filtering_params .invert_opposite_lane );
509
+ updateParam<bool >(
510
+ parameters, obj_filter_ns + " check_all_predicted_path" ,
511
+ p->objects_filtering_params .check_all_predicted_path );
512
+ updateParam<bool >(
513
+ parameters, obj_filter_ns + " use_all_predicted_path" ,
514
+ p->objects_filtering_params .use_all_predicted_path );
515
+ updateParam<bool >(
516
+ parameters, obj_filter_ns + " use_predicted_path_outside_lanelet" ,
517
+ p->objects_filtering_params .use_predicted_path_outside_lanelet );
518
+ }
519
+
520
+ const std::string obj_types_ns = obj_filter_ns + " object_types_to_check." ;
521
+
522
+ {
523
+ updateParam<bool >(
524
+ parameters, obj_types_ns + " check_car" ,
525
+ p->objects_filtering_params .object_types_to_check .check_car );
526
+ updateParam<bool >(
527
+ parameters, obj_types_ns + " check_truck" ,
528
+ p->objects_filtering_params .object_types_to_check .check_truck );
529
+ updateParam<bool >(
530
+ parameters, obj_types_ns + " check_bus" ,
531
+ p->objects_filtering_params .object_types_to_check .check_bus );
532
+ updateParam<bool >(
533
+ parameters, obj_types_ns + " check_trailer" ,
534
+ p->objects_filtering_params .object_types_to_check .check_trailer );
535
+ updateParam<bool >(
536
+ parameters, obj_types_ns + " check_unknown" ,
537
+ p->objects_filtering_params .object_types_to_check .check_unknown );
538
+ updateParam<bool >(
539
+ parameters, obj_types_ns + " check_bicycle" ,
540
+ p->objects_filtering_params .object_types_to_check .check_bicycle );
541
+ updateParam<bool >(
542
+ parameters, obj_types_ns + " check_motorcycle" ,
543
+ p->objects_filtering_params .object_types_to_check .check_motorcycle );
544
+ updateParam<bool >(
545
+ parameters, obj_types_ns + " check_pedestrian" ,
546
+ p->objects_filtering_params .object_types_to_check .check_pedestrian );
547
+ }
548
+ const std::string obj_lane_ns = obj_filter_ns + " object_lane_configuration." ;
549
+
550
+ {
551
+ updateParam<bool >(
552
+ parameters, obj_lane_ns + " check_current_lane" ,
553
+ p->objects_filtering_params .object_lane_configuration .check_current_lane );
554
+ updateParam<bool >(
555
+ parameters, obj_lane_ns + " check_right_side_lane" ,
556
+ p->objects_filtering_params .object_lane_configuration .check_right_lane );
557
+ updateParam<bool >(
558
+ parameters, obj_lane_ns + " check_left_side_lane" ,
559
+ p->objects_filtering_params .object_lane_configuration .check_left_lane );
560
+ updateParam<bool >(
561
+ parameters, obj_lane_ns + " check_shoulder_lane" ,
562
+ p->objects_filtering_params .object_lane_configuration .check_shoulder_lane );
563
+ updateParam<bool >(
564
+ parameters, obj_lane_ns + " check_other_lane" ,
565
+ p->objects_filtering_params .object_lane_configuration .check_other_lane );
566
+ }
567
+ const std::string safety_check_ns = base_ns + " safety_check_params." ;
568
+ {
569
+ updateParam<bool >(
570
+ parameters, safety_check_ns + " enable_safety_check" ,
571
+ p->safety_check_params .enable_safety_check );
572
+ updateParam<double >(
573
+ parameters, safety_check_ns + " hysteresis_factor_expand_rate" ,
574
+ p->safety_check_params .hysteresis_factor_expand_rate );
575
+ updateParam<double >(
576
+ parameters, safety_check_ns + " backward_path_length" ,
577
+ p->safety_check_params .backward_path_length );
578
+ updateParam<double >(
579
+ parameters, safety_check_ns + " forward_path_length" ,
580
+ p->safety_check_params .forward_path_length );
581
+ updateParam<bool >(
582
+ parameters, safety_check_ns + " publish_debug_marker" ,
583
+ p->safety_check_params .publish_debug_marker );
584
+ }
585
+ const std::string rss_ns = safety_check_ns + " rss_params." ;
586
+ {
587
+ updateParam<double >(
588
+ parameters, rss_ns + " rear_vehicle_reaction_time" ,
589
+ p->safety_check_params .rss_params .rear_vehicle_reaction_time );
590
+ updateParam<double >(
591
+ parameters, rss_ns + " rear_vehicle_safety_time_margin" ,
592
+ p->safety_check_params .rss_params .rear_vehicle_safety_time_margin );
593
+ updateParam<double >(
594
+ parameters, rss_ns + " lateral_distance_max_threshold" ,
595
+ p->safety_check_params .rss_params .lateral_distance_max_threshold );
596
+ updateParam<double >(
597
+ parameters, rss_ns + " longitudinal_distance_min_threshold" ,
598
+ p->safety_check_params .rss_params .longitudinal_distance_min_threshold );
599
+ updateParam<double >(
600
+ parameters, rss_ns + " longitudinal_velocity_delta_time" ,
601
+ p->safety_check_params .rss_params .longitudinal_velocity_delta_time );
602
+ }
603
+ std::string surround_moving_obstacle_check_ns = ns + " surround_moving_obstacle_check." ;
604
+ {
605
+ updateParam<double >(
606
+ parameters, surround_moving_obstacle_check_ns + " search_radius" , p->search_radius );
607
+ updateParam<double >(
608
+ parameters, surround_moving_obstacle_check_ns + " th_moving_obstacle_velocity" ,
609
+ p->th_moving_obstacle_velocity );
610
+ }
611
+
612
+ std::string debug_ns = ns + " debug." ;
613
+ {
614
+ updateParam<bool >(parameters, debug_ns + " print_debug_info" , p->print_debug_info );
615
+ }
616
+
617
+ std::for_each (observers_.begin (), observers_.end (), [&p](const auto & observer) {
618
+ if (!observer.expired ()) observer.lock ()->updateModuleParams (p);
346
619
});
347
620
}
348
621
0 commit comments