Public Member Functions | Protected Member Functions | List of all members
gazebo::sensors::ContactSensor Class Reference

Contact sensor. More...

#include <sensors/sensors.hh>

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

Public Member Functions

 ContactSensor ()
 Constructor. More...
 
virtual ~ContactSensor ()
 Destructor. More...
 
msgs::Contacts Contacts () const
 Get all the contacts for the ContactSensor. More...
 
std::map< std::string,
physics::Contact
Contacts (const std::string &_collisionName) const
 Gets contacts of a collision. More...
 
unsigned int GetCollisionContactCount (const std::string &_collisionName) const
 Return the number of contacts for an observed collision. More...
 
unsigned int GetCollisionCount () const
 Get the number of collisions that the sensor is observing. More...
 
std::string GetCollisionName (unsigned int _index) const
 Get a collision name at index _index. More...
 
msgs::Contacts GetContacts () const GAZEBO_DEPRECATED(7.0)
 Get all the contacts for the ContactSensor. More...
 
std::map< std::string,
physics::Contact
GetContacts (const std::string &_collisionName) GAZEBO_DEPRECATED(7.0)
 Gets contacts of a collision. More...
 
virtual void Init ()
 Initialize the sensor. More...
 
virtual bool IsActive () const
 Returns true if sensor generation is active. More...
 
virtual void Load (const std::string &_worldName, sdf::ElementPtr _sdf)
 Load the sensor with SDF parameters. More...
 
virtual void Load (const std::string &_worldName)
 Load the sensor with default parameters. More...
 
- Public Member Functions inherited from gazebo::sensors::Sensor
 Sensor (SensorCategory _cat)
 Constructor. More...
 
virtual ~Sensor ()
 Destructor. More...
 
SensorCategory Category () const
 Get the category of the sensor. More...
 
event::ConnectionPtr ConnectUpdated (std::function< void()> _subscriber)
 Connect a signal that is triggered when the sensor is updated. More...
 
void DisconnectUpdated (event::ConnectionPtr &_c)
 Disconnect from a the updated signal. More...
 
void FillMsg (msgs::Sensor &_msg)
 fills a msgs::Sensor message. More...
 
SensorCategory GetCategory () const GAZEBO_DEPRECATED(7.0)
 Get the category of the sensor. More...
 
uint32_t GetId () const GAZEBO_DEPRECATED(7.0)
 Get the sensor's ID. More...
 
common::Time GetLastMeasurementTime () GAZEBO_DEPRECATED(7.0)
 Return last measurement time. More...
 
common::Time GetLastUpdateTime () GAZEBO_DEPRECATED(7.0)
 Return last update time. More...
 
std::string GetName () const GAZEBO_DEPRECATED(7.0)
 Get name. More...
 
NoisePtr GetNoise (const SensorNoiseType _type) const GAZEBO_DEPRECATED(7.0)
 Get the sensor's noise model for a specified noise type. More...
 
uint32_t GetParentId () const GAZEBO_DEPRECATED(7.0)
 Get the sensor's parent's ID. More...
 
std::string GetParentName () const GAZEBO_DEPRECATED(7.0)
 Returns the name of the sensor parent. More...
 
std::string GetScopedName () const GAZEBO_DEPRECATED(7.0)
 Get fully scoped name of the sensor. More...
 
virtual std::string GetTopic () const GAZEBO_DEPRECATED(7.0)
 Returns the topic name as set in SDF. More...
 
std::string GetType () const GAZEBO_DEPRECATED(7.0)
 Get sensor type. More...
 
double GetUpdateRate () GAZEBO_DEPRECATED(7.0)
 Get the update rate of the sensor. More...
 
bool GetVisualize () const GAZEBO_DEPRECATED(7.0)
 Return true if user requests the sensor to be visualized via tag: <visualize>true</visualize> in SDF. More...
 
std::string GetWorldName () const GAZEBO_DEPRECATED(7.0)
 Returns the name of the world the sensor is in. More...
 
uint32_t Id () const
 Get the sensor's ID. More...
 
common::Time LastMeasurementTime () const
 Return last measurement time. More...
 
common::Time LastUpdateTime () const
 Return last update time. More...
 
std::string Name () const
 Get name. More...
 
