Go to the documentation of this file.
6 #ifndef CscRealEntity3dLidarValues_H
7 #define CscRealEntity3dLidarValues_H
12 #include <shared_mutex>
13 using std::shared_mutex;
51 const float ny =
c * ry -
s * rz;
52 const float nz =
s * ry +
c * rz;
60 const float nx =
c * rx +
s * ry;
61 const float ny = -
s * rx +
c * ry;
67 const float c = std::cos(
yawRad);
68 const float s = std::sin(
yawRad);
69 const float nx =
c * rx -
s * rz;
70 const float nz =
s * rx +
c * rz;
120 double &avgY,
const vector<float> &verticalAnglesRad);
162 map<double, double>
get2DSliceAtHeight(
double targetY = 15,
double tolerance = 20)
const;
167 mutable shared_mutex mutex_;
169 vector<float> verticalAnglesRad;
173 uint32_t currentFrameId_ = 0u;
174 uint16_t currentRows_ = 0u;
175 uint16_t currentCols_ = 0u;
177 static size_t index_(uint16_t row, uint16_t col, uint16_t
cols);
179 void initCurrent_(uint16_t
rows, uint16_t
cols);
181 unique_ptr<CscLogger> logger = CscLogger::getForCategory(
"CscRealEntity3dLidarValues");
int rows
Definition: PathFinding3D25D.cpp:54
Definition: CscEntityReflexion.h:42
CscRealEntity3dLidarValues(const vector< float > &verticalAnglesRad)
Definition: CscRealEntity3dLidarValues.cpp:164
const vector< float > & getVerticalAnglesRad() const
Definition: CscRealEntity3dLidarValues.cpp:168
LidarExtrinsics lidarExtrinsics
Definition: CscRealEntity3dLidarValues.h:115
int count
Definition: PathFinding3D25D.cpp:25
double imu_accel_z
Definition: CscRealEntity3dLidarValues.h:21
Definition: CscRealEntity3dLidarValues.h:17
double imu_accel_x
Definition: CscRealEntity3dLidarValues.h:19
float yawRad
Definition: CscRealEntity3dLidarValues.h:33
double minY
Definition: PathFinding3D25D.cpp:27
float tx
Definition: CscRealEntity3dLidarValues.h:29
double imu_accel_y
Definition: CscRealEntity3dLidarValues.h:20
uint16_t rows
Definition: CscRealEntity3dLidarValues.h:110
bool getLatest(QueuedRangeImage &out)
Definition: CscRealEntity3dLidarValues.cpp:309
double timestamp
Definition: CscRealEntity3dLidarValues.h:18
int cols
Definition: PathFinding3D25D.cpp:53
Definition: CscRealEntity3dLidarValues.h:81
bool enabled
Definition: CscRealEntity3dLidarValues.h:37
double imu_ang_vel_z
Definition: CscRealEntity3dLidarValues.h:24
double timestamp
Definition: CscRealEntity3dLidarValues.h:112
double maxY
Definition: PathFinding3D25D.cpp:28
float pitchRad
Definition: CscRealEntity3dLidarValues.h:34
void applyLidarToRobotTransform(float &x, float &y, float &z) const
Definition: CscRealEntity3dLidarValues.h:39
ptr< vector< uint16_t > > rangesQ4mm
Definition: CscRealEntity3dLidarValues.h:114
Definition: CscRealEntity3dLidarValues.h:28
uint16_t cols
Definition: CscRealEntity3dLidarValues.h:111
float ty
Definition: CscRealEntity3dLidarValues.h:30
void getAsPointCloud(vector< axiomes::CscPoint3d > &pointCloud, double &minY, double &maxY, double &avgY, const vector< float > &verticalAnglesRad)
Definition: CscRealEntity3dLidarValues.cpp:84
bool flag
Definition: CscRealEntity3dLidarValues.h:25
void 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.
Definition: CscRealEntity3dLidarValues.cpp:199
uint32_t frameId
Definition: CscRealEntity3dLidarValues.h:109
static vector< float > loadVerticalAnglesRadFromCsvFile(const string &filePath, const string &elevationHeaderName="elevation")
Load vertical beam angles (in radians) from a CSV calibration file.
Definition: CscRealEntity3dLidarValues.cpp:13
double c
Definition: HybridAStar.cpp:84
double imu_ang_vel_x
Definition: CscRealEntity3dLidarValues.h:22
double s
Definition: HybridAStar.cpp:85
double f
Definition: HybridAStar.cpp:190
map< double, double > get2DSliceAtHeight(double targetY=15, double tolerance=20) const
Definition: CscRealEntity3dLidarValues.cpp:241
float tz
Definition: CscRealEntity3dLidarValues.h:31
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
double imu_ang_vel_y
Definition: CscRealEntity3dLidarValues.h:23
Definition: CscRealEntity3dLidarValues.h:108
float rollRad
Definition: CscRealEntity3dLidarValues.h:35
LidarImuData imu
Definition: CscRealEntity3dLidarValues.h:113
void clear()
Definition: CscRealEntity3dLidarValues.cpp:172