[ROS 튜토리얼] Create ROS Custom Message (C++ ver)

Create ROS Custom Message

1. package 생성하기

 package 생성에 대한 내용은 이전 포스트에서 다루었다.

2. msg 생성

생성해둔 package폴더 내에 msg폴더를 만들어준다. 그리고 custom message를 작성한다.

$ roscd beginner_tutorials
$ mkdir msg
$ echo "int64 num" > msg/Num.msg

나의 경우, 아래와 같은 msg 파일을 생성해주었다.

# bbox.msg

float32 x_min
float32 y_min
float32 z_min
float32 x_max
float32 y_max
float32 z_max

3. source code 작성

Python이나 C++ 중 원하는 언어로 코드를 작성한다. 이번 포스트에서는 C++ 언어로 작성하고자 한다. 이전 포스트에서 Python으로 작성한 경우에 대한 내용을 다루었다.

// main.cpp

#include <beginner_tutorials/bbox.h>

...

4. CMakeLists.txt 및 package.xml 수정

 4.1 package.xml

package.xml에서 주석처리가 되어있는 아래 두 라인에 대해 주석을 해제해준다.

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
 4.2 CMakeLists.txt
cmake_minimum_required(VERSION 3.25)
project(beginner_tutorials)

set(CMAKE_CXX_STANDARD 14)

find_package(catkin REQUIRED COMPONENTS
   roscpp
   rospy
   std_msgs
   message_generation
)

add_message_files(
   FILES
   bbox.msg
)

generate_messages(
   DEPENDENCIES
   std_msgs
)

catkin_package(
   CATKIN_DEPENDS message_runtime
)

include_directories(${catkin_INCLUDE_DIRS})
target_link_libraries(ros_test ${catkin_LIBRARIES})

add_dependencies(${CMAKE_PROJECT_NAME} ${CMAKE_PROJECT_NAME}_generate_messages_cpp) # header를 찾기위한 line

5. Reference

Leave a Reply

Your email address will not be published. Required fields are marked *