FramedPose.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2012-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 RobotAPI::RobotStateComponent::
19  * @author ( stefan dot ulbrich at kit dot edu)
20  * @date
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
25 #pragma once
26 
27 #include "Pose.h"
28 #include <VirtualRobot/VirtualRobot.h>
29 
30 #include <RobotAPI/interface/core/FramedPoseBase.h>
31 
32 
33 
34 namespace armarx::VariantType
35 {
36  // variant types
37  const VariantTypeId FramedPose = Variant::addTypeName("::armarx::FramedPoseBase");
38  const VariantTypeId FramedDirection = Variant::addTypeName("::armarx::FramedDirectionBase");
39  const VariantTypeId FramedPosition = Variant::addTypeName("::armarx::FramedPositionBase");
40  const VariantTypeId FramedOrientation = Variant::addTypeName("::armarx::FramedOrientationBase");
41 }
42 
43 namespace VirtualRobot
44 {
45  class LinkedCoordinate;
46 }
47 namespace IceProxy::armarx
48 {
49  class SharedRobotInterface;
50 }
51 namespace Eigen
52 {
54 }
55 namespace armarx
56 {
58  /**
59  * @ingroup RobotAPI-FramedPose
60  * Variable of the global coordinate system. use this if you are specifying a global pose.
61  * */
62  std::string const GlobalFrame = "Global";
63  std::string const OdometryFrame = "Odom";
64  std::string const MapFrame = "Map";
65 
66 
67  /**
68  * @class FramedDirection
69  * @ingroup RobotAPI-FramedPose
70  * @ingroup VariantsGrp
71  * @brief FramedDirection is a 3 dimensional @b direction vector with a reference frame.
72  * The reference frame can be used to change the coordinate system to which
73  * the vector relates. The difference to a FramedPosition is, that on frame
74  * changing only the orientation of the vector is changed. The length of the vector
75  * remains unchanged. This class is usefull e.g. for forces and tcp
76  * velocities.
77  *
78  * @see Vector3, FramedPosition
79  */
80  class FramedDirection;
82 
84  virtual public FramedDirectionBase,
85  virtual public Vector3
86  {
87  public:
90  FramedDirection(const Eigen::Vector3f& vec, const std::string& frame, const std::string& agent);
91  FramedDirection(Ice::Float x, ::Ice::Float y, ::Ice::Float z, const std::string& frame, const std::string& agent);
92  FramedDirection& operator=(const FramedDirection&) = default;
93 
94  std::string getFrame() const;
95  static FramedDirectionPtr ChangeFrame(const VirtualRobot::RobotPtr& robot, const FramedDirection& framedVec, const std::string& newFrame);
96  static FramedDirectionPtr ChangeFrame(const VirtualRobot::Robot& robot, const FramedDirection& framedVec, const std::string& newFrame);
97  void changeFrame(const VirtualRobot::RobotPtr& robot, const std::string& newFrame);
98  void changeFrame(const VirtualRobot::Robot& robot, const std::string& newFrame);
99 
100  void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
101  void changeToGlobal(const VirtualRobot::RobotPtr& referenceRobot);
102  void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
103  FramedDirectionPtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
104  FramedDirectionPtr toGlobal(const VirtualRobot::RobotPtr& referenceRobot) const;
105  FramedDirectionPtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
106  Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
107  Eigen::Vector3f toGlobalEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
108  Eigen::Vector3f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
109  FramedDirectionPtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
110  FramedDirectionPtr toRootFrame(const VirtualRobot::RobotPtr& referenceRobot) const;
111  FramedDirectionPtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
112  Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
113  Eigen::Vector3f toRootEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
114  Eigen::Vector3f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
115 
116  // inherited from VariantDataClass
117  Ice::ObjectPtr ice_clone() const override;
118  VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
119  std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
120  VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
121  bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
122 
123  friend std::ostream& operator<<(std::ostream& stream, const FramedDirection& rhs);
124 
125  public: // serialization
126  void serialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) const override;
127  void deserialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) override;
128 
129  private:
130  static Eigen::Matrix4f __GetRotationBetweenFrames(const std::string& oldFrame, const std::string& newFrame, const VirtualRobot::Robot& robotState);
131  };
132 
133  class FramedPosition;
135 
136  /**
137  * @class FramedPosition
138  * @ingroup VariantsGrp
139  * @ingroup RobotAPI-FramedPose
140  * @brief The FramedPosition class
141  */
143  virtual public FramedPositionBase,
144  virtual public Vector3
145  {
146  public:
147  FramedPosition();
148  FramedPosition(const Eigen::Vector3f&, const std::string& frame, const std::string& agent);
149  FramedPosition(const Eigen::Matrix4f&, const std::string& frame, const std::string& agent);
150  //FramedPosition(const Vector3BasePtr pos, const std::string &frame ); // this doesnt work for unknown reasons
151  FramedPosition(const FramedPosition& other);
152 
154 
155  std::string getFrame() const;
156 
157  void changeFrame(const SharedRobotInterfacePrx& referenceRobot, const std::string& newFrame);
158  void changeFrame(const VirtualRobot::RobotPtr& referenceRobot, const std::string& newFrame);
159  void changeFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame);
160  void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
161  void changeToGlobal(const VirtualRobot::RobotPtr& referenceRobot);
162  void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
163  FramedPositionPtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
164  FramedPositionPtr toGlobal(const VirtualRobot::RobotPtr& referenceRobot) const;
165  FramedPositionPtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
166  Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
167  Eigen::Vector3f toGlobalEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
168  Eigen::Vector3f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
169  FramedPositionPtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
170  FramedPositionPtr toRootFrame(const VirtualRobot::RobotPtr& referenceRobot) const;
171  FramedPositionPtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
172  Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
173  Eigen::Vector3f toRootEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
174  Eigen::Vector3f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
175 
176  // inherited from VariantDataClass
177  Ice::ObjectPtr ice_clone() const override;
178  VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
179  std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
180  VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
181  bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
182 
183  friend std::ostream& operator<<(std::ostream& stream, const FramedPosition& rhs);
184 
185  public: // serialization
186  void serialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) const override;
187  void deserialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) override;
188  };
189 
190  class FramedOrientation;
192 
193  /**
194  * @class FramedOrientation
195  * @ingroup VariantsGrp
196  * @ingroup RobotAPI-FramedPose
197  * @brief The FramedOrientation class
198  */
200  virtual public FramedOrientationBase,
201  virtual public Quaternion
202  {
203  public:
205  FramedOrientation(const Eigen::Matrix4f&, const std::string& frame, const std::string& agent);
206  FramedOrientation(const Eigen::Matrix3f&, const std::string& frame, const std::string& agent);
207  FramedOrientation(const Eigen::Quaternionf& q, const std::string& frame, const std::string& agent);
208 
209  FramedOrientation& operator=(const FramedOrientation&) = default;
210  // this doesnt work for an unknown reason
211  //FramedOrientation(const QuaternionBasePtr ori, const std::string &frame );
212  std::string getFrame()const ;
213 
214  // inherited from VariantDataClass
215  Ice::ObjectPtr ice_clone() const override;
216  VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
217  std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
218  VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
219  bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
220 
221  void changeFrame(const SharedRobotInterfacePrx& referenceRobot, const std::string& newFrame);
222  void changeFrame(const VirtualRobot::RobotPtr& referenceRobot, const std::string& newFrame);
223  void changeFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame);
224  void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
225  void changeToGlobal(const VirtualRobot::RobotPtr& referenceRobot);
226  void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
227  FramedOrientationPtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
228  FramedOrientationPtr toGlobal(const VirtualRobot::RobotPtr& referenceRobot) const;
229  FramedOrientationPtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
230  Eigen::Matrix3f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
231  Eigen::Matrix3f toGlobalEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
232  Eigen::Matrix3f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
233  FramedOrientationPtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
234  FramedOrientationPtr toRootFrame(const VirtualRobot::RobotPtr& referenceRobot) const;
235  FramedOrientationPtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
236  Eigen::Matrix3f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
237  Eigen::Matrix3f toRootEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
238  Eigen::Matrix3f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
239 
240  friend std::ostream& operator<<(std::ostream& stream, const FramedOrientation& rhs);
241 
242  public: // serialization
243  void serialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) const override;
244  void deserialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) override;
245  };
246 
247 
248 
249  class FramedPose;
251 
252  /**
253  * @class FramedPose
254  * @ingroup VariantsGrp
255  * @ingroup RobotAPI-FramedPose
256  * @brief The FramedPose class
257  */
258  class FramedPose :
259  virtual public FramedPoseBase,
260  virtual public Pose
261  {
262  public:
263  FramedPose();
264  FramedPose(const FramedPose& pose);
265  FramedPose(const Eigen::Matrix3f& m, const Eigen::Vector3f& v, const std::string& frame, const std::string& agent);
266  FramedPose(const Eigen::Matrix4f& m, const std::string& frame, const std::string& agent);
267  FramedPose(const Eigen::Vector3f& pos, const Eigen::Quaternionf& ori, const std::string& frame, const std::string& agent);
268  FramedPose(const armarx::Vector3BasePtr pos, const armarx::QuaternionBasePtr ori, const std::string& frame, const std::string& agent);
269 
270  FramedPose& operator=(const armarx::FramedPose&) = default;
271 
272  std::string getFrame() const;
273 
274  // inherited from VariantDataClass
275  Ice::ObjectPtr ice_clone() const override;
276 
277  VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
278 
279  std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
280 
281  VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
282 
283  bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
284 
285  void changeFrame(const SharedRobotInterfacePrx& referenceRobot, const std::string& newFrame);
286  void changeFrame(const VirtualRobot::RobotPtr& referenceRobot, const std::string& newFrame);
287  void changeFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame);
288  void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
289  void changeToGlobal(const VirtualRobot::RobotPtr& referenceRobot);
290  void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
291  FramedPosePtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
292  FramedPosePtr toGlobal(const VirtualRobot::RobotPtr& referenceRobot) const;
293  FramedPosePtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
294  Eigen::Matrix4f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
295  Eigen::Matrix4f toGlobalEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
296  Eigen::Matrix4f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
297  FramedPosePtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
298  FramedPosePtr toRootFrame(const VirtualRobot::RobotPtr& referenceRobot) const;
299  FramedPosePtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
300  Eigen::Matrix4f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
301  Eigen::Matrix4f toRootEigen(const VirtualRobot::RobotPtr& referenceRobot) const;
302  Eigen::Matrix4f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
303  FramedPosePtr toFrame(const SharedRobotInterfacePrx& referenceRobot, const std::string& newFrame) const;
304  FramedPosePtr toFrame(const VirtualRobot::RobotPtr& referenceRobot, const std::string& newFrame) const;
305  FramedPosePtr toFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame) const;
306  Eigen::Matrix4f toFrameEigen(const SharedRobotInterfacePrx& referenceRobot, const std::string& newFrame) const;
307  Eigen::Matrix4f toFrameEigen(const VirtualRobot::RobotPtr& referenceRobot, const std::string& newFrame) const;
308  Eigen::Matrix4f toFrameEigen(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame) const;
309 
310  friend std::ostream& operator<<(std::ostream& stream, const FramedPose& rhs);
313 
314  static VirtualRobot::LinkedCoordinate createLinkedCoordinate(const VirtualRobot::RobotPtr& virtualRobot, const FramedPositionPtr& position, const FramedOrientationPtr& orientation);
315  friend bool operator==(const FramedPose& pose1, const FramedPose& pose2);
316  friend bool operator!=(const FramedPose& pose1, const FramedPose& pose2);
317 
318  public:
319  void serialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) const override;
320  void deserialize(const armarx::ObjectSerializerBasePtr& serializer, const ::Ice::Current& = Ice::emptyCurrent) override;
321 
322  };
323 
325 
326 }
327 
328 extern template class ::IceInternal::Handle< ::armarx::FramedPose>;
329 extern template class ::IceInternal::Handle< ::armarx::FramedPosition>;
330 extern template class ::IceInternal::Handle< ::armarx::FramedDirection>;
331 extern template class ::IceInternal::Handle< ::armarx::FramedOrientation>;
332 
333 
334 
armarx::FramedDirection::output
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:265
armarx::FramedPose::serialize
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:581
Eigen
Definition: Elements.h:36
armarx::VariantType::Float
const VariantTypeId Float
Definition: Variant.h:918
armarx::FramedPosition::serialize
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:810
armarx::FramedOrientation::getFrame
std::string getFrame() const
Definition: FramedPose.cpp:913
IceProxy::armarx
Definition: LogSender.h:38
armarx::FramedPosition::operator=
FramedPosition & operator=(const armarx::FramedPosition &other)
Definition: FramedPose.cpp:841
armarx::FramedPose
The FramedPose class.
Definition: FramedPose.h:258
VirtualRobot
Definition: FramedPose.h:43
armarx::FramedPose::getType
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:1215
armarx::FramedPosition::getFrame
std::string getFrame() const
Definition: FramedPose.cpp:632
armarx::FramedPose::createLinkedCoordinate
static VirtualRobot::LinkedCoordinate createLinkedCoordinate(const VirtualRobot::RobotPtr &virtualRobot, const FramedPositionPtr &position, const FramedOrientationPtr &orientation)
Definition: FramedPose.cpp:1133
Pose.h
armarx::FramedPose::toFrame
FramedPosePtr toFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame) const
Definition: FramedPose.cpp:1179
armarx::FramedPose::clone
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:1210
armarx::FramedPose::toFrameEigen
Eigen::Matrix4f toFrameEigen(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame) const
Definition: FramedPose.cpp:1193
armarx::GlobalFrame
const std::string GlobalFrame
Definition: FramedPose.h:62
armarx::FramedOrientation::operator=
FramedOrientation & operator=(const FramedOrientation &)=default
armarx::FramedDirection::ice_clone
Ice::ObjectPtr ice_clone() const override
Definition: FramedPose.cpp:320
armarx::FramedDirection::toRootEigen
Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:248
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
armarx::FramedDirection::getType
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:330
armarx::FramedPosition::FramedPosition
FramedPosition()
Definition: FramedPose.cpp:603
armarx::FramedPose::operator==
friend bool operator==(const FramedPose &pose1, const FramedPose &pose2)
Definition: FramedPose.cpp:1231
armarx::FramedPosition::toRootEigen
Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:786
armarx::FramedDirection::operator<<
friend std::ostream & operator<<(std::ostream &stream, const FramedDirection &rhs)
Definition: FramedPose.cpp:340
armarx::FramedOrientation::toRootFrame
FramedOrientationPtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:1050
armarx::FramedPose::toGlobal
FramedPosePtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:500
armarx::FramedOrientation::getType
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:1116
armarx::FramedPosition::toGlobalEigen
Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:752
armarx::FramedPosition::ice_clone
Ice::ObjectPtr ice_clone() const override
Definition: FramedPose.cpp:851
armarx::FramedPosition::output
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:803
armarx::FramedDirection::FramedDirection
FramedDirection()
armarx::FramedPosition::deserialize
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: FramedPose.cpp:819
armarx::FramedDirection::toRootFrame
FramedDirectionPtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:231
armarx::FramedOrientation::output
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:918
IceInternal::Handle< FramedDirection >
armarx::FramedOrientation::toGlobal
FramedOrientationPtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:1016
armarx::FramedPosition::clone
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:856
armarx::FramedPose::validate
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
Definition: FramedPose.cpp:1220
armarx::FramedDirection::toGlobalEigen
Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:214
armarx::FramedDirection::serialize
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:299
armarx::FramedDirection::ChangeFrame
static FramedDirectionPtr ChangeFrame(const VirtualRobot::RobotPtr &robot, const FramedDirection &framedVec, const std::string &newFrame)
Definition: FramedPose.cpp:86
armarx::FramedOrientation::ice_clone
Ice::ObjectPtr ice_clone() const override
Definition: FramedPose.cpp:1106
armarx::MapFrame
const std::string MapFrame
Definition: FramedPose.h:64
armarx::FramedOrientation::toGlobalEigen
Eigen::Matrix3f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:1033
armarx::FramedPose::output
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:398
armarx::FramedDirection::toGlobal
FramedDirectionPtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:197
armarx::FramedPose::getPosition
FramedPositionPtr getPosition() const
Definition: FramedPose.cpp:569
armarx::FramedPose::operator=
FramedPose & operator=(const armarx::FramedPose &)=default
armarx::FramedPose::toGlobalEigen
Eigen::Matrix4f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:517
armarx::FramedOrientation::changeToGlobal
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
Definition: FramedPose.cpp:987
armarx::FramedDirection::validate
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
Definition: FramedPose.cpp:335
armarx::armem::human::Robot
@ Robot
Definition: util.h:14
armarx::FramedPosition
The FramedPosition class.
Definition: FramedPose.h:142
armarx::FramedOrientation::serialize
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:1084
armarx::FramedPosition::validate
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
Definition: FramedPose.cpp:866
armarx::Vector3
The Vector3 class.
Definition: Pose.h:112
armarx::FramedPose::FramedPose
FramedPose()
Definition: FramedPose.cpp:347
armarx::VariantType
Definition: ChannelRef.h:160
armarx::FramedOrientation::validate
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
Definition: FramedPose.cpp:1121
armarx::FramedDirection::getFrame
std::string getFrame() const
Definition: FramedPose.cpp:81
armarx::OdometryFrame
const std::string OdometryFrame
Definition: FramedPose.h:63
armarx::FramedPosition::changeToGlobal
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
Definition: FramedPose.cpp:708
armarx::FramedOrientation
The FramedOrientation class.
Definition: FramedPose.h:199
armarx::VariantTypeId
Ice::Int VariantTypeId
Definition: Variant.h:44
armarx::FramedPosition::changeFrame
void changeFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame)
Definition: FramedPose.cpp:637
boost::source
Vertex source(const detail::edge_base< Directed, Vertex > &e, const PCG &)
Definition: point_cloud_graph.h:681
q
#define q
armarx::FramedPosition::getType
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:861
armarx::FramedDirection::clone
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:325
armarx::FramedPosition::operator<<
friend std::ostream & operator<<(std::ostream &stream, const FramedPosition &rhs)
Definition: FramedPose.cpp:871
armarx::FramedPose::toRootEigen
Eigen::Matrix4f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:551
armarx::FramedPosition::toRootFrame
FramedPositionPtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:769
armarx::Pose
The Pose class.
Definition: Pose.h:242
armarx::ctrlutil::v
double v(double t, double v0, double a0, double j)
Definition: CtrlUtil.h:39
GfxTL::Matrix3f
MatrixXX< 3, 3, float > Matrix3f
Definition: MatrixXX.h:600
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
armarx::FramedDirection::changeToGlobal
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
Definition: FramedPose.cpp:169
armarx::FramedDirection
FramedDirection is a 3 dimensional direction vector with a reference frame. The reference frame can b...
Definition: FramedPose.h:83
armarx::FramedPose::getOrientation
FramedOrientationPtr getOrientation() const
Definition: FramedPose.cpp:575
armarx::FramedDirection::operator=
FramedDirection & operator=(const FramedDirection &)=default
armarx::FramedPose::operator<<
friend std::ostream & operator<<(std::ostream &stream, const FramedPose &rhs)
Definition: FramedPose.cpp:1225
armarx::Quaternion
The Quaternion class.
Definition: Pose.h:173
IceInternal::ProxyHandle< ::IceProxy::armarx::SharedRobotInterface >
Eigen::Matrix< Ice::Float, 6, 6 >
armarx::FramedPose::toRootFrame
FramedPosePtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:534
armarx::FramedOrientation::operator<<
friend std::ostream & operator<<(std::ostream &stream, const FramedOrientation &rhs)
Definition: FramedPose.cpp:1126
armarx::FramedOrientation::FramedOrientation
FramedOrientation()
Definition: FramedPose.cpp:878
armarx::aron::type::ObjectPtr
std::shared_ptr< Object > ObjectPtr
Definition: Object.h:36
armarx::FramedPose::getFrame
std::string getFrame() const
Definition: FramedPose.cpp:393
armarx::FramedDirection::changeFrame
void changeFrame(const VirtualRobot::RobotPtr &robot, const std::string &newFrame)
Definition: FramedPose.cpp:119
armarx::FramedPose::changeToGlobal
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
Definition: FramedPose.cpp:467
armarx::FramedPose::operator!=
friend bool operator!=(const FramedPose &pose1, const FramedPose &pose2)
Definition: FramedPose.cpp:1237
armarx::FramedPose::ice_clone
Ice::ObjectPtr ice_clone() const override
Definition: FramedPose.cpp:1205
armarx::FramedOrientation::clone
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
Definition: FramedPose.cpp:1111
armarx::FramedPosition::toGlobal
FramedPositionPtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:735
armarx::FramedPose::deserialize
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: FramedPose.cpp:590
armarx::FramedOrientation::toRootEigen
Eigen::Matrix3f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
Definition: FramedPose.cpp:1067
armarx::FramedOrientation::deserialize
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: FramedPose.cpp:1093
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::Variant::addTypeName
static VariantTypeId addTypeName(const std::string &typeName)
Register a new type for the use in a Variant.
Definition: Variant.cpp:751
armarx::FramedOrientation::changeFrame
void changeFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame)
Definition: FramedPose.cpp:925
armarx::FramedPose::changeFrame
void changeFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame)
Definition: FramedPose.cpp:406
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:18
armarx::FramedDirection::deserialize
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: FramedPose.cpp:308