논문

[drone][obstacle] A real-time dynamic obstacle tracking and mapping system for UAV navigation and collision avoidance with an RGB-D camera

정지홍 2025. 5. 24. 09:43

[2209.08258] A real-time dynamic obstacle tracking and mapping system for UAV navigation and collision avoidance with an RGB-D camera

 

A real-time dynamic obstacle tracking and mapping system for UAV navigation and collision avoidance with an RGB-D camera

The real-time dynamic environment perception has become vital for autonomous robots in crowded spaces. Although the popular voxel-based mapping methods can efficiently represent 3D obstacles with arbitrarily complex shapes, they can hardly distinguish betw

arxiv.org

 

Abstract

  • 실시간 동적 환경 인지는 혼잡한 공간에서 자율 로봇에게 매우 중요해졌다.
    비록 널리 사용되는 voxel-based mapping 방법이 임의로 복잡한 형태의 3D 장애물을 효율적으로 표현할 수 있지만,
    정적 장애물과 동적 장애물을 거의 구분하지 못해, obstacle avoidance(장애물 회피) 성능이 제한된다.
  • 자율주행 분야에는 정교한 learning-based dynamic obstacle detection algorithm(학습 기반 동적 장애물 탐지 알고리즘)이 많이 존재하지만, 쿼드콥터는 제한된 연산 자원으로 인해 이러한 방법들을 실시간으로 구현할 수 없다.
  • 이 문제를 해결하기 위해, 우리는 RGB-D camera를 이용한 쿼드콥터 장애물 회피를 위한 real-time dynamic obstacle tracking and mapping system(실시간 동적 장애물 추적 및 매핑 시스템)을 제안한다.
  • 제안된 시스템은 먼저, depth imageoccupancy voxel map을 활용해, 잠재적 dynamic obstacle region(동적 장애물 영역)들을 proposals(제안)로 생성한다.
    • obstacle region proposal(장애물 영역 제안)을 바탕으로, 각 동적 장애물을 추적하기 위해 Kalman filter와 저자들의 continuity filter가 적용된다.
  • 마지막으로, tracked dynamic obstacle(추적된 동적 장애물)의 상태를 기반으로 Markov chain을 이용한 environment-aware trajectory prediction method(환경 인지 경로 예측 방법)를 제안한다.
  • 우리는 제안된 시스템을 자체 제작한 쿼드콥터와 내비게이션 플래너에 구현하였다.
  • 시뮬레이션과 실제 실험에서 제안한 방법이 real-time으로 동적 환경에서 장애물을 성공적으로 추적 및 표현하고, 안전하게 장애물을 회피함을 보였다.
  • 또한 소프트웨어는 GitHub에서 open-source ROS package(오픈소스 ROS 패키지)로 제공된다.

 

 


 

