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

asked 2020-02-02 17:27:31 -0500

Guerlando gravatar image

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?

edit retag flag offensive close merge delete

Comments

Can't speak to HVD off hand (though, I would think it's the horizontal angle, vertical angle, and distance of measurement. Look up amizuth, elevation, and range.)

The intensity of the intensity of the laser reading at that point. Certain materials, or relative angles, and ranges can affect the intensity information. It can be valuable for classification or removal of outliers, and more.

Ring is the ring of the measurement. 3D spinning lidars are made up of several rings of lasers. This lets you know which of those rings it came from.

stevemacenski gravatar image stevemacenski  ( 2020-02-02 18:27:42 -0500 )edit