Exwayz point cloud fusion allows to fuse the points from 2 to 8 LiDAR feeds into a single point cloud, using calibrations to have them all in the same reference frame.

Default YAML

Below is the example pc_fusion.yaml configuration file with all parameters open to the user. The comments are the main documentation of each parameters.

pc_fusion:
    # [optional, default=false] (rtmaps only) Use the software timestamps 
    # instead of the hardware timestamps
    sw_timestamps: false

    # [required] Input point cloud settings
    inputs:
        # [required] Topic name
        - topic: <topic-name-0>
          # [optional, default=true] (rtm only) if true and this input is not 
          # present, the component will not output a point cloud.
          required: true
        # [optional] Calibration applied to the input topic
          calib:
              # [optional] Path to the calibration file
              path: <path-to-calib-0.txt>

        - topic: <topic-name-1>
          calib:
              path: <path-to-calib-1.txt>

    # [optional] (ros only) ROS parameters
    ros:
        # [optional, default=20.0(Hz)] Expected sensor rate. Used for tuning 
        # synchronization parameters
        sensor_rate: 20.0

        # [optional, default=/exwayz/pc_fusion] Output namespace, prepends all 
        # outputs.
        namespace: /exwayz/pc_fusion
        # [optional] Output PointCloud2 settings
        output_pointcloud2:
            # [optional, default=/pointcloud2] Output topic
            topic: /pointcloud2
            # [optional, default=""] Output frame id. If empty, the frame is of 
            # the first input PointCloud2 is used
            frame_id: pc_fusion

    # [optional] (rtmaps only) RTMaps parameters
    rtmaps:
        # [optional, default=5000(Ko)] Point cloud output buffer size
        pc_buffer_size: 5000
        # [optional, default=25(ms)] Synchronization tolerance between the 
        # multiple inputs
        sync_tolerance_ms: 25
        # [optional, default=100(ms)] Timeout on inputs callback. Component will
        # output a point cloud only if, during the timeout duration:
        # * it received at least one input point cloud.
        # * and all inputs flagged as "required: true" have been received.
        # Otherwise the component only outputs "status_o".
        timeout_ms: 100

Explanation

sw_timestamps (rtmaps only)

inputs

API-specific I/O parameters

ros

rtmaps