Gazebo Sensors

API Reference

7.3.0
LogicalCameraSensor Class Reference

Logical Camera Sensor Class. More...

#include <LogicalCameraSensor.hh>

Public Member Functions

 LogicalCameraSensor ()
 constructor More...
 
virtual ~LogicalCameraSensor ()
 destructor More...
 
double AspectRatio () const
 Get the aspect ratio, which is the width divided by height of the near or far planes. More...
 
double Far () const
 Get the far distance. This is the distance from the frustum's vertex to the farthest plane. More...
 
virtual bool HasConnections () const override
 Check if there are any subscribers. More...
 
gz::math::Angle HorizontalFOV () const
 Get the horizontal field of view. The field of view is the angle between the frustum's vertex and the edges of the near or far plane. This value represents the horizontal angle. More...
 
msgs::LogicalCameraImage Image () const
 Get the latest image. An image is an instance of msgs::LogicalCameraImage, which contains a list of detected models. More...
 
virtual bool Init () override
 Initialize values in the sensor. More...
 
virtual bool Load (sdf::ElementPtr _sdf) override
 Load the sensor with SDF parameters. More...
 
double Near () const
 Get the near distance. This is the distance from the frustum's vertex to the closest plane. More...
 
void SetModelPoses (std::map< std::string, math::Pose3d > &&_models)
 Set the models currently in the world. More...
 
virtual bool Update (const std::chrono::steady_clock::duration &_now) override
 Force the sensor to generate data. More...
 
virtual bool Update (const std::chrono::steady_clock::duration &_now)=0
 Force the sensor to generate data. More...
 
bool Update (const std::chrono::steady_clock::duration &_now, const bool _force)
 Update the sensor. 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 a 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...
 
virtual bool Load (const sdf::Sensor &_sdf)
 Load the sensor based on data from an sdf::Sensor object. 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...
 
void SetNextDataUpdateTime (const std::chrono::steady_clock::duration &_time)
 Manually set the next time the sensor will generate data Useful for accomodating jumps backwards in time as well as specifying updates for non-uniformly updating sensors. 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 Sensor
 Sensor ()
 constructor More...
 

Detailed Description

Logical Camera Sensor Class.

A logical camera reports locations of objects. This camera finds models within the sensor's frustum and publishes information about the models on the sensor's topic.

Constructor & Destructor Documentation

◆ LogicalCameraSensor()

constructor

◆ ~LogicalCameraSensor()

virtual ~LogicalCameraSensor ( )
virtual

destructor

Member Function Documentation

◆ AspectRatio()

double AspectRatio ( ) const

Get the aspect ratio, which is the width divided by height of the near or far planes.

Returns
The frustum's aspect ratio.

◆ Far()

double Far ( ) const

Get the far distance. This is the distance from the frustum's vertex to the farthest plane.

Returns
Far distance.

◆ HasConnections()

virtual bool HasConnections ( ) const
overridevirtual

Check if there are any subscribers.

Returns
True if there are subscribers, false otherwise

Reimplemented from Sensor.

◆ HorizontalFOV()

gz::math::Angle HorizontalFOV ( ) const

Get the horizontal field of view. The field of view is the angle between the frustum's vertex and the edges of the near or far plane. This value represents the horizontal angle.

Returns
The field of view.

◆ Image()

msgs::LogicalCameraImage Image ( ) const

Get the latest image. An image is an instance of msgs::LogicalCameraImage, which contains a list of detected models.

Returns
List of detected models.

◆ Init()

virtual bool Init ( )
overridevirtual

Initialize values in the sensor.

Returns
True on success

Reimplemented from Sensor.

◆ Load()

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 Sensor.

◆ Near()

double Near ( ) const

Get the near distance. This is the distance from the frustum's vertex to the closest plane.

Returns
Near distance.

◆ SetModelPoses()

void SetModelPoses ( std::map< std::string, math::Pose3d > &&  _models)

Set the models currently in the world.

Parameters
[in]_modelsA map of model names to their world pose.

◆ Update() [1/3]

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

Implements Sensor.

◆ Update() [2/3]

virtual bool Update

Force the sensor to generate data.

This method must be overridden by sensors. Subclasses should not not make a decision about whether or not they need to update. The Sensor class will make sure Update() is called at the correct time.

If a subclass wants to have a variable update rate it should call SetUpdateRate().

A subclass should return false if there was an error while updating

Parameters
[in]_nowThe current time
Returns
true if the update was successfull
See also
SetUpdateRate()

◆ Update() [3/3]

bool Update

Update the sensor.

This is called by the manager, and is responsible for determining if this sensor needs to generate data at this time. If so, the subclasses' Update() method will be called.

Parameters
[in]_nowThe current time
[in]_forceForce the update to happen even if it's not time
Returns
True if the update was triggered (_force was true or _now >= next_update_time) and the sensor's bool Sensor::Update(std::chrono::steady_clock::time_point) function returned true. False otherwise.
Remarks
If forced the NextUpdateTime() will be unchanged.

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