traffic_line_task.yaml 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # The task launch is started only after navigation has stopped at the sign
  2. # recognition point and every other /cmd_vel source has released control.
  3. autostart: true
  4. control_rate: 20.0
  5. cmd_vel_topic: /cmd_vel
  6. odom_topic: /odom
  7. lane_valid_topic: /line_follow_debug/lane_valid
  8. lookahead_target_topic: /line_follow_debug/lookahead_target
  9. sign_direction_topic: /traffic_sign/direction
  10. sign_confidence_topic: /traffic_sign/confidence
  11. sign_enable_service: /traffic_sign_recognition/set_enabled
  12. line_enable_service: /line_follow_control/set_enabled
  13. # A stable result from the recognition node is confirmed twice here before it
  14. # is locked for the rest of the task. STOP/NONE keep the vehicle stationary.
  15. sign_confirmations: 2
  16. sign_topic_timeout: 3.0
  17. minimum_sign_confidence: 0.25
  18. camera_settle_time: 2.0
  19. # Odometry and action safety.
  20. odom_timeout: 0.5
  21. odom_jump_limit_m: 0.25
  22. # Deliberately above a nominal 90-degree turn: yaw is only an over-turn guard;
  23. # calibrated odometry path length remains the maneuver completion condition.
  24. maximum_turn_yaw_rad: 2.20
  25. wrong_way_yaw_tolerance_rad: 0.10
  26. straight_yaw_limit_rad: 0.35
  27. maneuver_timeout_scale: 2.0
  28. maneuver_timeout_min: 3.0
  29. transition_stop_time: 0.30
  30. # Real-vehicle junction maneuver values. 0.10 m/s forward with 0.20 rad/s
  31. # turning was verified to keep both sides of the drivetrain moving.
  32. maneuver_linear_speed: 0.10
  33. first_turn_angular_speed: 0.20
  34. second_turn_angular_speed: 0.20
  35. # REQUIRED CALIBRATION VALUES. The state machine refuses to move while any
  36. # value is zero or negative. Fill these using route_distance_calibrator.py.
  37. first_left_turn_distance_m: 0.5149
  38. first_right_turn_distance_m: 0.5274
  39. first_straight_entry_distance_m: 0.3584
  40. direct_finish_distance_m: 2.5997
  41. straight_to_second_distance_m: 0.6053
  42. second_right_turn_distance_m: 0.35
  43. after_second_finish_distance_m: 2.1104
  44. # The finish segments do not use their old odometry distances. Once LEFT/RIGHT
  45. # has entered FOLLOW_DIRECT_FINISH, or STRAIGHT has completed the second fixed
  46. # right turn and entered FOLLOW_AFTER_SECOND, a continuous total loss of lane
  47. # boundaries is treated as the endpoint. The controller stops immediately and
  48. # confirms the loss before publishing FINISHED.
  49. use_finish_distance_limits: false
  50. finish_lane_loss_confirm_time: 1.0
  51. # Reuse the speech_command node that is already running for task 1. This task
  52. # never launches a second speech node and sends this phrase exactly once.
  53. completion_announcement_topic: /speech_command/announce
  54. completion_announcement_text: "任务完成"
  55. # On the straight route, odometry no longer directly starts the second turn.
  56. # It only arms a lane-loss trigger near the measured 0.6053 m junction. Three
  57. # consecutive invalid-lane control cycles then start the fixed right maneuver.
  58. # Early lane loss uses ordinary recovery; passing the maximum without lane
  59. # loss stops in FAULT instead of driving indefinitely.
  60. second_junction_arm_distance_m: 0.45
  61. second_junction_max_distance_m: 0.85
  62. second_junction_lost_frames: 3
  63. # After confirmed lane loss at the second junction, move farther into the
  64. # junction before starting the fixed right turn.
  65. second_junction_forward_speed: 0.10
  66. second_junction_forward_duration: 3.0
  67. # Keep false for the complete route: reacquire the lane after the calibrated
  68. # second right maneuver and continue with FOLLOW_AFTER_SECOND.
  69. stop_after_second_maneuver: false
  70. # line_follow_debug.py keeps lane_valid=true for up to 8.0 s while continuously
  71. # inferring the centre from one remaining boundary. If it finally publishes
  72. # false, stop and wait in place for a fresh target; never reverse or scan.
  73. lane_reacquire_timeout: 2.0
  74. lane_stable_frames: 5
  75. target_fresh_timeout: 0.5