chrono::sensor::ChLidarSensor Class Reference

Description

Lidar class. This corresponds to a scanning lidar.

#include <ChLidarSensor.h>

Inheritance diagram for chrono::sensor::ChLidarSensor:
Collaboration diagram for chrono::sensor::ChLidarSensor:

Public Member Functions

 ChLidarSensor (std::shared_ptr< chrono::ChBody > parent, float updateRate, chrono::ChFrame< double > offsetPose, unsigned int w, unsigned int h, float hfov, float max_vertical_angle, float min_vertical_angle, float max_distance, LidarBeamShape beam_shape=LidarBeamShape::RECTANGULAR, unsigned int sample_radius=1, float vert_divergence_angle=.003f, float hori_divergence_angle=.003f, LidarReturnMode return_mode=LidarReturnMode::MEAN_RETURN, float clip_near=1e-3f)
 Constructor for the base lidar class, defaulting to using a single ray per beam. More...
 
 ~ChLidarSensor ()
 Class destructor.
 
float GetHFOV () const
 Gives the horizontal field of view of the lidar (angle between right-most and left-most ray for a "frame"). More...
 
float GetMaxVertAngle () const
 returns the lidar's horizontal field of view More...
 
float GetMinVertAngle () const
 Returns the lowest vertical angle of any ray in the lidar. More...
 
float GetMaxDistance () const
 Returns the maximum range of the lidar. More...
 
float GetClipNear () const
 Returns the near clipping distance. More...
 
LidarBeamShape GetBeamShape () const
 Returns the beam cross section shape. More...
 
unsigned int GetSampleRadius () const
 Returns the beam sample radius. More...
 
float GetHorizDivAngle () const
 Returns the horizontal beam divergence angle. More...
 
float GetVertDivAngle () const
 Returns the vertical beam divergence angle. More...
 
bool DualReturnFlag () const
 
- Public Member Functions inherited from chrono::sensor::ChOptixSensor
 ChOptixSensor (std::shared_ptr< chrono::ChBody > parent, float updateRate, chrono::ChFrame< double > offsetPose, unsigned int w, unsigned int h)
 Constructor for the base camera class that defaults to a pinhole lens model. More...
 
virtual ~ChOptixSensor ()
 camera class destructor
 
PipelineType GetPipelineType ()
 
unsigned int GetWidth ()
 
unsigned int GetHeight ()
 
CUstream GetCudaStream ()
 
- Public Member Functions inherited from chrono::sensor::ChSensor
 ChSensor (std::shared_ptr< chrono::ChBody > parent, float updateRate, chrono::ChFrame< double > offsetPose)
 Constructor for the base sensor class. More...
 
virtual ~ChSensor ()
 Class destructor.
 
void SetOffsetPose (chrono::ChFrame< double > pose)
 Set the sensor's relative position and orientation. More...
 
ChFrame< double > GetOffsetPose ()
 Get the sensor's relative position and orientation. More...
 
std::shared_ptr< ChBodyGetParent () const
 Get the object to which the sensor is attached. More...
 
void SetName (std::string name)
 Set the sensor's name. More...
 
std::string GetName () const
 Get the name of the sensor. More...
 
float GetUpdateRate () const
 Get the sensor update rate (Hz) More...
 
void SetLag (float t)
 Set the lag parameter. More...
 
float GetLag () const
 Get the sensor lag (seconds) More...
 
void SetCollectionWindow (float t)
 Set the collection window. More...
 
float GetCollectionWindow () const
 Get the sensor data collection window (seconds) More...
 
void SetUpdateRate (float updateRate)
 Set the sensor update rate (Hz) More...
 
unsigned int GetNumLaunches ()
 Get the number of times the sensor has been updated. More...
 
void IncrementNumLaunches ()
 Increments the count of number of updates.
 
std::list< std::shared_ptr< ChFilter > > GetFilterList () const
 Get the sensor's list of filters. More...
 
void PushFilter (std::shared_ptr< ChFilter > filter)
 Add a filter to the sensor. More...
 
void PushFilterFront (std::shared_ptr< ChFilter > filter)
 Add a filter to the front of the list on a sensor. More...
 
void LockFilterList ()
 Gives ability to lock the filter list to prevent race conditions. More...
 
template<class UserBufferType >
UserBufferType GetMostRecentBuffer ()
 Get the last filter in the list that matches the template type. More...
 
template<>
CH_SENSOR_API UserR8BufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserRGBA8BufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserDepthBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserDIBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserXYZIBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserRadarBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserRadarXYZBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserAccelBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserGyroBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserMagnetBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserGPSBufferPtr GetMostRecentBuffer ()
 
template<>
CH_SENSOR_API UserTachometerBufferPtr GetMostRecentBuffer ()
 

Additional Inherited Members

- Protected Attributes inherited from chrono::sensor::ChOptixSensor
PipelineType m_pipeline_type
 the type of pipeline for rendering
 
