SimulatedWorld Class Referenceabstract

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

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

+ Inheritance diagram for SimulatedWorld:

Classes

struct  GraspingInfo
 

Public Types

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)
 

Public Member Functions

virtual void activateObject (const std::string &objectName)
 
virtual void actuateRobotJoints (const std::string &robotName, const std::map< std::string, float > &angles, const std::map< std::string, float > &velocities)=0
 
virtual void actuateRobotJointsPos (const std::string &robotName, const std::map< std::string, float > &angles)=0
 
virtual void actuateRobotJointsTorque (const std::string &robotName, const std::map< std::string, float > &torques)=0
 
virtual void actuateRobotJointsVel (const std::string &robotName, const std::map< std::string, float > &velocities)=0
 
virtual VirtualRobot::RobotPtr adaptRobotToWorld (VirtualRobot::RobotPtr)
 
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).
 
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.
 
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).
 
virtual bool addScene (VirtualRobot::ScenePtr scene, VirtualRobot::SceneObject::Physics::SimulationType simType=VirtualRobot::SceneObject::Physics::eUnknown)
 
virtual void applyForceObject (const std::string &objectName, const Eigen::Vector3f &force)=0
 
virtual void applyForceRobotNode (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &force)=0
 
virtual void applyTorqueObject (const std::string &objectName, const Eigen::Vector3f &torque)=0
 
virtual void applyTorqueRobotNode (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &torque)=0
 
virtual std::vector< SimDynamics::DynamicsEngine::DynamicsContactInfo > copyContacts ()=0
 
virtual SimulatedWorldData copyReportData ()
 
virtual SceneVisuData copySceneVisuData ()
 copySceneVisuData Creates a copy of the visualization data
 
virtual void enableLogging (const std::string &robotName, const std::string &logFile)
 
virtual int getContactCount ()
 
virtual double getCurrentSimTime ()
 
virtual armarx::DistanceInfo getDistance (const std::string &robotName, const std::string &robotNodeName, const std::string &worldObjectName)=0
 
virtual int getFixedTimeStepMS ()=0
 
virtual int getObjectCount ()
 
virtual Eigen::Matrix4f getObjectPose (const std::string &objectName)=0
 
virtual std::vector< VirtualRobot::SceneObjectPtr > getObjects ()=0
 
virtual std::vector< std::string > getObstacleNames ()=0
 
virtual SimulatedWorldData & getReportData ()
 
virtual VirtualRobot::RobotPtr getRobot (const std::string &robotName)=0
 
virtual Eigen::Vector3f getRobotAngularVelocity (const std::string &robotName, const std::string &nodeName)=0
 
virtual ForceTorqueDataSeq getRobotForceTorqueSensors (const std::string &robotName)=0
 
virtual float getRobotJointAngle (const std::string &robotName, const std::string &nodeName)=0
 
virtual int getRobotJointAngleCount ()
 
virtual std::map< std::string, float > getRobotJointAngles (const std::string &robotName)=0
 
virtual float getRobotJointLimitHi (const std::string &robotName, const std::string &nodeName)=0
 
virtual float getRobotJointLimitLo (const std::string &robotName, const std::string &nodeName)=0
 
virtual std::map< std::string, float > getRobotJointTorques (const std::string &robotName)=0
 
virtual std::map< std::string, float > getRobotJointVelocities (const std::string &robotName)=0
 
virtual float getRobotJointVelocity (const std::string &robotName, const std::string &nodeName)=0
 
virtual Eigen::Vector3f getRobotLinearVelocity (const std::string &robotName, const std::string &nodeName)=0
 
virtual float getRobotMass (const std::string &robotName)=0
 
virtual float getRobotMaxTorque (const std::string &robotName, const std::string &nodeName)=0
 
virtual std::vector< std::string > getRobotNames ()=0
 
virtual armarx::DistanceInfo getRobotNodeDistance (const std::string &robotName, const std::string &robotNodeName1, const std::string &robotNodeName2)=0
 
