// it's for Latex

pages

[hector_slam code review] #02. hector_mapping

1. hector_mapping CMakeLists.txt check


~/simulation/ros_catkin_ws/src/hector_slam/hector_mapping
위 경로로 이동하면 CMakeLists.txt 파일을 확인할 수 있다.

파일 안의 내용 중에 다음과 같은 부분을 확인한다.

1
2
3
4
5
6
7
8
9
10
## Declare a cpp executable
add_executable(hector_mapping
  src/HectorDebugInfoProvider.h
  src/HectorDrawings.h
  src/HectorMappingRos.h
  src/HectorMappingRos.cpp
  src/main.cpp
  src/PoseInfoContainer.cpp
  src/PoseInfoContainer.h
)
cs



위 부분이 의미하는 바는 hector_mapping 노드가 실행될 때,
나열된 파일들을 이용해서 실행된다는 것이다.

그러므로 hector_mapping 노드의 실행과정을 이해하기 위해서는
위의 7개의 파일에 대해 이해할 필요성이 있다.

2. Code API check


http://wiki.ros.org/hector_mapping

위 링크에 들어가면 "Code API" 라는 메뉴를 확인할 수 있다.
해당 메뉴를 클릭하면 다음 사이트에 들어갈 수 있다.

http://docs.ros.org/kinetic/api/hector_mapping/html/index.html

위 사이트의 메뉴에서 Files를 선택하면 hector_mapping이 가지고 있는 많은 파일들을 확인할 수 있다.

여기서 1번에서 확인한 7개 파일 중 하나인 main.cpp 파일을 선택해본다.


그러면 최상위에 main.cpp가 존재하는 dependency graph를 확인할 수 있다.

main.cpp는 크게 ros/ros.h 파일과 HectorMappingRos.h 파일로 나뉘는데,
우리의 목적은 hector_slam을 이해하는 것이지 ros의 내부 소스를 이해하는 것이 아니므로
HectorMappingRos.h 쪽의 graph를 확인하도록 한다.
좀 더 깔끔하게 보기 위해 graph 자체에서 HectorMappingRos.h 박스를 클릭한다.



HectorMappingRos.h 에서는 최상위 층 바로 아래로 ros.h, tf, sensor_msgs, std_msgs, laser_geometry, nav_msgs, boost 와 같은 ros에서 기본적으로 제공하는 패키지와 메시지가 있고,
slam_main/HectorSlamProcessor.h, PoseInfoContainer.h 와 같은 hector_slam 과 관련된 패키지가 있다. PoseInfoContainer.h 는 차후에 확인하도록 하고 먼저 slam_main/HectorSlamProcessor.h 을 선택한다.



이제는 좀 더 심플한 graph를 확인할 수 있다.
이제부터는 최하위 계층의 소스부터 위로 올라오면서 분석하도록 한다.




댓글 없음:

댓글 쓰기