1 minute read

패키지 설정 파일

  • package.xml : 패키지의 정보를 담은 XML 파일

구문별 설명

  • <?xml> : 문서 문법으러 정의하는 문구로 아래의 내용은 xml 버전 1.0 을 따르고 있다는 것을 알린다.
<?xml version="1.0?>
  • <package> : 이 구문부터 맨 끝 </package>까지가 ROS 패키지 설정 부분이다.
<package format="2">
  <!-- %Tag(NAME)% -->
  <name>beginner_tutorials</name>
    ...
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>

  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>
  <!-- %EndTag(DEPS)% -->

  <!-- %Tag(EXPORT)% -->
  <!-- %EndTag(EXPORT)% -->
</package>
  • <name> : 패키지의 이름이다. 패키지를 설정할 때 입력한 패키지의 이름이 사용된다. 다른 옵션도 마찬가지지만 이는 사용자가 원할 때 언제든지 변경할 수 있다.
<name>beginner_tutorials</name>
  • <version> : 패키지의 버전이다. 자유롭게 지정할 수 있다.
<version>0.1.0</version>
  • <description> : 패키지의 간단한 설명이다. 보통 2~3 문장으로 기술한다.
<description>The beginner_tutorials package</description>
  • <maintainer> : 패키지 관리자의 이름과 이메일 주소를 기재한다.
<maintainer email="obo314@icloud.com">obo</maintainer>
  • <license> :라이센스를 기재한다. BSC, MIT,Apache, GPLv3, LGPLv3등을 기재하면 된다.
<license>BSD</license>
  • <url> : 패키지를 설명하는 웹 페이지 또는 버그 관리, 저장소 등의 주소를 기재한다.
<url type="website">http://github.com/happyOBO/ros/beginner_tutorials</url>
  • <author> : 패키지 개발에 참여한 개발자의 이름과 이메일 주소를 적는다. 복수의 개발자가 참여한 경우에는 태그를 추가로 넣어주면 된다.
<author email="you@yourdomain.tld">Jane Doe</author>
  • <buildtool_depend> : 빌드 시스템의 의존성을 기술한다. 지금은 캐킨 빌드 시스템을 이용하고 있으므로 캐킨을 입력한다.
<buildtool_depend>catkin</buildtool_depend>
  • <build_depend> : 패키지를 빌드할 때 의존하는 패키지 이름을 적는다.
<build_depend>roscpp</build_depend>
  • <exec_depend> : 패키지를 실행할 때 의존하는 패키지 이름을 적는다.
<exec_depend>roscpp</exec_depend>

빌드 설정 파일

  • ROS의 빌드 시스템인 캐킨은 기본적으로 CMake 를 이용하고 있어서 패키지 폴더의 CMakeLists.txt라는 파일에 빌드환경을 기술할 수 있다.
  • 실행 파일 생성, 의존성 패키지 우선 빌드, 링크 생성등을 설정하게 되었다.

구문별 설명

  • cmake 요구 버전 명시
cmake_minimum_required(VERSION 2.8.3)
  • project 항목은 패키지 이름이다. package.xml에서 입력한 패키지 이름 사용
project(beginner_tutorials)
  • 캐킨 빌드할 때 요구되는 구성 요소 패키지이다.
## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS
    roscpp 
    rospy 
    std_msgs 
    genmsg)
  • 메시지 파일을 추가하는 옵션. FILES를 사용하면 현재 패키지 폴더의 msg 폴더 안의 .msg 파일들을 참조하여 헤더 파일을 자동으로 생성
  • 서비스 파일을 추가하는 옵션, FILES를 사용하면 현재 패키지 폴더의 srv 폴더 안의 .srv 파일들을 참조
## Declare ROS messages and services
add_message_files(FILES Num.msg)
add_service_files(FILES AddTwoInts.srv)
  • 의존하는 메세지 설정,
## Generate added messages and services
## 디펜던시에 의해 해당 메시지 패키지를 사용하겠다는 설정
generate_messages(DEPENDENCIES std_msgs)
## Declare a catkin package
catkin_package()
## Build talker and listener
include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker beginner_tutorials_generate_messages_cpp)

add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener beginner_tutorials_generate_messages_cpp)

# %EndTag(FULLTEXT)%

Categories:

Updated: