- 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에 추가

3. 빌드

4. 실행

- turtlesim, subscriber, publisher 모두 실행
5. rqt_graph 확인

- turtlesim_publisher 노드가 cmd_vel 토픽 발행