topology_pure_pursuit:
  ros__parameters:
    use_sim_time: false

    # Graph file is normally overridden by the launch file after installation.
    graph_file: ""

    # Topic interface. Run this node instead of Nav2 controller_server to avoid
    # multiple publishers fighting over /cmd_vel.
    # The graph coordinates live in this frame. The node transforms odom poses
    # into this frame through TF when odom.header.frame_id differs.
    map_frame: map
    odom_topic: /odom
    goal_pose_topic: /goal_pose
    goal_node_topic: /topology_goal
    plan_topic: /plan
    cmd_vel_topic: /cmd_vel
    status_topic: /topology_status
    publish_cmd_vel: true
    stop_without_plan: true

    # Planner. Keep the graph sparse and place nodes near lane or corridor
    # centers so localization error still leaves a useful safety margin.
    autoplan_default_goal: false
    path_resolution: 0.10
    nearest_node_max_distance: 2.0

    # Pure Pursuit tracking. The defaults are conservative for the origincar
    # 0.143 m wheelbase and current /cmd_vel -> Ackermann conversion.
    control_rate: 20.0
    lookahead_distance: 0.55
    goal_tolerance: 0.25
    linear_speed: 0.30
    min_linear_speed: 0.08
    slowdown_distance: 0.80
    curvature_slowdown_gain: 0.18
    max_angular_speed: 1.5
    min_turning_radius: 0.35

    # Delay handling. Stamped odom is projected forward by at most this horizon.
    latency_compensation: true
    max_latency_compensation: 0.25
    max_odom_age: 0.80
    tf_timeout: 0.05