I. INTRODUCTION

  • **무인항공기(Unmanned Aerial Vehicles, UAV)**는 건설, 농업, 탐사, 구조 등 다양한 분야[1][2][3][4]에서 널리 사용되고 있다.
    UAV의 작업 환경은 복잡한 static structure(정적 구조물)와 예측 불가능한 moving obstacle(이동 장애물)로 인해 보통 까다롭다[5].
    동적 환경에서의 안전한 내비게이션을 위해서는 동적 장애물을 추적하고 정적 환경을 매핑할 수 있는 정확하고 lightweight perception system(경량 인지 시스템)이 필수적이다.

  • UAV 응용에서 동적 장애물의 탐지 및 추적을 위한 접근법은 크게 두 가지 범주로 나뉜다.
    • 첫 번째 범주는, vision-based algorithm(비전 기반 알고리즘)을 적용해 장애물을 탐지하는 방법이다[6][7][8][9].
      • 몇몇 연구[6][7]에서는, depth image에서 얻은 geometric information(기하학적 정보)을 사용하여 장애물의 bounding box(경계 상자)를 추출하고 실시간 추적 성능을 달성하였다.
        • 하지만 이 방식은 static obstacle(정적 장애물)과 dynamic obstacle(동적 장애물)을 구분할 수 없다.
      • 다른 연구[8][9]에서는, learning-based method(학습 기반 방법)를 사용해 상대적으로 더 많은 연산 자원을 요구하지만, obstacle avoidance(장애물 회피)에 적용하였다.
    • 두 번째 범주의 방법은, pointcloud를 사용해 voxel map을 구축하고 voxel을 정적(static) 혹은 동적(dynamic)으로 분류한다.
      • 이러한 방법은 dynamic environment(동적 환경)을 효율적으로 표현할 수 있지만, discrete voxel representation(불연속적인 voxel 표현)은 동적 장애물의 미래 trajectory(경로)를 정확하게 예측하여 collision avoidance(충돌 회피)에 사용하는 데 한계가 있다.

 

  • 이 논문에서는 trajectory prediction module(경로 예측 모듈)을 갖춘, 동적 환경 내비게이션을 위한 새로운 real-time dynamic obstacle tracking and mapping system(실시간 동적 장애물 추적 및 매핑 시스템)을 소개한다.
    제안하는 시스템은 정적 환경 표현을 위해 occupancy voxel map을 적용하고, 동적 장애물은 bounding box와 velocity information(속도 정보)을 통해 추적하는 3D hybrid map을 사용한다.
  • 본 방법은 depth map-based detector를 적용하여 동적 장애물에 대한 3D region proposal을 얻고, occupancy map refinement approach(맵 정제 방식)을 통해 bounding box의 크기를 세밀하게 조정한다.
    이후 Kalman filter와 저자들의 continuity filter를 적용해 동적 장애물을 식별 및 추적한다.
  • 또한, 제안된 dynamic-region cleaning method(동적 영역 정리 방법)를 통해 정적 맵에서 움직이는 장애물 영역을 비워준다(free).
    이와 더불어, 정적 환경과 동적 장애물 간 상호작용을 고려해 동적 장애물에 대해 Markov chain-based trajectory prediction method(마르코프 체인 기반 경로 예측 방법)을 개발하였다.

 

이 논문의 주요 기여(contributions)는 다음과 같다.

 

  • Region proposal detector with map refinement:
    제안된 방법은 경량의 depth image detector를 적용하여 장애물 region proposal(영역 제안)을 얻고, static map(정적 맵)을 사용해 장애물의 bounding box(경계 상자)를 정제(refine)한다.
  • Dynamic obstacle identification and tracking:
    우리는 Kalman filter와 자체 개발한 continuity filter를 적용하여 dynamic obstacle(동적 장애물)을 추적 및 식별한다.
    이후, dynamic-region cleaning approach(동적 영역 정리 기법)를 적용해, 정적 맵에 남아있는 동적 장애물의 흔적(trail)을 제거(clean)한다.
  • Environment-aware trajectory prediction:
    제안된 Markov chain-based dynamic obstacle trajectory prediction method(마르코프 체인 기반 동적 장애물 경로 예측 방법)는 동적 장애물과 정적 환경 간의 상호작용을 trajectory probability distribution(경로 확률 분포)을 기반으로 고려한다.

 


 

