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) 발사
구성 방법 (에디터 기준)
- Agent 오브젝트에 RayPerceptionSensorComponent3D 추가
- 인스펙터에서 Ray 수, 길이, 감지 태그 등 설정
- 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는 공간 구조 인식에 최적화된 센서입니다.
- 장애물 회피, 탐색, 대상 탐지 등 다양한 상황에 활용됩니다.
- 설정이 많지만, 정확한 조정으로 정밀한 학습 환경을 만들 수 있습니다.
'Unity' 카테고리의 다른 글
[ML-Agents] Audio Sensor – 소리를 듣는 에이전트 만들기 (0) | 2025.05.14 |
---|---|
[ML-Agents] Grid Sensor – 환경을 격자로 나눠 인식하는 센서 (0) | 2025.05.14 |
[ML-Agents] Camera Sensor – 에이전트의 '눈'을 만들어주는 센서 (0) | 2025.05.14 |
[ML-Agents] VectorSensor - 숫자로 보는 세상 (0) | 2025.05.14 |
[ML-Agents] Unity ML-Agents 입문자를 위한 에이전트와 센서 완전 정복 가이드 (0) | 2025.05.14 |