[ROS2] EP3. Package에서 Topic 발행하기

김희상·2024년 7월 8일

ROS2

목록 보기
3/17
post-thumbnail

  • OS : Ubuntu 22.04
  • ROS 2 Humble
  • Gazebo 11

1. 토픽 발행

1. my_pubisher.py 추가

import rclpy as rp
from rclpy.node import Node
from geometry_msgs.msg import Twist

class TurtlesimPublisher(Node):

	def __init__(self):
		super().__init__('turtlesim_publisher')
		self.publisher = self.create_publisher(Twist, '/turtle1/cmd/vel', 10)
		timer.period = 0.5
		self.timer = self.create_timer(timer_period, self.timer_callback)

	def timer_callback(self):
		msg = Twist()
		msg.linear.x = 2.0
		msg.angular.z = 2.0
		self.publisher.publish(msg)

def main(args=None):
	rp.init(args=args)

	turtlesim_publisher = TurtlesimPublisher()
	rp.spin(turtlesim_publisher)

	turtlesim_publisher.destroy_node()
	rp.shutdown()

if __name__ == '__main__':
	main()
    
  • Twist 데이터 타입(turtle1/cmd/vel 토픽)을 500ms마다 한 번씩 가져와서 linear.x와 angular.z를 2.0으로 바꾸고 msg를 퍼블리셔

2. setup.py에 추가

  • comma(,) 주의

3. 빌드

4. 실행

  • turtlesim, subscriber, publisher 모두 실행

5. rqt_graph 확인

  • turtlesim_publisher 노드가 cmd_vel 토픽 발행
  • turtlesim이 구독
  • pose 토픽 발행
  • turtlesim_subscriber가 구독

코드 추가 → 빌드 → 환경 읽기


profile
3D 모델러의 개발 도전기

0개의 댓글