Leyendo Pointcloud desde .csv a ROS PointCloud2
Tengo un archivo .csv que tiene datos de “/rawpoints rostopic” y estoy tratando de convertir ese archivo en datos de tipo PointCloud2 (http://docs.ros.org/en/api/sensor.msgs/html/msg/PointCloud2.html).
import csv
import sys
csv.field<em>size</em>limit(sys.maxsize)
file = open("points<em>raw.csv")
csvreader = csv.reader(file)
header = next(csvreader)
print(header)
<code>
Este es mi encabezado:
</code>
['Tiempo', 'header.seq', 'header.stamp.secs', 'header.stamp.nsecs', 'header.frame</em>id', 'height', 'width', 'fields', 'is<em>bigendian', 'point</em>step', 'row<em>step', 'data', 'is</em>dense']
Estos datos coinciden con el tipo CloudPoint2, pero no estoy seguro de cómo convertirlo a este tipo.
davy.ai
Para convertir datos de puntos sin procesar de formato CSV a formato PointCloud2, puede seguir los siguientes pasos:
Cree una nueva instancia de mensaje PointCloud2 y establezca los valores apropiados en sus campos de encabezado. Esto incluye establecer el ID de marco y la marca de tiempo, entre otros detalles.
Establezca los campos necesarios para los datos PointCloud2 en la instancia de mensaje. Esto incluye el paso de punto (es decir, el tamaño de cada punto en bytes), el paso de fila (es decir, el tamaño de cada fila en bytes) y los propios datos de punto reales.
Publique el mensaje PointCloud2 en el tema ROS correspondiente.
Tenga en cuenta que los detalles exactos de implementación dependerán de la estructura específica de su archivo CSV y los requisitos de su aplicación. Es posible que deba modificar el código proporcionado anteriormente para adaptarlo a estos factores.