Gazebo Sim

API Reference

8.7.0
ApplyLinkWrench Class Reference

Exposes transport topics and SDF params for applying forces and torques to links in simulation. It should be attached to a world. More...

#include <ApplyLinkWrench.hh>

Public Member Functions

 ApplyLinkWrench ()
 Constructor. More...
 
 ~ApplyLinkWrench () 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 PreUpdate (const UpdateInfo &_info, EntityComponentManager &_ecm) override
 
- 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

Exposes transport topics and SDF params for applying forces and torques to links in simulation. It should be attached to a world.

The target link is defined in each message. If a link entity is provided, that will receive a wrench. If a model is provided, its canonical link will receive it. No other entity types are supported.

Forces and torques are expressed in world coordinates, and the force offset is expressed in the link frame.

Topics

  • /world/<world_name>/wrench
    • Message type: msgs::EntityWrench
    • Effect: Applies the given wrench during a single time step.
  • /world/<world_name>/wrench/persistent
    • Message type: msgs::EntityWrench
    • Effect: Keeps applying the given wrench every time step. Persistent wrenches can be applied to entities that aren't in simulation yet, and will start taking effect once they do.
  • /world/<world_name>/wrench/clear
    • Message type: msgs::Entity
    • Effect: Clears any persistent wrenches that are being applied to the given entity.

System Parameters

Persistent wrenches can be defined from SDF, for example:

<persistent>
<entity_name>box</entity_name>
<entity_type>model</entity_type>
<force>-10 0 0</force>
<torque>0 0 0.1</torque>
</persistent>

Constructor & Destructor Documentation

◆ ApplyLinkWrench()

Constructor.

◆ ~ApplyLinkWrench()

~ApplyLinkWrench ( )
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.

◆ PreUpdate()

void PreUpdate ( const UpdateInfo _info,
EntityComponentManager _ecm 
)
overridevirtual

Implements ISystemPreUpdate.


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