All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
gazebo::sensors::GpuRaySensor Class Reference

#include <sensors/sensors.hh>

Inheritance diagram for gazebo::sensors::GpuRaySensor:
Inheritance graph
[legend]

Public Member Functions

 GpuRaySensor ()
 Constructor.
 
virtual ~GpuRaySensor ()
 Destructor.
 
event::ConnectionPtr ConnectNewLaserFrame (boost::function< void(const float *, unsigned int, unsigned int, unsigned int, const std::string &)> _subscriber)
 Connect to the new laser frame event.
 
void DisconnectNewLaserFrame (event::ConnectionPtr &_conn)
 Disconnect Laser Frame.
 
math::Angle GetAngleMax () const
 Get the maximum angle.
 
math::Angle GetAngleMin () const
 Get the minimum angle.
 
double GetAngleResolution () const
 Get radians between each range.
 
unsigned int GetCameraCount () const
 Gets the camera count.
 
double GetCosHorzFOV () const
 Get Cos Horz field-of-view.
 
double GetCosVertFOV () const
 Get Cos Vert field-of-view.
 
int GetFiducial (int _index) const
 Get detected fiducial value for a ray.
 
double GetHorzFOV () const
 Get the horizontal field of view of the laser sensor.
 
double GetHorzHalfAngle () const
 Get (horizontal_max_angle + horizontal_min_angle) * 0.5.
 
rendering::GpuLaserPtr GetLaserCamera () const
 Returns a pointer to the internally kept rendering::GpuLaser.
 
double GetRange (int _index)
 Get detected range for a ray.
 
int GetRangeCount () const
 Get the range count.
 
double GetRangeCountRatio () const
 Return the ratio of horizontal range count to vertical range count.
 
double GetRangeMax () const
 Get the maximum range.
 
double GetRangeMin () const
 Get the minimum range.
 
double GetRangeResolution () const
 Get the range resolution If RangeResolution is 1, the number of simulated rays is equal to the number of returned range readings.
 
void GetRanges (std::vector< double > &_ranges) const
 Get all the ranges.
 
int GetRayCount () const
 Get the ray count.
 
double GetRayCountRatio () const
 Return the ratio of horizontal ray count to vertical ray count.
 
double GetRetro (int _index) const
 Get detected retro (intensity) value for a ray.
 
double GetVertFOV () const
 Get the vertical field-of-view.
 
double GetVertHalfAngle () const
 Get (vertical_max_angle + vertical_min_angle) * 0.5.
 
math::Angle GetVerticalAngleMax () const
 Get the vertical scan line top angle.
 
math::Angle GetVerticalAngleMin () const
 Get the vertical scan bottom angle.
 
int GetVerticalRangeCount () const
 Get the vertical scan line count.
 
int GetVerticalRayCount () const
 Get the vertical scan line count.
 
virtual void Init ()
 Initialize the ray.
 
bool IsHorizontal () const
 Gets if sensor is horizontal.
 
virtual void Load (const std::string &_worldName, sdf::ElementPtr &_sdf)
 Load the sensor with SDF parameters.
 
virtual void Load (const std::string &_worldName)
 Load the sensor with default parameters.
 
void SetAngleMax (double _angle)
 Set the scan maximum angle.
 
void SetAngleMin (double _angle)
 Set the scan minimum angle.
 
void SetVerticalAngleMax (double _angle)
 Set the vertical scan line top angle.
 
void SetVerticalAngleMin (double _angle)
 Set the vertical scan bottom angle.
 
- Public Member Functions inherited from gazebo::sensors::Sensor
 Sensor ()
 Constructor.
 
virtual ~Sensor ()
 Destructor.
 
template<typename T >
event::ConnectionPtr ConnectUpdated (T _subscriber)
 Connect a signal that is triggered when the sensor is updated.
 
void DisconnectUpdated (event::ConnectionPtr &_c)
 Disconnect from a the updated signal.
 
void FillMsg (msgs::Sensor &_msg)
 fills a msgs::Sensor message.
 
common::Time GetLastMeasurementTime ()
 Return last measurement time.
 
common::Time GetLastUpdateTime ()
 Return last update time.
 
std::string GetName () const
 Get name.
 
std::string GetParentName () const
 Returns the name of the sensor parent.
 
virtual math::Pose GetPose () const
 Get the current pose.
 
std::string GetScopedName () const
 Get fully scoped name of the sensor.
 
virtual std::string GetTopic () const
 Returns the topic name as set in SDF.
 
std::string GetType () const
 Get sensor type.
 
