Robot/Motion planning

Bug Algorithms

jstar0525 2022. 1. 4. 16:59
반응형

이 글은 아래의 책을 기반으로 작성되었습니다.

Choset, H., Lynch, K. M., Hutchinson, S., Kantor, G. A., & Burgard, W. (2005). 
Principles of robot motion: theory, algorithms, and implementations. MIT press.

 

Bug Algorithms

 

  • Bug 알고리즘은 가장 기초적인 센서 기반의 planner

 

  • 간단하게 말하면,
    목표 지점으로 일직선으로 이동하다가 장애물을 만나면 돌아가고, 이후 다시 목표 지점으로 직선 이동

 

  • 필요한 두 가지 행동 : 일직선으로 이동
                               : 경계를 따라가기

 

  • 가정 : 평면에서 동작
           : 장애물을 피하기 위하여 접촉 센서, zero range sensor(bug 1, 2 algorithm),
                                            nonzero range sensor(tangent bug algorithm) 사용
           : 정확한 자신(로봇)의 위치를 알고 있음
           : 도착 위치에 대해 알고 있음

 

* 알고리즘에 대한 설명은 아주 간단히 언급하며,

자세한 알고리즘은 psedo-code로 확인 바랍니다.

 

Bug 1 알고리즘

  • 목표 지점으로 일직선 이동
  • 만약 장애물을 만나면 경계를 따라 한 바퀴 이동하고,
    장애물 경계 중 목표 지점과 가장 가까운데에서 다시 목표 지점으로 일직선 이동

 

 

Matlab으로 구현한 Bug1 알고리즘

 

https://youtu.be/xsJtpKIoUpU

 

 

 

Bug 2 알고리즘

  • 시작 지점과 목표 지점의 직선(m-line)을 따라 이동
  • 만약 장애물을 만나면 경계를 따라 이동하고,
    장애물 경계 중 m-line과 겹치는 지점에서 다시 목표 지점으로 일직선 이동

 

 

Matlab으로 구현한 Bug2 알고리즘

 

https://youtu.be/NXGkNzbZ-bQ

 

 

 

Tangent Bug 알고리즘

tangent bug algorithm은 이전 알고리즘과 달리 360도의 range sensor를 사용
(zero, infininte range sensor도 가능)

  • 목표 지점으로 일직선 이동
  • 장애물이 있을 경우 heuristic distance를 최소로 하는 n 지점으로 이동
  • local minimum에 걸린 경우(로봇과 목표 지점의 거리가 늘어남),
    이전의 방향에 해당하는 n 지점을 따라 장애물 경계로 이동
    - d_reach(로봇과 목표 지점의 거리)가 d_followed(장애물의 탐지 지점과 목표 지점의 최소 거리)보다
      작으면 다시 목표 지점으로 일직선 이동

Matlab으로 구현한 Tangent Bug 알고리즘

 

https://youtu.be/BHgD6g3mzOA

 

반응형