Gazebo Sim

API Reference

8.7.0
OpticalTactilePlugin Class Reference

Plugin that implements an optical tactile sensor. More...

#include <OpticalTactilePlugin.hh>

Public Member Functions

 OpticalTactilePlugin ()
 Constructor. More...
 
 ~OpticalTactilePlugin () override=default
 Destructor. More...
 
void Configure (const Entity &_entity, const std::shared_ptr< const sdf::Element > &_sdf, EntityComponentManager &_ecm, EventManager &_eventMgr) override
 Configure the system. More...
 
void PostUpdate (const UpdateInfo &_info, const EntityComponentManager &_ecm) override
 
void PreUpdate (const UpdateInfo &_info, EntityComponentManager &_ecm) override
 Documentation inherited. More...
 
- Public Member Functions inherited from System
 System ()=default
 Constructor. More...
 
virtual ~System ()=default
 Destructor. More...
 

Additional Inherited Members

- Public Types inherited from System
using PriorityType = int32_t
 Signed integer type used for specifying priority of the execution order of PreUpdate and Update phases. More...
 
- Static Public Attributes inherited from System
constexpr static PriorityType kDefaultPriority = {0}
 Default priority value for execution order of the PreUpdate and Update phases. More...
 
constexpr static std::string_view kPriorityElementName
 Name of the XML element from which the priority value will be parsed. More...
 

Detailed Description

Plugin that implements an optical tactile sensor.

It requires that contact sensor and depth camera be placed in at least one link on the model on which this plugin is attached.

Todo:
(anyone) Currently, the contacts returned from the physics engine (which tends to be sparse) and the normal forces separately computed from the depth camera (which is dense, resolution adjustable) are disjoint. It is left as future work to combine the two sets of data.

System Parameters

  • <enabled>: Set this to true so the plugin works from the start and doesn't need to be enabled. This element is optional, and the default value is true.
  • <namespace>: Namespace for transport topics/services. If there are more than one optical tactile plugins, their namespaces should be different. This element is optional, and the default value is "optical_tactile_sensor".
    • /<namespace>/enable: Service used to enable and disable the plugin.
    • /<namespace>/normal_forces: Topic where a message is published each time the normal forces are computed
  • <visualization_resolution>: Number n of pixels to skip when visualizing the forces. One vector representing a normal force is computed for every nth pixel. This element must be positive and it is optional. The default value is 30.
  • <force_length>: Length in meters of the forces visualized if <visualize_forces> is set to true. This parameter is optional, and the default value is 0.01.
  • <extended_sensing>: Extended sensing distance in meters. The sensor will output data coming from its collision geometry plus this distance. This element is optional, and the default value is 0.001.
  • <visualize_sensor>: Whether to visualize the sensor or not. This element is optional, and the default value is false.
  • <visualize_contacts>: Whether to visualize the contacts from the contact sensor based on physics. This element is optional, and the default value is false.
  • <visualize_forces>: Whether to visualize normal forces computed from the depth camera. This element is optional, and the default value is false.

Constructor & Destructor Documentation

◆ OpticalTactilePlugin()

Constructor.

◆ ~OpticalTactilePlugin()

~OpticalTactilePlugin ( )
overridedefault

Destructor.

Member Function Documentation

◆ Configure()

void Configure ( const Entity _entity,
const std::shared_ptr< const sdf::Element > &  _sdf,
EntityComponentManager _ecm,
EventManager _eventMgr 
)
overridevirtual

Configure the system.

Parameters
[in]_entityThe entity this plugin is attached to.
[in]_sdfThe SDF Element associated with this system plugin.
[in]_ecmThe EntityComponentManager of the given simulation instance.
[in]_eventMgrThe EventManager of the given simulation instance.

Implements ISystemConfigure.

◆ PostUpdate()

void PostUpdate ( const UpdateInfo _info,
const EntityComponentManager _ecm 
)
overridevirtual

Implements ISystemPostUpdate.

◆ PreUpdate()

void PreUpdate ( const UpdateInfo _info,
EntityComponentManager _ecm 
)
overridevirtual

Documentation inherited.

Implements ISystemPreUpdate.


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