II. RELATED WORK

  • 최근 몇 년 동안 LiDAR[10][11], monocular camera[12][13], event camera[14][15], depth camera[6][7] 등 다양한 센서를 기반으로 한 많은 obstacle detection and tracking algorithm(장애물 탐지 및 추적 알고리즘)이 제안되었다.
    • 특히 depth camera는 소형 UAV 내비게이션에서 가장 널리 사용되는 센서 중 하나로,
      로봇에게 image(영상)와 point cloud data(포인트클라우드 데이터)를 제공할 수 있다.
  • 입력 데이터의 표현 방식에 따라, obstacle detection and tracking method(장애물 탐지 및 추적 방법)는 두 가지로 나뉜다.
    • Vision-based method :
      • [6][7]에서는 depth image로부터 u-depth map을 추출해 환경 내 장애물을 탐지하였다.
        [6]의 결과는 dynamic environment(동적 환경)에서 성공적인 obstacle avoidance(장애물 회피)를 보여준다.
        • 그러나 static obstacle(정적 장애물)은 ellipsoid(타원체)로 표현되어, 정적 장애물의 형태가 복잡해질 경우 overly conservative(지나치게 보수적)하게 된다.
      • [16]은 2D feature-based perception method(2D 특징 기반 인지 방법)를 적용해 장애물 회피를 달성하였고,
        [8]은 learning-based detector(학습 기반 탐지기)를 추가해 탐지 정확도를 높였다.
        [9]는 neural network(신경망)를 사용해 특징(feature)을 추출하여 perception(인지)과 decision making(의사결정)에 도움을 주었다.
      • 하지만 학습 기반 방법을 도입할 경우, 전체 프로세스가 느려지고 더 많은 computation resource(연산 자원)가 필요하게 된다[17][18].
    • Pointcloud-based method:
      • 이 방법은 pointcloud data를 활용해  정적 및 동적 장애물 모두에 대한 dynamic map을 구축한다[8][19][20][21][22].
        • [8]은 pointcloud clustering(포인트클라우드 클러스터링)과 "per-point velocity" 투표 전략을 사용해 동적 장애물을 식별한다.
        • [8]에 영감을 받아, [19]는 동적 장애물 탐지 결과를  depth pointcloud로 생성된 정적 맵에 융합(fuse)한다.
        • [20]은 particle map(입자 맵)에서 동적 및 정적 장애물을 표현하여, 동적 장애물의 복잡한 형태를 포착한다.
        • [21]은 kernel inference(커널 추론)을 매핑 과정에 적용해 연산량을 줄이고,
        • [22]는 voxel map을 활용해 각 voxel을 정적 혹은 동적으로 구분하며 동적 voxel의 velocity(속도)도 추정한다.

 

  •  앞서 언급한 연구들의 대부분은 연산량이 많거나(computationally demanding), 동적 장애물과 복잡한 정적 구조를 동시에 효과적으로 표현하지 못한다.
    또한, 일부 방법은 obstacle trajectory prediction(장애물 경로 예측)에 단순한 linear propagation(선형 전파)만을 적용하여 장애물 회피 성능이 suboptimal(최적 이하)이 된다.
  • 이러한 문제를 해결하기 위해, 우리는 trajectory prediction module(경로 예측 모듈)을 갖춘 real-time dynamic obstacle tracking and mapping system(실시간 동적 장애물 추적 및 매핑 시스템)을 동적 환경 내비게이션을 위해 제안한다.
  • [23][24][25]와 유사하게, 우리는 Markov chain(마르코프 체인)을 채택하고, trajectory prediction(경로 예측)에 environment impact(환경 영향)를 도입했다.
    이는 social force(사회적 힘) 개념[26][27]에 영감을 받은 것이다.

 


fig2

 

III. METHODOLOGY - A. System Framework

  • 전체 시스템은 그림 2와 같이 세 개의 dynamic module과 하나의 static map module로 나뉜다.
  • 먼저, region proposal detector는 정적 및 동적 장애물을 탐지하고, 이를 static map과 융합(fuse)하여 장애물의 region proposal(영역 제안)을 정제(refine)한다.
  • 그 다음, dynamic obstacle identification and tracking module(동적 장애물 식별 및 추적 모듈)은 장애물 상태의 이력(history)을 추적하고, Kalman filter와 저자들의 continuity filter를 적용해 동적 장애물을 식별한다.
  • 이후, 동적 장애물의 상태(state)는 static map에 입력되어, 동적 장애물의 움직임으로 인해 발생한 voxel residual(voxel 잔여물)을 정리(clean)한다.
  • 마지막 모듈인 trajectory predictor(경로 예측기)에서는 environment-obstacle interaction(환경-장애물 상호작용)을 도입하여, Markov chain-based trajectory prediction(마르코프 체인 기반 경로 예측)을 위한 environment probability(환경 확률) 계산에 활용한다.

 


fig3

그림설명

- a는 실제 rgb카메라가 촬영한 영상

- b는 depth 영상을 컬러맵으로 표현한 화면. Red에서 Blue로 갈수록 가까운 물체에서 먼 물체까지의 거리를 나타내며, 파란색 사각형 (2D bounding box) 이 장애물 영역을 raw하게 검출한 결과다.

- c 는 위의 2D bounding box를 카메라 프레임에서 맵 프레임으로 변환한 뒤, 맵 상에서 3D bound box를 시각화한 모습
파란색 입장체가 장애물의 크기와 위치를 나타내며, 빨간색 화살료는 로봇의 pose이다.

III. METHODOLOGY - B. Obstacle Region Proposal Detection

  • 이 절에서는 depth image-based obstacle detection(깊이 영상 기반 장애물 탐지)와 저자들의 map refinement method(맵 정제 기법)를 이용한 obstacle region proposal generation(장애물 영역 제안 생성)에 대해 설명한다.

 

