Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

What are h,v,d coordinates in a PointCloud for a LiDAR?

I found this struct in a code for a LiDAR:

#define PCL_ADD_UNION_POINT4D_HVD       \
  union EIGEN_ALIGN16 {                 \
    float data[4];                      \
    struct {                            \
      float h;                          \
      float v;                          \
      float d;                          \
    };                                  \
  };

Which is used in a PointCloud like this:

typedef boost::shared_ptr<PointCloudHVDIR> PointCloudHVDIRPtr;

#define PCL_ADD_POINT4D_HVD \
  PCL_ADD_UNION_POINT4D_HVD \
  PCL_ADD_EIGEN_MAPS_POINT4D

  /** Polar coordinate, including intensity and ring number. */
  struct PointHVDIR
  {
    PCL_ADD_POINT4D_HVD;                    // quad-word HVD
    float    intensity;                 ///< laser intensity reading
    uint16_t ring;                      ///< laser ring number
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW     // ensure proper alignment
  } EIGEN_ALIGN16;

There is a PointXYZIR also, which I can understand as being cartesian coordinates + ring and intensity. What are ring and intensity? And what is h,v,d?