/**:
  ros__parameters:
    # Control loop rate (Hz)
    control_rate: 20.0

    # Topic names
    image_topic:       "/camera/image_raw"
    camera_info_topic: "/camera/camera_info"
    ir_topic:          "/saltybot/ir_beacon"
    battery_topic:     "/saltybot/battery_state"

    # ── ArUco detection ────────────────────────────────────────────────────────
    aruco_marker_id:    42       # marker ID on the dock face
    aruco_marker_size_m: 0.10   # printed marker side length (m)

    # ── IR beacon ─────────────────────────────────────────────────────────────
    ir_threshold: 0.50           # amplitude threshold for beacon detection

    # ── Battery thresholds ────────────────────────────────────────────────────
    battery_low_pct:  15.0       # SOC triggering auto-dock (%)
    battery_high_pct: 80.0       # SOC declaring charge complete (%)

    # ── Visual servo ──────────────────────────────────────────────────────────
    servo_range_m:      1.00     # switch from Nav2 to IBVS at this distance (m)
    k_linear:           0.30     # distance P-gain
    k_angular:          0.80     # yaw P-gain
    lateral_tol_m:      0.005    # ±5 mm alignment tolerance
    contact_distance_m: 0.05     # distance below which contact is assumed (m)
    max_linear_ms:      0.10     # forward speed ceiling during servo (m/s)
    max_angular_rads:   0.30     # yaw rate ceiling (rad/s)

    # ── Undocking maneuver ────────────────────────────────────────────────────
    undock_speed_ms:   -0.20     # reverse speed (m/s; must be negative)
    undock_ticks_max:   50       # ticks at undock speed (2.5 s at 20 Hz)

    # ── FSM timeouts ──────────────────────────────────────────────────────────
    lost_ticks_max:        40    # ticks of lost detection before retry (2 s)
    contact_timeout_ticks: 20    # ticks at CONTACT without charging before retry

    # ── Nav2 waypoints [x, y, z, qx, qy, qz, qw] in map frame ───────────────
    # Set these to the actual dock and pre-dock poses in your environment.
    dock_pose:     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
    pre_dock_pose: [0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 1.0]  # 1 m in front of dock
