반응형

ROBOTIS의 E-Manual을 통해 TURTLEBOT을 사용하여 지도를 작성하고 주행해보는 과정을 진행해봤다는 가정하에 작성한다.

 

 

앞에서 TURTLEBOT이 SLAM을 통해 지도를 저장할때 생성되는 pgm 파일과 yaml파일에 대해 살펴봤다.

 

이번에는 이 파일들을 통해 주행을 하는 과정, 그 중에서도 위치인식(Localization)에 대한 내용을 다룬다.

 

그럼 Navigation을 수행하기 위해 실행하는 navigation.launch파일부터 다시 살펴보자.

 

 

line14의 map_server 노드가 하는 역할은 앞에서 살펴봤다.

 

그럼 이제 line17의 amcl.launch파일이 하는 역할에 대해 살펴보자.

 

AMCL, Adopted Monte Carlo Localization 의 약어로 위치인식을 위해 진행되는 particle filter에 대한 내용이다.

 

 

우선 amcl.launch 파일을 찾아 내용을 살펴보자.

(여기서 amcl의 런치파일은 turtlebot3_navigation 패키지 안에 들어있다.)

 

 

노드의 파라미터들을 살펴보면 해당 노드는 2D Lidar 데이터를 사용하는데 최적화가 되어있는 것으로 예상된다.

 

그럼 이 노드의 source로 들어가 각각의 파라미터들이 어떤 역할을 하는지, 어떠한 구조를 갖는지 살펴볼 필요가 있다.

우선 source가 무엇인지를 파악하기 위해 CMakeLists를 찾아보자.

(ros-planning/navigation/amcl/CMakeLists.txt)

 

 

위의 파일을 통해 amcl 노드가 src/amcl.cpp를 통해 생성됨을 확인할 수 있다.

 

amcl_node.cpp
0.05MB

 

코드를 분석해보자.

 

코드가 너무 긴가?

 

천리길도 한걸음부터.

반응형

+ Recent posts