라인 트래킹
라인팔로워 로봇을 위한 기능입니다. 바닥의 라인을 감지하여 화면 중심 대비 오프셋, 기울기 각도, 라인 벡터를 제공하므로 이 값으로 조향을 보정합니다.
명령
| 명령 | 설명 |
|---|---|
| 라인 정보 | 감지된 라인의 감지 결과, 오프셋, 각도, 벡터, 라인 폭을 변수에 기록합니다. 주행 제어에 쓰는 핵심 명령입니다. |
| 라인 감지 여부 | 라인이 감지되었는지 확인합니다. |
| 전체 정보 (JSON) | 라인 트래킹의 모든 정보를 JSON 으로 기록합니다. |
설정
| 항목 | 설명 |
|---|---|
| 색상 모드 | 밝은 바탕에 어두운 라인(기본), 어두운 바탕에 밝은 라인, 색상 지정 중에서 고릅니다. 색상 지정은 아래 시작·종료 색상 사이의 색을 가진 라인을 감지합니다. |
| 시작 색상 / 종료 색상 | 색상 지정 모드에서 감지할 색상 범위입니다. 기본값은 둘 다 #FF0000 입니다. |
| 민감도 (%) | 0~100, 기본값 50. 높일수록 희미한 라인도 감지하지만 오검출이 늘고, 낮출수록 선명한 라인만 감지합니다. |
출력 변수
| 항목 | 타입 | 값 |
|---|---|---|
| 감지 결과 | 디지털 | 라인이 감지되면 참. |
| 오프셋 X (-1~1) | 숫자 | 화면 중심 대비 라인의 수평 위치. -1(왼쪽 끝)~1(오른쪽 끝), 0이면 중앙. 좌우 보정에 씁니다. |
| 각도 (deg) | 숫자 | 라인의 기울기. -90~90도, 0이면 수직. 방향 보정에 씁니다. |
| 벡터 X0 / Y0 / X1 / Y1 | 숫자 | 라인 벡터의 시작점(X0, Y0)과 끝점(X1, Y1) 픽셀 좌표. |
| 라인 폭 | 숫자 | 화면 너비 대비 라인 폭의 비율, 0~1. |
| 결과 (JSON 텍스트) | 텍스트 | 모든 값을 담은 JSON 객체. |
라인이 감지되지 않으면 감지 결과가 거짓이 되고 나머지 숫자 값은 0으로 기록됩니다.
JSON 출력
배열이 아니라 객체 하나입니다. offset_x와 line_width는 위 표와 같이 비율 값입니다.
{
"detected": true,
"offset_x": 0.15,
"angle": 12.5,
"line_width": 0.06,
"vector_x0": 100,
"vector_y0": 200,
"vector_x1": 540,
"vector_y1": 210
}