Conscience Core
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
conscience_core::lidar::CscLidarEngine Class Reference

#include <CscLidarEngine.h>

Inheritance diagram for conscience_core::lidar::CscLidarEngine:
conscience_core::lidar::CscLidar2DEngineSimulated conscience_core::lidar::CscLidar3DEngineSimulated conscience_core::lidar::CscLidarEngineRplidar

Public Member Functions

 CscLidarEngine ()
 
virtual void startEngine ()
 
virtual void stopEngine ()
 
const LidarValuesgetCurrentValues ()
 
void integrate2DValuesAtTime (const map< double, double > &newValues, unsigned long long timestamp, optional< OdometryData > odometry={})
 
void integrate3DRangeImageAtTime (uint16_t rows, uint16_t cols, uint32_t frameId, bool isKeyFrame, const uint8_t *data, uint32_t itemCount, const LidarImuData &imu, const optional< OdometryData > &odometry, LidarExtrinsics lidarExtrinsics, unsigned long long timestamp)
 
void integrate3DPointCloudAtTime (const CscPointCloud3d *pointCloud, unsigned long long timestamp, optional< OdometryData > odometry={})
 
virtual ~CscLidarEngine ()
 
void activateLidarMode (CscLidarMode newLidarMode)
 
void addLidarMode (CscLidarMode newLidarMode)
 
void removeLidarMode (CscLidarMode lidarModeToRemove)
 
bool isLidarModeRunning (CscLidarMode lidarModeSearched)
 
bool isLidarModeActive (CscLidarMode lidarModeSearched)
 
bool isLidarEngineActivated ()
 
void stopLidarEngine ()
 
unsigned long long getLastLidarValuesTime () const
 
unsigned long long getLidarValuesTimeToRetrieve () const
 
unsigned long long getLidarValuesTimeBetweenUpdate () const
 
void setOnNewValuesListener (const optional< function< void(const LidarValuesSnapshot &)>> &onNewValues={})
 
optional< function< void()> > getOnActivatedListener () const
 
void setOnActivatedListener (const optional< function< void()>> &onActivated={})
 

Static Public Member Functions

static bool isSlamAutoEnabled ()
 
static vector< CscPoint3d * > toWorldPoints (const map< double, double > &lidarValues, const CscQuaternion &entityOrientation, const CscPoint3d &entityPosition)
 

Protected Member Functions

void get2dValues (map< double, double > **lidarPoints, optional< OdometryData > **odometry, unsigned long long &timestamp)
 

Protected Attributes

mutex lidarValuesMutex
 
LidarValues values
 
optional< function< void(const LidarValuesSnapshot &)> > onNewValues = {}
 
optional< function< void()> > onActivated = {}
 

Constructor & Destructor Documentation

◆ CscLidarEngine()

conscience_core::lidar::CscLidarEngine::CscLidarEngine ( )

◆ ~CscLidarEngine()

conscience_core::lidar::CscLidarEngine::~CscLidarEngine ( )
virtual

Member Function Documentation

◆ activateLidarMode()

void conscience_core::lidar::CscLidarEngine::activateLidarMode ( CscLidarMode  newLidarMode)

◆ addLidarMode()

void conscience_core::lidar::CscLidarEngine::addLidarMode ( CscLidarMode  newLidarMode)

◆ get2dValues()

void conscience_core::lidar::CscLidarEngine::get2dValues ( map< double, double > **  lidarPoints,
optional< OdometryData > **  odometry,
unsigned long long &  timestamp 
)
protected

◆ getCurrentValues()

const LidarValues & conscience_core::lidar::CscLidarEngine::getCurrentValues ( )
Warning
not thread safe, direct access to lidar values - which can be modified during access - see getCurrentValuesCopy
See also
getCurrentValuesCopy()

◆ getLastLidarValuesTime()

unsigned long long conscience_core::lidar::CscLidarEngine::getLastLidarValuesTime ( ) const

◆ getLidarValuesTimeBetweenUpdate()

