Isaac-ROS Bridge - Lidar Point Cloud Data

Hi, I have successfully set up the isaac-ros bridge and have been experimenting with it by passing different data-types into and out of isaac via the bridge.

I am currently trying to pass Lidar Point-Cloud data out of isaac into ros but am struggling with the conversion from PointCloudProto to PointCloud2 data types.

I am reading point cloud data from isaac as follows:

header rx connection:

ISAAC_PROTO_RX(PointCloudProto, cloud) // rx hook connected to RangeToPointCloud

reading data:

const auto cloud_reader = rx_cloud().getProto();
  const auto positions = cloud_reader.getPositions();
  const auto colors = cloud_reader.getColors();
  const auto intensities = cloud_reader.getIntensities();

My initial thoughts where to perform mathematical calculations on these data in order to create the PointCloud2 message, however, upon inspection of active lidar data (simulated using carter_sim), the data doesn’t even follow NVidia’s own requirements:

# A message about a cloud of 3D points.
struct PointCloudProto {
  # The positions of the poinst
  positions @0: List(Vector3fProto);
  # The colors of the points. This is optional, but if present <b>must have the same length as `points`</b>.
  colors @1: List(Vector3fProto);
  # The intensity of points used for example by LIDAR sensors. This is optional, but if present must
  # <b>have the same length as `points`</b>.
  intensities @2: List(Float32);

The Colors and Intensities fields are REQUIRED to have the same length as Positions, however, upon printing the size of each list respectively I find:

Data Recieved:
	Len(Positions):		4800
	Len(Colors):		600
	Len(Intensities):	8

My questions are as follows: Is this the expected format for this data? (I’m not creating this data, it’s coming from the lidar/tcp subscriber in carter_sim into RangeToPointCloud into my node)

Is there any particular reason why Isaac doesn’t follow it’s own data requirements?

Does anyone have any ideas for how to convert this data correctly?:
I’m trying to convert PointCloudProto into sensor_msgs::PointCloud2 but am not certain this is the most logical way to convert.
If anyone has any ideas for converting Isaac Lidar data (not necessarily point cloud data) into a ROS-compatible message format it would be really helpful.