double GetUpdateRate ()
 Get the update rate of the sensor.
 
bool GetVisualize () const
 Return true if user requests the sensor to be visualized via tag: <visualize>true</visualize> in SDF.
 
std::string GetWorldName () const
 Returns the name of the world the sensor is in.
 
virtual bool IsActive ()
 Returns true if sensor generation is active.
 
virtual void Load (const std::string &_worldName, sdf::ElementPtr _sdf)
 Load the sensor with SDF parameters.
 
virtual void SetActive (bool _value)
 Set whether the sensor is active or not.
 
virtual void SetParent (const std::string &_name)
 Set the parent of the sensor.
 
void SetUpdateRate (double _hz)
 Set the update rate of the sensor.
 
void Update (bool _force)
 Update the sensor.
 

Protected Member Functions

virtual void Fini ()
 Finalize the ray.
 
virtual void UpdateImpl (bool _force)
 Update the sensor information.
 

Protected Attributes

unsigned int cameraCount
 Number of cameras.
 
sdf::ElementPtr cameraElem
 Camera SDF element.
 
double chfov
 Cos horizontal field-of-view.
 
double cvfov
 Cos vertical field-of-view.
 
double far
 Far clip plane.
 
double hfov
 Horizontal field-of-view.
 
sdf::ElementPtr horzElem
 Horizontal SDF element.
 
double horzHalfAngle
 Horizontal half angle.
 
unsigned int horzRangeCount
 Horizontal range count.
 
unsigned int horzRayCount
 Horizontal ray count.
 
bool isHorizontal
 True if the sensor is horizontal only.
 
double near
 Near clip plane.
 
double rangeCountRatio
 Range count ratio.
 
sdf::ElementPtr rangeElem
 Range SDF element.
 
double rayCountRatio
 Ray count ratio.
 
sdf::ElementPtr scanElem
 Scan SDF elementz.
 
sdf::ElementPtr vertElem
 Vertical SDF element.
 
double vertHalfAngle
 Vertical half angle.
 
unsigned int vertRangeCount
 Vertical range count.
 
unsigned int vertRayCount
 Vertical ray count.
 
double vfov
 Vertical field-of-view.
 
- Protected Attributes inherited from gazebo::sensors::Sensor
bool active
 True if sensor generation is active.
 
std::vector< event::ConnectionPtrconnections
 All event connections.
 
common::Time lastMeasurementTime
 Stores last time that a sensor measurement was generated; this value must be updated within each sensor's UpdateImpl.
 
common::Time lastUpdateTime
 Time of the last update.
 
transport::NodePtr node
 Node for communication.
 
std::string parentName
 Name of the parent.
 
std::vector< SensorPluginPtrplugins
 All the plugins for the sensor.
 
math::Pose pose
 Pose of the sensor.
 
transport::SubscriberPtr poseSub
 Subscribe to pose updates.
 
sdf::ElementPtr sdf
 Pointer the the SDF element for the sensor.
 
common::Time updatePeriod
 Desired time between updates, set indirectly by Sensor::SetUpdateRate.
 
gazebo::physics::WorldPtr world
 Pointer to the world.
 

Constructor & Destructor Documentation

gazebo::sensors::GpuRaySensor::GpuRaySensor ( )

Constructor.

virtual gazebo::sensors::GpuRaySensor::~GpuRaySensor ( )
virtual

Destructor.

Member Function Documentation

event::ConnectionPtr gazebo::sensors::GpuRaySensor::ConnectNewLaserFrame ( boost::function< void(const float *, unsigned int, unsigned int, unsigned int, const std::string &)>  _subscriber)

Connect to the new laser frame event.

Parameters
[in]_subscriberEvent callback.
void gazebo::sensors::GpuRaySensor::DisconnectNewLaserFrame ( event::ConnectionPtr _conn)

Disconnect Laser Frame.

Parameters
[in,out]_connConnection pointer to disconnect.
virtual void gazebo::sensors::GpuRaySensor::Fini ( )
protectedvirtual

Finalize the ray.

Reimplemented from gazebo::sensors::Sensor.

math::Angle gazebo::sensors::GpuRaySensor::GetAngleMax ( ) const

Get the maximum angle.

Returns
the maximum angle
math::Angle gazebo::sensors::GpuRaySensor::GetAngleMin ( ) const

Get the minimum angle.

Returns
The minimum angle
double gazebo::sensors::GpuRaySensor::GetAngleResolution ( ) const

Get radians between each range.

unsigned int gazebo::sensors::GpuRaySensor::GetCameraCount ( ) const

Gets the camera count.

Returns
Number of cameras
double gazebo::sensors::GpuRaySensor::GetCosHorzFOV ( ) const

Get Cos Horz field-of-view.

Returns
2 * atan(tan(this->hfov/2) / cos(this->vfov/2))
double gazebo::sensors::GpuRaySensor::GetCosVertFOV ( ) const

Get Cos Vert field-of-view.

Returns
2 * atan(tan(this->vfov/2) / cos(this->hfov/2))
int gazebo::sensors::GpuRaySensor::GetFiducial ( int  _index) const

Get detected fiducial value for a ray.

    Warning: If you are accessing all the ray data in a loop
    it's possible that the Ray will update in the middle of
    your access loop. This means some data will come from one
    scan, and some from another scan. You can solve this
    problem by using SetActive(false) <your accessor loop>
    SetActive(true).
Parameters
[in]_indexIndex of specific ray
Returns
Fiducial value of ray
double gazebo::sensors::GpuRaySensor::GetHorzFOV ( ) const

Get the horizontal field of view of the laser sensor.

Returns
The horizontal field of view of the laser sensor.
double gazebo::sensors::GpuRaySensor::GetHorzHalfAngle ( ) const

Get (horizontal_max_angle + horizontal_min_angle) * 0.5.

Returns
(horizontal_max_angle + horizontal_min_angle) * 0.5
rendering::GpuLaserPtr gazebo::sensors::GpuRaySensor::GetLaserCamera ( ) const
inline

Returns a pointer to the internally kept rendering::GpuLaser.

Returns
Pointer to GpuLaser
double gazebo::sensors::GpuRaySensor::GetRange ( int  _index)

Get detected range for a ray.

    Warning: If you are accessing all the ray data in a loop
    it's possible that the Ray will update in the middle of
    your access loop. This means some data will come from one
    scan, and some from another scan. You can solve this
    problem by using SetActive(false) <your accessor loop>
    SetActive(true).
Parameters
[in]_indexIndex of specific ray
Returns
Returns DBL_MAX for no detection.
int gazebo::sensors::GpuRaySensor::GetRangeCount ( ) const

Get the range count.

Returns
The number of ranges
double gazebo::sensors::GpuRaySensor::GetRangeCountRatio ( ) const

Return the ratio of horizontal range count to vertical range count.

A ray count is the number of simulated rays. Whereas a range count is the total number of data points returned. When range count != ray count, then values are interpolated between rays.

double gazebo::sensors::GpuRaySensor::GetRangeMax ( ) const

Get the maximum range.

Returns
The maximum range
double gazebo::sensors::GpuRaySensor::GetRangeMin ( ) const

Get the minimum range.

Returns
The minimum range
double gazebo::sensors::GpuRaySensor::GetRangeResolution ( ) const

Get the range resolution If RangeResolution is 1, the number of simulated rays is equal to the number of returned range readings.

If it's less than 1, fewer simulated rays than actual returned range readings are used, the results are interpolated from two nearest neighbors, and vice versa.

Returns
The Range Resolution
void gazebo::sensors::GpuRaySensor::GetRanges ( std::vector< double > &  _ranges) const

Get all the ranges.

Parameters
[out]_rangeA vector that will contain all the range data
int gazebo::sensors::GpuRaySensor::GetRayCount ( ) const

Get the ray count.

Returns
The number of rays
double gazebo::sensors::GpuRaySensor::GetRayCountRatio ( ) const

Return the ratio of horizontal ray count to vertical ray count.

A ray count is the number of simulated rays. Whereas a range count is the total number of data points returned. When range count != ray count, then values are interpolated between rays.

double gazebo::sensors::GpuRaySensor::GetRetro ( int  _index) const

Get detected retro (intensity) value for a ray.

    Warning: If you are accessing all the ray data in a loop
    it's possible that the Ray will update in the middle of
    your access loop. This means some data will come from one
    scan, and some from another scan. You can solve this
    problem by using SetActive(false) <your accessor loop>
    SetActive(true).
Parameters
[in]_indexIndex of specific ray
Returns
Intensity value of ray
double gazebo::sensors::GpuRaySensor::GetVertFOV ( ) const

Get the vertical field-of-view.

double gazebo::sensors::GpuRaySensor::GetVertHalfAngle ( ) const

Get (vertical_max_angle + vertical_min_angle) * 0.5.

Returns
(vertical_max_angle + vertical_min_angle) * 0.5
math::Angle gazebo::sensors::GpuRaySensor::GetVerticalAngleMax ( ) const

Get the vertical scan line top angle.

Returns
The Maximum angle of the scan block
math::Angle gazebo::sensors::GpuRaySensor::GetVerticalAngleMin ( ) const

Get the vertical scan bottom angle.

Returns
The minimum angle of the scan block
int gazebo::sensors::GpuRaySensor::GetVerticalRangeCount ( ) const

Get the vertical scan line count.

Returns
The number of scan lines vertically
int gazebo::sensors::GpuRaySensor::GetVerticalRayCount ( ) const

Get the vertical scan line count.

Returns
The number of scan lines vertically
virtual void gazebo::sensors::GpuRaySensor::Init ( )
virtual

Initialize the ray.

Reimplemented from gazebo::sensors::Sensor.

bool gazebo::sensors::GpuRaySensor::IsHorizontal ( ) const

Gets if sensor is horizontal.

Returns
True if horizontal, false if not
virtual void gazebo::sensors::GpuRaySensor::Load ( const std::string &  _worldName,
sdf::ElementPtr _sdf 
)
virtual

Load the sensor with SDF parameters.

Parameters
[in]_sdfSDF Sensor parameters
[in]_worldNameName of world to load from
virtual void gazebo::sensors::GpuRaySensor::Load ( const std::string &  _worldName)
virtual

Load the sensor with default parameters.

Parameters
[in]_worldNameName of world to load from

Reimplemented from gazebo::sensors::Sensor.

void gazebo::sensors::GpuRaySensor::SetAngleMax ( double  _angle)

Set the scan maximum angle.

Parameters
[in]_angleThe maximum angle
void gazebo::sensors::GpuRaySensor::SetAngleMin ( double  _angle)

Set the scan minimum angle.

Parameters
[in]_angleThe minimum angle
void gazebo::sensors::GpuRaySensor::SetVerticalAngleMax ( double  _angle)

Set the vertical scan line top angle.

Parameters
[in]_angleThe Maximum angle of the scan block
void gazebo::sensors::GpuRaySensor::SetVerticalAngleMin ( double  _angle)

Set the vertical scan bottom angle.

Parameters
[in]_angleThe minimum angle of the scan block
virtual void gazebo::sensors::GpuRaySensor::UpdateImpl ( bool  _force)
protectedvirtual

Update the sensor information.

Parameters
[in]_forceTrue if update is forced, false if not

Reimplemented from gazebo::sensors::Sensor.

Member Data Documentation

unsigned int gazebo::sensors::GpuRaySensor::cameraCount
protected

Number of cameras.

sdf::ElementPtr gazebo::sensors::GpuRaySensor::cameraElem
protected

Camera SDF element.

double gazebo::sensors::GpuRaySensor::chfov
protected

Cos horizontal field-of-view.

double gazebo::sensors::GpuRaySensor::cvfov
protected

Cos vertical field-of-view.

double gazebo::sensors::GpuRaySensor::far
protected

Far clip plane.

double gazebo::sensors::GpuRaySensor::hfov
protected

Horizontal field-of-view.

sdf::ElementPtr gazebo::sensors::GpuRaySensor::horzElem
protected

Horizontal SDF element.

double gazebo::sensors::GpuRaySensor::horzHalfAngle
protected

Horizontal half angle.

unsigned int gazebo::sensors::GpuRaySensor::horzRangeCount
protected

Horizontal range count.

unsigned int gazebo::sensors::GpuRaySensor::horzRayCount
protected

Horizontal ray count.

bool gazebo::sensors::GpuRaySensor::isHorizontal
protected

True if the sensor is horizontal only.

double gazebo::sensors::GpuRaySensor::near
protected

Near clip plane.

double gazebo::sensors::GpuRaySensor::rangeCountRatio
protected

Range count ratio.

sdf::ElementPtr gazebo::sensors::GpuRaySensor::rangeElem
protected

Range SDF element.

double gazebo::sensors::GpuRaySensor::rayCountRatio
protected

Ray count ratio.

sdf::ElementPtr gazebo::sensors::GpuRaySensor::scanElem
protected

Scan SDF elementz.

sdf::ElementPtr gazebo::sensors::GpuRaySensor::vertElem
protected

Vertical SDF element.

double gazebo::sensors::GpuRaySensor::vertHalfAngle
protected

Vertical half angle.

unsigned int gazebo::sensors::GpuRaySensor::vertRangeCount
protected

Vertical range count.

unsigned int gazebo::sensors::GpuRaySensor::vertRayCount
protected

Vertical ray count.

double gazebo::sensors::GpuRaySensor::vfov
protected

Vertical field-of-view.


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