Velocity Estimation and Cost Map Generation for Dynamic Obstacle Avoidance of ROS Based AMR

박준희·2025년 2월 26일

1. 논문 목적

ROS 내비게이션 시스템은 글로벌 플래너 알고리즘을 통해 최단 경로를 찾고 로컬 플래너 알고리즘을 통해 로봇의 속도 명령을 계산하는 비용 맵(costmap)에 의존. costmap은 layered costmap을 이용하여 여러 costmap을 결합할 수 있음

AMR은 잘 구축된 costmap을 기반으로 2D 공간에서 내비게이션을 수행

그러나 기존 layer 에서는 고속 장애물을 효과적으로 탐지하고 회피할 수 있는 layer가 없음.

따라서 본 연구에서는 Velocity Obstacle 기법을 기반으로 장애물의 속도를 고려한 Velocity Obstacle Layer를 제안

본 논문 요약에서는 velocity obstacle 부분만 다루겠음.

2. Velocity Obstacle Layer

장애물의 위치, 속도가 추정되었을 때 이를 기반으로 velocity obstacle 영역을 생성

  • Fig. 8에서 파란색 영역은 장애물이 정지해 있을 때의 원래 충돌 영역. 장애물이 이동하면 충돌 영역은 노란색 영역으로 수정되어야 함

  • 다수의 장애물에 대한 VO가 노란색 영역으로 표시되면, 장애물 영역이 과도하게 생성되어 통과할 수 있는 많은 경로를 낭비하게 됨

  • 이를 해결하기 위해 절단 거리(truncation distance)를 도입하여 "절단된 속도 장애물(truncated velocity obstacle)"을 생성

    • θROc=arctan((OyRy)/(OxRx))\theta_{R O c}=\operatorname{arctan}\left(\left(O_y-R_y\right) /\left(O _x-R_x\right)\right)
      (robot 좌표계에서 선분 ROcROc 방향 각도 θROc\theta_{R O c})
    • θRay=arcsin((Or+Rr)/DistRO)\theta_{R a y}=\arcsin \left((O r+R r)/\operatorname{Dist}_{R O}\right)
      (레이저와 선분 ROcROc 사이 각도)
    • θLeftRay=θROc+θRay\theta_{LeftRay} = \theta_{R O c} + \theta_{R a y}
    • θRightRay=θROcθRay\theta_{RightRay} = \theta_{R O c} - \theta_{R a y}
      (좌측 / 우측 레이저 방향 각도를 다음과 같이 계산 가능)
  • 계산된 파란색 삼각형 영역에 장애물의 속도 성분(속도의 x, y 방향 요소)을 추가하면 최종 VO 영역이 결정됨

  • 위와 같이 VO를 설정한 후, Fig. 9와 같이 절단된 속도 장애물(tVO, truncated Velocity Obstacle)을 계산

  • tVO를 적용하면 로봇이 보다 넓은 공간에서 경로를 선택할 수 있으며, 절단 시간 𝜏 내에 충돌을 회피할 수 있도록 보장한다. 𝜏가 커질수록 절단 거리도 길어진다.

    • 절단 시간 𝜏는 1 이상의 값을 가짐 (임의로 설정)
    • 𝜏=1인 경우, 절단이 적용되지 않은 기본 VO와 동일
    • 𝜏 값이 커질수록 절단 거리(cut-off distance)는 짧아지며, 로봇이 더 많은 경로를 선택할 수 있도록 허용됨

3. Velocity Obstacle Problem

로봇과 장애물이 다른 속도로 이동하거나 장애물의 절단 거리가 설계되지 않은 경우, 로봇은 장애물 영역 내에서 충돌할 수 있음

Fig.10. 은 두 개의 로봇(사각형, 다이아몬드 모양)이 동시에 이동하고 있으며, 각각의 속도가 0.1 m/s와 0.3 m/s인 상황을 보여줌

  • T = 1일 때, 다이아몬드 모양의 로봇이 검은색 사다리꼴 영역에 진입하지 않고, 정사각형 로봇이 노란색 사다리꼴 영역에 진입하지 않으면, 속도 장애물 절단 영역에서 안전하게 장애물을 피할 수 있음

  • T = 2일 때, 정사각형 로봇은 노란색 사다리꼴 영역을 통과할 수 없다고 판단하고 우측으로 회피 결정을 내리며, 다이아몬드 모양의 로봇은 계속 앞으로 나아갈 수 있음

  • 결국 T = 3일 때 두 로봇은 서로 안전하게 회피할 수 있음

반대로, 로봇이 절단 영역만 따라간다면, 고속 장애물과 마주쳤을 때 충돌이 발생할 수 있음(Fig.11)

  • 장애물(정사각형)의 최대 속도: 0.3 m/s

  • 로봇(다이아몬드)의 최대 속도: 0.1 m/s

  • T = 2.5일 때, 장애물이 계속 이동하면서 로봇들이 서로 충돌할 가능성이 있음을 인식하고 회피해야 합니다. 최대 속도 제한의 영향으로 로봇들은 충돌하게 됩니다.

  • 따라서 장애물 회피를 위해 단일 로봇만 동작할 경우, 충돌을 피하기 위해 속도 장애물의 절단 거리를 조정할 필요가 있음

4. Truncation area Enhancement

장애물의 속도가 충분히 높다면, 로봇은 자신의 속도를 고려하고 새로운 장애물 회피 전략을 세워야 함

Fig.12. 는 로봇과 장애물의 상대 속도가 로봇을 향하는 장애물의 벡터에 투영되는 모습을 보여줌

  • 장애물에서 로봇까지의 거리인 DistRODist_{RO}를 장애물 속도의 투영에 의해 크기를 조정하여 새로운 VO 영역을 설정할 수 있음

    • PR\overrightarrow{P_R} : 로봇의 위치 벡터
    • PO\overrightarrow{P_O} : 장애물의 위치 벡터
    • t^=PRPORO\hat{t}=\frac{\stackrel{\rightharpoonup}{P_R}-\stackrel{\rightharpoonup}{P_O}}{\overline{R O}} : 로봇 좌표에 대한 장애물의 단위 벡터
    • newTrunc =RO×(1(VOR)t^Vmax)=\overline{R O} \times\left(1-\frac{\left(\stackrel{\rightharpoonup}{V_{O R}}\right) \cdot \hat{t}}{V_{\max }}\right)
      • VOR=VOVR\overrightarrow{V_{O R}} = \overrightarrow{V_O} - \overrightarrow{V_R}
  • 새로운 절단 거리는 속도를 고려하여 설계되었으며, 속도 장벽 영역이 비용 맵에 투영됩니다. 장애물 속도 Vel_O는 공간 영역에 있기 때문에 비용 맵에 직접적으로 추가되지 않습니다. 지역 계획 알고리즘 내에서는 장애물 속도가 속도 명령의 샘플링 시간과 곱해집니다. 속도를 공간 영역으로 변환함으로써, 지역 경로 계획 알고리즘은 이 비용 맵을 피할 수 있게 됩니다. 그 후, 로봇은 속도를 고려한 새로운 절단 거리를 기반으로 새로운 결정 전략을 계산하고 장애물을 피할 수 있습니다. 시뮬레이션 및 검증을 위해 동적 윈도우 방법이 로컬 계획 알고리즘으로 사용되며, 변환 계산이 비용 맵에 내장됩니다. (Fig.13.)

  • ST는 로컬 경로 계획 알고리즘의 샘플링 시간입니다.

(추후 계속 작성 - Truncation area가 잘 이해가 안 됨)

profile
이것저것 정리용

0개의 댓글