Gazebo Sensors

API Reference

6.8.1
ThermalCameraSensor Class Reference

Thermal camera sensor class. More...

#include <ThermalCameraSensor.hh>

Public Member Functions

 ThermalCameraSensor ()
 constructor More...
 
virtual ~ThermalCameraSensor ()
 destructor More...
 
common::ConnectionPtr ConnectImageCallback (std::function< void(const msgs::Image &)> _callback)
 Set a callback to be called when image frame data is generated. More...
 
bool HasConnections () const
 Check if there are any subscribers. More...
 
virtual unsigned int ImageHeight () const override
 Get image height. More...
 
virtual unsigned int ImageWidth () const override
 Get image width. More...
 
virtual bool Init () override
 Initialize values in the sensor. More...
 
virtual bool Load (const sdf::Sensor &_sdf) override
 Load the sensor based on data from an sdf::Sensor object. More...
 
virtual bool Load (sdf::ElementPtr _sdf) override
 Load the sensor with SDF parameters. More...
 
void OnNewThermalFrame (const uint16_t *_scan, unsigned int _width, unsigned int _height, unsigned int _channels, const std::string &_format)
 Thermal data callback used to get the data from the sensor. More...
 
virtual void SetAmbientTemperature (float _ambient)
 Set the ambient temperature of the environment. More...
 
virtual void SetAmbientTemperatureRange (float _range)
 Set the range of ambient temperature. More...
 
virtual void SetLinearResolution (float _resolution)
 Set the temperature linear resolution. The thermal image data returned will be temperature in kelvin / resolution. Typical values are 0.01 (10mK), 0.1 (100mK), or 0.04 to simulate 14 bit format. More...
 
virtual void SetMaxTemperature (float _max)
 Set the maximum temperature the sensor can detect. More...
 
virtual void SetMinTemperature (float _min)
 Set the minimum temperature the sensor can detect. More...
 
virtual void SetScene (gz::rendering::ScenePtr _scene) override
 Set the rendering scene. More...
 
virtual rendering::ThermalCameraPtr ThermalCamera ()
 Force the sensor to generate data. More...
 
virtual bool Update (const std::chrono::steady_clock::duration &_now) override
 Force the sensor to generate data. More...
 
- Public Member Functions inherited from CameraSensor
 CameraSensor ()
 constructor More...
 
virtual ~CameraSensor ()
 destructor More...
 
double Baseline () const
 Get baseline for stereo cameras. More...
 
gz::common::ConnectionPtr ConnectImageCallback (std::function< void(const gz::msgs::Image &)> _callback)
 Set a callback to be called when image frame data is generated. More...
 
bool HasConnections () const
 Check if there are any subscribers. More...
 
bool HasImageConnections () const
 Check if there are any image subscribers. More...
 
bool HasInfoConnections () const
 Check if there are any info subscribers. More...
 
std::string InfoTopic () const
 Topic where camera info is published. More...
 
const std::stringOpticalFrameId () const
 Get the camera optical frame. More...
 
rendering::CameraPtr RenderingCamera () const
 Get pointer to rendering camera object. More...
 
void SetBaseline (double _baseline)
 Set baseline for stereo cameras. This is used to populate the projection matrix in the camera info message. More...
 
- Public Member Functions inherited from RenderingSensor
virtual ~RenderingSensor ()
 destructor More...
 
bool ManualSceneUpdate () const
 Get whether the scene graph is updated manually. Defaults to false. More...
 
void Render ()
 Render update. This performs the actual render operation. More...
 
rendering::ScenePtr Scene () const
 Get the rendering scene. More...
 
void SetManualSceneUpdate (bool _manual)
 Set whether to update the scene graph manually. If set to true, it is expected that rendering::Scene::PreRender is called manually before calling Render() More...
 
virtual void SetScene (rendering::ScenePtr _scene)
 Set the rendering scene. More...
 
- Public Member Functions inherited from Sensor
virtual ~Sensor ()
 destructor More...
 
void AddSequence (gz::msgs::Header *_msg, const std::string &_seqKey="default")
 Add a sequence number to an gz::msgs::Header. This function can be called by a sensor that wants to add a sequence number to a sensor message in order to have improved accountability for generated sensor data. More...
 
bool EnableMetrics () const
 Get flag state for enabling performance metrics publication. More...
 
std::string FrameId () const
 FrameId. More...
 
SensorId Id () const
 Get the sensor's ID. More...
 
bool IsActive () const
 Get whether the sensor is enabled or not. More...
 
std::string Name () const
 Get name. More...
 
std::chrono::steady_clock::duration NextDataUpdateTime () const
 Return the next time the sensor will generate data. More...
 
std::string Parent () const
 Get parent link of the sensor. More...
 
gz::math::Pose3d Pose () const
 Get the current pose. More...
 
void PublishMetrics (const std::chrono::duration< double > &_now)
 Publishes information about the performance of the sensor. This method is called by Update(). More...
 
sdf::ElementPtr SDF () const
 Get the SDF used to load this sensor. More...
 
void SetActive (bool _active)
 Enable or disable the sensor. Disabled sensors will not generate or publish data unless Update is called with the '_force' argument set to true. More...
 
void SetEnableMetrics (bool _enableMetrics)
 Set flag to enable publishing performance metrics. More...
 
void SetFrameId (const std::string &_frameId)
 Set Frame ID of the sensor. More...
 
virtual void SetParent (const std::string &_parent)
 Set the parent of the sensor. More...
 
void SetPose (const gz::math::Pose3d &_pose)
 Update the pose of the sensor. More...
 
bool SetTopic (const std::string &_topic)
 Set topic where sensor data is published. More...
 
