|
Classes | |
class | FramedDirection |
FramedDirection is a 3 dimensional direction vector with a reference frame. The reference frame can be used to change the coordinate system to which the vector relates. The difference to a FramedPosition is, that on frame changing only the orientation of the vector is changed. The length of the vector remains unchanged. This class is usefull e.g. for forces and tcp velocities. More... | |
class | FramedOrientation |
The FramedOrientation class. More... | |
class | FramedPose |
The FramedPose class. More... | |
class | FramedPosition |
The FramedPosition class. More... | |
class | LinkedDirection |
The LinkedDirection class. More... | |
class | LinkedPose |
The LinkedPose class. More... | |
class | Pose |
The Pose class. More... | |
class | Quaternion |
The Quaternion class. More... | |
class | Vector3 |
The Vector3 class. More... | |
Variables | |
const std::string | GlobalFrame = "Global" |
ArmarX contains a concept for Intelligent Coordinates that eases transformation into different coordinate frames. Here, we mean with coordinates positions, orientation, and poses. These Intelligent Coordinates exist in 3 levels of "intelligence".
The frame of FramedX or LinkedX is technically just a string. The possible values are the names of the robot nodes (use RobotViewer app of Simox to inspect them). For global poses exists the global constant string variable armarx::GlobalFrame located in the FramedPose.h. Use this variable if you specify global poses and an empty Agent-string. Empty frames should be avoided (though, an empty string is mostly considered as the global frame).
To create a new FramedPosition (FramedOrientation, FramedVector and FramedPose work analogously) one needs to know the position, the coordinate frame name and the agent name. The coordinate frame is usually the name of the RobotNode, e.g. the tcp of the robot. All nodes of a robot can be inspected with the Simox tool RobotViewer. The agent name can be retrieved via the armarx::RobotStateComponent like this:
So an example code for creating a new FramedPosition looks like this:
Refer to the Howto at get a proxy to learn how to obtain a proxy.
In ArmarX the most common coordinate type is the FramedX, e.g. FramedPosition. To change the frame in this coordinate type, you can call changeFrame() on the FramedPosition. You need to know the new frame, in which you want to transform the FramedPosition and a proxy to the robot proxy (e.g. armarx::RobotStateComponent::getSynchronizedRobot):
const std::string GlobalFrame = "Global" |
#include <RobotAPI/libraries/core/FramedPose.h>
Variable of the global coordinate system. use this if you are specifying a global pose.
Definition at line 62 of file FramedPose.h.