ROS2 이론 정리

ROS 파일 시스템 구조

dawon-project 2025. 1. 3. 19:53

ROS2의 파일 시스템은 설치 폴더와 사용자 작업 폴더로 구분된다.

 < 기본 설치 폴더 >

: 'ros-humble-desktop'을 설치하면 /opt 폴더에 ros라는 폴더가 생성되고 그안에 ROS 버전 별 폴더가 생성된다.

-> ros2를 사용하기에 필요한 도구들이 담긴이 파일 경로는 각자 사용자의 .bashrc에서 "source /opt/ros/humble/setup.bash" 코드를 써주어서 cmd 즉, 터미널 창을 열었을때 자동으로 참조할 수 있도록 해줘야한다.

-> 자신의 bashrc에 선언을 안 해놓으면 터미널 창을 켜줄때마다 ros2를 사용하기 위해 "source /opt/ros/humble/setup.bash"을 입력하고 시작해야하는 번거러움이 있다.   

-> 이 경로에서 기본적으로 제공하는 ros2 라이브러리들은 거의 대부분이 바이너리화 되어있기 떄문에 해당 코드에 대한 내용이 궁금하다면 ros2 공식 홈페이지에 가서 관련 코드들을 봐야한다.

ex) nav2 패키지 관련 코드(github) : https://github.com/ros-navigation/navigation2  

< 사용자 작업 폴더 >

-> 사용자가 원하는 곳에 폴더명으로 생성해주면 된다.

 -> 자신의 workspace에서 ros2를 사용하려면 각자 사용자의 .bashrc에서

"source ~/<자신의 workspace명>/install/local_setup.bash" 코드를 써주어서 cmd 즉, 터미널 창을 열었을때 자동으로 참조할 수 있도록 해줘야한다.

  • Workspace : ROS2 상에서 작업을 하는 환경
  • bashrc 파일 : 터미널을 열면 자동으로 bashrc를 읽어온다. 
           -> 터미널 초기 설정이라고 생각하면 편하다.
  • Package : 작업 환경 안에서의 하나의 큰 단위
          -> 하나의 기능별로 묶어서 Package로 나타낸다고 생각하면 편하다.
  • build : 코드 빌드 후 생기는 찌꺼기 비슷한 것이 들어간다.
  • log : 빌드하면서 생겼던 로그들이 기록된다.
  • install : 빌드가 완료된 후 실행 가능한 파일이나 설정 파일, launch 파일이 설치된다.
        -> ROS2의 패키지가 실제로 실행될때 컴퓨터가 참조하는 경로이다 
        -> 바이너리화(컴퓨터 언어)로 되어 있는 경우도 있고, launch 파일의 경우 우리가 코딩한 형태 그대로 담기는 경우가 있다.
  • src : 사용자 작업 패키지로, 사용자 소스 코드 공간이다.

< src 하위에 오는 폴더(파일) 구성 >

파일 내용
/include 헤더 파일이 담기는 파일
/launch ros2 launch에 사용되는 .launch 파일 -> .py 스크립트들을 한번에 실행하고 싶을 때 사용하는 파일
/node rospy용 스크립트
/msg 메세지 파일 -> 사용자 정의 메세지 또한 포함
/src 코드 소스 파일
/srv 서비스 파일
CMakeList.txt 빌드 설정 파일
package.xml 패키지 설정 파일

=> 보통 위의 파일들을 사용자의 입맛에 따라 하나의 패키지로 묶어서 사용한다. 

=> ex) 기능별 or 센서별

 

< ROS2의 Package 유형 >

1. Python Package

  • package.xml : 패키지에 대한 메타 정보(패키지 관리자, 종속성 등) 포함된 파일
  • setup.py : 패키지를 컴파일하는 방법에 대한 지침이 포함된 파일
  • setup.cfg : 스크립트가 설치될 위치를 정의하는 파일
  • /<package_name> : 패키지와 같은 이름을 갖는 디렉토리(폴더)로, 이 폴더 안에 Python 스크립트를 넣는다.

2. C++ Package

  • package.xml : 패키지에 대한 메타 정보 (패키지 관리자, 종속성 등) 포함된 파일
  • CMakeList.txt : 컴파일을 위한 CMake 설정 파일
  • /launch : launch 파일이 담긴 디렉터리
  • /src : C++ 소스 파일이 담긴 폴더

* Python Package에서 스크립트 컴파일 지침은 setup.py이고, C++ Package에서 소스 파일 컴파일 지침은 CMakeList.txt 이다.

'ROS2 이론 정리' 카테고리의 다른 글

ROS2 SLAM에 대한 모든 것  (0) 2025.01.07
ROS2 URDF에 대한 모든 것  (0) 2025.01.06
ROS2 TF에 대한 모든 것  (0) 2025.01.06
노드 간의 통신 방식 3가지  (0) 2025.01.06
ROS 기본 개념  (1) 2025.01.03