- OS : Ubuntu 22.04
- ROS 2 Humble
- Gazebo 11
1. 내가 정의한 메세지 사용하기
1. 코드 수정
import rclpy as rp
from rclpy.node import Node
from my_first_package_msgs.msg import CmdAndPoseVel
from turtlesim.msg import Pose
class CmdAndPose(Node):
def __init__(self):
super().__init__('turtle_cmd_pose')
self.sub_pose = self.create_subscription(
Pose,
'/turtle1/pose',
self.callback_pose,
10
)
self.cmd_pose = CmdAndPoseVel()
def callback_pose(self, msg):
self.cmd_pose.pose_x = msg.x
self.cmd_pose.pose_y = msg.y
self.cmd_pose.linear_vel = msg.linear_velocity
self.cmd_pose.angular_vel = msg.angular_velocity
print(self.cmd_pose)
def main(args=None):
rp.init(args=args)
turtle_cmd_pose_node = CmdAndPose()
rp.spin(turtle_cmd_pose_node)
turtle_cmd_pose_node.destroy_node()
rp.shutdown()
if __name__ == '__main__':
main()
- turtle_cmd_and_pose.py 수정
2. 빌드, 환경 부르기

- packages-select로 하나의 패키지만 지정해서 빌드
3. 실행

- 내가 만든 Definition에 구조에 맞게 프린트