#"LaserDataModifier has been started"日志信息正常显示,但是Published modified LaserScan message'
#日志信息不显示,并且不能使用ros2 topic echo /modified_scan查看修改后的数据,已经确认各节点
#以及各个话题能够list出来,使用info命令也能显示正确的订阅者和发布者数量,请问这是什么问题呢?
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import LaserScan

class LaserScanModifier(Node):
    def __init__(self):
        super().__init__('LaserDataModifier')
        self.publisher = self.create_publisher(LaserScan, '/modified_scan', 10)
        self.subscription = self.create_subscription(
            LaserScan,
            '/scan',
            self.listener_callback,
            10)
        self.get_logger().info("LaserDataModifier has been started")
    
    def listener_callback(self, msg):
        modified_msg = LaserScan()
        # 修改ranges数组中的值
        new_ranges = [i * 2 for i in msg.ranges]
        
        # 创建修改后的LaserScan消息
        modified_msg.header = msg.header
        modified_msg.angle_min = msg.angle_min
        modified_msg.angle_max = msg.angle_max
        modified_msg.angle_increment = msg.angle_increment
        modified_msg.time_increment = msg.time_increment
        modified_msg.scan_time = msg.scan_time
        modified_msg.range_min = msg.range_min
        modified_msg.range_max = msg.range_max
        modified_msg.ranges = new_ranges
        modified_msg.intensities = msg.intensities
        
        #发布修改后的LaserScan消息
        self.publisher.publish(modified_msg)
        self.get_logger().info('Published modified LaserScan message')
  
def main(args=None):
    rclpy.init(args=args)
    node = LaserScanModifier()
    rclpy.spin(node)
    node.destroy_node()
    rclpy.shutdown()
复制