esp::physics namespace

Physics library.

Classes

template<class T>
class AbstractManagedPhysicsObject
Base class template for wrapper for physics objects of all kinds to enable Managed Container access.
template<class T>
class AbstractManagedRigidBase
Class template describing wrapper for RigidBase constructions. Provides bindings for all RigidBase functionality.
class ArticulatedLink
A single rigid link in a kinematic chain. Abstract class. Feature attaches to a SceneNode.
class ArticulatedObject
An articulated rigid object (i.e. kinematic chain). Abstract class to be derived by physics simulator specific implementations.
class ArticulatedObjectManager
Class template defining responsibilities and functionality shared for managing all esp::physics::ManagedArticulatedObject wrappers.
class BulletArticulatedLink
class BulletArticulatedObject
class BulletBase
This class is intended to implement bullet-specific.
class BulletCollisionHelper
class BulletPhysicsManager
Dynamic stage and object manager interfacing with Bullet physics engine: https://github.com/bulletphysics/bullet3.
class BulletRigidObject
An individual rigid object instance implementing an interface with Bullet physics to enable dynamic objects. See btRigidBody.
class BulletRigidStage
An individual rigid stage instance implementing an interface with Bullet physics to enable dynamics. See btCollisionObject.
class BulletURDFImporter
Derived importer class for loading URDF into Bullet physics.
struct childParentIndex
struct to encapsulate mapping between child and parent links ids.
class CollisionGroupHelper
A convenience class with all static functions providing an interface for customizing collision masking behavior for simulated objects.
struct ContactPointData
based on Bullet b3ContactPointData
struct JointLimitConstraintInfo
Structure to hold joint limit constraint info during construction.
struct JointMotor
A general wrapper class for JointMotor (e.g. PD control) implementation.
struct JointMotorSettings
Stores JointMotor (i.e. per-DoF PD control) parameters for creation and updates.
class ManagedArticulatedObject
Class describing wrapper for ArticulatedObject constructions. Provides bindings for all ArticulatedObject-specific functionality.
class ManagedBulletArticulatedObject
Class describing wrapper for dynamic ArticulatedObject constructions using the Bullet library. Provides bindings for all ArticulatedObject-specific functionality.
class ManagedBulletRigidObject
Class describing wrapper for RigidObject constructions. Provides bindings for all RigidObject-specific functionality.
class ManagedRigidObject
Class describing wrapper for RigidObject constructions. Provides bindings for all RigidObject-specific functionality.
class PhysicsManager
Kinematic and dynamic scene and object manager. Responsible for tracking, updating, and synchronizing the state of the physical world and all non-static geometry in the scene as well as interfacing with specific physical simulation implementations.
class PhysicsObjectBase
template<class T>
class PhysicsObjectBaseManager
Class template defining responsibilities and functionality for managineg object wrappers specializing esp::physics::AbstractManagedPhysicsObject template.
struct RaycastResults
Holds information about all ray hit instances from a ray cast.
struct RayHitInfo
Holds information about one ray hit instance.
class RigidBase
This class specifies the functionality expected of rigid objects and stages, particularly with regard to dynamic simulation, if such a library, such as bullet, is available.
template<class T>
class RigidBaseManager
Class template defining responsibilities and functionality shared for managing all esp::physics::AbstractManagedRigidBase wrappers.
struct RigidConstraintSettings
Stores rigid constraint parameters for creation and updates.
class RigidObject
A RigidBase representing an individual rigid object instance attached to a SceneNode, updating its state through simulation. This may be a esp::physics::MotionType::STATIC scene collision geometry or an object of any MotionType which can interact with other members of a physical world. Must have a collision mesh. By default, a RigidObject is MotionType::KINEMATIC without an underlying simulator implementation. Derived classes can be used to introduce specific implementations of dynamics.
class RigidObjectManager
Class template defining responsibilities and functionality shared for managing all esp::physics::ManagedRigidObject wrappers.
class RigidStage
A RigidBase representing an individual rigid stage instance attached to a SceneNode. This construction currently may only be esp::physics::MotionType::STATIC.
struct SimulationContactResultCallback
Implements Bullet physics btCollisionWorld::ContactResultCallback interface.
class URDFImporter
Virtual base class for loading URDF into various simulator implementations.
struct URDFToBulletCached
Structure to hold construction time multi-body data.
struct VelocityControl
Convenience struct for applying constant velocity control to a rigid body.

Enums

