Unity

[ML-Agents] Grid Sensor – 환경을 격자로 나눠 인식하는 센서

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

Grid Sensor는 에이전트가 주변 환경을 격자 셀(cell) 단위로 나누어 구조화된 방식으로 인식할 수 있도록 도와주는 센서입니다.
공간 자체를 데이터로 보는 방식으로, 지도 기반 추론, 미로 탐색, 영역별 상태 추적 등에 유용합니다.

한마디로, 에이전트의 ‘미니맵’ 감각을 만들어주는 도구입니다.

 


언제 사용하나요?

  • 미로, 방 구조, 넓은 영역의 상태를 추적해야 할 때
  • 리소스 수집, 영역 통제, 지역 기반 의사결정이 필요할 때
  • 물체의 정확한 위치보다 ‘존재 여부’만 알면 되는 경우

예: 청소 영역을 격자로 나눠 ‘청소 완료 여부’를 학습시키기

 

주요 설정 항목

설정 항목 설명
Grid Size (X, Y, Z) 격자 셀 수 (3D 공간 내 몇 칸씩 나눌 것인지)
Cell Scale 각 셀의 실제 크기
Detectable Tags 어떤 태그의 객체를 감지할지
Collider Mask 감지 대상이 될 Unity Layer
Rotate With Agent 에이전트 기준으로 격자가 회전할지 여부
예: Grid Size = (5, 1, 5), Cell Scale = (1, 1, 1)
→ 5x5 셀 격자 형태로 평면 인식

 

구성 방법 (에디터 기준)

  1. Agent에 GridSensorComponent 추가
  2. 셀 수, 크기, Detectable Tags 설정
  3. Behavior Parameters에서 자동으로 관찰 공간 생성
// GridSensor는 자동으로 관찰 데이터를 수집하므로 따로 코딩할 필요 없음

 


실전 예시: 로봇 청소기 청소 상태 추적

학습 목표 Grid Sensor 활용 방식
방 구조 인식 일정 크기의 셀로 분할해 공간 인식
청소된 영역 추적 셀에 객체 존재 여부를 기준으로 상태 기록
장애물 감지 태그 기반으로 감지하여 해당 셀 값 부여

로봇은 “어디를 청소했는지” 기억하고, 남은 셀을 찾아가도록 학습할 수 있습니다.

 

주의할 점

  • Grid Size가 커질수록 관찰 데이터 크기 증가 (훈련 비용 증가)
  • 감지할 객체에는 반드시 감지 가능한 태그/레이어 지정 필요
  • Rotate With Agent를 켜면 격자가 에이전트를 따라 움직임
  • 격자가 너무 작으면 데이터 희소화, 너무 크면 정확도 저하

 

훈련 최적화를 위한 전략

전략 목적
적절한 Cell Scale 너무 세분화되지 않도록 균형 조정
태그 필터 사용 학습에 필요한 정보만 선별적으로 감지
Rotate With Agent 활용 방향성 기반 탐색에 적합
2D vs 3D 구분 대부분의 경우 Z(높이)는 1이면 충분함
 

요약

  • Grid Sensor는 공간 기반의 추론이 필요한 시나리오에 최적화된 센서입니다.
  • 방 구조, 자원 위치, 지역 상태 등을 격자화하여 정형적인 인식 방식 제공
  • 간단한 설정만으로 복잡한 공간 정보도 깔끔하게 요약 가능