BulletPhysicsWorld Class Reference

The BulletPhysicsWorld class encapsulates the whole physics simulation and the corresponding data. More...

#include <ArmarXSimulation/components/Simulator/BulletPhysicsWorld.h>

+ Inheritance diagram for BulletPhysicsWorld:

Classes

struct  DynamicsRobotInfo
 

Public Member Functions

void activateObject (const std::string &objectName) override
 
void actuateRobotJoints (const std::string &robotName, const std::map< std::string, float > &angles, const std::map< std::string, float > &velocities) override
 
void actuateRobotJointsPos (const std::string &robotName, const std::map< std::string, float > &angles) override
 
void actuateRobotJointsTorque (const std::string &robotName, const std::map< std::string, float > &torques) override
 
void actuateRobotJointsVel (const std::string &robotName, const std::map< std::string, float > &velocities) override
 
VirtualRobot::RobotPtr adaptRobotToWorld (VirtualRobot::RobotPtr robot) override
 
void applyForceObject (const std::string &objectName, const Eigen::Vector3f &force) override
 
void applyForceRobotNode (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &force) override
 
void applyTorqueObject (const std::string &objectName, const Eigen::Vector3f &torque) override
 
void applyTorqueRobotNode (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &torque) override
 
 BulletPhysicsWorld ()
 
std::vector< SimDynamics::DynamicsEngine::DynamicsContactInfo > copyContacts () override
 
void enableLogging (const std::string &robotName, const std::string &logFile) override
 
int getContactCount () override
 
armarx::DistanceInfo getDistance (const std::string &robotName, const std::string &robotNodeName, const std::string &worldObjectName) override
 
std::vector< SimDynamics::DynamicsObjectPtr > getDynamicObjects ()
 
virtual SimDynamics::DynamicsRobotPtr getDynamicRobot (const std::string &robotName)
 
SimDynamics::DynamicsObjectPtr getDynamicsObject (const std::string &objectName)
 
SimDynamics::BulletEnginePtr getEngine ()
 
int getFixedTimeStepMS () override
 
SimDynamics::DynamicsObjectPtr getObject (const std::string &objectName)
 
Eigen::Matrix4f getObjectPose (const std::string &objectName) override
 
std::vector< VirtualRobot::SceneObjectPtr > getObjects () override
 
std::vector< std::string > getObstacleNames () override
 
VirtualRobot::RobotPtr getRobot (const std::string &robotName) override
 
Eigen::Vector3f getRobotAngularVelocity (const std::string &robotName, const std::string &nodeName) override
 
ForceTorqueDataSeq getRobotForceTorqueSensors (const std::string &robotName) override
 
float getRobotJointAngle (const std::string &robotName, const std::string &nodeName) override
 
std::map< std::string, floatgetRobotJointAngles (const std::string &robotName) override
 
float getRobotJointLimitHi (const std::string &robotName, const std::string &nodeName) override
 
float getRobotJointLimitLo (const std::string &robotName, const std::string &nodeName) override
 
std::map< std::string, floatgetRobotJointTorques (const std::string &robotName) override
 
std::map< std::string, floatgetRobotJointVelocities (const std::string &robotName) override
 
float getRobotJointVelocity (const std::string &robotName, const std::string &nodeName) override
 
Eigen::Vector3f getRobotLinearVelocity (const std::string &robotName, const std::string &nodeName) override
 
float getRobotMass (const std::string &robotName) override
 
float getRobotMaxTorque (const std::string &robotName, const std::string &nodeName) override
 
std::vector< std::string > getRobotNames () override
 
armarx::DistanceInfo getRobotNodeDistance (const std::string &robotName, const std::string &robotNodeName1, const std::string &robotNodeName2) override
 
Eigen::Matrix4f getRobotNodePose (const std::string &robotName, const std::string &robotNodeName) override
 
Eigen::Matrix4f getRobotPose (const std::string &robotName) override
 
std::map< std::string, VirtualRobot::RobotPtrgetRobots () override
 
