본문 바로가기
자율주행

ROS 패키지 및 작업 공간

by icebear3000 2023. 5. 2.
반응형

 ROS melodic과 C++ 기준으로 ROS 패키지 및 작업 공간에 대하여 알아보겠습니다.

 

패키지 구조

 ROS 패키지는 ROS 응용 프로그램의 기본 구성 단위로, 관련된 노드, 라이브러리, 설정 파일 등을 포함합니다. ROS 패키지의 일반적인 구조는 다음과 같습니다.

my_package/
  ├── CMakeLists.txt
  ├── package.xml
  ├── src
  │   ├── my_node.cpp
  │   └── ...
  ├── include
  │   ├── my_package
  │   │   ├── my_library.hpp
  │   │   └── ...
  ├── launch
  │   ├── my_launch_file.launch
  │   └── ...
  ├── config
  │   ├── my_configuration_file.yaml
  │   └── ...
  ├── msg
  │   ├── MyCustomMessage.msg
  │   └── ...
  └── srv
      ├── MyCustomService.srv
      └── ...

CMakeLists.txt: 빌드 시스템인 catkin에서 사용하는 CMake 파일입니다. 빌드, 링크 및 설치 옵션을 정의합니다.
package.xml: 패키지에 대한 메타 정보를 포함하는 XML 파일입니다. 패키지 이름, 버전, 종속성 등을 정의합니다.
src: C++ 소스 코드를 저장하는 디렉터리입니다. 노드 및 라이브러리 코드를 포함합니다.
include: C++ 헤더 파일을 저장하는 디렉터리입니다. 라이브러리 헤더 파일을 포함합니다.
launch: ROS 노드를 실행하는 데 사용되는 launch 파일을 저장하는 디렉터리입니다.
config: 설정 파일을 저장하는 디렉터리입니다. YAML 파일 등을 포함합니다.
msg: 사용자 정의 메시지를 정의하는 디렉터리입니다.
srv: 사용자 정의 서비스를 정의하는 디렉터리입니다.


작업 공간 생성 및 관리

 작업 공간은 ROS 패키지를 개발하고 관리하는 데 사용되는 디렉터리 구조입니다. 작업 공간을 생성하고 관리하는 방법은 다음과 같습니다.


1. 작업 공간 생성

 먼저, 작업 공간 디렉터리를 생성합니다. 

$ mkdir -p ~/my_workspace/src
$ cd ~/my_workspace/

 

2. 작업 공간 초기화

 작업 공간을 초기화하고 catkin 빌드 시스템을 설정합니다.

$ cd ~/my_workspace/src
$ catkin_init_workspace

이제 src 디렉터리에 CMakeLists.txt 파일이 생성되었습니다.

 

3. 작업 공간 빌드

 작업 공간을 빌드합니다. 빌드 결과는 devel 디렉터리에 저장됩니다.

$ cd ~/my_workspace
$ catkin_make

 

4. 작업 공간 환경 설정

 작업 공간의 환경 변수를 설정합니다. 이를 통해 작업 공간에서 개발한 패키지를 실행할 수 있습니다.

$ source ~/my_workspace/devel/setup.bash

 

5. 패키지 생성

 작업 공간에 새로운 패키지를 생성합니다. 다음 명령어를 사용하여 패키지를 생성할 수 있습니다.

$ cd ~/my_workspace/src
$ catkin_create_pkg my_package std_msgs rospy roscpp

여기서 my_package는 생성할 패키지의 이름이며, std_msgs, rospy, roscpp는 종속 패키지입니다.

 이제 작업 공간에 my_package라는 새로운 패키지가 생성되었습니다. 패키지 내에 노드, 라이브러리 등을 개발하고 작업 공간에서 빌드할 수 있습니다.

반응형

댓글