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