터틀봇이 웨이포인트로 가야하는데 장애물이 있을 경우 설정

기존에 있던 모든 GUI기능과 다른 클래스, 함수는 유지한 상태에서 아래 요구사항을 수행한다.
터틀봇이 웨이포인트로 가야하는데 장애물이 있을 경우 설정
사진 설명
파란색 원이 터틀봇
빨간색 원이 현재 가야하는 웨이포인트
검은색 선은 벽 or 장애물
장애물 감지는 라이다 값으로 30cm(최소)를 기준으로 한다.
1.벽에 붙어있지 않은 장애물의 경우
1.a.장애물을 정면으로 봤을 경우: 장애물을 마주친 순간 양 옆의 센서값 중 더 큰쪽(공간이 더 넓은 쪽)을 우선으로 정하여 장애물과의 최소 충돌 방지 거리(30cm)를 유지하며 진행하게 한다.
2.a.장애물을 측면의로 봤을 경우: 장애물과의 최소 충돌 방지 거리(30cm)를 유지하며 진행하게 한다.
2.벽에 붙어있는 장애물의 경우
2.a.웨이포인트까지 갈 수 있는 장애물이 없는 방향을 센서로 탐지해 방향을 틀어 장애물과의 최소 충돌 방지 거리를 유지하며 장애물을 따라 돌다가 정면에 웨이포인트로 가는 길이 열리면 웨이포인트로 가는 것을 다시 우선순위로 한다.
3.좁은 골목 형태로 장애물이 있는 경우(사진 속 웨이포인트 근처 장애물처럼)
기존 최소 충돌 방지 거리보다 벽이 양쪽으로 가깝게 있을 경우 양쪽 벽까지의 거리를 동일하게 유지하며(오차범위 허용, 충돌은 X) 웨이포인트로 가는 길을 찾는다(이후 1,2번으로 장애물 탐지 + 주행).
4.모든 경로가 막히거나, 터틀봇이 지나가기에 통로가 너무 좁은 경우(폭이 약 40cm 이하로 좁을 경우)
4.a.장애물로 인해 주행할 수 없다는 메시지를 출력한 뒤 다음 웨이포인트로 진행하거나 마지막 웨이포인트였을 경우 출발지로 복귀한다.
※장애물 탐지 및 회피 주행에 필요한 코드는 기존 코드(기존 코드는 유지하며 수정하지 않는다)에 형식을 맞춰 작성한다. 코드를 작성할 땐 장애물 탐지 및 회피 주행에 필요한 부분은 한 곳에 한 번에 작성한다(기존 코드 중간에 섞거나 여기저기 추가하지 말고, 유지보수 쉽게).
충돌 기준 : 0.30 m
최소 통과 폭 : 0.40 m
골목 판단 : 좌/우 거리 모두 < 0.25 m
중앙 유지 목표 : (left_dist - right_dist) ≈ 0
정면 장애물 판단 각도: 정면 0도를 기준으로 +-40도
[추가 요구사항 A] 접촉 예방 정지 규칙 (가장 중요)
A-1. 충돌 기준(0.30m)은 “회피 개시선”이 아니라 “접촉 금지선”이다.
전방 또는 측면 라이다 값이 0.30m 이하로 감소하는 순간
선속도(lin)는 반드시 0이 되어야 한다.
회전만 허용된다.
A-2. 회피 회전은 ‘정지 상태’에서만 시작한다.
장애물을 인지했다고 해서
전진 + 회전을 동시에 수행하지 않는다.
순서:
정지
회전 (방향 결정)
안전 거리 확보 후 전진 재개
[추가 요구사항 B] 벽 접촉 상태 금지
B-1. 로봇이 벽에 ‘붙은 상태’를 정상 상태로 간주하지 않는다.
로직 상:
벽에 접촉한 뒤 탈출하는 것을 기본 시나리오로 삼지 않는다.
설계 상:
벽 접촉은 설계 실패 상태다.
B-2. 따라서 회피 로직은 항상 ‘여유 거리 확보’를 전제로 한다.
모든 회피 주행은:
최소 30cm 이상 거리 유지
접촉 상태를 허용하지 않음
[추가 요구사항 C] 회피와 전진의 명확한 분리
C-1. 회피 단계와 웨이포인트 추종 단계는 동시에 수행하지 않는다.
회피 중:
웨이포인트 각도는 참고하지 않거나
가중치를 매우 낮게 둔다.
웨이포인트 추종은:
전방 안전 거리 확보 후에만 재개된다.
[추가 요구사항 D] RETURN / 주차 단계에도 동일한 안전 규칙 적용
D-1. 복귀 및 주차 단계에서도 동일한 충돌 예방 규칙을 적용한다.
“주차 중이니까 예외”는 없음
RETURN 상태에서도:
30cm 접촉 금지
접촉 직전 정지
회피 후 재개
장애물을 피하게 하면 GUI가 깨지고
GUI를 고치면 장애물이 안됨
GUI2는 웨이포인트는 잘 되지만 장애물을 마주치면 멈추고 다른 동작이 안됨
T는 아직 테스트 못 해봄
도형 그리기 추가
'로보테크AI' 카테고리의 다른 글
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/09[Git] (0) | 2026.02.09 |
|---|---|
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/05 (0) | 2026.02.05 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/03 (0) | 2026.02.03 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/02/02 (0) | 2026.02.02 |
| 융합_로보테크 AI 자율주행 로봇 개발자 과정-26/01/30 (0) | 2026.01.30 |