1) Obstacles detection

  • 이 부분에서는 장애물의 "raw" 3D bounding box(원시 3차원 경계 상자) 결과를 생성한다.
    여기에는 정적 및 동적 장애물의 대략적인 위치와 크기가 포함된다.
    Raw detection result(원시 탐지 결과)는 [6][7]에서 영감을 받은 U map으로부터 생성된다.
    • U map은 원본 depth image(깊이 영상)의 각 열(column)의 depth value histogram(깊이 값 히스토그램)을 통해 계산된다[6]. ( depth image는 픽셀마다 depth값을 가지고 있다. 이러한 image(영상)을 가로축(이미지 열 인덱스) , 세로축(깊이 값의 계급, 즉 depth bin )으로 축을 잡고, 하나의 열의 특정 깊이 값에 대응하는 픽셀 개수를 세어서 히스토그램을 만든다. )
  • 장애물은 depth image에서 깊이 값연속적으로 변화하고, 이는 배경과 현저하게 다르다고 가정하면,
    값이 임계값(threshold)보다 큰 픽셀 영역을 그룹핑하여 U map에서 장애물의 2D box(2차원 상자)를 얻을 수 있다(그림 3d 참고).
  • 이 과정에서 장애물의 대략적인 길이(length)와 폭(width)을 얻을 수 있다.
  • 마찬가지로, depth image에서 높이(height)는 각 열(column)별로 U map의 2D box에 해당하는 깊이 값과 가까운 픽셀을 찾아 얻을 수 있다(그림 3b 참고).

P는 2x1벡터이며, 이미지 좌표계(픽셀좌표)에서 o번째 장애물 상자의 중심점좌표를 나타냄. x와 y는 각각 가로축(u)과 세로축(v) 픽셀의 인덱스이다. 위의 첨자 I는 이미지 프레임을, o는 o번째 장애물을 의미.... S는 2x1 벡터이며, 같은 이미지 프레임에서 bounding box의 크기를 나타낸다. depth d는 깊이값을 의미.

  • 여기서 I는 image frame, o는 obstacle(장애물)을 의미한다. 즉, ( P , S , depth )의 세 값으로 이미지 프레임에서의 2d상자와 그 상자가 카메라로부터 얼마나 떨어져 있는지(깊이)를 함께 표현할 수 있다.
  • Bounding box는 카메라 프레임(camera frame) 상에 투영(projection)될 수 있으며, 더 나아가 맵 프레임(map frame)으로 변환(transform)된다.

수식은 카메라의 이미지 프레임에서 얻은 "2d박스"와 "깊이 정보"를 map frame상의 3D bounding box로 변환하여 표현하는 방법이다. x와 y는 맵 좌표계에서의 평명상 위치이다. d는 앞서 이미지 프레임에서 구한 depth값이며 이는 수직(높이/깊이)좌표가 된다. S에서는 w는 맵의 x축 방향으로 박스가 차지하는 폭이며, h는 y축 방향으로 박스가 차지하는 물리적 폭이다. l은 장애물의 실제 높이이다.

  • 여기서 M은 map frame을 의미한다(그림 3c 참고).

 

 

2) Map refinement

  • 이전 단계의 raw detection result(원시 탐지 결과)는 depth image의 noise(노이즈)로 인해 충분히 정확하지 않으므로,
    static occupancy map(정적 점유 맵)결합해 탐지된 원시 bounding box 정제(refine)하여 강인성과 정확성을 높인다.
    이 전략을 map refinement 라고 한다.
  • 그림 4a와 같이, 위에서 도출된 원시 bounding box를 x, y, z 방향으로 user-defined coefficient factor(사용자 정의 계수), 즉 Cinflate만큼 팽창시킨다.
  • 그 다음, proposal region(제안된 영역) 내에서 정적 occupancy map에 있는 occupied voxel(점유된 voxel)을 탐색하여, 모든 점유 voxel을 포함하는 minimal box(최소 상자)를 찾아서, 이를 최종 dynamic obstacle region proposal(동적 장애물 영역 제안)로 사용한다(그림 4b 참고).

그림설명

