[ROS] 나만의 메세지 만들기

Nodazi·2024년 1월 5일
0

ROS

목록 보기
3/21
post-thumbnail

🤔0.개요

ROS에서 노드끼리 통신을 할 때 메세지 타입을 Int32,String ,Bool 과 같은 자료형으로 지정할 수 있지만, 커스텀 메세지를 만들어서 보낼 수도 있다. 여러가지 자료형을 담을 수 있어서 필요할 때 만들어서 사용하면 용이하게 쓸 수 있다. 예를들어 아래와 같이 어떤 사람의 이름 , 키, 전화번호 등을 각각의 자료 구조에 맞는 타입으로 선언해서 보낼 수 있다. 이번에는 그 메세지를 만드는 방법에 대해서 알아보겠다.

String last_name
String first_name
float heigh
String phone_number

🐜1.Custom Message 선언

우선 커스텀 메세지를 사용하기 위해서는 package.xml 파일을 수정해야한다. package 를 create 하면 자동으로 생성되는 파일이다.
아래의 두줄을 추가하면 된다.
📦package.xml

	...
	<build_depend>message_generaion</build_depend>
	<exec_depend>message_runtime</exec_depend>
	...

CMakeList.txt 파일도 수정해야한다.
🗒CMakeList.txt

	...
	find_package(catkin REQUIRED COMPONENTS
  		rospy
  		std_msgs
		message_generation 	//새롭게 추가
	)
    ...
    add_message_files(
    	FILES	
		my_msg.msg 
	)					//코멘트 풀기 , .msg 파일 추가
	...
    ## Generate added messages and services with any dependencies listed here
	generate_messages(
  		DEPENDENCIES
  		std_msgs    		//코멘트 풀기
	)
    ...
    catkin_package(
		CATKIN_DEPENDS message_runtime	//추가
	#  INCLUDE_DIRS include
	#  LIBRARIES my_motor
	#  CATKIN_DEPENDS rospy std_msgs
	#  DEPENDS system_lib
	)
    

📬my_msg.msg

string first_name
string last_name
int32 age
int32 score
string phone_number
int32 id_number

src/msg 파일에 my_msg.msg 파일을 생성하고 위와 같이 입력한다.

🦋2.Custom Message 설정 확인

my_msg가 잘 만들어 졌는지 확인하기 위해서는 터미널 창에서 아래의 명령어로 확인 할 수 있다.
⬛Terminal

cm
rosmsg show my_msg

터미널 확인

위 사진과 같이 잘 생성된 것을 확인 할 수 있었다. 해당 msg에 값을 담아서 보낼때는 아래와 같이 값을 부여 할 수 있다.

msg =my_msg()
msg.first_name = "First name"
msg.age = 23
...
profile
GoGoSing

0개의 댓글

관련 채용 정보