Gazebo Sim

API Reference

10.6.0
Physics Class Reference

Base class for a System. More...

#include <gz/sim/systems/Physics.hh>

Public Member Functions

 Physics ()
 Constructor.
 
 ~Physics () override
 Destructor.
 
void Configure (const Entity &_entity, const std::shared_ptr< const sdf::Element > &_sdf, EntityComponentManager &_ecm, EventManager &_eventMgr) final
 Configure the system.
 
System::PriorityType ConfigurePriority () final
 Documentation inherited.
 
void Reset (const UpdateInfo &_info, EntityComponentManager &_ecm) final
 
void Update (const UpdateInfo &_info, EntityComponentManager &_ecm) final
 
- Public Member Functions inherited from System
 System ()=default
 Constructor.
 
virtual ~System ()=default
 Destructor.
 
- Public Member Functions inherited from ISystemConfigure
virtual ~ISystemConfigure ()=default
 
- Public Member Functions inherited from ISystemConfigurePriority
virtual ~ISystemConfigurePriority ()=default
 
- Public Member Functions inherited from ISystemReset
virtual ~ISystemReset ()=default
 
- Public Member Functions inherited from ISystemUpdate
virtual ~ISystemUpdate ()=default
 

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.
 
- Static Public Attributes inherited from System
static constexpr PriorityType kDefaultPriority = {0}
 Default priority value for execution order of the PreUpdate and Update phases.
 
static constexpr std::string_view kPriorityElementName
 Name of the XML element from which the priority value will be parsed.
 

Detailed Description

Base class for a System.

System Parameters

  • <include_entity_names>: Optional. When set to false, the name of colliding entities is not populated in the contacts. Remains true by default.
  • <enforce_fixed_constraint> (optional): Applicable only when the gz-physics bullet-featherstone-plugin is used as the physics engine. If true, the system will enforce the fixed constraint between the child and parent entities of the fixed joint as if the child is 'welded' to the parent. Fixed constraints can be violated, e.g. due to large external forces, so this setting tells the phyics engine to manually correct and maintain the relative pose between the parent and child entities. Defaults to false.
  • <kinematic> (optional): Settings for kinematic links. Applicable only if the physics engine supports kinematic links (e.g. bullet-featherstone).
    • <enabled>: If true, links are kinematic unless their SDF sets <kinematic>false</kinematic>; if false (default), links are dynamic unless their SDF sets <kinematic>true</kinematic>. Kinematic links do not respond to forces like gravity or contacts, they are moved by setting their pose or velocity. Note that this is not the <kinematic> element of a link: the default is applied by setting that element on the links that do not set it, in the SDF the model is created from. Links of static models are left alone, and links created at runtime without SDF take the default. When the default is kinematic, the links kept dynamic by their SDF are listed in a message.
    • <contacts><enabled>: If false, contacts between kinematic links and static or other kinematic links are not detected. These contacts have no effect on the simulation, they can only be reported, e.g. by contact sensors, and detecting them costs collision detection time on every step for as long as the links overlap, which for kinematic links is forever. Contacts between kinematic and dynamic links are always detected, and a collision that sets //collision/surface/contact/collide_without_contact keeps the contacts of its kinematic link detected. Defaults to true.

Example

<plugin
filename="gz-sim-physics-system"
name="systems::Physics">
<contacts>
<include_entity_names>false</include_entity_names>
</contacts>
<enforce_fixed_constraint>false</enforce_fixed_constraint>
<kinematic>
<enabled>false</enabled>
<contacts>
<enabled>true</enabled>
</contacts>
</kinematic>
</plugin>

Constructor & Destructor Documentation

◆ Physics()

Physics ( )
explicit

Constructor.

◆ ~Physics()

~Physics ( )
override

Destructor.

Member Function Documentation

◆ Configure()

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

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.

◆ ConfigurePriority()

System::PriorityType ConfigurePriority ( )
finalvirtual

Documentation inherited.

Implements ISystemConfigurePriority.

◆ Reset()

void Reset ( const UpdateInfo &  _info,
EntityComponentManager &  _ecm 
)
finalvirtual

Implements ISystemReset.

◆ Update()

void Update ( const UpdateInfo &  _info,
EntityComponentManager &  _ecm 
)
finalvirtual

Implements ISystemUpdate.


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