[ROS] 간단한 사용자 메시지 유형 만들기

YUZ·2020년 10월 5일
0

ROS

목록 보기
2/2

1. 메시지 생성

  • Message 들을 담을 패키지 생성
  • 해당 패키지 안에 msg 폴더 생성
mkdir msg
  • msg 폴더 안에 메시지 파일 생성
cd msg
touch GpsPoint.msg
  • 메시지 파일 작성
msg/GpsPoint.msg

float64 lat         # Longitude [deg]
float64 lon         # Latitude [deg]
float64 height      # Height [m]

2. CMake 파일 수정

2.1 find_package

find_package(catkin REQUIRED COMPONENTS
  message_generation
  std_msgs
)

(1) message_generation 추가해주기
(2) 사용자가 만든 메시지 파일 안에 std_msgs 이외에도 다른 메시지 타입이 추가되었다면, find_package 안에도 해당 메시지 타입 추가해주기
ex) sensor_msgs, geometry_msgs 등

2.2 add_message_files

add_message_files(
  FILES
  GpsPoint.msg
)

사용자가 추가한 메시지 파일을 넣어준다

2.3 generate_messages

generate_messages(
  DEPENDENCIES
  std_msgs
)

find_package의 (2)에 추가했던 것을 똑같이 추가해준다.

2.4 catkin_package

catkin_package(
  CATKIN_DEPENDS
  message_runtime
  std_msgs
  message_generation
)

(1) message_runtime 추가
(2) message_generation 추가
(3) 나머지 메시지 타입 추가했던 것들 추가

3. xml 파일 수정

3.1 꼭 추가해야하는 것

<build_depend>message_generation</build_depend>
<build_export_depend>message_runtime</build_export_depend>
<exec_depend>message_runtime</exec_depend>
<exec_depend>message_generation</exec_depend>

3.2 사용자의 타입에 맞게

Ex) std_msgs 타입과 geometry_msgs 타입이 필요할 경우

<build_depend>std_msgs</build_depend>
<build_depend>geometry_msgs</build_depend>
<build_export_depend>std_msgs</build_export_depend>
<build_export_depend>geometry_msgs</build_export_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>geometry_msgs</exec_depend>

0개의 댓글