- a는 Raw Box --> Inflated Box과정이다.
 - - 빨간점(red points) : static occupancy map에 이미 채워져 있는 occupied voxel들이다.
 - - 파란 상자( blue box ) : depth이미지 기반 detector가 처음 추출한 raw bounding box이며, 노이즈나 검출 오차로 인해서, 실제 장애물의 크기나 위치가 부정확할 수 있다.

- - 갈색 점선 상자 : 이 raw box를 x,y,z방향으로 사용자 정의 계수 C_inflate만큼 inflation(팽창)한 결과입니다. ( 이를 통해서 기존 blue box는 depth image의 노이즈 때문에 장애물 주변의 red points를 놓칠수 있으나, 팽창을 시키면 이러한 점도 포착이 가능하다. )

-b는 Refined box이다. 이는 팽창된 박스 내부에서 실제 occupied voxel들의 최소와 최대 좌표값을 찾아서, 해당 voxel을 모두 포함하는 최소 크기의 box를 다시 계산하며, 이러한 결과가 녹색 상자( box after map refinement )이다. 

-- 최종적인 refined box는 raw box나 inflated box보다 장애물의 실제 형태에 더 잘 맞춰져 있어서 ROI의 위치와 크기를 더 정확하게 제공한다.


 

III. METHODOLOGY - C. Dynamic Obstacle Identification and Tracking

  • 이 모듈은 장애물의 상태(state)와 그 이력(history)을 추적하고, 동적 장애물을 식별하며, 정적 맵(static map)에 남아있는 동적 장애물의 occupied voxel(점유 voxel)을 정리(clean)한다.
    장애물의 상태는 position(위치), velocity(속도), size(크기) 데이터를 포함한다.

1) Obstacle tracking

  • 장애물 추적을 위해, 모든 장애물은 이전 시간 프레임에서의 위치와 연결(association)되어야 한다.

  • 이 연결 기준(match criteria)은 가장 가까운 bounding box 중심(center) 거리와 높은 bounding box 겹침 비율(overlap ratio) r ᵢ , ⱼ 에 기반한다:

  • 여기서 Aᵢ,ⱼ 는 t oCᵢ와 t-1oCⱼ의 top-view 겹침 면적, Aᵢ는 toCᵢ의 면적이다.

  • 부분적으로만 관측된 bounding box의 영향을 줄이기 위해, 장애물이 카메라의 시야(FOV)에 k′ 프레임 이상 완전히 나타나면
    bounding box 크기를 고정(fix)한다.
    이 전략은 FOV가 좁은 카메라에서 유용하다.

 

 

2) Identify dynamic and static obstacles

  • 우리는 Kalman filter를 map frame에서 적용해 장애물의 속도를 추정한다.
  • 모든 변수는 map frame에 있다고 가정한다.

상태벡터의 x와 y는 map frame상에서의 추정 위치(position)이며, x' y'은 장애물의 속도이다. 즉, 현재 or 예측 시점에 장애물이 '어디에 있고 어떻게 움직이는지'를 담고 있는 벡터이다. 측정벡터의 o_x o_y는 측정된 장애물의 위치이다.

  • 시스템의 모델과 측정은 아래와 같이 주어진다. ( 식 2, 3 )

식 2, 3 ( 각각 "상태 전이 모델"과 "관측모델" )

  • 여기서 Astate transition model , Q모델 노이즈의 공분산, Hmeasurement model , Rmeasurement noise의 공분산이다.
  • Kalman filter로 추정한 속도가 사용자 정의 임계값(threshold)을 초과하면, 해당 장애물을 dynamic으로 식별한다.
    • 하지만 sensor measurement noise(센서 측정 노이즈)로 인해, 일부 정적 장애물이 잘못 동적으로 식별될 수 있다.
    • 이 문제를 해결하기 위해, 저자들은 continuity filter를 제안해 잘못 식별된 정적 장애물을 걸러낸다.
  • Fig. 5 top에서는 동적 장애물 추적 이력 6프레임이 기록되어 있다.
    • 갈색 점(brown points)과 파란색 화살표(blue arrows)는 동적 장애물의 측정 위치와 궤적(trajectory),
      녹색 점(green points)은 ground truth position(실측 위치)이다.
  •  
  •  필터는 먼저 tracking history에서 얻은, 장애물 쌍의 displacement vector(변위 벡터, 빨간 화살표)를 계산한다. ( 식 4)

