카테고리 없음

패스트캠퍼스 환급챌린지 49일차 : 자율주행 로봇을 위한 ROS2 & Nav2 한번에 끝내기 강의 후기

연두부진 2025. 4. 22. 23:02

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

오늘은 Planner Server는 어떤 걸 쓰며

Planner Server에서 사용되는 Patameter들에는

어떤 것들이 있는지 알아보았다.

 

[오늘의 수강 영상]

 

[오늘의 실습]

 

오늘 실습을 진행하기 위해서

two_wheeled_robot이라는파일을 새롭게

다운로드한 후 새로운 로봇, 새로운 환경에서

실습을 진행하였다.

 

실습환경은 아래와 같다.

 

Nav2를 실제로 실행해 보면 아래와 같다.

 

 

 

Planner란?

ROS1의 Global Planner와 동일하며

지도의 알려진 장애물 및 벽 정보를 바탕으로

로봇이 A 지점에서 B 지점까지 이동하는 경로를 찾는다.

 

Planner Server Parameters에는 2개의 파라미터가 있다.

 

1. expected_planner_frequency

 

expected_planner_frequency란?

Planner의 새로운 경로 계산의 빈도수를 지정하는 파라미터이며

double로 정의되고 기본값은 20이다.

 

2. Planner_plugins

 

Planner_plugins란?

Planner로 사용할 plugin들을 지정하는 파라미터이며

vector<string>로 정의되고 기본값은 GridBased이다.


 

제일 많이 알려져있는 Planner_plugins은 5가지 정도 있다.

 

1. NavFn Planner

 

NavFn Planner란?

A* 또는 Dijkstra 기반의 최단 경로 탐색기이다.

 

이는 Differential, Omnidirectional, Legged(4족 보행 로봇)에서

사용할 수 있다.

 

2. SmacPlannerHybrid

 

SmacPlannerHybrid란?

하이브리드 A* 알고리즘 기반으로 복잡한 지형에서

효율적이며 3D 환경을 지원한다.

 

이는 Ackermann(차량), Differential, Omnidirectional, Legged에서

사용할 수 있다.

 

3. SmacPlanner2D

 

SmacPlanner2D란?

2D 환경용으로 빠른 경로 계획을 제공하며

저사양 하드웨어에서도 효율적이다.

 

이는 Differential, Omnidirectional, Legged에서

사용할 수 있다.

 

4. SmacPlannerLattice

 

SmacPlannerLattice란?

Grid 기반 경로 계획에 사용되고

다양한 경로 탐색 및 분석에 적합하다.

 

이는 Differential, Omnidirectional, Ackermann, Legged, Arbitrary / Custom에서

사용할 수 있다.

 

5. ThetaStarPlanner

 

ThetaStarPlanner란?

A* 알고리즘을 확장해 직선 경로를 선호하며

더 짧고 현실적인 경로를 생성한다.

 

이는 Differential, Omnidirectional에서

사용할 수 있다.


 

우리가 사용하고자 하는 Planner_plugins는

Navfn Planner이다.

 

Navfn Planner은 ROS1 때부터 매우 안정적으로 사용되어 왔고

ROS2에서는 기본 Global Planner로 사용되기 때문에 이를 선택하였다.

 

Navfn Planner는 Dijkstra 또는 A*를 사용한다.

 

1. Dijkstra

 

Dijkstra란?

어떤 조건에서도 최단 경로를 찾을 수 있도록 하는 알고리즘이다.

 

 

2. A*

 

A*란?

목표를 향해 잠재적 필드를 확장하여

가능한 경로를 더 빨리 찾을 수 있도록하는 알고리즘이다.


 

이 Planner parameters는 아래와 같이 적혀있고

 

tolerance

목표 포즈와 경로 끝 사이의 허용 오차(m)를 의미하며

double로 표시하고 기본값은 0.5이다.

 

use_astar

A*의 사용 여부를 나타내며

bool로 표시하고 기본값은 false이다.

 

false면 Dijkstra, true면 A*이다.

 

allow_unknown

알 수 없는 공간(map의 회색 영역)을

갈 수 있는 영역이라고 할지 갈 수 없는 영역이라고 할지 결정 여부를 나타내며

bool로 표시하고 기본값은 true이다.


A*와 Dijkstra를 정말 많이 들어봤었는데

이게 Planner_server에서 사용되는 건지와

어떻게 사용되는 건지 처음 알게 되어서

신기하게 다가왔다.

 

내일 local planner인 controller Parameter에

대해서 배우고 앞으로 server들을 하나씩 배워볼 텐데

중간에 포기하지 않고 아자아자 파이팅 해보겠다!!!!


 

공부 시작시간
공부 종료시간

 

#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완

https://bit.ly/4hTSJNB

 

🎉누적 구매수 111만 건 돌파 감사제 100% 페이백 (04.21 - 04.26) | 패스트캠퍼스

통 크게! 전 구매 고객께 결제 금액을 100% 돌려드립니다!

fastcampus.co.kr