Unity

[ML-Agents] Ray Perception Sensor – 공간을 인식하는 센서

빈형임 2025. 5. 14. 02:15

Ray Perception Sensor는 에이전트가 레이캐스트(raycast)를 통해 주변 물체의 위치와 종류를 감지할 수 있도록 해주는 센서입니다. 에이전트의 '근접 감각' 혹은 '레이더' 역할을 한다고 볼 수 있습니다.

 


언제 사용하나요?

  • 장애물이나 목표물을 감지해야 할 때
  • 캐릭터 주변의 공간 구조를 인식해야 할 때
  • 탐색(Navigation), 회피(Avoidance) 등 즉각적인 반응이 필요한 환경

예: 로봇 청소기가 가구 다리를 감지하고 피해서 이동

 

주요 설정 항목

Ray Sensor는 다양한 매개변수로 구성할 수 있으며, 상황에 맞게 조정이 필요합니다.

설정 항목 설명
Rays Per Direction 정면을 기준으로 좌/우로 뻗는 레이 수
Max Ray Degrees 좌우 레이 전체가 펼쳐질 최대 각도
Ray Length 레이의 최대 거리
Sphere Cast Radius 구체 캐스트 사용 시 반지름 (0이면 일반 레이캐스트)
Detectable Tags 감지할 객체의 태그 리스트
Ray Layer Mask 감지할 Unity 레이어 필터
Observation Stacks 시간 스택 (이전 상태까지 포함할지 여부)
Tip: Rays Per Direction = 3, Max Degrees = 90 → 총 7개의 레이(좌3 + 정면1 + 우3) 발사​

 

구성 방법 (에디터 기준)

  1. Agent 오브젝트에 RayPerceptionSensorComponent3D 추가
  2. 인스펙터에서 Ray 수, 길이, 감지 태그 등 설정
  3. Behavior Parameters에서 관찰 타입 자동 반영됨
// 자동 처리됨 – 별도로 CollectObservations 구현할 필요 없음

 


실전 예시: 로봇 청소기 장애물 감지

학습 목표 Ray Sensor 활용
벽 피하기 벽 태그 추가, 충돌 시 보상 -1
가구 회피 레이 방향 수 늘리고 Ray Length 확장
쓰레기 인식 Detectable Tags에 쓰레기 태그 추가

여러 Ray를 통해 주변 객체의 거리와 종류를 인식하고,
학습을 통해 회피 or 수거 행동을 선택할 수 있습니다.

 

주의할 점

  • 레이 수 증가 → 관찰 길이 증가 → 연산량 증가
  • Ray가 아무것도 감지하지 않으면 0 값으로 입력됨
  • Detectable Tags는 감지할 수 있는 객체의 종류 수를 의미
  • 같은 오브젝트라도 Tag 누락 시 감지 불가

 

훈련 최적화를 위한 전략

전략 효과
Ray Length 조정 감지 범위 정확히 맞추기 (성능 최적화)
Detectable Tags 제한 불필요한 감지 제거
Sphere Cast 사용 작은 장애물도 잘 감지 가능
Observation Stack 움직임 방향 예측 (시간 기반 학습) 가능

 

요약

  • Ray Perception Sensor는 공간 구조 인식에 최적화된 센서입니다.
  • 장애물 회피, 탐색, 대상 탐지 등 다양한 상황에 활용됩니다.
  • 설정이 많지만, 정확한 조정으로 정밀한 학습 환경을 만들 수 있습니다.