[Research] 지역 경로 계획 소개, teb local planner

in kr-dev •  2 years ago  (edited)

오랜만에 로봇 관련 글을 작성합니다.

저도 공부할겸 작성중입니다.

모바일 로봇의 지역 경로 계획 알고리즘에 대해 소개하고자 합니다.

지역 경로 계획 (Local path planner)

Given a plan to follow and a costmap, the controller produces velocity commands to send to a mobile base.

즉,

  • 목적지
  • 목적지로 가기 위한 전역 경로
  • 주변의 정보 (ex - 쉽게 장애물이 있다)

위의 정보들이 있다고 가정합니다.

이 때, local path planner는 모바일 로봇을 목적지까지 갈 수 있도록 전진, 회전을 명령합니다.


예를 들어, 저는 코엑스에서 영화관을 가야하며 입구에 있습니다.

영화관까지 가기 위한 경로가 전역 경로 (global path)입니다.

이제 영화관까지 움직이는데, 중간중간 사람들도 있고, 갑자기 공사도 하더라고요.

그래서, 전역 경로를 따라 가지만, 사람들을 피해가는 경로도 생성합니다.

이게 바로 지역 경로 (local path)입니다.


여러 지역 경로 계획 알고리즘이 있지만,

좋은 지역 경로 계획 알고리즘 (TEB local planner)을 소개합니다.

TEB(Timed Elastic Band) local planner

The teb_local_planner package implements a plugin to the base_local_planner of the 2D navigation stack. The underlying method called Timed Elastic Band locally optimizes the robot's trajectory with respect to trajectory execution time, separation from obstacles and compliance with kinodynamic constraints at runtime.


TEB는 시간, 장애물, 역학적인 제약 등을 고려해서 최적의 지역 경로를 만든다! 라고 되어있습니다.

아래 사진에서 빨간 선은 A지점에서 B지점까지의 경로입니다.

장애물이 3개가 있지만, 경로에 전혀 영향을 주지 않습니다.

그래서 직선 경로를 만든 것을 볼 수 있습니다.

image.png

아래와 같이 장애물을 하나 두었더니, 장애물을 우회하는 경로를 만들었습니다.

두 경로를 만들었지만, 그 중에 더 낫다고 생각하는걸 선택하였고 그 경로가 빨간색입니다.

image.png

장애물 하나를 더 넣어봤습니다.

패스가 여러 개가 생겼는데 그 중에 가장 좋은 패스를 선택하였고

빨간 선입니다.

image.png

경로가 장애물과 가까이 있는 것 같아,

좀 더 우회할 수 있는 경로를 생성하고 싶어졌습니다.

경로를 생성하기 위한 다양한 파라미터가 있지만,

장애물과의 최소 거리 파라미터인 min_obstacle_dist를 0.5m에서 2.0m로 늘려봤습니다.

파라미터를 변경 후, 경로를 보면 장애물로부터 거리가 먼 것을 확인할 수 있습니다.

image.png

image.png

파라미터를 좀 더 파악을 하고, 실제로 써먹어볼 수 있도록 해볼 예정입니다.

참고 링크입니다.

읽어주셔서 감사합니다!

궁금한 점, 조언 등 환영합니다!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

짱짱맨 태그 사용에 감사드립니다^^
존버앤캘리 이번편은 왠지 찡함..^^
https://steemit.com/kr/@mmcartoon-kr/20180307
[골든티켓x짱짱맨x워니프레임] 10차 옴팡이 이모티콘 증정
https://steemkr.com/kr/@goldenticket/x-x-10-100

저도 가서봤는데 재밌내요 ㅎㅎ