void SetUpdateRate (const double _hz)
 Set the update rate of the sensor. An update rate of zero means that the sensor is updated every cycle. It's zero by default. \detail Negative rates become zero. More...
 
std::string Topic () const
 Get topic where sensor data is published. More...
 
bool Update (const std::chrono::steady_clock::duration &_now, const bool _force)
 Update the sensor. More...
 
double UpdateRate () const
 Get the update rate of the sensor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from CameraSensor
bool AdvertiseInfo ()
 Advertise camera info topic. More...
 
bool AdvertiseInfo (const std::string &_topic)
 Advertise camera info topic. This version takes a string that allows one to override the camera_info topic. More...
 
void PopulateInfo (const sdf::Camera *_cameraSdf)
 Populate camera info message. More...
 
void PublishInfo (const std::chrono::steady_clock::duration &_now)
 Publish camera info message. More...
 
- Protected Member Functions inherited from RenderingSensor
 RenderingSensor ()
 constructor More...
 
void AddSensor (rendering::SensorPtr _sensor)
 Add a rendering::Sensor. Its render updates will be handled by this base class. More...
 
- Protected Member Functions inherited from Sensor
 Sensor ()
 constructor More...
 

Detailed Description

Thermal camera sensor class.

This class creates thermal image from an ignition rendering scene. The scene must be created in advance and given to Manager::Init(). It offers both an ignition-transport interface and a direct C++ API to access the image data. The API works by setting a callback to be called with image data.

Constructor & Destructor Documentation

◆ ThermalCameraSensor()

constructor

◆ ~ThermalCameraSensor()

virtual ~ThermalCameraSensor ( )
virtual

destructor

Member Function Documentation

◆ ConnectImageCallback()

common::ConnectionPtr ConnectImageCallback ( std::function< void(const msgs::Image &)>  _callback)

Set a callback to be called when image frame data is generated.

Parameters
[in]_callbackThis callback will be called every time the camera produces image data. The Update function will be blocked while the callbacks are executed.
Remarks
Do not block inside of the callback.
Returns
A connection pointer that must remain in scope. When the connection pointer falls out of scope, the connection is broken.

◆ HasConnections()

bool HasConnections ( ) const

Check if there are any subscribers.

Returns
True if there are subscribers, false otherwise
Todo:
(iche033) Make this function virtual on Garden

◆ ImageHeight()

virtual unsigned int ImageHeight ( ) const
overridevirtual

Get image height.

Returns
height of the image

Reimplemented from CameraSensor.

◆ ImageWidth()

virtual unsigned int ImageWidth ( ) const
overridevirtual

Get image width.

Returns
width of the image

Reimplemented from CameraSensor.

◆ Init()

virtual bool Init ( )
overridevirtual

Initialize values in the sensor.

Returns
True on success

Reimplemented from CameraSensor.

◆ Load() [1/2]

virtual bool Load ( const sdf::Sensor &  _sdf)
overridevirtual

Load the sensor based on data from an sdf::Sensor object.

Parameters
[in]_sdfSDF Sensor parameters.
Returns
true if loading was successful

Reimplemented from CameraSensor.

◆ Load() [2/2]

virtual bool Load ( sdf::ElementPtr  _sdf)
overridevirtual

Load the sensor with SDF parameters.

Parameters
[in]_sdfSDF Sensor parameters.
Returns
true if loading was successful

Reimplemented from CameraSensor.

◆ OnNewThermalFrame()

void OnNewThermalFrame ( const uint16_t *  _scan,
unsigned int  _width,
unsigned int  _height,
unsigned int  _channels,
const std::string _format 
)

Thermal data callback used to get the data from the sensor.

Parameters
[in]_scanpointer to the data from the sensor
[in]_widthwidth of the thermal image
[in]_heightheight of the thermal image
[in]_channelbytes used for the thermal data
[in]_formatstring with the format

◆ SetAmbientTemperature()

virtual void SetAmbientTemperature ( float  _ambient)
virtual

Set the ambient temperature of the environment.

Parameters
[in]_ambientAmbient temperature in kelvin

◆ SetAmbientTemperatureRange()

virtual void SetAmbientTemperatureRange ( float  _range)
virtual

Set the range of ambient temperature.

Parameters
[in]_rangeThe ambient temperature ranges from (ambient - range/2) to (ambient + range/2).

◆ SetLinearResolution()

virtual void SetLinearResolution ( float  _resolution)
virtual

Set the temperature linear resolution. The thermal image data returned will be temperature in kelvin / resolution. Typical values are 0.01 (10mK), 0.1 (100mK), or 0.04 to simulate 14 bit format.

Parameters
[in]resolutionTemperature linear resolution

◆ SetMaxTemperature()

virtual void SetMaxTemperature ( float  _max)
virtual

Set the maximum temperature the sensor can detect.

Parameters
[in]_maxMax temperature in kelvin

◆ SetMinTemperature()

virtual void SetMinTemperature ( float  _min)
virtual

Set the minimum temperature the sensor can detect.

Parameters
[in]_minMin temperature in kelvin

◆ SetScene()

virtual void SetScene ( gz::rendering::ScenePtr  _scene)
overridevirtual

Set the rendering scene.

Parameters
[in]_scenePointer to the scene

Reimplemented from CameraSensor.

◆ ThermalCamera()

virtual rendering::ThermalCameraPtr ThermalCamera ( )
virtual

Force the sensor to generate data.

Parameters
[in]_nowThe current time
Returns
true if the update was successfull

◆ Update()

virtual bool Update ( const std::chrono::steady_clock::duration &  _now)
overridevirtual

Force the sensor to generate data.

Parameters
[in]_nowThe current time
Returns
true if the update was successfull

Reimplemented from CameraSensor.


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