unsigned long long conscience_core::lidar::CscLidarEngine::getLidarValuesTimeBetweenUpdate ( ) const

◆ getLidarValuesTimeToRetrieve()

unsigned long long conscience_core::lidar::CscLidarEngine::getLidarValuesTimeToRetrieve ( ) const

◆ getOnActivatedListener()

optional< function< void()> > conscience_core::lidar::CscLidarEngine::getOnActivatedListener ( ) const

◆ integrate2DValuesAtTime()

void conscience_core::lidar::CscLidarEngine::integrate2DValuesAtTime ( const map< double, double > &  newValues,
unsigned long long  timestamp,
optional< OdometryData odometry = {} 
)
Parameters
newValuessee LidarValues::lidarValues map for units

◆ integrate3DPointCloudAtTime()

void conscience_core::lidar::CscLidarEngine::integrate3DPointCloudAtTime ( const CscPointCloud3d pointCloud,
unsigned long long  timestamp,
optional< OdometryData odometry = {} 
)
Parameters
pointCloudrelative to entity center

◆ integrate3DRangeImageAtTime()

void conscience_core::lidar::CscLidarEngine::integrate3DRangeImageAtTime ( uint16_t  rows,
uint16_t  cols,
uint32_t  frameId,
bool  isKeyFrame,
const uint8_t *  data,
uint32_t  itemCount,
const LidarImuData imu,
const optional< OdometryData > &  odometry,
LidarExtrinsics  lidarExtrinsics,
unsigned long long  timestamp 
)
Parameters
dataPointer to encoded binary payload - please see CscRealEntity3dLidarValues::integrateFrame()

◆ isLidarEngineActivated()

bool conscience_core::lidar::CscLidarEngine::isLidarEngineActivated ( )

◆ isLidarModeActive()

bool conscience_core::lidar::CscLidarEngine::isLidarModeActive ( CscLidarMode  lidarModeSearched)

◆ isLidarModeRunning()

bool conscience_core::lidar::CscLidarEngine::isLidarModeRunning ( CscLidarMode  lidarModeSearched)

◆ isSlamAutoEnabled()

bool conscience_core::lidar::CscLidarEngine::isSlamAutoEnabled ( )
static

◆ removeLidarMode()

void conscience_core::lidar::CscLidarEngine::removeLidarMode ( CscLidarMode  lidarModeToRemove)

◆ setOnActivatedListener()

void conscience_core::lidar::CscLidarEngine::setOnActivatedListener ( const optional< function< void()>> &  onActivated = {})

◆ setOnNewValuesListener()

void conscience_core::lidar::CscLidarEngine::setOnNewValuesListener ( const optional< function< void(const LidarValuesSnapshot &)>> &  onNewValues = {})

◆ startEngine()

void conscience_core::lidar::CscLidarEngine::startEngine ( )
virtual

◆ stopEngine()

void conscience_core::lidar::CscLidarEngine::stopEngine ( )
virtual

◆ stopLidarEngine()

void conscience_core::lidar::CscLidarEngine::stopLidarEngine ( )

◆ toWorldPoints()

vector< CscPoint3d * > conscience_core::lidar::CscLidarEngine::toWorldPoints ( const map< double, double > &  lidarValues,
const CscQuaternion entityOrientation,
const CscPoint3d entityPosition 
)
static

Converts given lidar scan values to world coordinates

Parameters
lidarValueslidar values to be converted
entityOrientationentity orientation from core (without correction)
entityPositionentity position from core
Returns
world coordinates

Member Data Documentation

◆ lidarValuesMutex

mutex conscience_core::lidar::CscLidarEngine::lidarValuesMutex
protected

◆ onActivated

optional<function<void()> > conscience_core::lidar::CscLidarEngine::onActivated = {}
protected

◆ onNewValues

optional<function<void(const LidarValuesSnapshot &)> > conscience_core::lidar::CscLidarEngine::onNewValues = {}
protected

◆ values

LidarValues conscience_core::lidar::CscLidarEngine::values
protected

The documentation for this class was generated from the following files: