Contact sensor. More...
#include <sensors/sensors.hh>
Inherits Sensor.
Public Member Functions | |
ContactSensor () | |
Constructor. More... | |
virtual | ~ContactSensor () |
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... | |
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... | |
void | DisconnectUpdated (event::ConnectionPtr &_c) GAZEBO_DEPRECATED(8.0) |
Disconnect from a the updated signal. More... | |
void | FillMsg (msgs::Sensor &_msg) |
fills a msgs::Sensor message. 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... | |
uint32_t | Id () const |
Get the sensor's ID. More... | |
virtual void | Init () |
Initialize the sensor. More... | |
virtual bool | IsActive () const |
Returns true if sensor generation is active. More... | |
common::Time | LastMeasurementTime () const |
Return last measurement time. More... | |
common::Time | LastUpdateTime () const |
Return last update time. 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... | |
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... | |
bool | NeedsUpdate () |
Return true if the sensor needs to be updated. More... | |
virtual bool | UpdateImpl (const bool _force) |
This gets overwritten by derived sensor types. More... | |
Protected Attributes | |
bool | active |
True if sensor generation is active. More... | |
std::vector< event::ConnectionPtr > | connections |
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... | |
ignition::transport::Node | nodeIgn |
Ignition transport node. 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< SensorPluginPtr > | plugins |
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... | |
Contact sensor.
This sensor detects and reports contacts between objects
ContactSensor | ( | ) |
Constructor.
|
virtual |
Destructor.
|
inherited |
|
inherited |
Connect a signal that is triggered when the sensor is updated.
[in] | _subscriber | Callback that receives the signal. |
msgs::Contacts Contacts | ( | ) | const |
Get all the contacts for the ContactSensor.
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:
std::map<std::string, physics::Contact> Contacts | ( | const std::string & | _collisionName | ) | const |
Gets contacts of a collision.
[in] | _collisionName | Name of collision |
|
inherited |
Disconnect from a the updated signal.
[in] | _c | The connection to disconnect |
|
inherited |
fills a msgs::Sensor message.
[out] | _msg | Message to fill. |
|
protectedvirtual |
Finalize the sensor.
Reimplemented from Sensor.
unsigned int GetCollisionContactCount | ( | const std::string & | _collisionName | ) | const |
Return the number of contacts for an observed collision.
[in] | _collisionName | The name of the observed collision. |
unsigned int GetCollisionCount | ( | ) | const |
Get the number of collisions that the sensor is observing.
std::string GetCollisionName | ( | unsigned int | _index | ) | const |
Get a collision name at index _index.
[in] | _index | Index of collision in collection of collisions. |
|
inherited |
Get the sensor's ID.
|
virtual |
Initialize the sensor.
Reimplemented from Sensor.
|
virtual |
Returns true if sensor generation is active.
Reimplemented from Sensor.
|
inherited |
Return last measurement time.
|
inherited |
Return last update time.
|
virtual |
|
virtual |
Load the sensor with default parameters.
[in] | _worldName | Name of world to load from. |
Reimplemented from Sensor.
|
inherited |
Get name.
|
protectedinherited |
Return true if the sensor needs to be updated.
|
inherited |
Get the sensor's noise model for a specified noise type.
[in] | _type | Index of the noise type. Refer to SensorNoiseType enumeration for possible indices |
|
inherited |
Get the sensor's parent's ID.
|
inherited |
Returns the name of the sensor parent.
The parent name is set by Sensor::SetParent.
|
virtualinherited |
|
inherited |
Reset the lastUpdateTime to zero.
|
inherited |
Get fully scoped name of the sensor.
|
virtualinherited |
Set whether the sensor is active or not.
[in] | _value | True if active, false if not. |
|
inherited |
Set the sensor's parent.
[in] | _name | The sensor's parent's name. |
[in] | _id | The sensor's parent's ID. |
|
virtualinherited |
|
inherited |
Set the update rate of the sensor.
[in] | _hz | update rate of sensor. |
|
virtualinherited |
Returns the topic name as set in SDF.
Reimplemented in GpuRaySensor, RaySensor, CameraSensor, ForceTorqueSensor, LogicalCameraSensor, MultiCameraSensor, SonarSensor, and WirelessTransceiver.
|
inherited |
Get sensor type.
|
inherited |
Update the sensor.
[in] | _force | True to force update, false otherwise. |
|
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
[in] | _force | True if update is forced, false if not |
Reimplemented from Sensor.
|
inherited |
Get the update rate of the sensor.
|
inherited |
Return true if user requests the sensor to be visualized via tag: <visualize>true</visualize> in SDF.
|
inherited |
Returns the name of the world the sensor is in.
|
protectedinherited |
True if sensor generation is active.
|
protectedinherited |
All event connections.
|
protectedinherited |
Stores last time that a sensor measurement was generated; this value must be updated within each sensor's UpdateImpl.
|
protectedinherited |
Time of the last update.
|
protectedinherited |
Node for communication.
|
protectedinherited |
Ignition transport node.
|
protectedinherited |
Noise added to sensor data.
|
protectedinherited |
The sensor's parent ID.
|
protectedinherited |
Name of the parent.
|
protectedinherited |
All the plugins for the sensor.
|
protectedinherited |
Pose of the sensor.
|
protectedinherited |
Pointer to the Scene.
|
protectedinherited |
Pointer the the SDF element for the sensor.
|
protectedinherited |
Desired time between updates, set indirectly by Sensor::SetUpdateRate.
|
protectedinherited |
Pointer to the world.