Gazebo Sensors

API Reference

10.1.1
CpuLidarSensor Class Reference

CPU-based lidar sensor that performs ray casting without depending on gz-rendering. More...

#include <CpuLidarSensor.hh>

Classes

struct  RayResult
 Result of a single ray cast. More...
 

Public Member Functions

 CpuLidarSensor ()
 constructor
 
virtual ~CpuLidarSensor ()
 destructor
 
gz::math::Angle AngleMax () const
 Get the maximum horizontal angle.
 
gz::math::Angle AngleMin () const
 Get the minimum horizontal angle.
 
std::vector< std::pair< gz::math::Vector3d, gz::math::Vector3d > > GenerateRays () const
 Generate rays from the lidar configuration.
 
virtual bool HasConnections () const override
 Check if there are any subscribers.
 
virtual bool Load (const sdf::Sensor &_sdf) override
 Load the sensor based on data from an sdf::Sensor object.
 
virtual bool Load (sdf::ElementPtr _sdf) override
 Load the sensor with SDF parameters.
 
double RangeMax () const
 Get the maximum range.
 
double RangeMin () const
 Get the minimum range.
 
void Ranges (std::vector< double > &_ranges) const
 Get all range values.
 
unsigned int RayCount () const
 Get the horizontal ray count.
 
void SetRaycastResults (const std::vector< RayResult > &_results)
 Set the raycast results from the physics engine.
 
virtual bool Update (const std::chrono::steady_clock::duration &_now) override
 Update the sensor and 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.
 
gz::math::Angle VerticalAngleMax () const
 Get the maximum vertical angle.
 
gz::math::Angle VerticalAngleMin () const
 Get the minimum vertical angle.
 
unsigned int VerticalRayCount () const
 Get the vertical ray count.
 
- 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.
 
const std::stringFrameId () const
 FrameId.
 
bool HasPendingTrigger () const
 Whether the sensor has a pending trigger.
 
SensorId Id () const
 Get the sensor's ID.
 
virtual bool Init ()
 Initialize values in the sensor This will set the next update time to zero. This is particularly useful if simulation time has jumped backward, for example during a seek backward in a log file.
 
bool IsActive () const
 Get whether the sensor is enabled or not.
 
bool IsTriggered () const
 Whether the sensor trigger mode is enabled.
 
const std::stringName () const
 Get name.
 
std::chrono::steady_clock::duration NextDataUpdateTime () const
 Return the next time the sensor will generate data.
 
const std::stringParent () 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.
 
const std::stringTopic () 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

CPU-based lidar sensor that performs ray casting without depending on gz-rendering.

Constructor & Destructor Documentation

◆ CpuLidarSensor()

constructor

◆ ~CpuLidarSensor()

virtual ~CpuLidarSensor ( )
virtual

destructor

Member Function Documentation

◆ AngleMax()

gz::math::Angle AngleMax ( ) const

Get the maximum horizontal angle.

◆ AngleMin()

gz::math::Angle AngleMin ( ) const

Get the minimum horizontal angle.

◆ GenerateRays()

std::vector< std::pair< gz::math::Vector3d, gz::math::Vector3d > > GenerateRays ( ) const

Generate rays from the lidar configuration.

Returns
Vector of (start, end) pairs in entity frame

◆ HasConnections()

virtual bool HasConnections ( ) const
overridevirtual

Check if there are any subscribers.

Returns
True if there are subscribers, false otherwise

Reimplemented from Sensor.

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

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

◆ RangeMax()

double RangeMax ( ) const

Get the maximum range.

◆ RangeMin()

double RangeMin ( ) const

Get the minimum range.

◆ Ranges()

void Ranges ( std::vector< double > &  _ranges) const

Get all range values.

Parameters
[out]_rangesVector to fill with range data.

◆ RayCount()

unsigned int RayCount ( ) const

Get the horizontal ray count.

◆ SetRaycastResults()

void SetRaycastResults ( const std::vector< RayResult > &  _results)

Set the raycast results from the physics engine.

Parameters
[in]_resultsVector of results, one per ray.

◆ Update() [1/3]

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

Update the sensor and generate data.

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

Implements Sensor.

◆ Update() [2/3]

virtual bool Update ( const std::chrono::steady_clock::duration &  _now)
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]_nowThe 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]_nowThe current time
[in]_forceForce 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.

◆ VerticalAngleMax()

gz::math::Angle VerticalAngleMax ( ) const

Get the maximum vertical angle.

◆ VerticalAngleMin()

gz::math::Angle VerticalAngleMin ( ) const

Get the minimum vertical angle.

◆ VerticalRayCount()

unsigned int VerticalRayCount ( ) const

Get the vertical ray count.


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