티스토리 뷰

1. 토픽 리스트 확인

터미널#1에서 roscore를 실행하고, 터미널#2에서 rosrun turtlesim turtlesim_node 를 실행하는 중에 터미널#3에서 아래 명령어를 실행한다.

우선 어떤 토픽을 구독할 것인지, 즉 어떤 토픽에 어떤 메시지를 발행하고 있는지 알아야 한다.

rostopic list

 

rostopic type /turtle1/pose

/turtle1/pose 토픽의 타입을 확인하는 명령어.

 

rosmsg show turtlesim/Pose

turtlesim/Pose 라는 타입의 메시지의 구성을 확인.

 

rostopic echo /turtle1/pose

 

2. 코드 작성

~/xycar_ws/src/my_pkg1/src/ 위치에 sub.py파일을 아래와 같이 작성한다.

#!/usr/bin/env python

import rospy
from turtlesim.msg import Pose

def callback(data):
	s = "Location: %.2f, %.2f" % (data.x, data.y)
	rospy.loginfo(rospy.get_caller_id() + s)

rospy.init_node("my_listener", anonymous=True)
rospy.Subscriber("/turtle1/pose", Pose, callback)
rospy.spin()

 

3. 실행 권한 부여

chmod +x sub.py

 

4. 실행

터미널#3에서 publisher노드를 실행한 후

rosrun my_pkg1 pub.py

참고 (publisher노드) : 2020/12/22 - [ROS] - Ubuntu16.04 ROS Kinetic - publisher python파일 작성 및 실행

 

터미널#4에서 subscriber노드를 실행한다.

rosrun my_pkg1 sub.py

 

5. 확인

터미널#5에서 노드가 잘 동작하고 있는지 확인한다.

rqt_graph

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함