virtual Eigen::Matrix4f getRobotNodePose (const std::string &robotName, const std::string &robotNodeName)=0
 
virtual Eigen::Matrix4f getRobotPose (const std::string &robotName)=0
 
virtual std::map< std::string, VirtualRobot::RobotPtr > getRobots ()=0
 
virtual ScopedRecursiveLockPtr getScopedEngineLock (const std::string &callStr)
 
virtual ScopedRecursiveLockPtr getScopedSyncLock (const std::string &callStr)
 
virtual float getSimTime ()
 
virtual float getSimulationStepDuration ()
 getSimulationStepDuration
 
virtual float getSimulationStepTimeMeasured ()
 getSimulationStepTimeMeasured
 
virtual float getSyncEngineTime ()
 
virtual bool hasObject (const std::string &instanceName)=0
 
virtual bool hasRobot (const std::string &robotName)=0
 
virtual bool hasRobotNode (const std::string &robotName, const std::string &robotNodeName)=0
 
virtual void objectGrasped (const std::string &robotName, const std::string &robotNodeName, const std::string &objectName)
 create a joint
 
virtual void objectReleased (const std::string &robotName, const std::string &robotNodeName, const std::string &objectName)
 remove a joint
 
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
 
virtual void resetSimTime ()
 
virtual void setObjectPose (const std::string &objectName, const Eigen::Matrix4f &globalPose)=0
 
virtual void setObjectSimType (const std::string &objectName, VirtualRobot::SceneObject::Physics::SimulationType simType)=0
 
virtual void setRobotAngularVelocity (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel)=0
 
virtual void setRobotAngularVelocityRobotRootFrame (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel)=0
 
virtual void setRobotLinearVelocity (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel)=0
 
virtual void setRobotLinearVelocityRobotRootFrame (const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel)=0
 
virtual void setRobotMaxTorque (const std::string &robotName, const std::string &nodeName, float maxTorque)=0
 
virtual void setRobotNodeSimType (const std::string &robotName, const std::string &robotNodeName, VirtualRobot::SceneObject::Physics::SimulationType simType)=0
 
virtual void setRobotPose (const std::string &robotName, const Eigen::Matrix4f &globalPose)=0
 
virtual void setupFloor (bool enable, const std::string &floorTexture)
 
 SimulatedWorld ()
 
virtual void stepPhysicsFixedTimeStep ()=0
 Perform one simulation step.
 
virtual void stepPhysicsRealTime ()=0
 Perform one simulation step.
 
virtual bool synchronizeSimulationData ()
 synchronizeSimulationData Update the sim data according to the internal physics models.
 
virtual FramedPosePtr toFramedPose (const Eigen::Matrix4f &globalPose, const std::string &robotName, const std::string &frameName)=0
 toFramedPose Constructs a framed pose
 
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.
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set.
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 

Protected Member Functions

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

Protected Attributes

std::vector< GraspingInfo > attachedObjects
 
bool collectContacts
 
double currentSimTimeSec = 0.0
 
double currentSyncTimeSec = 0.0
 
std::map< std::string, int > engineMtxAccCalls
 
std::map< std::string, float > engineMtxAccTime
 
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, float > syncMtxAccTime
 
std::map< std::string, IceUtil::Time > syncMtxLastTime
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Detailed Description

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

Member Typedef Documentation

◆ MutexPtrType

using MutexPtrType = typename argType<setMutexFunc>::type

◆ MutexType

using MutexType = MutexPtrType::element_type

◆ ScopedRecursiveLock

using ScopedRecursiveLock = std::scoped_lock<MutexType>

◆ ScopedRecursiveLockPtr

using ScopedRecursiveLockPtr = std::shared_ptr<ScopedRecursiveLock>

◆ setMutexFunc

using setMutexFunc = decltype(&SimDynamics::DynamicsEngine::setMutex)

Constructor & Destructor Documentation

◆ SimulatedWorld()

◆ ~SimulatedWorld()