식4

  • 각 쌍의 포인트 간 displacement vector는 아래와 같다. ( 식 5 )
    • 여기서 dₜ₋ₙ,ₜ₀는 t-n과 t의 점 간 거리다.

 

  • 그 다음, 연속 인덱스의 각 쌍 벡터 사이의 각도(angle) 코사인 값을 구한다: ( 식 6 )

  • 이동하는 장애물은 짧은 기간 동안 constant velocity(상수 속도)로 움직인다고 가정하면, 변위 벡터 간 각도는 0에 가까워야 한다(Fig. 5 top).
    반대로, 정적 장애물의 측정값은 변위 벡터 간 각도가 크게 된다(Fig. 5 bottom).
  • 따라서 continuity coefficient(연속성 계수)를 다음과 같이 정의한다. ( 식 7 )

식 7

  • C_con이 임계값 T_con보다 작으면, 해당 장애물을 임시로 동적으로 표시한다.
    이후, c 프레임 동안 각 장애물의 임시 식별 결과를 기록하는 투표(voting) 이력을 추적한다.
    이전 결과들이 현재 프레임의 분류에 투표하며, Tc 이상의 투표를 받은 경우만 dynamic으로 최종 결정된다.

fig 5

 

3) Dynamic-region cleaning

  • 동적 장애물은 정적 맵에 포함되면 안 되므로, 이들의 이동 이력을 정적 맵에서 정리하는 과정이 필요하며,
    이를 dynamic-region cleaning이라고 한다.
  • 현재 동적 장애물 위치의 occupancy voxel만 제거하는 것은, 다음 반복에서 bounding box가 점유 voxel을 찾지 못하게 할 수 있으므로 충분치 않다.
  • 따라서, 우선 과거 f 프레임 동안의 동적 장애물 위치를 기반으로 occupancy voxel을 정리한다.
  • 그리고 각 반복(iteration)마다 제거된 voxel을 clean history라는 해시테이블에 기록한다.
  • clean history의 voxel들은 다음 반복에서 map refinement 시에 점유된 것으로 간주된다.

 


 

III. METHODOLOGY - D. Trajectory Prediction

  • 이 모듈은 environment-aware Markov chain[23][24][25]을 적용하여 장애물의 경로(trajectory)를 예측합니다. 전체 과정은 그림 6에 나와 있습니다.
  1. Path Library 생성
    • 실험을 통해 수집한 사람의 보행 데이터를 다항식(polynomial)으로 피팅(fitting)하여, 가능한 l개의 경로를 라이브러리(library)로 만듭니다.
    • 라이브러리는 왼쪽 회전 경로(left-turn paths)에서 시작해, 중앙에 직진 경로(straight path), 끝으로 오른쪽 회전 경로(right-turn paths) 순으로 정렬됩니다.
  2. 초기 경로 확률 분포 계산 (P₍init₎)
    • Markov chain의 초기 상태(initial state)는 각 경로 i에 대한 초기 확률 pᵢ₍init₎으로 정의합니다: ( 식 8 )
    • 이 값들은 모두 이산 가우시안 분포(discrete Gaussian distribution)를 따르며, 평균(mean)은 중앙의 직진 경로 p_{l/2}_init로 설정합니다.
    • “사람은 가능한 한 직선에 가까운 경로를 선호한다”는 가정에 기반한 설정입니다.

식 8

 

3. 전이 행렬 정의 (P₍trans₎)

  • Markov chain의 전이 확률(transition probabilities)을 행렬 형태로 정의합니다. (식 9 )
  • 각 행 i는 이산 가우시안 분포로, 평균은 p_{i,i}_trans(자기 자신 경로)로 설정합니다.
  • “사람은 현재 경로 경향을 가능한 유지하려 한다”는 가정입니다.

식 9

 

4. 환경 확률 계산 (P₍env₎)

  • 각 경로의 시작점에서 정적 맵(static map)과 충돌(collision)하는 지점까지의 거리를 Distᵢ로 계산합니다.
  • 이 거리들을 Softmax 함수에 통과시켜 환경-장애물 상호작용을 고려한 확률 분포를 얻습니다 ( 식 10 )

  • 거리가 멀수록(충돌 가능성이 적을수록) 확률이 높아집니다.

 

