#include <CscSlamEngine.h>
Public Member Functions | |
| CscSlam3dMap () | |
| void | appendLocalFrame (const std::vector< CscPoint3d > &localPointsCm, const CPose3D &pose, size_t decimationStep, double minPointDistanceMeters, double maxPointDistanceMeters) |
| vector< CscPoint3d * > | pointsCopyPtrs (const CscPoint3d &entityStartPosition, const CscQuaternion &entityStartOrientation) const |
| vector< CscSlam3dMapVoxelKey > | getAllVoxelsCopy () const |
| size_t | probabilisticVoxelGridSize () const |
| CscSlam3dMapVoxelGrid | buildVisibleVoxelGridFromProbabilisticState () const |
| void | clear () |
| bool | isEmpty () const |
| uint64_t | add3dMapVoxelChangesListener (function< void(const CscSlam3dMapVoxelChanges &changes)> callback, CscSlam3dMapVoxelChanges *changes=nullptr) |
| void | remove3dMapVoxelChangesListener (uint64_t listenerId) |
| void | withProbabilisticVoxelGridReadLock (const std::function< void(const CscSlam3dProbabilisticVoxelGrid &grid)> &callback) const |
| size_t | visibleProbabilisticVoxelGridSize () const |
| void | purgeFarNeighbors (int minNeighborCount=2, int minHits=3) |
| Remove isolated voxels that have too few occupied neighbors. A voxel with too few neighbors can still be kept if it has enough hits. More... | |
This structure holds the live SLAM map with the most relevant data format for high quality real time SLAM, and other structures acting as cache for more user-friendly representations such as downsmapled display voxels or point cloud.
Details: probabilisticVoxelGrid is the real time representation, and voxelGrid is the downsampled / display oriented version
| conscience_core::lidar::CscSlam3dMap::CscSlam3dMap | ( | ) |
Builds optimized 3D SLAM map
| uint64_t conscience_core::lidar::CscSlam3dMap::add3dMapVoxelChangesListener | ( | function< void(const CscSlam3dMapVoxelChanges &changes)> | callback, |
| CscSlam3dMapVoxelChanges * | changes = nullptr |
||
| ) |
| void conscience_core::lidar::CscSlam3dMap::appendLocalFrame | ( | const std::vector< CscPoint3d > & | localPointsCm, |
| const CPose3D & | pose, | ||
| size_t | decimationStep, | ||
| double | minPointDistanceMeters, | ||
| double | maxPointDistanceMeters | ||
| ) |
| CscSlam3dMapVoxelGrid conscience_core::lidar::CscSlam3dMap::buildVisibleVoxelGridFromProbabilisticState | ( | ) | const |
| void conscience_core::lidar::CscSlam3dMap::clear | ( | ) |
|
inline |
| bool conscience_core::lidar::CscSlam3dMap::isEmpty | ( | ) | const |
| std::vector< CscPoint3d * > conscience_core::lidar::CscSlam3dMap::pointsCopyPtrs | ( | const CscPoint3d & | entityStartPosition, |
| const CscQuaternion & | entityStartOrientation | ||
| ) | const |
| entityStartPosition | initial position when cartography started |
| entityStartOrientation | initial orientation when cartography started |
| size_t conscience_core::lidar::CscSlam3dMap::probabilisticVoxelGridSize | ( | ) | const |
| void conscience_core::lidar::CscSlam3dMap::purgeFarNeighbors | ( | int | minNeighborCount = 2, |
| int | minHits = 3 |
||
| ) |
Remove isolated voxels that have too few occupied neighbors. A voxel with too few neighbors can still be kept if it has enough hits.
| void conscience_core::lidar::CscSlam3dMap::remove3dMapVoxelChangesListener | ( | uint64_t | listenerId | ) |
| size_t conscience_core::lidar::CscSlam3dMap::visibleProbabilisticVoxelGridSize | ( | ) | const |
| void conscience_core::lidar::CscSlam3dMap::withProbabilisticVoxelGridReadLock | ( | const std::function< void(const CscSlam3dProbabilisticVoxelGrid &grid)> & | callback | ) | const |
Gives read-only access to the probabilistic voxel grid while holding updateMutex.
Warning: