Speed (속도) 카테고리

 

1. MaxSpeed (기본값: 3000)

최대 주행 속도 (cm/s)

환산: 3000 cm/s = 30 m/s ≈ 108 km/h

 

2. MinSpeed (기본값: 400)

커브에서도 이 속도 이하로는 안 내려감 (cm/s)

환산: 400 cm/s = 4 m/s ≈ 14 km/h

 

3. ThrottleGain (기본값: 0.002)

속도 차이를 페달 입력으로 바꾸는 비율

사용: 목표 - 현재 = 100 cm/s 차이일 때, 페달 = 0.2 (20%)

 

언제 조절?

  • 늘림: 가속/감속 반응 빠르게
  • 줄임: 부드럽게

4. AccelRate (기본값: 1.0) / DecelRate (기본값: 0.5)

목표 속도가 변할 때 부드러움 정도

  • AccelRate: 가속할 때 (높을수록 빠르게)
  • DecelRate: 감속할 때 (낮을수록 부드럽게)

가속은 빠르게 감속은 부드럽게

 

언제 조절?

  • DecelRate 늘림 : 급제동이 필요한 시연 (위험 상황 회피 등)
  • AccelRate 줄임 : 차분한 운전 표현
  • 둘 다 늘림 : 스포티한 거동
  • 둘 다 줄임 : 트럭/버스 같은 묵직한 거동

5. CoastDeadzone (기본값: 0.05) 

페달 명령이 이 값보다 작으면 둘 다 떼고 관성 주행

|Cmd| < 0.05 면 가속도 브레이크도 안 함

페달이 0.001, -0.001, 0.002... 작은 값으로 떨리면 차도 떨림 -> 데드존으로 안정화

 

언제 조절?

  • 늘림 (예: 0.1): 차가 떨릴 때, 좀 더 부드럽게
  • 줄임 (예: 0.01): 정밀 제어 필요할 때

Steering (조향) 카테고리

 

1. LookAheadBase (기본값: 1500) 

정지 상태에서의 전방 주시 거리 (cm) = 15m 의미: "차 앞 15m 지점을 보고 핸들 조작"

 

언제 조절?

  • 늘림 (예: 2500): 멀리 보고 부드럽게 운전
  • 줄임 (예: 800): 좁은 길에서 정밀하게

증상별 조절

  • 직선에서 차가 좌우로 흔들릴 때 → 늘림 (멀리 봐야 안정)
  • 급커브에서 코너를 잘라먹을 때 → 줄임 (가까이 봐야 정확)
  • 구불구불한 길을 가야 함 → 줄임

 

2. LookAheadSpeedFactor (기본값: 0.3)

속도가 빠를수록 더 멀리 보게 만드는 비율 계산

최종 거리 = LookAheadBase + Speed × LookAheadSpeedFactor

예시:

  • 정지: 1500cm
  • 1000 cm/s (36km/h): 1500 + 300 = 1800cm
  • 3000 cm/s (108km/h): 1500 + 900 = 2400cm

언제 조절?

  • 늘림: 고속 주행 시 더 안정적
  • 줄임: 저속/고속 차이 적게

3. MaxYawDelta (기본값: 40)

핸들 풀로 꺾을 때의 각도 오차 기준 (도) "차의 방향과 가야 할 방향이 40도 차이나면 핸들 100% 꺾음"

 

언제 조절?

  • 늘림 (예: 60): 핸들 둔감하게 (트럭 같음)
  • 줄임 (예: 25): 핸들 민감하게 (스포츠카)

증상별 조절

  • "작은 오차에도 핸들 너무 빨리 꺾여" → 늘림
  • "오차 큰데도 핸들 늦게 반응해" → 줄임

4. HeadingWeight (기본값: 0.7, 가장 중요)

직선에서 헤딩 오차 vs 위치 오차의 가중치 0.7이면 헤딩 70%, 위치 30%로 섞음

 

언제 조절?

  • 늘림 (예: 0.9): 도로 방향 따라가기 우선 (안정적, 멀리 봄)
  • 줄임 (예: 0.5): 위치 추적 우선 (반응 빠름, 가까이 봄)

증상별 조절

  • "직선에서 차가 흔들려 (지그재그)" → 늘림
  • "도로 중앙에서 자꾸 벗어나" → 줄임
  • "스포티한 거동 원함" → 줄임
  • "고속도로 같은 안정적 거동" → 늘림

5. HeadingWeightOnSharpCurve (기본값: 0.3)

급커브에서의 헤딩 가중치 (HeadingWeight보다 낮게) 급커브에서는 위치 추적 비중을 높여 정확하게 코너링

 

언제 조절?

  • "급커브에서 코너 안쪽으로 잘림" → 줄임 (예: 0.2)
  • "급커브에서 코너 바깥으로 미끄러짐" → 늘림 (예: 0.5)

6. SharpCurveSensitivity (기본값: 3.0)

"급커브"로 판단하는 민감도 곡률 × 이 값을 0~1로 정규화

예시:

  • 곡률 0.1 (살짝 휨) × 3 = 0.3 → 30% 급커브로 인식
  • 곡률 0.5 (급커브) × 3 = 1.5 → Clamp 1.0 → 100% 급커브

언제 조절?

  • 늘림 (예: 5): 작은 휨에도 "급커브" 취급 (예민하게 반응)
  • 줄임 (예: 1.5): 큰 커브여야 "급커브" 취급 (둔감하게)

증상별 조절

  • "완만한 커브에서도 너무 감속해" → 줄임
  • "급커브에 대비가 늦어" → 늘림

7. SharpCurveLookAheadScale (기본값: 0.5)

급커브에서 전방 주시 거리를 줄이는 비율 0.5면 직선의 50%만 봄

언제 조절?

  • 줄임 (예: 0.3): 코너에서 더 가까이 봄 (정확한 코너링)
  • 늘림 (예: 0.8): 커브에서도 비교적 멀리 봄

8. CrosstrackGain (기본값: 0.0015, 자주 쓰임)

도로 중심선 이탈 보정 강도 1cm 벗어나면 핸들 0.0015 보정

예시:

  • 50cm 이탈 시: 핸들 보정 = 50 × 0.0015 = 0.075

언제 조절?

  • 늘림 (예: 0.003): 중앙 추적 강하게 (살짝 떨릴 수 있음)
  • 줄임 (예: 0.0005): 부드럽게 (이탈 천천히 보정)

증상별 조절

  • "중앙선에서 자꾸 벗어나" → 늘림
  • "차가 좌우로 떨려" → 줄임

Curvature (곡률) 카테고리

1. LateralFriction (기본값: 0.8, 매우 중요)

타이어-노면 마찰 계수 곡선 안전 속도 V = √(μ × g × R)에서 μ

값별 의미:

  • 0.1: 빙판
  • 0.25: 눈 쌓임
  • 0.5: 비
  • 0.8: 마른 일반 도로 (기본)
  • 1.0: 새 아스팔트
  • 1.2: 레이싱 타이어

언제 조절?

  • 줄임: 미끄러운 노면 시뮬레이션 (눈/비)
  • 늘림: 그립력 좋은 차량 표현
  • 날씨 시스템 만들 때 핵심 변수

2. CurvatureSampleSpan (기본값: 50)

곡률 측정 시 두 샘플 사이의 거리 (cm) 50cm 간격의 두 점에서 도로 방향 비교

언제 조절?

  • 줄임 (예: 20): 더 정밀한 곡률 측정 (노이즈에 민감)
  • 늘림 (예: 100): 부드러운 곡률 (작은 굴곡 무시)

증상별 조절

  • "곡률 추정이 들쑥날쑥" → 늘림
  • "작은 커브 못 잡아" → 줄임

3. BrakePreviewDist (기본값: 5000, 자주 쓰임)

미리 감속 시작할 거리 (cm) = 50m "50m 앞 곡률을 미리 보고 감속 준비"

언제 조절?

  • 늘림 (예: 8000): 더 멀리 보고 일찍 감속 (안전)
  • 줄임 (예: 3000): 늦게까지 빠르게 가다 급감속

증상별 조절

  • "커브 진입할 때 너무 빨라" → 늘림
  • "직선인데도 자꾸 감속해" → 줄임
  • "고속도로 시뮬레이션" → 늘림 (예: 10000)

Path (경로) 카테고리

1. SearchRadius (기본값: 5000)

주변 도로 탐색 반경 (cm) = 50m

언제 조절?

  • 늘림: 도로가 멀리 있어도 찾을 수 있게
  • 줄임: 가까운 도로만 사용 (여러 도로 있을 때 정확히 선택)

2. EndOfPathThreshold (기본값: 100)

경로 끝 도달로 판단하는 거리 (cm) = 1m

언제 조절?

  • 늘림: 더 일찍 정지 (안전 마진)
  • 줄임: 진짜 끝까지 주행

Debug 카테고리

bDebugLogCommands (기본값: false)

매 프레임 조향/속도 명령을 로그로 출력할지

언제 조절?

  • 켜기: 차량 폰 없이 동작 검증할 때, 튜닝 시
  • 끄기: 실제 사용 시 (로그 너무 많이 찍힘)

+ Recent posts