5. 최종 경로 확률 업데이트

  • 시간 t에서의 경로 확률 P₍t₎₍path₎에 전이 확률과 환경 확률을 곱하여, 시간 t+1의 경로 확률을 계산합니다.( 식 11)

식 11

  • 여기서 “×”는 행렬 곱(matrix multiplication), “∘”는 요소별 곱(elementwise multiplication)입니다.

 

 

 


IV. RESULT AND DISCUSSION - A. Implementation details

  • 제안된 방법의 성능을 평가하기 위해 시뮬레이션 및 실제 환경에서 실험을 수행하였다.
  • 시뮬레이션 환경: AMD Ryzen 7 5800@3.4 GHz에서 ROS/Gazebo를 사용해 구현하였다.
  • 실제 환경:
    • 커스텀 쿼드콥터Intel Realsense D435i depth camera(640 × 480 pixels, 87° by 58° field of view)를 장착하여 시스템을 구동하였다.
    • 온보드 연산은 Nvidia Xavier NX에서 수행하며,
    • 비행 테스트 시 PX4-based flight controller가 로봇을 제어한다.
  • 로봇의 상태 추정에는 visual-inertial odometry (VIO) [28]를 적용하였다.

 

 


fig 7
fig 8

IV. RESULT AND DISCUSSION - B. Simulation and Physical Experiments

a) Simulation Experiments

제안한 시스템의 성능을 평가하기 위해 동적 장애물(dynamic obstacles)이 포함된 세 가지 simulation environments를 준비하였다.
Fig. 7은 그중 한 가지 simulation environment 실험 예시를 보여준다.

  • 환경은 static obstacles와 14명의 pedestrians(dynamic obstacles)로 구성된다.
  • Fig. 7 하단에서는
    • 로봇이 환경에 대한 static map을 구축하고,
    • 두 개의 dynamic obstacles을 blue bounding boxesdetect하며,
    • 이들의 static map 상에 남은 trailsclean하는 과정을 확인할 수 있다.
  • 이후 장애물들의 trajectoriespredict하고,
    quadcopter는 blue curve로 표시된 안전한 경로를 plan하여 내비게이션한다.

 

b) Physical Experiments

  • 실제 환경 실험은 Fig. 1과 Fig. 8에 제시된 다섯 가지 environments에서 수행되었다.
  1. Hand-held flight tests (Fig. 8)
    • 네 가지 환경에서 사람이 손으로 quacdcopter를 들고 비행하며 제안 기법을 검증하였다.
    • Fig. 9는 동적 장애물 trackingmapping 결과의 한 예를 보여준다. 
      • 보행 중인 사람(pedestrians)은 blue bounding boxes로 검출·표현되고,
        예측된 궤적은 green lines로 표시된다.
      • 반면 정지해 있는 사람(static)은 dynamic obstacle로 잘못 식별되지 않는다.
      • Static structuresdynamic obstacles의 영역이 정리된(cleaned) static occupancy map에 정확히 포착된다.
    • 추가로, trajectory prediction module은 정적 장애물을 고려하여 collision-free predicted trajectories를 생성할 수 있다.
      • Fig. 9c에서는 사람이 L자형 복도의 모서리를 향해 걸어가자, left-turn trajectory가 예측되어 실제 이동 방향과 일치함을 확인할 수 있다.
  2. Indoor Autonomous Flight (Fig. 1)
  • 실내 자율 비행 실험을 통해 동적 장애물 회피 성능을 평가하였다.
  • quacdcopter는 걸어오는 사람을 detect하고 static environmentmap하며,
    [29]에서 언급된 trajectory planner와 결합해 dynamic environments에서 성공적으로 navigate할 수 있음을 보였다.

fig 1
fig 9

 

 


 

IV. RESULT AND DISCUSSION -  C. Benchmark Comparison

