def METHOD_NAME(self, data: ROS_PointCloud2):
    """
    Predict the panoptic segmentation map from the input point cloud and publish the results.
    :param data: PointCloud data message
    :type data: sensor_msgs.msg.PointCloud
    """
    # Convert sensor_msgs.msg.Image to OpenDR Image
    pointcloud = self._bridge.from_ros_point_cloud2(data)
    try:
        # Get a list of two OpenDR heatmaps: [instance map, semantic map, depth map] if projected_output is True,
        # or a list of numpy arrays: [instance labels, semantic labels] otherwise.
        prediction = self._learner.infer(pointcloud)
        # The output topics are only published if there is at least one subscriber
        if self._visualization_pointcloud_publisher is not None and \
                self._visualization_pointcloud_publisher.get_num_connections() > 0:
            # Get the RGB visualization of the panoptic map as pointcloud in OpenDR format
            pointcloud_visualization = EfficientLpsLearner.visualize(
                pointcloud, prediction, return_pointcloud=True, return_pointcloud_type="panoptic")
            # Convert OpenDR Image to sensor_msgs.msg.PointCloud2
            ros_pointcloud2_msg = self._bridge.to_ros_point_cloud2(pointcloud_visualization, channels='rgb')
            # Publish the visualization
            self._visualization_pointcloud_publisher.publish(ros_pointcloud2_msg)
    except Exception as e:
        rospy.logwarn(f'Failed to generate prediction: {e}')