Skip to content

ROS 2 Velodyne Transform Node does not publish /velodyne_points at 10 Hz (Jazzy)Β #557

@ming0071

Description

@ming0071

πŸ›  System Information

  • OS: Ubuntu 24.04
  • ROS 2 Version: Jazzy
  • Installation Method: Cloned from ros2 branch

πŸ“Œ Issue Summary
When running velodyne_pointcloud::Transform on ROS 2 Jazzy, the node correctly subscribes to /velodyne_packets and receives data at 10 Hz. However, the output topic /velodyne_points is either published at a very low frequency (sometimes < 1 Hz) or not published at all β€” despite seeing the point cloud appear in RViz.

In contrast, the ROS 1 version (using the same lidar and parameters) consistently publishes /velodyne_points at 10 Hz.

πŸ” Observations

Adjusting the min_range parameter in ROS 2 has a significant effect:

Low values (e.g., min_range: 0.1) β†’ /velodyne_pointsrarely or never publishes.

Higher values (e.g., min_range: 2.0 or above) β†’ publishing becomes stable.

It appears the node will only publish when valid points within the given min_range exist, suggesting there is some kind of filtering or accumulation threshold internally.

The cut_angle parameter was commented out and not affecting the issue.

πŸ“‚ Configuration

VLP16-velodyne_driver_node-params.yaml:

velodyne_driver_node:
    ros__parameters:
        device_ip: 192.168.2.81
        gps_time: false
        # cut_angle: 0.0
        time_offset: 0.0
        enabled: true
        read_once: false
        read_fast: false
        repeat_delay: 0.0
        frame_id: velodyne
        model: VLP16
        rpm: 600.0
        port: 2368
        timestamp_first_packet: false

VLP16-velodyne_transform_node-params.yaml:

velodyne_transform_node:
    ros__parameters:
        calibration: VLP16db.yaml
        model: VLP16
        min_range: 2.0
        max_range: 130.0
        view_direction: 0.0
        fixed_frame: "base_link"
        target_frame: "velodyne"
        organize_cloud: false

Image
Image
❓ Questions

Has the publish behavior of velodyne_pointcloud::Transform changed in ROS 2 compared to ROS 1?

Is this expected behavior β€” that no points within min_range will cause the entire scan to be dropped?

Is there a threshold inside the cloud container logic that causes it to skip publishing when too few or no valid points remain after filtering?

Any insights would be appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions