SharedRobotServants.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-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
19  * @author
20  * @date
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 #include "SharedRobotServants.h"
25 
27 
28 #include <Eigen/Geometry>
29 
30 #include <VirtualRobot/Nodes/RobotNode.h>
31 #include <VirtualRobot/Nodes/RobotNodeRevolute.h>
32 #include <VirtualRobot/Nodes/RobotNodePrismatic.h>
33 #include <VirtualRobot/RobotConfig.h>
34 #include <VirtualRobot/VirtualRobot.h>
35 #include <VirtualRobot/Robot.h>
36 #include <VirtualRobot/RobotNodeSet.h>
37 #include <Ice/ObjectAdapter.h>
39 
40 using namespace VirtualRobot;
41 using namespace Eigen;
42 using namespace Ice;
43 
44 
45 #undef VERBOSE
46 //#define VERBOSE
47 
48 
49 namespace armarx
50 {
51 
52  using NodeCache = std::map<std::string, SharedRobotNodeInterfacePrx>;
53 
54  ///////////////////////////////
55  // SharedObjectBase
56  ///////////////////////////////
57 
58  SharedObjectBase::SharedObjectBase()
59  {
60  this-> _referenceCount = 0;
61 #ifdef VERBOSE
62  ARMARX_LOG_S << "construct " << this << flush;
63 #endif
64  }
65 
66 
67  void SharedObjectBase::ref(const Current& current)
68  {
69  std::unique_lock lock(this->_counterMutex);
70 
71  _referenceCount++;
72 
73 #ifdef VERBOSE
74  ARMARX_LOG_S << "ref: " << _referenceCount << " " << this << flush;
75 #endif
76  }
77 
78  void SharedObjectBase::unref(const Current& current)
79  {
80  std::unique_lock lock(this->_counterMutex);
81 
82 #ifdef VERBOSE
83  ARMARX_LOG_S << "unref: " << _referenceCount << " " << this << flush;
84 #endif
85  _referenceCount --;
86 
87  if (_referenceCount == 0)
88  {
89  this->destroy(current);
90  }
91  }
92 
93  void SharedObjectBase::destroy(const Current& current)
94  {
95  try
96  {
97  current.adapter->remove(current.id);
98 #ifdef VERBOSE
99  ARMARX_ERROR_S << "[SharedObject] destroy " << " " << this << flush;
100 #endif
101  }
102  catch (const NotRegisteredException& e)
103  {
104  // ARMARX_INFO_S << "destroy failed with: " << e.what();
105  throw ObjectNotExistException(__FILE__, __LINE__);
106  };
107  }
108 
109  ///////////////////////////////
110  // SharedRobotNodeServant
111  ///////////////////////////////
112 
113  SharedRobotNodeServant::SharedRobotNodeServant(RobotNodePtr node) :
114  _node(node)
115  {
116 #ifdef VERBOSE
117  ARMARX_LOG_S << "[SharedRobotNodeServant] construct " << " " << this << flush;
118 #endif
119  }
120 
121 
123  {
124 #ifdef VERBOSE
125  ARMARX_FATAL_S << "[SharedRobotNodeServant] destruct " << " " << this << flush;
126 #endif
127  }
128 
129  float SharedRobotNodeServant::getJointValue(const Current& current) const
130  {
131  ReadLockPtr lock = _node->getRobot()->getReadLock();
132  return _node->getJointValue();
133  }
134 
135  std::string SharedRobotNodeServant::getName(const Current& current) const
136  {
137  ReadLockPtr lock = _node->getRobot()->getReadLock();
138  return _node->getName();
139  }
140 
141  PoseBasePtr SharedRobotNodeServant::getLocalTransformation(const Current& current) const
142  {
143  ReadLockPtr lock = _node->getRobot()->getReadLock();
144  return new Pose(_node->getLocalTransformation());
145  }
146 
147  FramedPoseBasePtr SharedRobotNodeServant::getGlobalPose(const Current& current) const
148  {
149  ReadLockPtr lock = _node->getRobot()->getReadLock();
150  return new FramedPose(_node->getGlobalPose(),
151  GlobalFrame,
152  "");
153  }
154 
155  FramedPoseBasePtr SharedRobotNodeServant::getPoseInRootFrame(const Current& current) const
156  {
157  ReadLockPtr lock = _node->getRobot()->getReadLock();
158  return new FramedPose(_node->getPoseInRootFrame(),
159  _node->getRobot()->getRootNode()->getName(),
160  _node->getRobot()->getName());
161  }
162 
163 
164  JointType SharedRobotNodeServant::getType(const Current& current) const
165  {
166  ReadLockPtr lock = _node->getRobot()->getReadLock();
167 
168  if (_node->isRotationalJoint())
169  {
170  return eRevolute;
171  }
172  else if (_node->isTranslationalJoint())
173  {
174  return ePrismatic;
175  }
176  else
177  {
178  return eFixed;
179  }
180  }
181 
182  Vector3BasePtr SharedRobotNodeServant::getJointTranslationDirection(const Current& current) const
183  {
184  ReadLockPtr lock = _node->getRobot()->getReadLock();
185  RobotNodePrismatic* prismatic = dynamic_cast<RobotNodePrismatic*>(_node.get());
186 
187  if (prismatic)
188  {
189  return new Vector3(prismatic->getJointTranslationDirection());
190  }
191  else
192  {
193  return new Vector3;
194  }
195  }
196 
197  Vector3BasePtr SharedRobotNodeServant::getJointRotationAxis(const Current& current) const
198  {
199  ReadLockPtr lock = _node->getRobot()->getReadLock();
200  RobotNodeRevolute* revolute = dynamic_cast<RobotNodeRevolute*>(_node.get());
201 
202  if (revolute)
203  {
204  return new Vector3(revolute->getJointRotationAxis());
205  }
206  else
207  {
208  return new Vector3;
209  }
210  }
211 
212 
213  bool SharedRobotNodeServant::hasChild(const std::string& name, bool recursive, const Current& current) const
214  {
215  ReadLockPtr lock = _node->getRobot()->getReadLock();
216  //return _node->hasChild(name,recursive);
217  return false;
218  }
219 
220  std::string SharedRobotNodeServant::getParent(const Current& current) const
221  {
222  ReadLockPtr lock = _node->getRobot()->getReadLock();
223  SceneObjectPtr parent = _node->getParent();
224 
225  if (!parent)
226  {
227  throw UserException("This RobotNode has no parent.");
228  }
229 
230  return parent->getName();
231  }
232 
233  NameList SharedRobotNodeServant::getChildren(const Current& current) const
234  {
235  ReadLockPtr lock = _node->getRobot()->getReadLock();
236  std::vector<SceneObjectPtr> children = _node->getChildren();
237  NameList names;
238  for (SceneObjectPtr const& node : children)
239  {
240  names.push_back(node->getName());
241  }
242  return names;
243  }
244 
245  NameList SharedRobotNodeServant::getAllParents(const std::string& name, const Ice::Current& current) const
246  {
247  ReadLockPtr lock = _node->getRobot()->getReadLock();
248  std::vector<RobotNodePtr> parents = _node->getAllParents(_node->getRobot()->getRobotNodeSet(name));
249  NameList names;
250  for (RobotNodePtr const& node : parents)
251  {
252  names.push_back(node->getName());
253  }
254  return names;
255  }
256 
257  float SharedRobotNodeServant::getJointValueOffest(const Current& current) const
258  {
259  ReadLockPtr lock = _node->getRobot()->getReadLock();
260  return _node->getJointValueOffset();
261  }
262 
263  float SharedRobotNodeServant::getJointLimitHigh(const Current& current) const
264  {
265  ReadLockPtr lock = _node->getRobot()->getReadLock();
266  return _node->getJointLimitHigh();
267  }
268 
269  float SharedRobotNodeServant::getJointLimitLow(const Current& current) const
270  {
271  ReadLockPtr lock = _node->getRobot()->getReadLock();
272  return _node->getJointLimitLow();
273  }
274 
275  Vector3BasePtr SharedRobotNodeServant::getCoM(const Current& current) const
276  {
277  ReadLockPtr lock = _node->getRobot()->getReadLock();
278  return new Vector3(_node->getCoMLocal());
279  }
280 
281  FloatSeq SharedRobotNodeServant::getInertia(const Current& current) const
282  {
283  ReadLockPtr lock = _node->getRobot()->getReadLock();
284  FloatSeq result;
285 
286  for (int i = 0; i < 3; i++)
287  for (int j = 0; j < 3; j++)
288  {
289  result.push_back(_node->getInertiaMatrix()(i, j));
290  }
291 
292  return result;
293  }
294 
295  float SharedRobotNodeServant::getMass(const Current& current) const
296  {
297  ReadLockPtr lock = _node->getRobot()->getReadLock();
298  return _node->getMass();
299  }
300 
301 
302  ///////////////////////////////
303  // SharedRobotServant
304  ///////////////////////////////
305 
306  SharedRobotServant::SharedRobotServant(RobotPtr robot, RobotStateComponentInterfacePrx robotStateComponent, RobotStateListenerInterfacePrx robotStateListenerPrx)
307  : _robot(robot),
308  robotStateComponent(robotStateComponent),
309  robotStateListenerPrx(robotStateListenerPrx)
310  {
311 #ifdef VERBOSE
312  ARMARX_WARNING_S << "construct " << this << flush;
313 #endif
314  }
315 
317  {
318 #ifdef VERBOSE
319  ARMARX_WARNING_S << "destruct " << this << flush;
320 #endif
321  std::unique_lock cloneLock(m);
322 
323  for (auto value : this->_cachedNodes)
324  {
325  try
326  {
327  value.second->unref();
328  }
329  catch (...) {}
330  }
331  }
332 
334  {
335  this->robotStateComponent = robotStateComponent;
336  }
337 
338  SharedRobotNodeInterfacePrx SharedRobotServant::getRobotNode(const std::string& name, const Current& current)
339  {
340  // ARMARX_LOG_S << "Looking for node: " << name << flush;
341  assert(_robot);
342  std::unique_lock cloneLock(m);
343  SharedRobotNodeInterfacePrx prx;
344 
345  if (this->_cachedNodes.find(name) == this->_cachedNodes.end())
346  {
347  RobotNodePtr robotNode = _robot->getRobotNode(name);
348 
349  if (!robotNode)
350  {
351  ARMARX_WARNING_S << "RobotNode \"" + name + "\" not defined.";
352  throw UserException("RobotNode \"" + name + "\" not defined.");
353  }
354 
355  SharedRobotNodeInterfacePtr servant = new SharedRobotNodeServant(
356  _robot->getRobotNode(name));
357  //servant->ref();
358  prx = SharedRobotNodeInterfacePrx::uncheckedCast(current.adapter->addWithUUID(servant));
359  prx->ref();
360  // return prx;
361  this->_cachedNodes[name] = prx;
362  }
363 
364  return this->_cachedNodes[name];
365  }
366 
367  SharedRobotNodeInterfacePrx SharedRobotServant::getRootNode(const Current& current)
368  {
369  assert(_robot);
370  std::unique_lock cloneLock(m);
371  std::string name = _robot->getRootNode()/*,current*/->getName();
372  return this->getRobotNode(name, current);
373  }
374 
375 
376  bool SharedRobotServant::hasRobotNode(const std::string& name, const Current& current)
377  {
378  return _robot->hasRobotNode(name);
379  }
380 
381  NameList SharedRobotServant::getRobotNodes(const Current& current)
382  {
383  std::vector<RobotNodePtr> robotNodes = _robot->getRobotNodes();
384  NameList names;
385  for (RobotNodePtr const& node : robotNodes)
386  {
387  names.push_back(node->getName());
388  }
389  return names;
390  }
391 
392  RobotNodeSetInfoPtr SharedRobotServant::getRobotNodeSet(const std::string& name, const Current& current)
393  {
394  RobotNodeSetPtr robotNodeSet = _robot->getRobotNodeSet(name);
395 
396  if (!robotNodeSet)
397  {
398  throw UserException("RobotNodeSet \"" + name + "\" not defined");
399  }
400 
401  std::vector<RobotNodePtr> robotNodes = robotNodeSet->getAllRobotNodes();
402  NameList names;
403  for (RobotNodePtr const& node : robotNodes)
404  {
405  names.push_back(node->getName());
406  }
407 
408  RobotNodeSetInfoPtr info = new RobotNodeSetInfo;
409  info->names = names;
410  info->name = name;
411  info->tcpName = robotNodeSet->getTCP()->getName();
412  info->rootName = robotNodeSet->getKinematicRoot()->getName();
413 
414  return info;
415 
416  }
417 
418  NameList SharedRobotServant::getRobotNodeSets(const Current& current)
419  {
420  std::vector<RobotNodeSetPtr> robotNodeSets = _robot->getRobotNodeSets();
421  NameList names;
422  for (RobotNodeSetPtr const& set : robotNodeSets)
423  {
424  names.push_back(set->getName());
425  }
426 
427  return names;
428  }
429 
430  bool SharedRobotServant::hasRobotNodeSet(const std::string& name, const Current& current)
431  {
432  return _robot->hasRobotNodeSet(name);
433  }
434 
435  std::string SharedRobotServant::getName(const Current& current)
436  {
437  //ARMARX_VERBOSE_S << "SharedRobotServant::getname:" << _robot->getName();
438  return _robot->getName();
439  }
440 
441  std::string SharedRobotServant::getType(const Current& current)
442  {
443  return _robot->getType();
444  }
445 
447  {
448  updateTimestamp = updateTime;
449  }
450 
451  PoseBasePtr SharedRobotServant::getGlobalPose(const Current& current)
452  {
453  ReadLockPtr lock = _robot->getReadLock();
454  return new Pose(_robot->getGlobalPose());
455  }
456 
458  {
459  if (!_robot)
460  {
461  ARMARX_WARNING_S << "no robot set";
462  return NameValueMap();
463  }
464 
465  ReadLockPtr lock = _robot->getReadLock();
466  std::map < std::string, float > values = _robot->getConfig()->getRobotNodeJointValueMap();
467  NameValueMap result(values.begin(), values.end());
468  return result;
469  }
470 
471  NameValueMap SharedRobotServant::getConfigAndPose(PoseBasePtr& globalPose, const Current& current)
472  {
473  globalPose = getGlobalPose(current);
474  return getConfig(current);
475  }
476 
477  TimestampBasePtr SharedRobotServant::getTimestamp(const Current&) const
478  {
479  return new TimestampVariant(updateTimestamp);
480  }
481 
483  {
484  return robotStateComponent;
485  }
486 
487  void SharedRobotServant::setGlobalPose(const armarx::PoseBasePtr& pose, const Current&)
488  {
489  WriteLockPtr lock = _robot->getWriteLock();
490  Eigen::Matrix4f newPose = PosePtr::dynamicCast(pose)->toEigen();
492  {
493  Eigen::Matrix4f oldPose = _robot->getGlobalPose();
494  robotStateListenerPrx->reportGlobalRobotRootPose(new FramedPose(newPose, GlobalFrame, ""), TimeUtil::GetTime().toMicroSeconds(), !oldPose.isApprox(newPose));
495  }
496  _robot->setGlobalPose(newPose, true);
497  }
498 
499  float SharedRobotServant::getScaling(const Current&)
500  {
501  return _robot->getScaling();
502  }
503 
505  {
506  return this->_robot;
507  }
508 
509 }
510 
511 
512 
armarx::SharedRobotServant::_robot
VirtualRobot::RobotPtr _robot
Definition: SharedRobotServants.h:143
armarx::SharedRobotNodeServant::getJointTranslationDirection
Vector3BasePtr getJointTranslationDirection(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:182
Eigen
Definition: Elements.h:36
armarx::SharedRobotServant::getGlobalPose
PoseBasePtr getGlobalPose(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:451
armarx::navigation::core::Pose
Eigen::Isometry3f Pose
Definition: basic_types.h:31
armarx::SharedRobotNodeServant::getGlobalPose
FramedPoseBasePtr getGlobalPose(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:147
armarx::SharedRobotNodeServant
The SharedRobotNodeServant class is a remote representation of a Simox VirtualRobot::Robot.
Definition: SharedRobotServants.h:64
armarx::VariantType::FramedPose
const VariantTypeId FramedPose
Definition: FramedPose.h:37
VirtualRobot
Definition: FramedPose.h:43
armarx::SharedRobotNodeServant::getType
JointType getType(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:164
armarx::SharedRobotServant::getName
std::string getName(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:435
armarx::SharedRobotServant::setRobotStateComponent
void setRobotStateComponent(RobotStateComponentInterfacePrx robotStateComponent)
Definition: SharedRobotServants.cpp:333
armarx::SharedRobotServant::_cachedNodes
std::map< std::string, SharedRobotNodeInterfacePrx > _cachedNodes
Definition: SharedRobotServants.h:145
armarx::SharedRobotServant::getTimestamp
TimestampBasePtr getTimestamp(const Ice::Current &=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:477
armarx::SharedRobotServant::getRootNode
SharedRobotNodeInterfacePrx getRootNode(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:367
armarx::SharedRobotServant::~SharedRobotServant
~SharedRobotServant() override
Definition: SharedRobotServants.cpp:316
armarx::GlobalFrame
const std::string GlobalFrame
Definition: FramedPose.h:62
armarx::SharedRobotServant::getRobotStateComponent
RobotStateComponentInterfacePrx getRobotStateComponent(const Ice::Current &) const override
Definition: SharedRobotServants.cpp:482
armarx::TimestampVariant
Definition: TimestampVariant.h:54
ProsthesisInterface.values
values
Definition: ProsthesisInterface.py:190
armarx::SharedRobotNodeServant::getInertia
Ice::FloatSeq getInertia(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:281
SharedRobotServants.h
armarx::SharedRobotServant::getRobotNodeSets
NameList getRobotNodeSets(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:418
armarx::SharedRobotNodeServant::getJointValue
float getJointValue(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:129
armarx::SharedRobotServant::getConfig
NameValueMap getConfig(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:457
armarx::SharedRobotNodeServant::getJointLimitLow
float getJointLimitLow(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:269
armarx::SharedRobotNodeServant::getMass
float getMass(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:295
armarx::SharedRobotNodeServant::getLocalTransformation
PoseBasePtr getLocalTransformation(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:141
armarx::SharedRobotNodeServant::getAllParents
NameList getAllParents(const std::string &name, const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:245
armarx::SharedRobotServant::getRobotNodeSet
RobotNodeSetInfoPtr getRobotNodeSet(const std::string &name, const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:392
armarx::SharedRobotServant::m
std::recursive_mutex m
Definition: SharedRobotServants.h:144
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
armarx::SharedRobotServant::getRobotNode
SharedRobotNodeInterfacePrx getRobotNode(const std::string &name, const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:338
ARMARX_ERROR_S
#define ARMARX_ERROR_S
Definition: Logging.h:209
armarx::flush
const LogSender::manipulator flush
Definition: LogSender.h:251
armarx::SharedRobotNodeServant::~SharedRobotNodeServant
~SharedRobotNodeServant() override
Definition: SharedRobotServants.cpp:122
TimestampVariant.h
armarx::SharedRobotServant::SharedRobotServant
SharedRobotServant(VirtualRobot::RobotPtr robot, RobotStateComponentInterfacePrx robotStateComponent, RobotStateListenerInterfacePrx robotStateListenerPrx)
Definition: SharedRobotServants.cpp:306
armarx::SharedRobotServant::setGlobalPose
void setGlobalPose(const PoseBasePtr &pose, const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:487
armarx::SharedRobotNodeServant::getChildren
NameList getChildren(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:233
armarx::SharedRobotNodeServant::getParent
std::string getParent(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:220
armarx::SharedRobotServant::getRobotNodes
NameList getRobotNodes(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:381
armarx::SharedRobotNodeServant::getName
std::string getName(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:135
armarx::SharedRobotServant::setTimestamp
void setTimestamp(const IceUtil::Time &updateTime)
Definition: SharedRobotServants.cpp:446
ARMARX_LOG_S
#define ARMARX_LOG_S
Definition: Logging.h:145
ARMARX_WARNING_S
#define ARMARX_WARNING_S
Definition: Logging.h:206
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::SharedRobotServant::updateTimestamp
IceUtil::Time updateTimestamp
Definition: SharedRobotServants.h:146
armarx::TimeUtil::GetTime
static IceUtil::Time GetTime(TimeMode timeMode=TimeMode::VirtualTime)
Get the current time.
Definition: TimeUtil.cpp:42
armarx::SharedRobotNodeServant::hasChild
bool hasChild(const std::string &name, bool recursive, const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:213
armarx::SharedRobotServant::robotStateComponent
RobotStateComponentInterfacePrx robotStateComponent
Definition: SharedRobotServants.h:147
armarx::SharedRobotNodeServant::getJointLimitHigh
float getJointLimitHigh(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:263
armarx::control::njoint_controller::platform::platform_follower_controller::NameValueMap
std::map< std::string, float > NameValueMap
Definition: PlatformFollowerController.h:91
Ice
Definition: DBTypes.cpp:64
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::SharedRobotServant::getScaling
float getScaling(const Ice::Current &=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:499
armarx::viz::data::ElementFlags::names
const simox::meta::IntEnumNames names
Definition: json_elements.cpp:14
set
set(LIBS ArmarXCoreInterfaces ${CMAKE_THREAD_LIBS_INIT} ${dl_LIBRARIES} ${rt_LIBRARIES} ${QT_LIBRARIES} ${Boost_LIBRARIES} BoostAssertionHandler ArmarXCPPUtility SimoxUtility) set(LIB_FILES ArmarXManager.cpp ArmarXMultipleObjectsScheduler.cpp ArmarXObjectScheduler.cpp ManagedIceObject.cpp ManagedIceObjectPlugin.cpp Component.cpp ComponentPlugin.cpp IceGridAdmin.cpp ArmarXObjectObserver.cpp IceManager.cpp PackagePath.cpp RemoteReferenceCount.cpp logging/LoggingUtil.cpp logging/Logging.cpp logging/LogSender.cpp logging/ArmarXLogBuf.cpp system/ArmarXDataPath.cpp system/DynamicLibrary.cpp system/ProcessWatcher.cpp system/FactoryCollectionBase.cpp system/cmake/CMakePackageFinder.cpp system/cmake/CMakePackageFinderCache.cpp system/cmake/ArmarXPackageToolInterface.cpp system/RemoteObjectNode.cpp services/sharedmemory/HardwareId.cpp services/tasks/RunningTask.cpp services/tasks/ThreadList.cpp services/tasks/ThreadPool.cpp services/profiler/Profiler.cpp services/profiler/FileLoggingStrategy.cpp services/profiler/IceLoggingStrategy.cpp application/Application.cpp application/ApplicationOptions.cpp application/ApplicationProcessFacet.cpp application/ApplicationNetworkStats.cpp application/properties/PropertyUser.cpp application/properties/Property.cpp application/properties/PropertyDefinition.cpp application/properties/PropertyDefinitionContainer.cpp application/properties/PropertyDefinitionHelpFormatter.cpp application/properties/PropertyDefinitionConfigFormatter.cpp application/properties/PropertyDefinitionBriefHelpFormatter.cpp application/properties/PropertyDefinitionXmlFormatter.cpp application/properties/PropertyDefinitionDoxygenFormatter.cpp application/properties/PropertyDefinitionDoxygenComponentPagesFormatter.cpp application/properties/PropertyDefinitionContainerBriefHelpFormatter.cpp application/properties/IceProperties.cpp exceptions/Exception.cpp exceptions/local/UnexpectedEnumValueException.cpp util/FileSystemPathBuilder.cpp util/StringHelpers.cpp util/IceReportSkipper.cpp util/Throttler.cpp util/distributed/AMDCallbackCollection.cpp util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.cpp util/distributed/RemoteHandle/RemoteHandle.cpp util/distributed/RemoteHandle/RemoteHandleControlBlock.cpp time/ice_conversions.cpp time/json_conversions.cpp time/CallbackWaitLock.cpp time/Clock.cpp time/ClockType.cpp time/ClockTypeNames.cpp time/CycleUtil.cpp time/DateTime.cpp time/Duration.cpp time/Frequency.cpp time/LocalTimeServer.cpp time/Metronome.cpp time/ScopedStopWatch.cpp time/StopWatch.cpp time/Timer.cpp time/TimeKeeper.cpp time/TimeUtil.cpp csv/CsvWriter.cpp csv/CsvReader.cpp eigen/conversions.cpp eigen/ice_conversions.cpp) set(LIB_HEADERS ArmarXManager.h ArmarXDummyManager.h ArmarXMultipleObjectsScheduler.h ArmarXObjectObserver.h ArmarXObjectScheduler.h ArmarXFwd.h Component.h ComponentPlugin.h ComponentFactories.h CoreObjectFactories.h IceGridAdmin.h IceManager.h IceManagerImpl.h json_conversions.h ManagedIceObject.h ManagedIceObjectPlugin.h ManagedIceObjectImpl.h ManagedIceObjectDependency.h ManagedIceObjectRegistryInterface.h PackagePath.h RemoteReferenceCount.h system/ImportExport.h system/ImportExportComponent.h system/AbstractFactoryMethod.h system/FactoryCollectionBase.h system/Synchronization.h system/ArmarXDataPath.h system/DynamicLibrary.h system/ProcessWatcher.h system/ConditionSynchronization.h system/cmake/CMakePackageFinder.h system/cmake/CMakePackageFinderCache.h system/cmake/FindPackageX.cmake system/cmake/ArmarXPackageToolInterface.h system/RemoteObjectNode.h logging/LoggingUtil.h logging/LogSender.h logging/Logging.h logging/ArmarXLogBuf.h logging/SpamFilterData.h services/tasks/RunningTask.h services/tasks/PeriodicTask.h services/tasks/ThreadList.h services/tasks/TaskUtil.h services/tasks/ThreadPool.h services/sharedmemory/SharedMemoryProvider.h services/sharedmemory/SharedMemoryConsumer.h services/sharedmemory/IceSharedMemoryProvider.h services/sharedmemory/IceSharedMemoryConsumer.h services/sharedmemory/HardwareIdentifierProvider.h services/sharedmemory/HardwareId.h services/sharedmemory/exceptions/SharedMemoryExceptions.h services/profiler/Profiler.h services/profiler/LoggingStrategy.h services/profiler/FileLoggingStrategy.h services/profiler/IceLoggingStrategy.h application/Application.h application/ApplicationOptions.h application/ApplicationProcessFacet.h application/ApplicationNetworkStats.h application/properties/forward_declarations.h application/properties/Properties.h application/properties/Property.h application/properties/PluginEigen.h application/properties/PluginEnumNames.h application/properties/PluginCfgStruct.h application/properties/PluginAll.h application/properties/PropertyUser.h application/properties/PropertyDefinition.h application/properties/PropertyDefinition.hpp application/properties/PropertyDefinitionInterface.h application/properties/PropertyDefinitionContainer.h application/properties/PropertyDefinitionFormatter.h application/properties/PropertyDefinitionContainerFormatter.h application/properties/PropertyDefinitionConfigFormatter.h application/properties/PropertyDefinitionHelpFormatter.h application/properties/PropertyDefinitionBriefHelpFormatter.h application/properties/PropertyDefinitionXmlFormatter.h application/properties/PropertyDefinitionDoxygenFormatter.h application/properties/PropertyDefinitionDoxygenComponentPagesFormatter.h application/properties/PropertyDefinitionContainerBriefHelpFormatter.h application/properties/ProxyPropertyDefinition.h application/properties/IceProperties.h exceptions/Exception.h exceptions/LocalException.h exceptions/local/DynamicLibraryException.h exceptions/local/ExpressionException.h exceptions/local/FileIOException.h exceptions/local/InvalidPropertyValueException.h exceptions/local/MissingRequiredPropertyException.h exceptions/local/PropertyInheritanceCycleException.h exceptions/local/ProxyNotInitializedException.h exceptions/local/UnexpectedEnumValueException.h exceptions/local/UnmappedValueException.h exceptions/local/ValueRangeExceededException.h exceptions/user/NotImplementedYetException.h rapidxml/rapidxml.hpp rapidxml/rapidxml_print.hpp rapidxml/rapidxml_iterators.hpp rapidxml/rapidxml_utils.hpp rapidxml/wrapper/RapidXmlReader.h rapidxml/wrapper/RapidXmlWriter.h rapidxml/wrapper/DefaultRapidXmlReader.h rapidxml/wrapper/MultiNodeRapidXMLReader.h util/IceBlobToObject.h util/ObjectToIceBlob.h util/FileSystemPathBuilder.h util/FiniteStateMachine.h util/StringHelpers.h util/StringHelperTemplates.h util/algorithm.h util/OnScopeExit.h util/Predicates.h util/Preprocessor.h util/PropagateConst.h util/Registrar.h util/TemplateMetaProgramming.h util/TripleBuffer.h util/IceReportSkipper.h util/Throttler.h util/distributed/AMDCallbackCollection.h util/distributed/RemoteHandle/ClientSideRemoteHandleControlBlock.h util/distributed/RemoteHandle/RemoteHandle.h util/distributed/RemoteHandle/RemoteHandleControlBlock.h util/SimpleStatemachine.h time.h time_minimal.h time/forward_declarations.h time/ice_conversions.h time/json_conversions.h time/CallbackWaitLock.h time/Clock.h time/ClockType.h time/ClockTypeNames.h time/CycleUtil.h time/DateTime.h time/Duration.h time/Frequency.h time/LocalTimeServer.h time/Metronome.h time/ScopedStopWatch.h time/StopWatch.h time/Timer.h time/TimeUtil.h time/TimeKeeper.h csv/CsvWriter.h csv/CsvReader.h eigen/conversions.h eigen/ice_conversions.h ice_conversions.h ice_conversions/ice_conversions_boost_templates.h ice_conversions/ice_conversions_templates.h ice_conversions/ice_conversions_templates.tpp $
Definition: CMakeLists.txt:12
armarx::SharedRobotServant::getRobot
VirtualRobot::RobotPtr getRobot() const
Definition: SharedRobotServants.cpp:504
memoryx::KBM::Vector3
Eigen::Vector3d Vector3
Definition: kbm.h:41
IceInternal::ProxyHandle<::IceProxy::armarx::RobotStateComponentInterface >
scene3D::SceneObjectPtr
boost::intrusive_ptr< SceneObject > SceneObjectPtr
Definition: PointerDefinitions.h:40
ARMARX_FATAL_S
#define ARMARX_FATAL_S
Definition: Logging.h:212
armarx::SharedRobotNodeServant::getJointRotationAxis
Vector3BasePtr getJointRotationAxis(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:197
armarx::SharedRobotNodeServant::getJointValueOffest
float getJointValueOffest(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:257
armarx::SharedRobotServant::getType
std::string getType(const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:441
armarx::SharedRobotServant::robotStateListenerPrx
RobotStateListenerInterfacePrx robotStateListenerPrx
Definition: SharedRobotServants.h:148
armarx::NodeCache
std::map< std::string, SharedRobotNodeInterfacePrx > NodeCache
Definition: SharedRobotServants.cpp:52
Logging.h
armarx::SharedRobotServant::getConfigAndPose
NameValueMap getConfigAndPose(PoseBasePtr &globalPose, const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:471
armarx::SharedRobotNodeServant::_node
VirtualRobot::RobotNodePtr _node
Definition: SharedRobotServants.h:99
armarx::SharedRobotServant::hasRobotNode
bool hasRobotNode(const std::string &name, const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:376
armarx::SharedRobotServant::hasRobotNodeSet
bool hasRobotNodeSet(const std::string &name, const Ice::Current &current=Ice::emptyCurrent) override
Definition: SharedRobotServants.cpp:430
armarx::SharedRobotNodeServant::getCoM
Vector3BasePtr getCoM(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:275
armarx::SharedRobotNodeServant::getPoseInRootFrame
FramedPoseBasePtr getPoseInRootFrame(const Ice::Current &current=Ice::emptyCurrent) const override
Definition: SharedRobotServants.cpp:155
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:18