【发布时间】:2022-08-15 15:20:46
【问题描述】:
在python虚拟环境下,无法导入rospy。为什么?我需要它来发布和订阅 image_raw。
-
您在询问
rospy并用ros2标记您的问题。rospy专门用于ros1,而ros2则必须使用rclpy。请澄清这是否涉及ros1或ros2。
在python虚拟环境下,无法导入rospy。为什么?我需要它来发布和订阅 image_raw。
rospy 并用ros2 标记您的问题。 rospy 专门用于ros1,而ros2 则必须使用rclpy。请澄清这是否涉及ros1 或ros2。
对于ros2,您必须使用rclpy 而不是rospy。
rospy 与 ros2 不再存在,因此您也无法导入它。 rclpy 是建立在 ros2' rcl 之上的新客户端库。请参阅here 了解更多信息。
一般来说,ros2 有很多演示和教程,请参阅here 以获得简单的订阅者/发布者教程。
这也是一个如何订阅和发布图像主题的快速示例:
#! /usr/bin/env python3
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
class SimplePubSub(Node):
def __init__(self):
super().__init__('simple_pub_sub')
self.publisher = self.create_publisher(Image, '/image_processed', 10)
self.subscription = self.create_subscription(
Image, '/image_raw', self.img_callback, 10)
def img_callback(self, msg):
self.get_logger().info('processing image....')
# msg = ......
self.publisher.publish(msg)
def main(args=None):
rclpy.init(args=args)
simple_pub_sub = SimplePubSub()
rclpy.spin(simple_pub_sub)
simple_pub_sub.destroy_node()
rclpy.shutdown()
【讨论】: