KinematicsWorld.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2013-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package ArmarXSimulation::Simulator
19  * @author Nikolaus Vahrenkamp ( vahrenkamp at kit dot edu )
20  * @date 2017
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
25 #pragma once
26 
27 #include <Eigen/Core>
28 #include <Eigen/Geometry>
29 
30 // just needed for SceneData
31 #include <ArmarXSimulation/interface/simulator/SimulatorInterface.h>
32 // #include <ArmarXCore/core/system/Synchronization.h>
33 #include <mutex>
34 
36 
39 
40 #include "SimulatedWorld.h"
41 
42 namespace armarx
43 {
44  /*!
45  * \brief The KinematicsWorld class encapsulates the kinemtics simulation and the corresponding data.
46  * All real physics simulation is either approximated through simple kinemtics or disabled.
47  *
48  */
50  {
51  public:
53  ~KinematicsWorld() override;
54 
55  virtual void initialize(int stepSizeMS,
56  float maxRealTimeSimSpeed = 1,
57  bool floorPlane = false,
58  std::string floorTexture = std::string());
59 
60  //! ignoring velocity target
61  void actuateRobotJoints(const std::string& robotName,
62  const std::map<std::string, float>& angles,
63  const std::map<std::string, float>& velocities) override;
64  void actuateRobotJointsPos(const std::string& robotName,
65  const std::map<std::string, float>& angles) override;
66  void actuateRobotJointsVel(const std::string& robotName,
67  const std::map<std::string, float>& velocities) override;
68  void actuateRobotJointsTorque(const std::string& robotName,
69  const std::map<std::string, float>& torques) override;
70  void setRobotPose(const std::string& robotName, const Eigen::Matrix4f& globalPose) override;
71 
72  void applyForceRobotNode(const std::string& robotName,
73  const std::string& robotNodeName,
74  const Eigen::Vector3f& force) override;
75  void applyTorqueRobotNode(const std::string& robotName,
76  const std::string& robotNodeName,
77  const Eigen::Vector3f& torque) override;
78 
79  void applyForceObject(const std::string& objectName, const Eigen::Vector3f& force) override;
80  void applyTorqueObject(const std::string& objectName,
81  const Eigen::Vector3f& torque) override;
82 
83  bool hasObject(const std::string& instanceName) override;
84  void setObjectPose(const std::string& objectName,
85  const Eigen::Matrix4f& globalPose) override;
86 
87  bool hasRobot(const std::string& robotName) override;
88  bool hasRobotNode(const std::string& robotName, const std::string& robotNodeName) override;
89  float getRobotMass(const std::string& robotName) override;
90 
91  std::map<std::string, float> getRobotJointAngles(const std::string& robotName) override;
92  float getRobotJointAngle(const std::string& robotName,
93  const std::string& nodeName) override;
94  std::map<std::string, float> getRobotJointVelocities(const std::string& robotName) override;
95  float getRobotJointVelocity(const std::string& robotName,
96  const std::string& nodeName) override;
97  std::map<std::string, float> getRobotJointTorques(const std::string&) override;
98  ForceTorqueDataSeq getRobotForceTorqueSensors(const std::string&) override;
99 
100  float getRobotJointLimitLo(const std::string& robotName,
101  const std::string& nodeName) override;
102  float getRobotJointLimitHi(const std::string& robotName,
103  const std::string& nodeName) override;
104  Eigen::Matrix4f getRobotPose(const std::string& robotName) override;
105 
106  float getRobotMaxTorque(const std::string& robotName, const std::string& nodeName) override;
107  void setRobotMaxTorque(const std::string& robotName,
108  const std::string& nodeName,
109  float maxTorque) override;
110 
111  Eigen::Matrix4f getRobotNodePose(const std::string& robotName,
112  const std::string& robotNodeName) override;
113 
114  Eigen::Vector3f getRobotLinearVelocity(const std::string& robotName,
115  const std::string& nodeName) override;
116  Eigen::Vector3f getRobotAngularVelocity(const std::string& robotName,
117  const std::string& nodeName) override;
118 
119  // the robotNodeName is ignored, the whole robot is moved...
120  void setRobotLinearVelocity(const std::string& robotName,
121  const std::string& robotNodeName,
122  const Eigen::Vector3f& vel) override;
123  void setRobotAngularVelocity(const std::string& robotName,
124  const std::string& robotNodeName,
125  const Eigen::Vector3f& vel) override;
126  void setRobotLinearVelocityRobotRootFrame(const std::string& robotName,
127  const std::string& robotNodeName,
128  const Eigen::Vector3f& vel) override;
129  void setRobotAngularVelocityRobotRootFrame(const std::string& robotName,
130  const std::string& robotNodeName,
131  const Eigen::Vector3f& vel) override;
132 
133  Eigen::Matrix4f getObjectPose(const std::string& objectName) override;
134 
135  VirtualRobot::RobotPtr getRobot(const std::string& robotName) override;
136  std::map<std::string, VirtualRobot::RobotPtr> getRobots() override;
137  virtual VirtualRobot::SceneObjectPtr getObject(const std::string& objectName);
138  std::vector<VirtualRobot::SceneObjectPtr> getObjects() override;
139 
140  std::vector<SimDynamics::DynamicsEngine::DynamicsContactInfo> copyContacts() override;
141 
142 
143  FramedPosePtr toFramedPose(const Eigen::Matrix4f& globalPose,
144  const std::string& robotName,
145  const std::string& frameName) override;
146 
147  /**
148  * Perform one simulation step. Calculates the delta update time from the time that has passed since the last call.
149  * This updates all models.
150  */
151  void stepPhysicsRealTime() override;
152 
153  /**
154  * Perform one simulation step.
155  * This updates all models.
156  */
157  void stepPhysicsFixedTimeStep() override;
158 
159  /*!
160  * \brief
161  * \return The number of steps * the timestep in MS
162  */
163  int getFixedTimeStepMS() override;
164 
165 
166  void enableLogging(const std::string& robotName, const std::string& logFile) override;
167 
168  armarx::DistanceInfo getRobotNodeDistance(const std::string& robotName,
169  const std::string& robotNodeName1,
170  const std::string& robotNodeName2) override;
171  armarx::DistanceInfo getDistance(const std::string& robotName,
172  const std::string& robotNodeName,
173  const std::string& worldObjectName) override;
174 
175  std::vector<std::string> getRobotNames() override;
176  std::vector<std::string> getObstacleNames() override;
177 
178  void
179  setRobotNodeSimType(const std::string& robotName,
180  const std::string& robotNodeName,
181  VirtualRobot::SceneObject::Physics::SimulationType simType) override;
182  void setObjectSimType(const std::string& objectName,
183  VirtualRobot::SceneObject::Physics::SimulationType simType) override;
184 
185  protected:
187  VirtualRobot::SceneObject::Physics::SimulationType simType) override;
188  bool removeObstacleEngine(const std::string& name) override;
190  double pid_p,
191  double pid_i,
192  double pid_d,
193  const std::string& filename,
194  bool staticRobot,
195  bool selfCollisions) override;
196 
197  //! create a joint
198  bool objectGraspedEngine(const std::string& robotName,
199  const std::string& robotNodeName,
200  const std::string& objectName,
201  Eigen::Matrix4f& storeLocalTransform) override;
202 
203  //! remove a joint
204  bool objectReleasedEngine(const std::string& robotName,
205  const std::string& robotNodeName,
206  const std::string& objectName) override;
207 
208  bool removeRobotEngine(const std::string& robotName) override;
209  bool synchronizeSimulationDataEngine() override;
210 
211  void setupFloorEngine(bool enable, const std::string& floorTexture) override;
212 
213  bool synchronizeObjects() override;
214 
215  bool getRobotStatus(const std::string& robotName,
219  Eigen::Vector3f& linearVelocity,
220  Eigen::Vector3f& angularVelocity) override;
221 
222  bool updateForceTorqueSensor(ForceTorqueInfo& ftInfo) override;
223 
224  bool
226  std::map<std::string, armarx::PoseBasePtr>& objMap) override;
227 
229 
230  // manually apply velocities to static robots
231  void stepStaticRobots(double deltaInSeconds);
232  void stepStaticObjects(double deltaInSeconds);
233 
235 
237  {
239  {
240  velTransTarget.setZero();
241  velRotTarget.setZero();
242  velTransActual.setZero();
243  velRotActual.setZero();
244  }
245 
247  std::map<std::string, float> targetVelocities;
248  std::map<std::string, float> actualVelocities;
249  Eigen::Vector3f velTransTarget, velTransActual;
250  Eigen::Vector3f velRotTarget, velRotActual;
251  };
252 
253  std::map<std::string, KinematicRobotInfo> kinematicRobots;
254  std::vector<VirtualRobot::SceneObjectPtr> kinematicObjects;
255  std::map<VirtualRobot::RobotNodePtr, std::pair<IceUtil::Time, float>>
257  std::map<VirtualRobot::RobotPtr, std::pair<IceUtil::Time, Eigen::Vector3f>>
259  std::map<VirtualRobot::RobotPtr, std::pair<IceUtil::Time, Eigen::Matrix4f>>
262  Eigen::Vector3f floorPos;
263  Eigen::Vector3f floorUp;
265  double floorDepthMM;
266  VirtualRobot::ObstaclePtr groundObject;
267  virtual void createFloorPlane(const Eigen::Vector3f& pos, const Eigen::Vector3f& up);
268 
270 
271  float getDeltaTimeMilli();
272 
273  bool synchronizeRobotNodePoses(const std::string& robotName,
274  std::map<std::string, armarx::PoseBasePtr>& objMap) override;
276  };
277 
278  using KinematicsWorldPtr = std::shared_ptr<KinematicsWorld>;
279 } // namespace armarx
DerivationFilter.h
armarx::KinematicsWorld::getRobotJointTorques
std::map< std::string, float > getRobotJointTorques(const std::string &) override
Definition: KinematicsWorld.cpp:393
armarx::KinematicsWorld::KinematicRobotInfo::actualVelocities
std::map< std::string, float > actualVelocities
Definition: KinematicsWorld.h:248
armarx::KinematicsWorld::~KinematicsWorld
~KinematicsWorld() override
armarx::KinematicsWorld::getRobotJointLimitLo
float getRobotJointLimitLo(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:405
armarx::KinematicsWorld::initialize
virtual void initialize(int stepSizeMS, float maxRealTimeSimSpeed=1, bool floorPlane=false, std::string floorTexture=std::string())
Definition: KinematicsWorld.cpp:61
armarx::KinematicsWorld::getRobots
std::map< std::string, VirtualRobot::RobotPtr > getRobots() override
Definition: KinematicsWorld.cpp:735
armarx::KinematicsWorld::createFloorPlane
virtual void createFloorPlane(const Eigen::Vector3f &pos, const Eigen::Vector3f &up)
Definition: KinematicsWorld.cpp:82
armarx::KinematicsWorld::setRobotAngularVelocity
void setRobotAngularVelocity(const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
Definition: KinematicsWorld.cpp:611
armarx::KinematicsWorld::jointAngleDerivationFilters
std::map< VirtualRobot::RobotNodePtr, std::pair< IceUtil::Time, float > > jointAngleDerivationFilters
Definition: KinematicsWorld.h:256
armarx::KinematicsWorld::getObstacleNames
std::vector< std::string > getObstacleNames() override
Definition: KinematicsWorld.cpp:1306
armarx::KinematicsWorld::getDeltaTimeMilli
float getDeltaTimeMilli()
Definition: KinematicsWorld.cpp:1577
armarx::KinematicsWorld::getObject
virtual VirtualRobot::SceneObjectPtr getObject(const std::string &objectName)
Definition: KinematicsWorld.cpp:748
armarx::KinematicsWorld::hasRobot
bool hasRobot(const std::string &robotName) override
Definition: KinematicsWorld.cpp:688
armarx::KinematicsWorld::getFloor
VirtualRobot::SceneObjectPtr getFloor() override
Definition: KinematicsWorld.cpp:869
armarx::KinematicsWorld::applyForceObject
void applyForceObject(const std::string &objectName, const Eigen::Vector3f &force) override
Definition: KinematicsWorld.cpp:243
armarx::KinematicsWorld::setObjectPose
void setObjectPose(const std::string &objectName, const Eigen::Matrix4f &globalPose) override
Definition: KinematicsWorld.cpp:263
armarx::KinematicsWorldPtr
std::shared_ptr< KinematicsWorld > KinematicsWorldPtr
Definition: KinematicsWorld.h:278
armarx::KinematicsWorld::kinematicObjects
std::vector< VirtualRobot::SceneObjectPtr > kinematicObjects
Definition: KinematicsWorld.h:254
armarx::KinematicsWorld::toFramedPose
FramedPosePtr toFramedPose(const Eigen::Matrix4f &globalPose, const std::string &robotName, const std::string &frameName) override
toFramedPose Constructs a framed pose
Definition: KinematicsWorld.cpp:941
armarx::KinematicsWorld::floorPos
Eigen::Vector3f floorPos
Definition: KinematicsWorld.h:262
armarx::KinematicsWorld::setObjectSimType
void setObjectSimType(const std::string &objectName, VirtualRobot::SceneObject::Physics::SimulationType simType) override
Definition: KinematicsWorld.cpp:1271
armarx::KinematicsWorld::enableLogging
void enableLogging(const std::string &robotName, const std::string &logFile) override
Definition: KinematicsWorld.cpp:1527
armarx::KinematicsWorld::getRobotNames
std::vector< std::string > getRobotNames() override
Definition: KinematicsWorld.cpp:1255
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:650
armarx::KinematicsWorld::setRobotLinearVelocityRobotRootFrame
void setRobotLinearVelocityRobotRootFrame(const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
Definition: KinematicsWorld.cpp:633
armarx::KinematicsWorld::getRobotJointVelocities
std::map< std::string, float > getRobotJointVelocities(const std::string &robotName) override
Definition: KinematicsWorld.cpp:344
Pose.h
armarx::KinematicsWorld::KinematicRobotInfo::KinematicRobotInfo
KinematicRobotInfo()
Definition: KinematicsWorld.h:238
armarx::KinematicsWorld::getRobotJointVelocity
float getRobotJointVelocity(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:364
armarx::SimulatedWorld::maxRealTimeSimSpeed
float maxRealTimeSimSpeed
Definition: SimulatedWorld.h:506
armarx::KinematicsWorld::stepStaticRobots
void stepStaticRobots(double deltaInSeconds)
Definition: KinematicsWorld.cpp:1414
armarx::ForceTorqueInfo
Definition: SimulatedWorld.h:47
armarx::KinematicsWorld::objectReleasedEngine
bool objectReleasedEngine(const std::string &robotName, const std::string &robotNodeName, const std::string &objectName) override
remove a joint
Definition: KinematicsWorld.cpp:782
armarx::KinematicsWorld::applyTorqueRobotNode
void applyTorqueRobotNode(const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &torque) override
Definition: KinematicsWorld.cpp:234
armarx::KinematicsWorld::hasObject
bool hasObject(const std::string &instanceName) override
Definition: KinematicsWorld.cpp:257
armarx::SimulatedWorld
The SimulatedWorld class encapsulates the whole physics simulation and the corresponding data.
Definition: SimulatedWorld.h:132
armarx::KinematicsWorld::lastTime
IceUtil::Time lastTime
Definition: KinematicsWorld.h:269
armarx::KinematicsWorld::stepPhysicsFixedTimeStep
void stepPhysicsFixedTimeStep() override
Perform one simulation step.
Definition: KinematicsWorld.cpp:1376
armarx::KinematicsWorld::KinematicRobotInfo::velRotActual
Eigen::Vector3f velRotActual
Definition: KinematicsWorld.h:250
armarx::KinematicsWorld::floorExtendMM
double floorExtendMM
Definition: KinematicsWorld.h:264
armarx::KinematicsWorld::getRobotMaxTorque
float getRobotMaxTorque(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:463
armarx::KinematicsWorld::angularVelocityFilters
std::map< VirtualRobot::RobotPtr, std::pair< IceUtil::Time, Eigen::Matrix4f > > angularVelocityFilters
Definition: KinematicsWorld.h:260
armarx::KinematicsWorld::KinematicsWorld
KinematicsWorld()
Definition: KinematicsWorld.cpp:47
armarx::KinematicsWorld::actuateRobotJointsVel
void actuateRobotJointsVel(const std::string &robotName, const std::map< std::string, float > &velocities) override
Definition: KinematicsWorld.cpp:175
armarx::KinematicsWorld::applyForceRobotNode
void applyForceRobotNode(const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &force) override
Definition: KinematicsWorld.cpp:225
armarx::KinematicsWorld::actuateRobotJoints
void actuateRobotJoints(const std::string &robotName, const std::map< std::string, float > &angles, const std::map< std::string, float > &velocities) override
ignoring velocity target
Definition: KinematicsWorld.cpp:122
armarx::KinematicsWorld::copyContacts
std::vector< SimDynamics::DynamicsEngine::DynamicsContactInfo > copyContacts() override
Definition: KinematicsWorld.cpp:1496
armarx::KinematicsWorld::getDistance
armarx::DistanceInfo getDistance(const std::string &robotName, const std::string &robotNodeName, const std::string &worldObjectName) override
Definition: KinematicsWorld.cpp:1632
armarx::KinematicsWorld::floorDepthMM
double floorDepthMM
Definition: KinematicsWorld.h:265
armarx::KinematicsWorld::objectGraspedEngine
bool objectGraspedEngine(const std::string &robotName, const std::string &robotNodeName, const std::string &objectName, Eigen::Matrix4f &storeLocalTransform) override
create a joint
Definition: KinematicsWorld.cpp:821
armarx::KinematicsWorld::removeObstacleEngine
bool removeObstacleEngine(const std::string &name) override
Definition: KinematicsWorld.cpp:1321
IceInternal::Handle< FramedPose >
armarx::KinematicsWorld::stepSizeMs
int stepSizeMs
Definition: KinematicsWorld.h:234
armarx::KinematicsWorld::updateForceTorqueSensor
bool updateForceTorqueSensor(ForceTorqueInfo &ftInfo) override
Definition: KinematicsWorld.cpp:1196
armarx::KinematicsWorld::synchronizeSimulationDataEngine
bool synchronizeSimulationDataEngine() override
Definition: KinematicsWorld.cpp:1557
armarx::KinematicsWorld::KinematicRobotInfo::velTransActual
Eigen::Vector3f velTransActual
Definition: KinematicsWorld.h:249
armarx::KinematicsWorld::getRobotNodePose
Eigen::Matrix4f getRobotNodePose(const std::string &robotName, const std::string &robotNodeName) override
Definition: KinematicsWorld.cpp:509
FramedPose.h
armarx::KinematicsWorld::getObjectPose
Eigen::Matrix4f getObjectPose(const std::string &objectName) override
Definition: KinematicsWorld.cpp:766
armarx::KinematicsWorld::getRobotJointAngles
std::map< std::string, float > getRobotJointAngles(const std::string &robotName) override
Definition: KinematicsWorld.cpp:293
armarx::KinematicsWorld::getRobotNodeDistance
armarx::DistanceInfo getRobotNodeDistance(const std::string &robotName, const std::string &robotNodeName1, const std::string &robotNodeName2) override
Definition: KinematicsWorld.cpp:1597
armarx::KinematicsWorld::hasRobotNode
bool hasRobotNode(const std::string &robotName, const std::string &robotNodeName) override
Definition: KinematicsWorld.cpp:706
armarx::KinematicsWorld::addRobotEngine
bool addRobotEngine(VirtualRobot::RobotPtr robot, double pid_p, double pid_i, double pid_d, const std::string &filename, bool staticRobot, bool selfCollisions) override
Definition: KinematicsWorld.cpp:895
armarx::KinematicsWorld::KinematicRobotInfo::velTransTarget
Eigen::Vector3f velTransTarget
Definition: KinematicsWorld.h:249
armarx::KinematicsWorld::calculateActualVelocities
void calculateActualVelocities()
Definition: KinematicsWorld.cpp:995
armarx::KinematicsWorld::kinematicRobots
std::map< std::string, KinematicRobotInfo > kinematicRobots
Definition: KinematicsWorld.h:253
filename
std::string filename
Definition: VisualizationRobot.cpp:86
armarx::channels::KinematicUnitObserver::jointVelocities
const KinematicUnitDatafieldCreator jointVelocities("jointVelocities")
armarx::KinematicsWorld::getObjects
std::vector< VirtualRobot::SceneObjectPtr > getObjects() override
Definition: KinematicsWorld.cpp:1503
armarx::KinematicsWorld::floor
VirtualRobot::SceneObjectPtr floor
Definition: KinematicsWorld.h:261
armarx::KinematicsWorld::synchronizeRobotNodePoses
bool synchronizeRobotNodePoses(const std::string &robotName, std::map< std::string, armarx::PoseBasePtr > &objMap) override
Definition: KinematicsWorld.cpp:970
armarx::KinematicsWorld::getRobotForceTorqueSensors
ForceTorqueDataSeq getRobotForceTorqueSensors(const std::string &) override
Definition: KinematicsWorld.cpp:399
armarx::KinematicsWorld::KinematicRobotInfo
Definition: KinematicsWorld.h:236
armarx::KinematicsWorld::groundObject
VirtualRobot::ObstaclePtr groundObject
Definition: KinematicsWorld.h:266
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::KinematicsWorld::KinematicRobotInfo::velRotTarget
Eigen::Vector3f velRotTarget
Definition: KinematicsWorld.h:250
armarx::KinematicsWorld::stepStaticObjects
void stepStaticObjects(double deltaInSeconds)
Definition: KinematicsWorld.cpp:1457
armarx::control::njoint_controller::platform::platform_follower_controller::NameValueMap
std::map< std::string, float > NameValueMap
Definition: PlatformFollowerController.h:88
armarx::channels::KinematicUnitObserver::jointAngles
const KinematicUnitDatafieldCreator jointAngles("jointAngles")
armarx::KinematicsWorld::getRobotAngularVelocity
Eigen::Vector3f getRobotAngularVelocity(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:548
armarx::KinematicsWorld::setupFloorEngine
void setupFloorEngine(bool enable, const std::string &floorTexture) override
Definition: KinematicsWorld.cpp:1509
armarx::KinematicsWorld::actuateRobotJointsTorque
void actuateRobotJointsTorque(const std::string &robotName, const std::map< std::string, float > &torques) override
Definition: KinematicsWorld.cpp:197
armarx::KinematicsWorld::getRobot
VirtualRobot::RobotPtr getRobot(const std::string &robotName) override
Definition: KinematicsWorld.cpp:721
armarx::KinematicsWorld
The KinematicsWorld class encapsulates the kinemtics simulation and the corresponding data....
Definition: KinematicsWorld.h:49
armarx::KinematicsWorld::getRobotPose
Eigen::Matrix4f getRobotPose(const std::string &robotName) override
Definition: KinematicsWorld.cpp:447
armarx::KinematicsWorld::getRobotJointAngle
float getRobotJointAngle(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:321
armarx::KinematicsWorld::setRobotMaxTorque
void setRobotMaxTorque(const std::string &robotName, const std::string &nodeName, float maxTorque) override
Definition: KinematicsWorld.cpp:485
armarx::KinematicsWorld::setRobotLinearVelocity
void setRobotLinearVelocity(const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
Definition: KinematicsWorld.cpp:591
armarx::KinematicsWorld::KinematicRobotInfo::targetVelocities
std::map< std::string, float > targetVelocities
Definition: KinematicsWorld.h:247
scene3D::SceneObjectPtr
boost::intrusive_ptr< SceneObject > SceneObjectPtr
Definition: PointerDefinitions.h:40
armarx::KinematicsWorld::getFixedTimeStepMS
int getFixedTimeStepMS() override
Definition: KinematicsWorld.cpp:1490
armarx::KinematicsWorld::setRobotAngularVelocityRobotRootFrame
void setRobotAngularVelocityRobotRootFrame(const std::string &robotName, const std::string &robotNodeName, const Eigen::Vector3f &vel) override
Definition: KinematicsWorld.cpp:661
SimulatedWorld.h
armarx::KinematicsWorld::stepPhysicsRealTime
void stepPhysicsRealTime() override
Perform one simulation step.
Definition: KinematicsWorld.cpp:1350
armarx::KinematicsWorld::setRobotNodeSimType
void setRobotNodeSimType(const std::string &robotName, const std::string &robotNodeName, VirtualRobot::SceneObject::Physics::SimulationType simType) override
Definition: KinematicsWorld.cpp:1285
armarx::KinematicsWorld::getRobotJointLimitHi
float getRobotJointLimitHi(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:426
armarx::KinematicsWorld::linearVelocityFilters
std::map< VirtualRobot::RobotPtr, std::pair< IceUtil::Time, Eigen::Vector3f > > linearVelocityFilters
Definition: KinematicsWorld.h:258
armarx::KinematicsWorld::applyTorqueObject
void applyTorqueObject(const std::string &objectName, const Eigen::Vector3f &torque) override
Definition: KinematicsWorld.cpp:250
armarx::KinematicsWorld::KinematicRobotInfo::robot
VirtualRobot::RobotPtr robot
Definition: KinematicsWorld.h:246
armarx::KinematicsWorld::floorUp
Eigen::Vector3f floorUp
Definition: KinematicsWorld.h:263
armarx::channels::KinematicUnitObserver::jointTorques
const KinematicUnitDatafieldCreator jointTorques("jointTorques")
armarx::KinematicsWorld::getRobotStatus
bool getRobotStatus(const std::string &robotName, NameValueMap &jointAngles, NameValueMap &jointVelocities, NameValueMap &jointTorques, Eigen::Vector3f &linearVelocity, Eigen::Vector3f &angularVelocity) override
Definition: KinematicsWorld.cpp:1127
armarx::KinematicsWorld::synchronizeSceneObjectPoses
bool synchronizeSceneObjectPoses(VirtualRobot::SceneObjectPtr currentObjEngine, std::map< std::string, armarx::PoseBasePtr > &objMap) override
Definition: KinematicsWorld.cpp:1533
armarx::KinematicsWorld::getRobotLinearVelocity
Eigen::Vector3f getRobotLinearVelocity(const std::string &robotName, const std::string &nodeName) override
Definition: KinematicsWorld.cpp:531
armarx::KinematicsWorld::getRobotMass
float getRobotMass(const std::string &robotName) override
Definition: KinematicsWorld.cpp:278
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::KinematicsWorld::setRobotPose
void setRobotPose(const std::string &robotName, const Eigen::Matrix4f &globalPose) override
Definition: KinematicsWorld.cpp:208
armarx::KinematicsWorld::synchronizeObjects
bool synchronizeObjects() override
Definition: KinematicsWorld.cpp:1206
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:19
armarx::KinematicsWorld::removeRobotEngine
bool removeRobotEngine(const std::string &robotName) override
Definition: KinematicsWorld.cpp:875
armarx::KinematicsWorld::actuateRobotJointsPos
void actuateRobotJointsPos(const std::string &robotName, const std::map< std::string, float > &angles) override
Definition: KinematicsWorld.cpp:147
armarx::KinematicsWorld::addObstacleEngine
bool addObstacleEngine(VirtualRobot::SceneObjectPtr o, VirtualRobot::SceneObject::Physics::SimulationType simType) override
Definition: KinematicsWorld.cpp:1238