Description

Camera class.

#include <ChCameraSensor.h>

Inheritance diagram for chrono::sensor::ChCameraSensor:
Collaboration diagram for chrono::sensor::ChCameraSensor:

Public Member Functions

 ChCameraSensor (std::shared_ptr< chrono::ChBody > parent, float updateRate, chrono::ChFrame< double > offsetPose, unsigned int w, unsigned int h, float hFOV, unsigned int supersample_factor=1, CameraLensModelType lens_model=CameraLensModelType::PINHOLE, bool use_gi=false, float gamma=2.2, bool use_fog=true)
 Constructor for the base camera class that defaults to a pinhole lens model. More...
 
 ~ChCameraSensor ()
 camera class destructor
 
float GetHFOV () const
 returns the camera's horizontal field of view. More...
 
CameraLensModelType GetLensModelType () const
 returns the lens model type used for rendering More...
 
LensParams GetLensParameters () const
 returns the lens model parameters More...
 
void SetRadialLensParameters (ChVector3f params)
 @briefSets the parameters for a radial lens distortion model. More...
 
bool GetUseGI ()
 returns if the cemera requesting global illumination More...
 
float GetGamma ()
 returns the gamma correction value of this camera. More...
 
unsigned int GetSampleFactor ()
 Gets the number of samples per pixels in each direction used for super sampling. More...
 
bool GetUseFog ()
 returns if the cemera should use fog as dictated by the scene More...
 
ChMatrix33< float > GetCameraIntrinsicMatrix ()
 returns the 3x3 Intrinsic Matrix(K) of the camera More...
 
ChVector3f GetCameraDistortionCoefficients ()
 returns the camera distortion coefficients k1, k2, k3 More...
 
- 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 ()
 

Static Public Member Functions

static LensParams CalcInvRadialModel (ChVector3f params)
 calculate the parameters for the inverse polynomial model
 

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

◆ ChCameraSensor()

CH_SENSOR_API chrono::sensor::ChCameraSensor::ChCameraSensor ( std::shared_ptr< chrono::ChBody parent,
float  updateRate,
chrono::ChFrame< double >  offsetPose,
unsigned int  w,
unsigned int  h,
float  hFOV,
unsigned int  supersample_factor = 1,
CameraLensModelType  lens_model = CameraLensModelType::PINHOLE,
bool  use_gi = false,
float  gamma = 2.2,
bool  use_fog = true 
)

Constructor for the base camera class that defaults to a pinhole lens model.

Parameters
parentA shared pointer to a body on which the sensor should be attached.
updateRateThe desired update rate of the sensor in Hz.
offsetPoseThe desired relative position and orientation of the sensor on the body.
wThe width of the image the camera should generate.
hThe height of the image the camera should generate.
hFOVThe horizontal field of view of the camera lens.
supersample_factorThe number of rays that should be sampled per pixel for antialiasing.
lens_modelA enum specifying the desired lens model.
use_giEnable the global illumination, with significant decrease in performace
gammacorrection of the image, 1 for linear color space, 2.2 for sRGB
use_fogwhether to use fog on this camera

Member Function Documentation

◆ GetCameraDistortionCoefficients()

ChVector3f chrono::sensor::ChCameraSensor::GetCameraDistortionCoefficients ( )
inline

returns the camera distortion coefficients k1, k2, k3

Returns
ChVector3f of the camera distortion coefficients k1, k2, k3

◆ GetCameraIntrinsicMatrix()

ChMatrix33< float > chrono::sensor::ChCameraSensor::GetCameraIntrinsicMatrix ( )

returns the 3x3 Intrinsic Matrix(K) of the camera

Returns
3x3 ChMatrix33<flaot> Intrinsic Matrix(K) of the camera

◆ GetGamma()

float chrono::sensor::ChCameraSensor::GetGamma ( )
inline

returns the gamma correction value of this camera.

1 means no correction and the image is in linear color space. Useful for other ML applications 2.2 means the image is in sRGB color space. Useful for display

Returns
Gamma value of the image

◆ GetHFOV()

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

returns the camera's horizontal field of view.

Vertical field of view is determined by the image aspect ratio and the lens model

Returns
The horizontal field of view of the camera lens

◆ GetLensModelType()

CameraLensModelType chrono::sensor::ChCameraSensor::GetLensModelType ( ) const
inline

returns the lens model type used for rendering

Returns
An enum specifying which lens model is being used. (0: PINHOLE, 1: FOV, 2: Radial)

◆ GetLensParameters()

LensParams chrono::sensor::ChCameraSensor::GetLensParameters ( ) const
inline

returns the lens model parameters

Returns
LensParams struct of lens parameters. Will default to zeros for any terms not used. These are coverted for the inverse model

◆ GetSampleFactor()

unsigned int chrono::sensor::ChCameraSensor::GetSampleFactor ( )
inline

Gets the number of samples per pixels in each direction used for super sampling.

Returns
the number of samples per pixel

◆ GetUseFog()

bool chrono::sensor::ChCameraSensor::GetUseFog ( )
inline

returns if the cemera should use fog as dictated by the scene

Returns
True if it does request

◆ GetUseGI()

bool chrono::sensor::ChCameraSensor::GetUseGI ( )
inline

returns if the cemera requesting global illumination

Returns
True if it does request

◆ SetRadialLensParameters()

void chrono::sensor::ChCameraSensor::SetRadialLensParameters ( ChVector3f  params)

@briefSets the parameters for a radial lens distortion model.

Parameters should be given for the forward model. The backward distortion model will the used and calculated from the forward parameters given.

Parameters
paramsthe set of 3 radial parameters (k1,k2,k3)

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