NoisePtr Noise (const SensorNoiseType _type) const
 Get the sensor's noise model for a specified noise type. More...
 
uint32_t ParentId () const
 Get the sensor's parent's ID. More...
 
std::string ParentName () const
 Returns the name of the sensor parent. More...
 
virtual ignition::math::Pose3d Pose () const
 Get the current pose. More...
 
void ResetLastUpdateTime ()
 Reset the lastUpdateTime to zero. More...
 
std::string ScopedName () const
 Get fully scoped name of the sensor. More...
 
virtual void SetActive (const bool _value)
 Set whether the sensor is active or not. More...
 
void SetParent (const std::string &_name, const uint32_t _id)
 Set the sensor's parent. More...
 
virtual void SetPose (const ignition::math::Pose3d &_pose)
 Set the current pose. More...
 
void SetUpdateRate (const double _hz)
 Set the update rate of the sensor. More...
 
virtual std::string Topic () const
 Returns the topic name as set in SDF. More...
 
std::string Type () const
 Get sensor type. More...
 
void Update (const bool _force)
 Update the sensor. More...
 
double UpdateRate () const
 Get the update rate of the sensor. More...
 
bool Visualize () const
 Return true if user requests the sensor to be visualized via tag: <visualize>true</visualize> in SDF. More...
 
std::string WorldName () const
 Returns the name of the world the sensor is in. More...
 

Protected Member Functions

virtual void Fini ()
 Finalize the sensor. More...
 
virtual bool UpdateImpl (const bool _force)
 This gets overwritten by derived sensor types. More...
 
- Protected Member Functions inherited from gazebo::sensors::Sensor
bool NeedsUpdate ()
 Return true if the sensor needs to be updated. More...
 

Additional Inherited Members

- Protected Attributes inherited from gazebo::sensors::Sensor
bool active
 True if sensor generation is active. More...
 
std::vector< event::ConnectionPtrconnections
 All event connections. More...
 
common::Time lastMeasurementTime
 Stores last time that a sensor measurement was generated; this value must be updated within each sensor's UpdateImpl. More...
 
common::Time lastUpdateTime
 Time of the last update. More...
 
transport::NodePtr node
 Node for communication. More...
 
std::map< SensorNoiseType,
NoisePtr
noises
 Noise added to sensor data. More...
 
uint32_t parentId
 The sensor's parent ID. More...
 
std::string parentName
 Name of the parent. More...
 
std::vector< SensorPluginPtrplugins
 All the plugins for the sensor. More...
 
ignition::math::Pose3d pose
 Pose of the sensor. More...
 
gazebo::rendering::ScenePtr scene
 Pointer to the Scene. More...
 
sdf::ElementPtr sdf
 Pointer the the SDF element for the sensor. More...
 
common::Time updatePeriod
 Desired time between updates, set indirectly by Sensor::SetUpdateRate. More...
 
gazebo::physics::WorldPtr world
 Pointer to the world. More...
 

Detailed Description

Contact sensor.

This sensor detects and reports contacts between objects

Constructor & Destructor Documentation

gazebo::sensors::ContactSensor::ContactSensor ( )

Constructor.

virtual gazebo::sensors::ContactSensor::~ContactSensor ( )
virtual

Destructor.

Member Function Documentation

msgs::Contacts gazebo::sensors::ContactSensor::Contacts ( ) const

Get all the contacts for the ContactSensor.

Returns
Message that contains contact information between collision pairs.

During ODEPhysics::UpdateCollisions, all collision pairs in the world are pushed into a buffer within ContactManager. Subsequently, World::Update invokes ContactManager::PublishContacts to publish all contacts generated within a timestep onto Gazebo topic ~/physics/contacts.

Each ContactSensor subscribes to the Gazebo ~/physics/contacts topic, retrieves all contact pairs in a time step and filters them wthin ContactSensor::OnContacts against <collision> body name specified by the ContactSensor SDF. All collision pairs between ContactSensor <collision> body and other bodies in the world are stored in an array inside contacts.proto.

