Lidar Processing Node

Maintained by Nova

Overview

This node is responsible for processing our 128-ring Ouster LiDAR data. It listens to points published by a ROS LiDAR driver, crops vehicle points, transforms them into the vehicle reference frame, and publishes to the /lidar topic.


In:

  • /clock Clock
    • This message provides the current time. The node subscribes to this topic and updates its internal clock based on this message.
  • /ouster/points PointCloud2
    • This message holds PointCloud2 data from the ROS2 Driver that translates packets from the LiDAR.

Out:

  • /lidar PointCloud2
    • Transformed, cropped, and unfiltered LiDAR points.

transformToBaseLink(self, pcd: np.array, source_frame: str)

Transforms the input point cloud into the base_link frame of the vehicle. It performs both translation and rotation operations to align the point cloud data with the coordinate system of Hail Bopp.

remove_ground_points(self, pcd: np.array, height: float)

Removes points below a certain height from the input point cloud.

remove_nearby_points(self, pcd: np.array, x: tuple, y: tuple)

Removes points in a rectangle around the sensor from the input point cloud.

remove_points_above(self, pcd: np.array, height: float)

Removes points above a certain height from the input point cloud.