제안한 시스템의 성능을 정량적으로 분석하기 위해, UAV 플랫폼에서의 최신 dynamic obstacle detectors인 [6]과 [19]의 방법들과 비교하였다.

  • 동적 장애물 검출 오차 비교 (위치 및 속도)
    물리 실험에서는 OptiTrack motion capture system을 사용해 ground truth position을 측정하였다.
    Table I의 결과를 보면, 제안한 방법이 Method I보다 위치(position)와 속도(velocity) 추정 정확도 모두에서 우수함을 알 수 있다.
    실험 관찰에 따르면, Method I의 성능이 떨어지는 이유는 static 장애물과 dynamic 장애물을 구분하지 못해 static 장애물에 대해 잘못된 추정이 발생하기 때문이다.
    또한 제안 기법은 Method II와 비교하여도 속도 추정에서는 더 나은 성능을, 위치 추정에서는 대등한 성능을 보였다.
    이는 제안한 속도 추정 방식이 dynamic 장애물을 하나의 객체로 취급하여 point cloud의 불필요한 노이즈를 줄이고 보다 정확한 추정을 가능하게 하기 때문이다.
  • 실행 시간 평가 (Runtime Evaluation)
    제안 시스템을 Nvidia Xavier NX 온보드 컴퓨터에서 동작시켰을 때의 각 모듈별 실행 시간을 Table II에 제시하였다.
    전체 시스템은 한 iteration당 40 ms 미만으로 동작하며, 25 Hz 이상의 주기로 실행 가능하다.
    그중 region proposal detection 단계가 가장 많은 연산 시간을 차지한다.
    또한, 동일한 플랫폼에서 learning-based detectorYOLOvisual-inertial odometry와 함께 실행했을 때 소요 시간은 256.4 ms로, 제안 시스템보다 훨씬 느려 실시간 내비게이션을 처리하기에 부적합함을 확인하였다.
  • Trajectory Prediction 모듈 성능 비교
    제안한 environment-aware trajectory prediction module의 성능을 평가하기 위해, 세 가지 시뮬레이션 환경에서 예측된 모든 궤적을 수집하고 실패(failure) 횟수를 집계하였다.
    라이브러리의 경로 개수는 5로 고정하였다.
    실패 예측이란 예측된 궤적이 collision-free가 아니거나, predictor가 해답을 찾지 못한 경우를 의미한다.
    제안 기법과 단순 linear trajectory prediction의 실패 비율 비교 결과를 Fig. 10에 나타냈다.
    세 환경 중 Env. A가 가장 복잡하고 Env. C가 가장 단순하다.
    모든 환경에서 제안한 방법이 linear prediction에 비해 훨씬 낮은 실패 비율을 보였으며,
    환경이 복잡해질수록 linear prediction의 실패 비율은 급격히 상승하는 반면, 제안 기법은 항상 낮은 수준을 유지하였다.
    또한 필요에 따라 라이브러리 내 경로 개수를 늘리면 실패 비율을 더욱 감소시킬 수 있다.

table 1
table 2
fig 10

 

 

 


V. CONCLUSION AND FUTURE WORK

본 논문에서는 자율 UAV 내비게이션을 위한 새로운 **동적 장애물 추적 및 매핑 시스템(dynamic obstacle tracking and mapping system)**을 제안한다.
제안 방법은 **3D 하이브리드 맵(3D hybrid map)**을 사용하며,

  • 정적 장애물(static obstacles)은 occupancy voxel map으로 표현하고,
  • 동적 장애물(dynamic obstacles)은 바운딩 박스(bounding boxes) 형태로 추적한다.

먼저, proposal detector 모듈depth image로부터 장애물의 region proposals를 얻고,
이를 제안된 map refinement 기법으로 정제(refine)한다.
그다음, 정제된 제안 영역에 대해 동적 장애물 식별 및 필터링 기법을 적용하여 추적을 수행한다.

또한, 본 연구에서는 **마르코프 체인(Markov chain)**을 기반으로 한 새로운 **동적 장애물 경로 예측 알고리즘(dynamic obstacle trajectory prediction algorithm)**을 제시한다.
이 알고리즘은 동적 장애물의 궤적이 **정적 환경(static environment)**과 어떻게 상호작용(interaction)하는지를 고려한다.

실험 결과, 제안한 동적 장애물 검출 방법은 위치(position)와 속도(velocity) 추정 오차가 낮으며,
이를 통해 **동적 환경(dynamic environments)**에서도 안전하게 내비게이션할 수 있음을 보였다.

향후 연구로는, **더 넓은 시야(field of view)를 제공하는 카메라 모델(camera models)**을 적용하여
동적 장애물 추적 성능을 더욱 개선하는 방향이 유망하다