- Protected Attributes inherited from chrono::sensor::ChSensor
float m_updateRate
 sensor update rate
 
float m_lag
 sensor lag from the time all scene information is available (sensor processing time)
 
float m_collection_window
 time over which data is collected. More...
 
float m_timeLastUpdated
 time since previous update
 
std::shared_ptr< chrono::ChBodym_parent
 object to which the sensor is attached
 
chrono::ChFrame< double > m_offsetPose
 position and orientation of the sensor relative to its parent
 
std::string m_name
 name of the sensor
 
unsigned int m_num_launches
 number of times the sensor has been updated
 
std::list< std::shared_ptr< ChFilter > > m_filters
 filter list for post-processing sensor data
 
bool m_filter_list_locked = false
 gives ability to lock the filter list to prevent race conditions
 

Constructor & Destructor Documentation

◆ ChLidarSensor()

CH_SENSOR_API chrono::sensor::ChLidarSensor::ChLidarSensor ( std::shared_ptr< chrono::ChBody parent,
float  updateRate,
chrono::ChFrame< double >  offsetPose,
unsigned int  w,
unsigned int  h,
float  hfov,
float  max_vertical_angle,
float  min_vertical_angle,
float  max_distance,
LidarBeamShape  beam_shape = LidarBeamShape::RECTANGULAR,
unsigned int  sample_radius = 1,
float  vert_divergence_angle = .003f,
float  hori_divergence_angle = .003f,
LidarReturnMode  return_mode = LidarReturnMode::MEAN_RETURN,
float  clip_near = 1e-3f 
)

Constructor for the base lidar class, defaulting to using a single ray per beam.

Parameters
parentBody to which the sensor is attached.
updateRateRate at which the sensor should update.
offsetPoseRelative position and orientation of the sensor with respect to its parent object.
wWidth in number of samples of a lidar scan
hHeight in number of sample of a lidar scan (typical the same as laser channels)
hfovHorizontal field of view of the lidar
max_vertical_angleMaximum vertical angle of the lidar
min_vertical_angleMinimum vertical angle of the lidar
max_distancethe maximum measurable distance for the lidar
beam_shapeShape of lidar beam, only rectangules and ellipse are supported currently.
sample_radiusThe radius in samples for multisampling beams (total samples per beam is 2*radius-1)
vert_divergence_angleThe vertical divergence angle of the lidar's laser beam
hori_divergence_angleThe horizontal divergence angle of the lidar's laser beam
return_modeThe return mode for lidar data when multiple objects are visible
clip_nearNear clipping distance so that lidar sensor can be easily placed inside a visualization object (sensor housing)

Member Function Documentation

◆ GetBeamShape()

LidarBeamShape chrono::sensor::ChLidarSensor::GetBeamShape ( ) const
inline

Returns the beam cross section shape.

Returns
the beam cross section shape

◆ GetClipNear()

float chrono::sensor::ChLidarSensor::GetClipNear ( ) const
inline

Returns the near clipping distance.

Returns
the near clipping distance

◆ GetHFOV()

float chrono::sensor::ChLidarSensor::GetHFOV ( ) const
inline

Gives the horizontal field of view of the lidar (angle between right-most and left-most ray for a "frame").

Horizontal field of view should be 360-(angular resulution) in degrees for a full 360 degree scanning lidar.

Returns
The horizontal field of view of the lidar sensor

◆ GetHorizDivAngle()

float chrono::sensor::ChLidarSensor::GetHorizDivAngle ( ) const
inline

Returns the horizontal beam divergence angle.

Returns
the horizontal beam divergence angle

◆ GetMaxDistance()

float chrono::sensor::ChLidarSensor::GetMaxDistance ( ) const
inline

Returns the maximum range of the lidar.

Returns
The maximum distance for the lidar

◆ GetMaxVertAngle()

float chrono::sensor::ChLidarSensor::GetMaxVertAngle ( ) const
inline

returns the lidar's horizontal field of view

Returns the highest vertical angle of any ray in the lidar

Returns
The angle of the highest ray

◆ GetMinVertAngle()

float chrono::sensor::ChLidarSensor::GetMinVertAngle ( ) const
inline

Returns the lowest vertical angle of any ray in the lidar.

Returns
The angle of the lowest ray

◆ GetSampleRadius()

unsigned int chrono::sensor::ChLidarSensor::GetSampleRadius ( ) const
inline

Returns the beam sample radius.

Returns
the beam sample radius

◆ GetVertDivAngle()

float chrono::sensor::ChLidarSensor::GetVertDivAngle ( ) const
inline

Returns the vertical beam divergence angle.

Returns
the vertical beam divergence angle

The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_sensor/sensors/ChLidarSensor.h
  • /builds/uwsbel/chrono/src/chrono_sensor/sensors/ChLidarSensor.cpp