Within each element of the contact.proto array inside contacts.proto, list of collisions between collision bodies (collision1 and collision 2) are stored in an array of elements, (position, normal, depth, wrench). A timestamp has also been added (time). Details are described below:

  • string collision1 name of the first collision object.
  • string collision2 name of the second collision object.
  • Vector3d position position of the contact joint in inertial frame.
  • Vector3d normal normal of the contact joint in inertial frame.
  • double depth intersection (penetration) depth of two collision bodies.
  • JointWrench wrench Forces and torques acting on both collision bodies. See joint_wrench.proto for details. The forces and torques are applied at the CG of perspective links for each collision body, specified in the inertial frame.
  • Time time time at which this contact happened.
std::map<std::string, physics::Contact> gazebo::sensors::ContactSensor::Contacts ( const std::string &  _collisionName) const

Gets contacts of a collision.

Parameters
[in]_collisionNameName of collision
Returns
Container of contacts
virtual void gazebo::sensors::ContactSensor::Fini ( )
protectedvirtual

Finalize the sensor.

Reimplemented from gazebo::sensors::Sensor.

unsigned int gazebo::sensors::ContactSensor::GetCollisionContactCount ( const std::string &  _collisionName) const

Return the number of contacts for an observed collision.

Parameters
[in]_collisionNameThe name of the observed collision.
Returns
The collision contact count.
unsigned int gazebo::sensors::ContactSensor::GetCollisionCount ( ) const

Get the number of collisions that the sensor is observing.

Returns
Number of collisions.
std::string gazebo::sensors::ContactSensor::GetCollisionName ( unsigned int  _index) const

Get a collision name at index _index.

Parameters
[in]_indexIndex of collision in collection of collisions.
Returns
name of collision.
msgs::Contacts gazebo::sensors::ContactSensor::GetContacts ( ) const

Get all the contacts for the ContactSensor.

Returns
Message that contains contact information between collision pairs.

During ODEPhysics::UpdateCollisions, all collision pairs in the world are pushed into a buffer within ContactManager. Subsequently, World::Update invokes ContactManager::PublishContacts to publish all contacts generated within a timestep onto Gazebo topic ~/physics/contacts.

Each ContactSensor subscribes to the Gazebo ~/physics/contacts topic, retrieves all contact pairs in a time step and filters them wthin ContactSensor::OnContacts against <collision> body name specified by the ContactSensor SDF. All collision pairs between ContactSensor <collision> body and other bodies in the world are stored in an array inside contacts.proto.

Within each element of the contact.proto array inside contacts.proto, list of collisions between collision bodies (collision1 and collision 2) are stored in an array of elements, (position, normal, depth, wrench). A timestamp has also been added (time). Details are described below:

  • string collision1 name of the first collision object.
  • string collision2 name of the second collision object.
  • Vector3d position position of the contact joint in inertial frame.
  • Vector3d normal normal of the contact joint in inertial frame.
  • double depth intersection (penetration) depth of two collision bodies.
  • JointWrench wrench Forces and torques acting on both collision bodies. See joint_wrench.proto for details. The forces and torques are applied at the CG of perspective links for each collision body, specified in the inertial frame.
  • Time time time at which this contact happened.
    Deprecated:
    See Contacts()
std::map<std::string, physics::Contact> gazebo::sensors::ContactSensor::GetContacts ( const std::string &  _collisionName)

Gets contacts of a collision.

Parameters
[in]_collisionNameName of collision
Returns
Container of contacts
Deprecated:
See Contacts(const std::string &_collisionName)
virtual void gazebo::sensors::ContactSensor::Init ( )
virtual

Initialize the sensor.

Reimplemented from gazebo::sensors::Sensor.

virtual bool gazebo::sensors::ContactSensor::IsActive ( ) const
virtual

Returns true if sensor generation is active.

Returns
True if active, false if not.

Reimplemented from gazebo::sensors::Sensor.

virtual void gazebo::sensors::ContactSensor::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

Reimplemented from gazebo::sensors::Sensor.

virtual void gazebo::sensors::ContactSensor::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.

virtual bool gazebo::sensors::ContactSensor::UpdateImpl ( const bool  )
protectedvirtual

This gets overwritten by derived sensor types.

This function is called during Sensor::Update. And in turn, Sensor::Update is called by SensorManager::Update

Parameters
[in]_forceTrue if update is forced, false if not
Returns
True if the sensor was updated.

Reimplemented from gazebo::sensors::Sensor.


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