virtual ~SimulatedWorld ( )
overridevirtualdefault

Member Function Documentation

◆ activateObject()

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

Reimplemented in BulletPhysicsWorld.

◆ actuateRobotJoints()

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

◆ actuateRobotJointsPos()

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

◆ actuateRobotJointsTorque()

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

◆ actuateRobotJointsVel()

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

◆ adaptRobotToWorld()

VirtualRobot::RobotPtr adaptRobotToWorld ( VirtualRobot::RobotPtr robot)
virtual

Reimplemented in BulletPhysicsWorld.

◆ addObstacle() [1/2]

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 = "" )
virtual

Load and add an Obstacle (VirtualRobot xml file).

Parameters
filenameThe obstacle xml file
poseThe inital pose (mm)
simTypeeUnknown: use sim type of SceneObject, to overwrite internal simType use: eStatic: cannot move, but collide; eKinematic: can be moved, but no dynamics; eDynamic: full dynamic simulation

◆ addObstacle() [2/2]

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

◆ addObstacleEngine()

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

◆ addRobot() [1/2]

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 )
virtual

Load and add a robot.

addRobot Load and add int to the scene

Parameters
filenameThe absolute filename
poseThe initial pose (4x4matrix, in MM)
filenameLocalThe local filename (i.e. not the absolute one)
pid_pPID control paramters, currently all joints use the same pid values
pid_iPID control paramters, currently all joints use the same pid values
pid_dPID control paramters, currently all joints use the same pid values
staticRobotIf set, the robot is added as a static/fixed kinematic object which does not move due to physics (it may be actuated by setting the position of the joints)
scalingThe scaling of the robot (1 = no scaling).
colModelUse the collision model for visualization.
Returns

◆ addRobot() [2/2]

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

◆ addRobotEngine()

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

◆ addScene() [1/2]

bool addScene ( const std::string & filename,
VirtualRobot::SceneObject::Physics::SimulationType simType = VirtualRobot::SceneObject::Physics::eUnknown )
virtual

Load and add an Scene (VirtualRobot xml file).

Parameters
filenameThe scene xml fil
simTypeeStatic: cannot move, but collide; eKinematic: can be moved, but no dynamics; eDynamic: full dynamic simulation

◆ addScene() [2/2]

virtual bool addScene ( VirtualRobot::ScenePtr scene,
VirtualRobot::SceneObject::Physics::SimulationType simType = VirtualRobot::SceneObject::Physics::eUnknown )
virtual

◆ applyForceObject()

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

◆ applyForceRobotNode()

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

◆ applyTorqueObject()

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

◆ applyTorqueRobotNode()

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

◆ copyContacts()

virtual std::vector< SimDynamics::DynamicsEngine::DynamicsContactInfo > copyContacts ( )
pure virtual

◆ copyReportData()

SimulatedWorldData copyReportData ( )
virtual

◆ copySceneVisuData()

SceneVisuData copySceneVisuData ( )
virtual

copySceneVisuData Creates a copy of the visualization data

Returns
The copy

◆ enableLogging()

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

Reimplemented in BulletPhysicsWorld, and KinematicsWorld.

◆ getContactCount()

int getContactCount ( )
virtual

Reimplemented in BulletPhysicsWorld, and MujocoPhysicsWorld.

◆ getCurrentSimTime()

double getCurrentSimTime ( )
virtual

◆ getDistance()

virtual armarx::DistanceInfo getDistance ( const std::string & robotName,
const std::string & robotNodeName,
const std::string & worldObjectName )
pure virtual

◆ getFixedTimeStepMS()

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

Implemented in BulletPhysicsWorld, KinematicsWorld, and MujocoPhysicsWorld.

◆ getFloor()

virtual VirtualRobot::SceneObjectPtr getFloor ( )
protectedpure virtual

◆ getObjectCount()

int getObjectCount ( )
virtual

◆ getObjectPose()

virtual Eigen::Matrix4f getObjectPose ( const std::string & objectName)
pure virtual

◆ getObjects()