enum class JointType: int { Revolute = 0, Prismatic = 1, Spherical = 2, Planar = 3, Fixed = 4, Invalid }
enum class JointMotorType { SingleDof, Spherical }
describes the type of a motor for generality.
enum class CollisionGroup: unsigned int { Default = 1, Static = 1 << 1, Kinematic = 1 << 2, Dynamic = 1 << 3, Robot = 1 << 4, Noncollidable = 1 << 5, UserGroup0 = 1 << 6, UserGroup1 = 1 << 7, UserGroup2 = 1 << 8, UserGroup3 = 1 << 9, UserGroup4 = 1 << 10, UserGroup5 = 1 << 11, UserGroup6 = 1 << 12, UserGroup7 = 1 << 13, UserGroup8 = 1 << 14, UserGroup9 = 1 << 15 }
Defined available collision groups with bitwise integer correspondance for use in collision filtering masks.
enum class RigidConstraintType { PointToPoint, Fixed }
describes the type of a rigid constraint.
enum class MotionType { UNDEFINED = -1, STATIC, KINEMATIC, DYNAMIC }
Motion type of a esp::physics::RigidObject. Defines its treatment by the simulator and operations which can be performed on it.
enum ConvertURDFFlags { CUF_USE_SDF = 1, CUF_USE_URDF_INERTIA = 2, CUF_USE_MJCF = 4, CUF_USE_SELF_COLLISION = 8, CUF_USE_SELF_COLLISION_EXCLUDE_PARENT = 16, CUF_USE_SELF_COLLISION_EXCLUDE_ALL_PARENTS = 32, CUF_RESERVED = 64, CUF_USE_IMPLICIT_CYLINDER = 128, CUF_GLOBAL_VELOCITIES_MB = 256, CUF_MJCF_COLORS_FROM_FILE = 512, CUF_ENABLE_CACHED_GRAPHICS_SHAPES = 1024, CUF_ENABLE_SLEEPING = 2048, CUF_INITIALIZE_SAT_FEATURES = 4096, CUF_USE_SELF_COLLISION_INCLUDE_PARENT = 8192, CUF_PARSE_SENSORS = 16384, CUF_USE_MATERIAL_COLORS_FROM_MTL = 32768, CUF_USE_MATERIAL_TRANSPARENCY_FROM_MTL = 65536, CUF_MAINTAIN_LINK_ORDER = 131072 }

Typedefs

using CollisionGroups = Corrade::Containers::EnumSet<CollisionGroup>

Functions

void initPhysicsBindings(pybind11::module& m)
Specify bindings for esp::physics::VelocityControl , esp::physics::JointMotorSettings , esp::physics::RigidConstraintSettings , esp::physics::RayHitInfo , esp::physics::RaycastResults , esp::physics::ContactPointData , and esp::physics::CollisionGroupHelper.
void initPhysicsObjectBindings(pybind11::module& m)
Specify bindings for the various esp::physics wrapper objects.
void initPhysicsWrapperManagerBindings(pybind11::module& m)
Specify bindings for the various esp::physics wrapper object managers.
auto espLoggingSubsystem() -> logging::Subsystem
void processContactParameters(const metadata::URDF::LinkContactInfo& contactInfo, btCollisionObject* col)

Enum documentation

enum class esp::physics::JointType: int

copy of eFeatherstoneJointType from bullet3/src/BulletDynamics/Featherstone/btMultiBodyLink.h for access convenience w/o Bullet install.

enum class esp::physics::JointMotorType

describes the type of a motor for generality.

enum class esp::physics::CollisionGroup: unsigned int

Defined available collision groups with bitwise integer correspondance for use in collision filtering masks.

Contains several named default groups used by Habitat-sim and a set of unused user groups for custom behavior.

Enumerators
Default

Default group for unspecified object (e.g. raycast)

Static

Static objects should not change state.

Kinematic

Kinematic objects are updated manually.

Dynamic

Dynamic objects are integrated by dynamic simulation.

Robot

convenience groups to separate robots from free objects

Noncollidable

convenience group for objects which should not collide with anything

UserGroup0

UserGroup1

UserGroup2

UserGroup3

UserGroup4

UserGroup5

UserGroup6

UserGroup7

UserGroup8

UserGroup9

enum class esp::physics::RigidConstraintType

describes the type of a rigid constraint.

Enumerators
PointToPoint

lock a point in one frame to a point in another with no orientation constraint

Fixed

fix one frame to another constraining relative position and orientation

enum class esp::physics::MotionType

Motion type of a esp::physics::RigidObject. Defines its treatment by the simulator and operations which can be performed on it.

Enumerators
UNDEFINED

Refers to an error (such as a query to non-existing object) or an unknown/unspecified value.

STATIC

The object is not expected to move and should not allow kinematic updates. Likely treated as static collision geometry. See esp::physics::RigidStage.

KINEMATIC

The object is expected to move kinematically, but is not simulated. Default behavior of esp::physics::RigidObject with no physics simulator defined.

DYNAMIC

The object is simulated and can, but should not be, updated kinematically . Default behavior of RigidObject with a physics simulator defined. See BulletRigidObject.

enum esp::physics::ConvertURDFFlags

Typedef documentation

Function documentation

void esp::physics::initPhysicsObjectBindings(pybind11::module& m)

Specify bindings for the various esp::physics wrapper objects.

void esp::physics::initPhysicsWrapperManagerBindings(pybind11::module& m)

Specify bindings for the various esp::physics wrapper object managers.