새소식

Navigation

SplatNav 코드 뜯어보기 : SFC-1과 SFC-2의 차이점

  • -

SplatNav에서는 SFC-1, SFC-2라는 두 가지 옵션을 제공한다. 둘의 차이점을 비교하면 다음과 같다. 

  SFC-1 SFC-2
코드 분기점 (1) SFC/corridor_utils.py PointCloudCollisionSet을 기본 옵션으로 생성 PointCloudCollisionSet(sample_surface=20)으로 생성
코드 분기점 (2) polytopes/collision_set.py
  • point_cloud = self.means (가우시안 중심만 사용)
  • 충돌 집합 계산은 “점”들에 대해 Ax <= b 여부 검사
  • fibonacci_ellipsoid(...)로 각 가우시안의 “표면”을 샘플링
  • ellipsoid_samples = fibonacci_ellipsoid(self.means, self.rots, self.scales, ..., n=sample_surface)
  • point_cloud = ellipsoid_samples.reshape(-1, 3) (가우시안 당 다수의 표면 점)
  • 코드: collision_set.py L116–120
  • 이후 충돌 집합 계산에서 이 표면 점들에 대해 Ax <= b 검사
효과 각 가우시안을 점(평균)으로 보기 때문에 계산이 빠르지만 가우시안의 실제 부피/형상을 반영하지는 못 함.  각 가우시안을 타원체 표면 샘플로 근사하기 때문에 실제 형상을 더 잘 반영한다. 표면 샘플 수 때문에 계산이 느려질 수 있다.
사용하는 요소 mean mean, covariance

SFC-1
SFC-2

Resource Usage

Metric SFC-1 SFC-2
Planning Time (s) 0.275 0.478
GPU Mem. (MB) 254 461

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.