virtual std::vector< VirtualRobot::SceneObjectPtr > getObjects ( )
pure virtual

◆ getObstacleNames()

virtual std::vector< std::string > getObstacleNames ( )
pure virtual

◆ getReportData()

SimulatedWorldData & getReportData ( )
virtual

◆ getRobot()

virtual VirtualRobot::RobotPtr getRobot ( const std::string & robotName)
pure virtual

◆ getRobotAngularVelocity()

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

◆ getRobotForceTorqueSensors()

virtual ForceTorqueDataSeq getRobotForceTorqueSensors ( const std::string & robotName)
pure virtual

◆ getRobotJointAngle()

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

◆ getRobotJointAngleCount()

int getRobotJointAngleCount ( )
virtual

◆ getRobotJointAngles()

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

◆ getRobotJointLimitHi()

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

◆ getRobotJointLimitLo()

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

◆ getRobotJointTorques()

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

◆ getRobotJointVelocities()

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

◆ getRobotJointVelocity()

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

◆ getRobotLinearVelocity()

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

◆ getRobotMass()

virtual float getRobotMass ( const std::string & robotName)
pure virtual

◆ getRobotMaxTorque()

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

◆ getRobotNames()

virtual std::vector< std::string > getRobotNames ( )
pure virtual

◆ getRobotNodeDistance()

virtual armarx::DistanceInfo getRobotNodeDistance ( const std::string & robotName,
const std::string & robotNodeName1,
const std::string & robotNodeName2 )
pure virtual

◆ getRobotNodePose()

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

◆ getRobotPose()

virtual Eigen::Matrix4f getRobotPose ( const std::string & robotName)
pure virtual

◆ getRobots()

virtual std::map< std::string, VirtualRobot::RobotPtr > getRobots ( )
pure virtual

◆ getRobotStatus()

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

◆ getScopedEngineLock()

auto getScopedEngineLock ( const std::string & callStr)
virtual

◆ getScopedSyncLock()

auto getScopedSyncLock ( const std::string & callStr)
virtual

◆ getSimTime()

float getSimTime ( )
virtual

◆ getSimulationStepDuration()

float getSimulationStepDuration ( )
virtual

getSimulationStepDuration

Returns
The requested duration of the last simulation step (in ms)

◆ getSimulationStepTimeMeasured()

float getSimulationStepTimeMeasured ( )
virtual

getSimulationStepTimeMeasured

Returns
How long it took to simulate the last sim step.

◆ getSyncEngineTime()

float getSyncEngineTime ( )
virtual

◆ hasObject()

virtual bool hasObject ( const std::string & instanceName)
pure virtual

◆ hasRobot()

virtual bool hasRobot ( const std::string & robotName)
pure virtual

◆ hasRobotNode()

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

◆ objectGrasped()

void objectGrasped ( const std::string & robotName,
const std::string & robotNodeName,
const std::string & objectName )
virtual

create a joint

◆ objectGraspedEngine()

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

create a joint

Implemented in BulletPhysicsWorld, KinematicsWorld, and MujocoPhysicsWorld.

◆ objectReleased()

void objectReleased ( const std::string & robotName,
const std::string & robotNodeName,
const std::string & objectName )
virtual

remove a joint

◆ objectReleasedEngine()

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

remove a joint

Implemented in BulletPhysicsWorld, KinematicsWorld, and MujocoPhysicsWorld.

◆ removeObstacle()

bool removeObstacle ( const std::string & name)
virtual

◆ removeObstacleEngine()

virtual bool removeObstacleEngine ( const std::string & name)
protectedpure virtual

◆ removeObstacles()

bool removeObstacles ( )
virtual

◆ removeRobot()

bool removeRobot ( const std::string & robotName)
virtual

◆ removeRobotEngine()

virtual bool removeRobotEngine ( const std::string & robotName)
protectedpure virtual

◆ removeRobots()

bool removeRobots ( )
virtual

◆ resetData()

bool resetData ( )
virtual

resetData Clears all data

