- OS : Ubuntu 22.04
- ROS 2 Humble
- Gazebo 11
1. 토픽 구독 - 토픽 발행
1. 새로운 node 생성
- my_first_package에서 생성
- 파일 이름은 turtle_cmd_and_pose.py

3. 코드 생성
import rclpy as rp
from rclpy.node import Node
from turtlesim.msg import Pose
class CmdAndPose(Node):
def __init__(self):
super().__init__('turtle_cmd_pose')
self.subscription = self.create_subscription(
Pose,
'/turtle1/pose',
self.callback_pose,
10
)
def callback_pose(self, msg):
print(msg)
def main():
rp.init()
turtlesim_subscriber = CmdAndPose()
rp.spin(turtlesim_subscriber)
turtlesim_subscriber.destroy_node()
rp.shutdown()
if __name__ == '__main__':
main()
- init에 입력 인자 이름을 잡으면 node의 이름이 된다
- 그 노드의 기능으로 create_subscription
- Pose라는 데이터 데피니션 사용하는 turtle1의 pose 구독
- 토픽이 발행되서 들어올 때마다 callback_pose
- callback_pose는 print만
- 위에서 class 만든 것 불러와서 노드 선언 (turtle_cmd_pose_node)