bool hasObject (const std::string &instanceName) override
 
bool hasRobot (const std::string &robotName) override
 
bool hasRobotNode (const std::string &robotName, const std::string &robotNodeName) override
 
virtual void initialize (int stepSizeMS, int bulletFixedTimeStepMS, int bulletFixedTimeStepMaxNrLoops, float maxRealTimeSimSpeed=1, bool floorPlane=false, std::string floorTexture=std::string())
 
void setObjectPose (const std::string &objectName, const Eigen::Matrix4f &globalPose) override
 
void setObjectSimType (const std::string &objectName, VirtualRobot::SceneObject::Physics::SimulationType simType) override
 
void setRobotAngularVelocity (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
 
void setRobotAngularVelocityRobotRootFrame (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
 
void setRobotLinearVelocity (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
 
void setRobotLinearVelocityRobotRootFrame (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
 
void setRobotMaxTorque (const std::string &robotName, const std::string &nodeName, float maxTorque) override
 
void setRobotNodeSimType (const std::string &robotName, const std::string &robotNodeName, VirtualRobot::SceneObject::Physics::SimulationType simType) override
 
void setRobotPose (const std::string &robotName, const Eigen::Matrix4f &globalPose) override
 
void stepPhysicsFixedTimeStep () override
 Perform one simulation step. More...
 
void stepPhysicsRealTime () override
 Perform one simulation step. More...
 
FramedPosePtr toFramedPose (const Eigen::Matrix4f &globalPose, const std::string &robotName, const std::string &frameName) override
 toFramedPose Constructs a framed pose More...
 
 ~BulletPhysicsWorld () override
 
- Public Member Functions inherited from SimulatedWorld
virtual bool addObstacle (const std::string &filename, const Eigen::Matrix4f &pose=Eigen::Matrix4f::Identity(), VirtualRobot::SceneObject::Physics::SimulationType simType=VirtualRobot::SceneObject::Physics::eUnknown, const std::string &localFilename="")
 Load and add an Obstacle (VirtualRobot xml file). More...
 
virtual bool addObstacle (VirtualRobot::SceneObjectPtr o, VirtualRobot::SceneObject::Physics::SimulationType simType=VirtualRobot::SceneObject::Physics::eUnknown, const std::string &filename="", const std::string &objectClassName="", ObjectVisuPrimitivePtr primitiveData={}, const std::string &project="")
 
virtual bool addRobot (std::string &robotInstanceName, const std::string &filename, Eigen::Matrix4f pose=Eigen::Matrix4f::Identity(), const std::string &filenameLocal="", double pid_p=10.0, double pid_i=0, double pid_d=0, bool staticRobot=false, float scaling=1.0f, bool colModel=false, const std::map< std::string, float > &initConfig={}, bool selfCollisions=false)
 Load and add a robot. More...
 
virtual bool addRobot (VirtualRobot::RobotPtr robot, double pid_p, double pid_i, double pid_d, const std::string &filename, bool staticRobot=false, float scaling=1.0f, bool colModel=false, bool selfCollisions=false)
 
virtual bool addScene (const std::string &filename, VirtualRobot::SceneObject::Physics::SimulationType simType=VirtualRobot::SceneObject::Physics::eUnknown)
 Load and add an Scene (VirtualRobot xml file). More...
 
virtual bool addScene (VirtualRobot::ScenePtr scene, VirtualRobot::SceneObject::Physics::SimulationType simType=VirtualRobot::SceneObject::Physics::eUnknown)
 
virtual SimulatedWorldData copyReportData ()
 
virtual SceneVisuData copySceneVisuData ()
 copySceneVisuData Creates a copy of the visualization data More...
 
virtual double getCurrentSimTime ()
 
virtual int getObjectCount ()
 
virtual SimulatedWorldDatagetReportData ()
 
virtual int getRobotJointAngleCount ()
 
virtual ScopedRecursiveLockPtr getScopedEngineLock (const std::string &callStr)
 
virtual ScopedRecursiveLockPtr getScopedSyncLock (const std::string &callStr)
 
virtual float getSimTime ()
 
virtual float getSimulationStepDuration ()
 getSimulationStepDuration More...
 
virtual float getSimulationStepTimeMeasured ()
 getSimulationStepTimeMeasured More...
 
virtual float getSyncEngineTime ()
 
virtual void objectGrasped (const std::string &robotName, const std::string &robotNodeName, const std::string &objectName)
 create a joint More...
 
virtual void objectReleased (const std::string &robotName, const std::string &robotNodeName, const std::string &objectName)
 remove a joint More...
 
virtual bool removeObstacle (const std::string &name)
 
virtual bool removeObstacles ()
 
virtual bool removeRobot (const std::string &robotName)
 
virtual bool removeRobots ()
 
virtual bool resetData ()
 resetData Clears all data More...
 
virtual void resetSimTime ()
 
virtual void setupFloor (bool enable, const std::string &floorTexture)
 
 SimulatedWorld ()
 
virtual bool synchronizeSimulationData ()
 synchronizeSimulationData Update the sim data according to the internal physics models. More...
 
virtual void updateContacts (bool enable)
 
virtual ~SimulatedWorld () override=default
 
- Public Member Functions inherited from Logging
SpamFilterDataPtr deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const
 disables the logging for the current line for the given amount of seconds. More...
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More...
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 

Protected Member Functions

bool addObstacleEngine (VirtualRobot::SceneObjectPtr o, VirtualRobot::SceneObject::Physics::SimulationType simType) override
 
bool addRobotEngine (VirtualRobot::RobotPtr robot, double pid_p, double pid_i, double pid_d, const std::string &filename, bool staticRobot, bool selfCollisions) override
 
btScalar getDeltaTimeMicroseconds ()
 
SimDynamics::DynamicsObjectPtr getFirstDynamicsObject (const std::string &robotName, const std::string &nodeName)
 
VirtualRobot::SceneObjectPtr getFloor () override
 
bool getRobotStatus (const std::string &robotName, NameValueMap &jointAngles, NameValueMap &jointVelocities, NameValueMap &jointTorques, Eigen::Vector3f &linearVelocity, Eigen::Vector3f &angularVelocity) override
 
bool objectGraspedEngine (const std::string &robotName, const std::string &robotNodeName, const std::string &objectName, Eigen::Matrix4f &storeLocalTransform) override
 create a joint More...
 
bool objectReleasedEngine (const std::string &robotName, const std::string &robotNodeName, const std::string &objectName) override
 remove a joint More...
 
bool removeObstacleEngine (const std::string &name) override
 
bool removeRobotEngine (const std::string &robotName) override
 
void setupFloorEngine (bool enable, const std::string &floorTexture) override
 
void stepStaticRobots (double deltaInSeconds)
 
bool synchronizeObjects () override
 
bool synchronizeRobotNodePoses (const std::string &robotName, std::map< std::string, armarx::PoseBasePtr > &objMap) override
 
bool synchronizeSceneObjectPoses (VirtualRobot::SceneObjectPtr currentObjEngine, std::map< std::string, armarx::PoseBasePtr > &objMap) override
 
bool synchronizeSimulationDataEngine () override
 
bool updateForceTorqueSensor (ForceTorqueInfo &ftInfo) override
 
- Protected Member Functions inherited from SimulatedWorld
virtual bool synchronizeRobots ()
 
- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtrgetLogSender () const
 Retrieve log sender. More...
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 

Protected Attributes

SimDynamics::BulletEnginePtr bulletEngine
 
int bulletFixedTimeStepMaxNrLoops
 
int bulletFixedTimeStepMS
 
std::vector< SimDynamics::DynamicsEngine::DynamicsContactInfo > contacts
 
std::map< std::string, DynamicsRobotInfodynamicRobots
 
std::vector< SimDynamics::DynamicsObjectPtr > dynamicsObjects
 
SimDynamics::DynamicsWorldPtr dynamicsWorld
 
btClock m_clock
 
SimDynamics::BulletRobotLoggerPtr robotLogger
 
int stepSizeMs
 
- Protected Attributes inherited from SimulatedWorld
std::vector< GraspingInfoattachedObjects
 
bool collectContacts
 
double currentSimTimeSec = 0.0
 
double currentSyncTimeSec = 0.0
 
std::map< std::string, int > engineMtxAccCalls
 
std::map< std::string, floatengineMtxAccTime
 
std::map< std::string, IceUtil::Time > engineMtxLastTime
 
MutexPtrType engineMutex
 
float maxRealTimeSimSpeed = 1
 
SimulatedWorldData simReportData
 
float simStepExecutionDurationMS
 
float simTimeStepMS
 
SceneVisuData simVisuData
 
float synchronizeDurationMS
 
MutexPtrType synchronizeMutex
 
std::map< std::string, int > syncMtxAccCalls
 
std::map< std::string, floatsyncMtxAccTime
 
std::map< std::string, IceUtil::Time > syncMtxLastTime
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Additional Inherited Members

- Public Types inherited from SimulatedWorld
using MutexPtrType = typename argType< setMutexFunc >::type
 
using MutexType = MutexPtrType::element_type
 
using ScopedRecursiveLock = std::scoped_lock< MutexType >
 
using ScopedRecursiveLockPtr = std::shared_ptr< ScopedRecursiveLock >
 
using setMutexFunc = decltype(&SimDynamics::DynamicsEngine::setMutex)
 

Detailed Description

The BulletPhysicsWorld class encapsulates the whole physics simulation and the corresponding data.

Definition at line 53 of file BulletPhysicsWorld.h.

Constructor & Destructor Documentation

◆ BulletPhysicsWorld()

Definition at line 45 of file BulletPhysicsWorld.cpp.

◆ ~BulletPhysicsWorld()

~BulletPhysicsWorld ( )
override

Definition at line 52 of file BulletPhysicsWorld.cpp.

Member Function Documentation

◆ activateObject()

void activateObject ( const std::string &  objectName)
overridevirtual

Reimplemented from SimulatedWorld.

Definition at line 520 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ actuateRobotJoints()

void actuateRobotJoints ( const std::string &  robotName,
const std::map< std::string, float > &  angles,
const std::map< std::string, float > &  velocities 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 100 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ actuateRobotJointsPos()

void actuateRobotJointsPos ( const std::string &  robotName,
const std::map< std::string, float > &  angles 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 181 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ actuateRobotJointsTorque()

void actuateRobotJointsTorque ( const std::string &  robotName,
const std::map< std::string, float > &  torques 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 311 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ actuateRobotJointsVel()

void actuateRobotJointsVel ( const std::string &  robotName,
const std::map< std::string, float > &  velocities 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 257 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ adaptRobotToWorld()

RobotPtr adaptRobotToWorld ( VirtualRobot::RobotPtr  robot)
overridevirtual

Reimplemented from SimulatedWorld.

Definition at line 2257 of file BulletPhysicsWorld.cpp.

◆ addObstacleEngine()

bool addObstacleEngine ( VirtualRobot::SceneObjectPtr  o,
VirtualRobot::SceneObject::Physics::SimulationType  simType 
)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1781 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ addRobotEngine()

bool addRobotEngine ( VirtualRobot::RobotPtr  robot,
double  pid_p,
double  pid_i,
double  pid_d,
const std::string &  filename,
bool  staticRobot,
bool  selfCollisions 
)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1462 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ applyForceObject()

void applyForceObject ( const std::string &  objectName,
const Eigen::Vector3f &  force 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 450 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ applyForceRobotNode()

void applyForceRobotNode ( const std::string &  robotName,
const std::string &  robotNodeName,
const Eigen::Vector3f &  force 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 381 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ applyTorqueObject()

void applyTorqueObject ( const std::string &  objectName,
const Eigen::Vector3f &  torque 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 465 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ applyTorqueRobotNode()

void applyTorqueRobotNode ( const std::string &  robotName,
const std::string &  robotNodeName,
const Eigen::Vector3f &  torque 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 415 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ copyContacts()

std::vector< DynamicsEngine::DynamicsContactInfo > copyContacts ( )
overridevirtual

Implements SimulatedWorld.

Definition at line 1774 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ enableLogging()

void enableLogging ( const std::string &  robotName,
const std::string &  logFile 
)
overridevirtual

Reimplemented from SimulatedWorld.

Definition at line 2076 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getContactCount()

int getContactCount ( )
overridevirtual

Reimplemented from SimulatedWorld.

Definition at line 2170 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getDeltaTimeMicroseconds()

btScalar getDeltaTimeMicroseconds ( )
protected

Definition at line 2161 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDistance()

DistanceInfo getDistance ( const std::string &  robotName,
const std::string &  robotNodeName,
const std::string &  worldObjectName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 2217 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getDynamicObjects()

std::vector< SimDynamics::DynamicsObjectPtr > getDynamicObjects ( )

Definition at line 2050 of file BulletPhysicsWorld.cpp.

◆ getDynamicRobot()

SimDynamics::DynamicsRobotPtr getDynamicRobot ( const std::string &  robotName)
virtual

Definition at line 1284 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getDynamicsObject()

SimDynamics::DynamicsObjectPtr getDynamicsObject ( const std::string &  objectName)

Definition at line 1297 of file BulletPhysicsWorld.cpp.

+ Here is the caller graph for this function:

◆ getEngine()

SimDynamics::BulletEnginePtr getEngine ( )

Definition at line 2033 of file BulletPhysicsWorld.cpp.

◆ getFirstDynamicsObject()

SimDynamics::DynamicsObjectPtr getFirstDynamicsObject ( const std::string &  robotName,
const std::string &  nodeName 
)
protected

Definition at line 992 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFixedTimeStepMS()

int getFixedTimeStepMS ( )
overridevirtual
Returns
The number of steps * the timestep in MS

Implements SimulatedWorld.

Definition at line 2027 of file BulletPhysicsWorld.cpp.

◆ getFloor()

SceneObjectPtr getFloor ( )
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1423 of file BulletPhysicsWorld.cpp.

◆ getObject()

SimDynamics::DynamicsObjectPtr getObject ( const std::string &  objectName)

Definition at line 480 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getObjectPose()

Eigen::Matrix4f getObjectPose ( const std::string &  objectName)
overridevirtual

Implements SimulatedWorld.

Definition at line 1315 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getObjects()

std::vector< VirtualRobot::SceneObjectPtr > getObjects ( )
overridevirtual

Implements SimulatedWorld.

Definition at line 2039 of file BulletPhysicsWorld.cpp.

◆ getObstacleNames()

std::vector< std::string > getObstacleNames ( )
overridevirtual

Implements SimulatedWorld.

Definition at line 1868 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobot()

VirtualRobot::RobotPtr getRobot ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 1258 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRobotAngularVelocity()

Eigen::Vector3f getRobotAngularVelocity ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1044 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotForceTorqueSensors()

ForceTorqueDataSeq getRobotForceTorqueSensors ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 738 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointAngle()

float getRobotJointAngle ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 598 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointAngles()

std::map< std::string, float > getRobotJointAngles ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 562 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointLimitHi()

float getRobotJointLimitHi ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 813 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointLimitLo()

float getRobotJointLimitLo ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 784 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointTorques()

std::map< std::string, float > getRobotJointTorques ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 696 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointVelocities()

std::map< std::string, float > getRobotJointVelocities ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 629 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotJointVelocity()

float getRobotJointVelocity ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 665 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotLinearVelocity()

Eigen::Vector3f getRobotLinearVelocity ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 976 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotMass()

float getRobotMass ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 539 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotMaxTorque()

float getRobotMaxTorque ( const std::string &  robotName,
const std::string &  nodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 872 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotNames()

std::vector< std::string > getRobotNames ( )
overridevirtual

Implements SimulatedWorld.

Definition at line 1817 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotNodeDistance()

DistanceInfo getRobotNodeDistance ( const std::string &  robotName,
const std::string &  robotNodeName1,
const std::string &  robotNodeName2 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 2177 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotNodePose()

Eigen::Matrix4f getRobotNodePose ( const std::string &  robotName,
const std::string &  robotNodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 946 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobotPose()

Eigen::Matrix4f getRobotPose ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 842 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ getRobots()

std::map< std::string, RobotPtr > getRobots ( )
overridevirtual

Implements SimulatedWorld.

Definition at line 1271 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRobotStatus()

bool getRobotStatus ( const std::string &  robotName,
NameValueMap &  jointAngles,
NameValueMap &  jointVelocities,
NameValueMap &  jointTorques,
Eigen::Vector3f &  linearVelocity,
Eigen::Vector3f &  angularVelocity 
)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1621 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ hasObject()

bool hasObject ( const std::string &  instanceName)
overridevirtual

Implements SimulatedWorld.

Definition at line 499 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ hasRobot()

bool hasRobot ( const std::string &  robotName)
overridevirtual

Implements SimulatedWorld.

Definition at line 1226 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasRobotNode()

bool hasRobotNode ( const std::string &  robotName,
const std::string &  robotNodeName 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1244 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ initialize()

void initialize ( int  stepSizeMS,
int  bulletFixedTimeStepMS,
int  bulletFixedTimeStepMaxNrLoops,
float  maxRealTimeSimSpeed = 1,
bool  floorPlane = false,
std::string  floorTexture = std::string() 
)
virtual

Definition at line 59 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ objectGraspedEngine()

bool objectGraspedEngine ( const std::string &  robotName,
const std::string &  robotNodeName,
const std::string &  objectName,
Eigen::Matrix4f &  storeLocalTransform 
)
overrideprotectedvirtual

create a joint

Implements SimulatedWorld.

Definition at line 1372 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ objectReleasedEngine()

bool objectReleasedEngine ( const std::string &  robotName,
const std::string &  robotNodeName,
const std::string &  objectName 
)
overrideprotectedvirtual

remove a joint

Implements SimulatedWorld.

Definition at line 1331 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ removeObstacleEngine()

bool removeObstacleEngine ( const std::string &  name)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1883 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ removeRobotEngine()

bool removeRobotEngine ( const std::string &  robotName)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1433 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setObjectPose()

void setObjectPose ( const std::string &  objectName,
const Eigen::Matrix4f &  globalPose 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 505 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setObjectSimType()

void setObjectSimType ( const std::string &  objectName,
VirtualRobot::SceneObject::Physics::SimulationType  simType 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1833 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotAngularVelocity()

void setRobotAngularVelocity ( const std::string &  robotName,
const std::string &  robotNodeName,
const Eigen::Vector3f &  vel 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1095 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotAngularVelocityRobotRootFrame()

void setRobotAngularVelocityRobotRootFrame ( const std::string &  robotName,
const std::string &  robotNodeName,
const Eigen::Vector3f &  vel 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1177 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotLinearVelocity()

void setRobotLinearVelocity ( const std::string &  robotName,
const std::string &  robotNodeName,
const Eigen::Vector3f &  vel 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1061 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotLinearVelocityRobotRootFrame()

void setRobotLinearVelocityRobotRootFrame ( const std::string &  robotName,
const std::string &  robotNodeName,
const Eigen::Vector3f &  vel 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1129 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotMaxTorque()

void setRobotMaxTorque ( const std::string &  robotName,
const std::string &  nodeName,
float  maxTorque 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 908 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotNodeSimType()

void setRobotNodeSimType ( const std::string &  robotName,
const std::string &  robotNodeName,
VirtualRobot::SceneObject::Physics::SimulationType  simType 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 1847 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setRobotPose()

void setRobotPose ( const std::string &  robotName,
const Eigen::Matrix4f &  globalPose 
)
overridevirtual

Implements SimulatedWorld.

Definition at line 354 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ setupFloorEngine()

void setupFloorEngine ( bool  enable,
const std::string &  floorTexture 
)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 2056 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ stepPhysicsFixedTimeStep()

void stepPhysicsFixedTimeStep ( )
overridevirtual

Perform one simulation step.

This updates all models.

*bulletFixedTimeStepMaxNrLoops **‍/ stepSize * 1000.0f;

(float)bulletFixedTimeStepMaxNrLoops

Implements SimulatedWorld.

Definition at line 1944 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ stepPhysicsRealTime()

void stepPhysicsRealTime ( )
overridevirtual

Perform one simulation step.

Calculates the delta update time from the time that has passed since the last call. This updates all models.

Implements SimulatedWorld.

Definition at line 1914 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ stepStaticRobots()

void stepStaticRobots ( double  deltaInSeconds)
protected

Definition at line 1990 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ synchronizeObjects()

bool synchronizeObjects ( )
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1741 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ synchronizeRobotNodePoses()

bool synchronizeRobotNodePoses ( const std::string &  robotName,
std::map< std::string, armarx::PoseBasePtr > &  objMap 
)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1594 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ synchronizeSceneObjectPoses()

bool synchronizeSceneObjectPoses ( VirtualRobot::SceneObjectPtr  currentObjEngine,
std::map< std::string, armarx::PoseBasePtr > &  objMap 
)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 2117 of file BulletPhysicsWorld.cpp.

+ Here is the caller graph for this function:

◆ synchronizeSimulationDataEngine()

bool synchronizeSimulationDataEngine ( )
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 2141 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ toFramedPose()

armarx::FramedPosePtr toFramedPose ( const Eigen::Matrix4f &  globalPose,
const std::string &  robotName,
const std::string &  frameName 
)
overridevirtual

toFramedPose Constructs a framed pose

Parameters
globalPose
robotName
frameName
Returns

Implements SimulatedWorld.

Definition at line 1564 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

◆ updateForceTorqueSensor()

bool updateForceTorqueSensor ( ForceTorqueInfo ftInfo)
overrideprotectedvirtual

Implements SimulatedWorld.

Definition at line 1689 of file BulletPhysicsWorld.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ bulletEngine

SimDynamics::BulletEnginePtr bulletEngine
protected

Definition at line 253 of file BulletPhysicsWorld.h.

◆ bulletFixedTimeStepMaxNrLoops

int bulletFixedTimeStepMaxNrLoops
protected

Definition at line 254 of file BulletPhysicsWorld.h.

◆ bulletFixedTimeStepMS

int bulletFixedTimeStepMS
protected

Definition at line 255 of file BulletPhysicsWorld.h.

◆ contacts

std::vector<SimDynamics::DynamicsEngine::DynamicsContactInfo> contacts
protected

Definition at line 258 of file BulletPhysicsWorld.h.

◆ dynamicRobots

std::map<std::string, DynamicsRobotInfo> dynamicRobots
protected

Definition at line 271 of file BulletPhysicsWorld.h.

◆ dynamicsObjects

std::vector<SimDynamics::DynamicsObjectPtr> dynamicsObjects
protected

Definition at line 272 of file BulletPhysicsWorld.h.

◆ dynamicsWorld

SimDynamics::DynamicsWorldPtr dynamicsWorld
protected

Definition at line 270 of file BulletPhysicsWorld.h.

◆ m_clock

btClock m_clock
protected

Definition at line 260 of file BulletPhysicsWorld.h.

◆ robotLogger

SimDynamics::BulletRobotLoggerPtr robotLogger
protected

Definition at line 274 of file BulletPhysicsWorld.h.

◆ stepSizeMs

int stepSizeMs
protected

Definition at line 256 of file BulletPhysicsWorld.h.


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