◆ resetSimTime()

void resetSimTime ( )
virtual

◆ setObjectPose()

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

◆ setObjectSimType()

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

◆ setRobotAngularVelocity()

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

◆ setRobotAngularVelocityRobotRootFrame()

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

◆ setRobotLinearVelocity()

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

◆ setRobotLinearVelocityRobotRootFrame()

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

◆ setRobotMaxTorque()

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

◆ setRobotNodeSimType()

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

◆ setRobotPose()

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

◆ setupFloor()

void setupFloor ( bool enable,
const std::string & floorTexture )
virtual

◆ setupFloorEngine()

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

◆ stepPhysicsFixedTimeStep()

virtual void stepPhysicsFixedTimeStep ( )
pure virtual

Perform one simulation step.

This updates all models.

Implemented in BulletPhysicsWorld, KinematicsWorld, and MujocoPhysicsWorld.

◆ stepPhysicsRealTime()

virtual void stepPhysicsRealTime ( )
pure virtual

Perform one simulation step.

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

Implemented in BulletPhysicsWorld, KinematicsWorld, and MujocoPhysicsWorld.

◆ synchronizeObjects()

virtual bool synchronizeObjects ( )
protectedpure virtual

◆ synchronizeRobotNodePoses()

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

Implemented in BulletPhysicsWorld, and KinematicsWorld.

◆ synchronizeRobots()

bool synchronizeRobots ( )
protectedvirtual

◆ synchronizeSceneObjectPoses()

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

Implemented in BulletPhysicsWorld, and KinematicsWorld.

◆ synchronizeSimulationData()

bool synchronizeSimulationData ( )
virtual

synchronizeSimulationData Update the sim data according to the internal physics models.

Returns
true on success.

◆ synchronizeSimulationDataEngine()

virtual bool synchronizeSimulationDataEngine ( )
protectedpure virtual

◆ toFramedPose()

virtual FramedPosePtr toFramedPose ( const Eigen::Matrix4f & globalPose,
const std::string & robotName,
const std::string & frameName )
pure virtual

toFramedPose Constructs a framed pose

Parameters
globalPose
robotName
frameName
Returns

Implemented in BulletPhysicsWorld, KinematicsWorld, and MujocoPhysicsWorld.

◆ updateContacts()

void updateContacts ( bool enable)
virtual

◆ updateForceTorqueSensor()

virtual bool updateForceTorqueSensor ( ForceTorqueInfo & ftInfo)
protectedpure virtual

Member Data Documentation

◆ attachedObjects

std::vector<GraspingInfo> attachedObjects
protected

◆ collectContacts

bool collectContacts
protected

◆ currentSimTimeSec

double currentSimTimeSec = 0.0
protected

◆ currentSyncTimeSec

double currentSyncTimeSec = 0.0
protected

◆ engineMtxAccCalls

std::map<std::string, int> engineMtxAccCalls
protected

◆ engineMtxAccTime

std::map<std::string, float> engineMtxAccTime
protected

◆ engineMtxLastTime

std::map<std::string, IceUtil::Time> engineMtxLastTime
protected

◆ engineMutex

MutexPtrType engineMutex
protected

◆ maxRealTimeSimSpeed

float maxRealTimeSimSpeed = 1
protected

◆ simReportData

SimulatedWorldData simReportData
protected

◆ simStepExecutionDurationMS

float simStepExecutionDurationMS
protected

◆ simTimeStepMS

float simTimeStepMS
protected

◆ simVisuData

SceneVisuData simVisuData
protected

◆ synchronizeDurationMS

float synchronizeDurationMS
protected

◆ synchronizeMutex

MutexPtrType synchronizeMutex
protected

◆ syncMtxAccCalls

std::map<std::string, int> syncMtxAccCalls
protected

◆ syncMtxAccTime

std::map<std::string, float> syncMtxAccTime
protected

◆ syncMtxLastTime

std::map<std::string, IceUtil::Time> syncMtxLastTime
protected

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