Logical Camera Sensor Class. More...
#include <LogicalCameraSensor.hh>
Public Member Functions | |
LogicalCameraSensor () | |
constructor | |
virtual | ~LogicalCameraSensor () |
destructor | |
double | AspectRatio () const |
Get the aspect ratio, which is the width divided by height of the near or far planes. | |
double | Far () const |
Get the far distance. This is the distance from the frustum's vertex to the farthest plane. | |
virtual bool | HasConnections () const override |
Check if there are any subscribers. | |
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. | |
msgs::LogicalCameraImage | Image () const |
Get the latest image. An image is an instance of msgs::LogicalCameraImage, which contains a list of detected models. | |
virtual bool | Init () override |
Initialize values in the sensor. | |
virtual bool | Load (sdf::ElementPtr _sdf) override |
Load the sensor with SDF parameters. | |
double | Near () const |
Get the near distance. This is the distance from the frustum's vertex to the closest plane. | |
void | SetModelPoses (std::map< std::string, math::Pose3d > &&_models) |
Set the models currently in the world. | |
virtual bool | Update (const std::chrono::steady_clock::duration &_now) override |
Force the sensor to generate data. | |
virtual bool | Update (const std::chrono::steady_clock::duration &_now)=0 |
Force the sensor to generate data. | |
bool | Update (const std::chrono::steady_clock::duration &_now, const bool _force) |
Update the sensor. | |
Public Member Functions inherited from Sensor | |
virtual | ~Sensor () |
destructor | |
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. | |
bool | EnableMetrics () const |
Get flag state for enabling performance metrics publication. | |
std::string | FrameId () const |
FrameId. | |
bool | HasPendingTrigger () const |
Whether the sensor has a pending trigger. | |
SensorId | Id () const |
Get the sensor's ID. | |
bool | IsActive () const |
Get whether the sensor is enabled or not. | |
bool | IsTriggered () const |
Whether the sensor trigger mode is enabled. | |
virtual bool | Load (const sdf::Sensor &_sdf) |
Load the sensor based on data from an sdf::Sensor object. | |
std::string | Name () const |
Get name. | |
std::chrono::steady_clock::duration | NextDataUpdateTime () const |
Return the next time the sensor will generate data. | |
std::string | Parent () const |
Get parent link of the sensor. | |
gz::math::Pose3d | Pose () const |
Get the current pose. | |
void | PublishMetrics (const std::chrono::duration< double > &_now) |
Publishes information about the performance of the sensor. This method is called by Update(). | |
sdf::ElementPtr | SDF () const |
Get the SDF used to load this sensor. | |
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. | |
void | SetEnableMetrics (bool _enableMetrics) |
Set flag to enable publishing performance metrics. | |
void | SetFrameId (const std::string &_frameId) |
Set Frame ID of the sensor. | |
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. | |
virtual void | SetParent (const std::string &_parent) |
Set the parent of the sensor. | |
void | SetPose (const gz::math::Pose3d &_pose) |
Update the pose of the sensor. | |
bool | SetTopic (const std::string &_topic) |
Set topic where sensor data is published. | |
bool | SetTriggered (bool _triggered, const std::string &_triggerTopic="") |
Enable or disable triggered mode. In this mode,. | |
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. | |
std::string | Topic () const |
Get topic where sensor data is published. | |
bool | Update (const std::chrono::steady_clock::duration &_now, const bool _force) |
Update the sensor. | |
double | UpdateRate () const |
Get the update rate of the sensor. | |
Additional Inherited Members | |
Protected Member Functions inherited from Sensor | |
Sensor () | |
constructor | |
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 |
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()
|
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()
|
overridevirtual |
◆ Load()
|
overridevirtual |
◆ 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] _models A map of model names to their world pose.
◆ Update() [1/3]
|
overridevirtual |
Force the sensor to generate data.
- Parameters
-
[in] _now The current time
- Returns
- true if the update was successfull
Implements Sensor.
◆ Update() [2/3]
|
virtual |
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] _now The current time
- Returns
- true if the update was successfull
- See also
- SetUpdateRate()
Implements Sensor.
◆ Update() [3/3]
bool Update | ( | const std::chrono::steady_clock::duration & | _now, |
const bool | _force | ||
) |
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] _now The current time [in] _force Force the update to happen even if it's not time
- Returns
- True if the update was performed (_force was true or _now >= next_update_time or sensor had a pending trigger) 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: