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 <VirtualRobot/VirtualRobot.h>
28
29#include <RobotAPI/interface/core/FramedPoseBase.h>
30
31#include "Pose.h"
32
33namespace armarx::VariantType
34{
35 // variant types
36 const VariantTypeId FramedPose = Variant::addTypeName("::armarx::FramedPoseBase");
37 const VariantTypeId FramedDirection = Variant::addTypeName("::armarx::FramedDirectionBase");
38 const VariantTypeId FramedPosition = Variant::addTypeName("::armarx::FramedPositionBase");
39 const VariantTypeId FramedOrientation = Variant::addTypeName("::armarx::FramedOrientationBase");
40} // namespace armarx::VariantType
41
42namespace VirtualRobot
43{
44 class LinkedCoordinate;
45}
46
47namespace IceProxy::armarx
48{
49 class SharedRobotInterface;
50}
51
52namespace Eigen
53{
55}
56
57namespace armarx
58{
61 /**
62 * @ingroup RobotAPI-FramedPose
63 * Variable of the global coordinate system. use this if you are specifying a global pose.
64 * */
65 std::string const GlobalFrame = "Global";
66 std::string const OdometryFrame = "Odom";
67 std::string const MapFrame = "Map";
68
69
70 /**
71 * @class FramedDirection
72 * @ingroup RobotAPI-FramedPose
73 * @ingroup VariantsGrp
74 * @brief FramedDirection is a 3 dimensional @b direction vector with a reference frame.
75 * The reference frame can be used to change the coordinate system to which
76 * the vector relates. The difference to a FramedPosition is, that on frame
77 * changing only the orientation of the vector is changed. The length of the vector
78 * remains unchanged. This class is usefull e.g. for forces and tcp
79 * velocities.
80 *
81 * @see Vector3, FramedPosition
82 */
83 class FramedDirection;
85
86 class FramedDirection : virtual public FramedDirectionBase, virtual public Vector3
87 {
88 public:
90 FramedDirection(const FramedDirection& source);
91 FramedDirection(const Eigen::Vector3f& vec,
92 const std::string& frame,
93 const std::string& agent);
94 FramedDirection(Ice::Float x,
95 ::Ice::Float y,
96 ::Ice::Float z,
97 const std::string& frame,
98 const std::string& agent);
100
101 std::string getFrame() const;
102 static FramedDirectionPtr ChangeFrame(const VirtualRobot::RobotConstPtr& robot,
103 const FramedDirection& framedVec,
104 const std::string& newFrame);
105 static FramedDirectionPtr ChangeFrame(const VirtualRobot::Robot& robot,
106 const FramedDirection& framedVec,
107 const std::string& newFrame);
108 void changeFrame(const VirtualRobot::RobotConstPtr& robot, const std::string& newFrame);
109 void changeFrame(const VirtualRobot::Robot& robot, const std::string& newFrame);
110
111 void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
112 void changeToGlobal(const VirtualRobot::RobotConstPtr& referenceRobot);
113 void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
114 FramedDirectionPtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
115 FramedDirectionPtr toGlobal(const VirtualRobot::RobotConstPtr& referenceRobot) const;
116 FramedDirectionPtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
117 Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
118 Eigen::Vector3f toGlobalEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
119 Eigen::Vector3f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
120 FramedDirectionPtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
121 FramedDirectionPtr toRootFrame(const VirtualRobot::RobotConstPtr& referenceRobot) const;
122 FramedDirectionPtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
123 Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
124 Eigen::Vector3f toRootEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
125 Eigen::Vector3f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
126
127 // inherited from VariantDataClass
128 Ice::ObjectPtr ice_clone() const override;
129 VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
130 std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
131 VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
132 bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
133
134 friend std::ostream& operator<<(std::ostream& stream, const FramedDirection& rhs);
135
136 public: // serialization
137 void serialize(const armarx::ObjectSerializerBasePtr& serializer,
138 const ::Ice::Current& = Ice::emptyCurrent) const override;
139 void deserialize(const armarx::ObjectSerializerBasePtr& serializer,
140 const ::Ice::Current& = Ice::emptyCurrent) override;
141
142 private:
143 static Eigen::Matrix4f __GetRotationBetweenFrames(const std::string& oldFrame,
144 const std::string& newFrame,
145 const VirtualRobot::Robot& robotState);
146 };
147
148 class FramedPosition;
150
151 /**
152 * @class FramedPosition
153 * @ingroup VariantsGrp
154 * @ingroup RobotAPI-FramedPose
155 * @brief The FramedPosition class
156 */
157 class FramedPosition : virtual public FramedPositionBase, virtual public Vector3
158 {
159 public:
161 FramedPosition(const Eigen::Vector3f&, const std::string& frame, const std::string& agent);
162 FramedPosition(const Eigen::Matrix4f&, const std::string& frame, const std::string& agent);
163 //FramedPosition(const Vector3BasePtr pos, const std::string &frame ); // this doesnt work for unknown reasons
164 FramedPosition(const FramedPosition& other);
165
167
168 std::string getFrame() const;
169
170 void changeFrame(const SharedRobotInterfacePrx& referenceRobot,
171 const std::string& newFrame);
172 void changeFrame(const VirtualRobot::RobotConstPtr& referenceRobot, const std::string& newFrame);
173 void changeFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame);
174 void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
175 void changeToGlobal(const VirtualRobot::RobotConstPtr& referenceRobot);
176 void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
177 FramedPositionPtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
178 FramedPositionPtr toGlobal(const VirtualRobot::RobotConstPtr& referenceRobot) const;
179 FramedPositionPtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
180 Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
181 Eigen::Vector3f toGlobalEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
182 Eigen::Vector3f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
183 FramedPositionPtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
184 FramedPositionPtr toRootFrame(const VirtualRobot::RobotConstPtr& referenceRobot) const;
185 FramedPositionPtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
186 Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
187 Eigen::Vector3f toRootEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
188 Eigen::Vector3f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
189
190 // inherited from VariantDataClass
191 Ice::ObjectPtr ice_clone() const override;
192 VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
193 std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
194 VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
195 bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
196
197 friend std::ostream& operator<<(std::ostream& stream, const FramedPosition& rhs);
198
199 public: // serialization
200 void serialize(const armarx::ObjectSerializerBasePtr& serializer,
201 const ::Ice::Current& = Ice::emptyCurrent) const override;
202 void deserialize(const armarx::ObjectSerializerBasePtr& serializer,
203 const ::Ice::Current& = Ice::emptyCurrent) override;
204 };
205
206 class FramedOrientation;
208
209 /**
210 * @class FramedOrientation
211 * @ingroup VariantsGrp
212 * @ingroup RobotAPI-FramedPose
213 * @brief The FramedOrientation class
214 */
215 class FramedOrientation : virtual public FramedOrientationBase, virtual public Quaternion
216 {
217 public:
219 FramedOrientation(const Eigen::Matrix4f&,
220 const std::string& frame,
221 const std::string& agent);
222 FramedOrientation(const Eigen::Matrix3f&,
223 const std::string& frame,
224 const std::string& agent);
226 const std::string& frame,
227 const std::string& agent);
228
230 // this doesnt work for an unknown reason
231 //FramedOrientation(const QuaternionBasePtr ori, const std::string &frame );
232 std::string getFrame() const;
233
234 // inherited from VariantDataClass
235 Ice::ObjectPtr ice_clone() const override;
236 VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
237 std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
238 VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
239 bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
240
241 void changeFrame(const SharedRobotInterfacePrx& referenceRobot,
242 const std::string& newFrame);
243 void changeFrame(const VirtualRobot::RobotConstPtr& referenceRobot, const std::string& newFrame);
244 void changeFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame);
245 void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
246 void changeToGlobal(const VirtualRobot::RobotConstPtr& referenceRobot);
247 void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
248 FramedOrientationPtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
249 FramedOrientationPtr toGlobal(const VirtualRobot::RobotConstPtr& referenceRobot) const;
250 FramedOrientationPtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
251 Eigen::Matrix3f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
252 Eigen::Matrix3f toGlobalEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
253 Eigen::Matrix3f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
254 FramedOrientationPtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
255 FramedOrientationPtr toRootFrame(const VirtualRobot::RobotConstPtr& referenceRobot) const;
256 FramedOrientationPtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
257 Eigen::Matrix3f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
258 Eigen::Matrix3f toRootEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
259 Eigen::Matrix3f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
260
261 friend std::ostream& operator<<(std::ostream& stream, const FramedOrientation& rhs);
262
263 public: // serialization
264 void serialize(const armarx::ObjectSerializerBasePtr& serializer,
265 const ::Ice::Current& = Ice::emptyCurrent) const override;
266 void deserialize(const armarx::ObjectSerializerBasePtr& serializer,
267 const ::Ice::Current& = Ice::emptyCurrent) override;
268 };
269
270
271 class FramedPose;
273
274 /**
275 * @class FramedPose
276 * @ingroup VariantsGrp
277 * @ingroup RobotAPI-FramedPose
278 * @brief The FramedPose class
279 */
280 class FramedPose : virtual public FramedPoseBase, virtual public Pose
281 {
282 public:
283 FramedPose();
284 FramedPose(const FramedPose& pose);
285 FramedPose(const Eigen::Matrix3f& m,
286 const Eigen::Vector3f& v,
287 const std::string& frame,
288 const std::string& agent);
289 FramedPose(const Eigen::Matrix4f& m, const std::string& frame, const std::string& agent);
290 FramedPose(const Eigen::Vector3f& pos,
291 const Eigen::Quaternionf& ori,
292 const std::string& frame,
293 const std::string& agent);
294 FramedPose(const armarx::Vector3BasePtr pos,
295 const armarx::QuaternionBasePtr ori,
296 const std::string& frame,
297 const std::string& agent);
298
300
301 std::string getFrame() const;
302
303 // inherited from VariantDataClass
304 Ice::ObjectPtr ice_clone() const override;
305
306 VariantDataClassPtr clone(const Ice::Current& c = Ice::emptyCurrent) const override;
307
308 std::string output(const Ice::Current& c = Ice::emptyCurrent) const override;
309
310 VariantTypeId getType(const Ice::Current& c = Ice::emptyCurrent) const override;
311
312 bool validate(const Ice::Current& c = Ice::emptyCurrent) override;
313
314 void changeFrame(const SharedRobotInterfacePrx& referenceRobot,
315 const std::string& newFrame);
316 void changeFrame(const VirtualRobot::RobotConstPtr& referenceRobot, const std::string& newFrame);
317 void changeFrame(const VirtualRobot::Robot& referenceRobot, const std::string& newFrame);
318 void changeToGlobal(const SharedRobotInterfacePrx& referenceRobot);
319 void changeToGlobal(const VirtualRobot::RobotConstPtr& referenceRobot);
320 void changeToGlobal(const VirtualRobot::Robot& referenceRobot);
321 FramedPosePtr toGlobal(const SharedRobotInterfacePrx& referenceRobot) const;
322 FramedPosePtr toGlobal(const VirtualRobot::RobotConstPtr& referenceRobot) const;
323 FramedPosePtr toGlobal(const VirtualRobot::Robot& referenceRobot) const;
324 Eigen::Matrix4f toGlobalEigen(const SharedRobotInterfacePrx& referenceRobot) const;
325 Eigen::Matrix4f toGlobalEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
326 Eigen::Matrix4f toGlobalEigen(const VirtualRobot::Robot& referenceRobot) const;
327 FramedPosePtr toRootFrame(const SharedRobotInterfacePrx& referenceRobot) const;
328 FramedPosePtr toRootFrame(const VirtualRobot::RobotConstPtr& referenceRobot) const;
329 FramedPosePtr toRootFrame(const VirtualRobot::Robot& referenceRobot) const;
330 Eigen::Matrix4f toRootEigen(const SharedRobotInterfacePrx& referenceRobot) const;
331 Eigen::Matrix4f toRootEigen(const VirtualRobot::RobotConstPtr& referenceRobot) const;
332 Eigen::Matrix4f toRootEigen(const VirtualRobot::Robot& referenceRobot) const;
333 FramedPosePtr toFrame(const SharedRobotInterfacePrx& referenceRobot,
334 const std::string& newFrame) const;
335 FramedPosePtr toFrame(const VirtualRobot::RobotConstPtr& referenceRobot,
336 const std::string& newFrame) const;
337 FramedPosePtr toFrame(const VirtualRobot::Robot& referenceRobot,
338 const std::string& newFrame) const;
339 Eigen::Matrix4f toFrameEigen(const SharedRobotInterfacePrx& referenceRobot,
340 const std::string& newFrame) const;
341 Eigen::Matrix4f toFrameEigen(const VirtualRobot::RobotConstPtr& referenceRobot,
342 const std::string& newFrame) const;
343 Eigen::Matrix4f toFrameEigen(const VirtualRobot::Robot& referenceRobot,
344 const std::string& newFrame) const;
345
346 friend std::ostream& operator<<(std::ostream& stream, const FramedPose& rhs);
349
350 static VirtualRobot::LinkedCoordinate
352 const FramedPositionPtr& position,
353 const FramedOrientationPtr& orientation);
354 friend bool operator==(const FramedPose& pose1, const FramedPose& pose2);
355 friend bool operator!=(const FramedPose& pose1, const FramedPose& pose2);
356
357 public:
358 void serialize(const armarx::ObjectSerializerBasePtr& serializer,
359 const ::Ice::Current& = Ice::emptyCurrent) const override;
360 void deserialize(const armarx::ObjectSerializerBasePtr& serializer,
361 const ::Ice::Current& = Ice::emptyCurrent) override;
362 };
363
365
366} // namespace armarx
367
368extern template class ::IceInternal::Handle<::armarx::FramedPose>;
369extern template class ::IceInternal::Handle<::armarx::FramedPosition>;
370extern template class ::IceInternal::Handle<::armarx::FramedDirection>;
371extern template class ::IceInternal::Handle<::armarx::FramedOrientation>;
constexpr T c
FramedDirection is a 3 dimensional direction vector with a reference frame.
Definition FramedPose.h:87
FramedDirectionPtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
friend std::ostream & operator<<(std::ostream &stream, const FramedDirection &rhs)
Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
static FramedDirectionPtr ChangeFrame(const VirtualRobot::RobotConstPtr &robot, const FramedDirection &framedVec, const std::string &newFrame)
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
FramedDirectionPtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Ice::ObjectPtr ice_clone() const override
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
FramedDirection & operator=(const FramedDirection &)=default
Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
std::string getFrame() const
void changeFrame(const VirtualRobot::RobotConstPtr &robot, const std::string &newFrame)
The FramedOrientation class.
Definition FramedPose.h:216
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
FramedOrientationPtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
friend std::ostream & operator<<(std::ostream &stream, const FramedOrientation &rhs)
FramedOrientation & operator=(const FramedOrientation &)=default
FramedOrientationPtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
Eigen::Matrix3f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
Ice::ObjectPtr ice_clone() const override
Eigen::Matrix3f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
std::string getFrame() const
void changeFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame)
The FramedPose class.
Definition FramedPose.h:281
FramedOrientationPtr getOrientation() const
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
FramedPosePtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Eigen::Matrix4f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
static VirtualRobot::LinkedCoordinate createLinkedCoordinate(const VirtualRobot::RobotPtr &virtualRobot, const FramedPositionPtr &position, const FramedOrientationPtr &orientation)
Eigen::Matrix4f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
Eigen::Matrix4f toFrameEigen(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame) const
FramedPosePtr toFrame(const VirtualRobot::Robot &referenceRobot, const std::string &newFrame) const
FramedPosePtr toFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame) const
Eigen::Matrix4f toFrameEigen(const VirtualRobot::Robot &referenceRobot, const std::string &newFrame) const
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
friend std::ostream & operator<<(std::ostream &stream, const FramedPose &rhs)
friend bool operator!=(const FramedPose &pose1, const FramedPose &pose2)
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
FramedPosePtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
FramedPositionPtr getPosition() const
Ice::ObjectPtr ice_clone() const override
FramedPose & operator=(const armarx::FramedPose &)=default
friend bool operator==(const FramedPose &pose1, const FramedPose &pose2)
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
std::string getFrame() const
void changeFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame)
The FramedPosition class.
Definition FramedPose.h:158
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
FramedPositionPtr toGlobal(const SharedRobotInterfacePrx &referenceRobot) const
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
FramedPosition & operator=(const armarx::FramedPosition &other)
friend std::ostream & operator<<(std::ostream &stream, const FramedPosition &rhs)
Eigen::Vector3f toGlobalEigen(const SharedRobotInterfacePrx &referenceRobot) const
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
void changeToGlobal(const SharedRobotInterfacePrx &referenceRobot)
FramedPositionPtr toRootFrame(const SharedRobotInterfacePrx &referenceRobot) const
Ice::ObjectPtr ice_clone() const override
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Eigen::Vector3f toRootEigen(const SharedRobotInterfacePrx &referenceRobot) const
std::string getFrame() const
void changeFrame(const SharedRobotInterfacePrx &referenceRobot, const std::string &newFrame)
Quaternion()
Construct an identity quaternion.
static VariantTypeId addTypeName(const std::string &typeName)
Register a new type for the use in a Variant.
Definition Variant.cpp:869
std::string const GlobalFrame
Variable of the global coordinate system.
Definition FramedPose.h:65
#define q
Matrix< Ice::Float, 6, 6 > Matrix6f
Definition FramedPose.h:54
Quaternion< float, 0 > Quaternionf
std::shared_ptr< class Robot > RobotPtr
Definition Bus.h:19
const VariantTypeId FramedPosition
Definition FramedPose.h:38
const VariantTypeId FramedOrientation
Definition FramedPose.h:39
const VariantTypeId FramedPose
Definition FramedPose.h:36
const VariantTypeId FramedDirection
Definition FramedPose.h:37
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::string const OdometryFrame
Definition FramedPose.h:66
IceInternal::Handle< FramedDirection > FramedDirectionPtr
Definition FramedPose.h:84
IceInternal::Handle< FramedPosition > FramedPositionPtr
Definition FramedPose.h:149
::IceInternal::ProxyHandle<::IceProxy::armarx::SharedRobotInterface > SharedRobotInterfacePrx
Definition FramedPose.h:59
Ice::Int VariantTypeId
Definition Variant.h:43
IceInternal::Handle< FramedOrientation > FramedOrientationPtr
Definition FramedPose.h:207
std::string const MapFrame
Definition FramedPose.h:67
IceInternal::Handle< FramedPose > FramedPosePtr
Definition FramedPose.h:272