#include <CscRealEntity3dLidarValues.h>
|
| static vector< float > | loadVerticalAnglesRadFromCsvFile (const string &filePath, const string &elevationHeaderName="elevation") |
| | Load vertical beam angles (in radians) from a CSV calibration file. More...
|
| |
◆ CscRealEntity3dLidarValues()
| conscience_core::lidar::CscRealEntity3dLidarValues::CscRealEntity3dLidarValues |
( |
const vector< float > & |
verticalAnglesRad | ) |
|
|
explicit |
◆ clear()
| void conscience_core::lidar::CscRealEntity3dLidarValues::clear |
( |
| ) |
|
◆ get2DSliceAtHeight()
| map< double, double > conscience_core::lidar::CscRealEntity3dLidarValues::get2DSliceAtHeight |
( |
double |
targetY = 15, |
|
|
double |
tolerance = 20 |
|
) |
| const |
◆ getLatest()
| bool conscience_core::lidar::CscRealEntity3dLidarValues::getLatest |
( |
QueuedRangeImage & |
out | ) |
|
◆ getVerticalAnglesRad()
| const vector< float > & conscience_core::lidar::CscRealEntity3dLidarValues::getVerticalAnglesRad |
( |
| ) |
const |
◆ integrateFrame()
| void conscience_core::lidar::CscRealEntity3dLidarValues::integrateFrame |
( |
uint16_t |
rows, |
|
|
uint16_t |
cols, |
|
|
uint32_t |
frameId, |
|
|
bool |
isKeyFrame, |
|
|
const uint8_t * |
data, |
|
|
size_t |
count, |
|
|
const LidarImuData & |
imu, |
|
|
LidarExtrinsics |
lidarExtrinsics |
|
) |
| |
Integrates a LiDAR frame (keyframe or diff) into the current range image.
- Parameters
-
| rows | Number of vertical rings (e.g. 128) |
| cols | Number of horizontal bins (e.g. 1800) |
| frameId | Frame identifier |
| isKeyFrame | True = full frame, False = sparse diff update |
| data | Pointer to encoded binary payload |
| count | Number of encoded pixels |
| imu | Associated IMU data |
Payload format (per item): Keyframe: [3B rc][2B range] Diff: [3B rc][2B range][2B dr]
rc packing (24 bits, little-endian): row = bits [0..6], col = bits [7..17]
range_q4mm: uint16 → meters = value * 0.004
Behavior:
- keyframe → reset + rebuild
- diff → update only provided pixels
◆ loadVerticalAnglesRadFromCsvFile()
| vector< float > conscience_core::lidar::CscRealEntity3dLidarValues::loadVerticalAnglesRadFromCsvFile |
( |
const string & |
filePath, |
|
|
const string & |
elevationHeaderName = "elevation" |
|
) |
| |
|
static |
Load vertical beam angles (in radians) from a CSV calibration file.
This function parses a CSV file containing LiDAR calibration data and extracts the elevation (vertical) angle for each channel (ring). The column containing the elevation values is identified dynamically using the provided header name.
Expected CSV format:
- First line: header row (e.g. "Channel,Elevation,Azimuth")
- Subsequent lines: one entry per laser channel
Behavior:
- Finds the column index matching
elevationHeaderName (case-insensitive)
- Reads each row and extracts the elevation value (in degrees)
- Converts each value to radians
- Preserves the order of rows (must match ring indices from the sensor)
- Parameters
-
| filePath | Path to the CSV calibration file |
| elevationHeaderName | Name (case insensitive) of the column containing elevation values (default: "elevation") |
- Returns
- std::vector<float> Vector of elevation angles in radians, indexed by ring
- Exceptions
-
| std::runtime_error | if the file cannot be read or the column is not found |
The documentation for this class was generated from the following files: