Function ouster::sdk::core::make_xyz_lut(size_t, size_t, double, const mat4d&, const mat4d&, const std::vector<double>&, const std::vector<double>&)

Function Documentation

XYZLut ouster::sdk::core::make_xyz_lut(size_t w, size_t h, double range_unit, const mat4d &beam_to_lidar_transform, const mat4d &transform, const std::vector<double> &azimuth_angles_deg, const std::vector<double> &altitude_angles_deg)

Generate a set of lookup tables useful for computing Cartesian coordinates from ranges.

The lookup tables are:

  • direction: a matrix of unit vectors pointing radially outwards.

  • offset: a matrix of offsets dependent on beam origin distance from lidar origin.

Each table is an n x 3 array of doubles stored in column-major order where each row corresponds to the nth point in a lidar scan, with 0 <= n < h*w.

Projections to XYZ made with this XYZLut will be in the coordinate frame defined by transform*beam_to_lidar_transform.

Parameters:
  • w[in] – number of columns in the lidar scan. e.g. 512, 1024, or 2048.

  • h[in] – number of rows in the lidar scan.

  • range_unit[in] – the unit, in meters, of the range, e.g. ouster::sdk::core::range_unit.

  • beam_to_lidar_transform[in] – transform between beams and lidar origin. Translation portion is in millimeters.

  • transform[in] – additional transformation to apply to resulting points.

  • azimuth_angles_deg[in] – azimuth offsets in degrees for each of h beams.

  • altitude_angles_deg[in] – altitude in degrees for each of h beams.

Returns:

xyz direction and offset vectors for each point in the lidar scan.