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