Class Frame

  • Direct Known Subclasses:
    FixedFrame, Joint, MovableFrame

    public class Frame
    extends StateData
    The type of node of forward kinematic trees.

    Types of joints are implemented as subclasses of Frame. The
    responsibility of a joint is to implement the getTransform() method that
    returns the transform of the frame relative to whatever parent it is
    attached to.

    The getTransform() method takes as parameter the set of joint values
    State for the tree. Joint values for a particular frame can be accessed
    via State::getQ(). A frame may contain pointers to other frames so that
    the transform of a frame may depend on the joint values for other frames
    also.
    • Constructor Summary

      Constructors 
      Constructor Description
      Frame​(long cPtr, boolean cMemoryOwn)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void attachTo​(Frame parent, State state)
      Move a frame within the tree.

      The frame frame is detached from its parent and reattached to
      parent.
      void delete()  
      Transform3Dd fTf​(Frame to, State state)
      Get the transform of other frame relative to this frame.

      FrameVector getChildren​(State state)
      Iterator pair for all children of the frame.
      static long getCPtr​(Frame obj)  
      Frame getDafParent​(State state)
      The dynamically attached parent or NULL if the frame is not a
      DAF.
      int getDOF()
      The number of degrees of freedom (dof) of the frame.

      The dof is the number of joint values that are used for controlling
      the frame.

      Given a set joint values of type State, the getDof() number of joint
      values for the frame can be read and written with State::getQ() and
      State::setQ().

      Frame getParent()
      The parent of the frame or NULL if the frame is a DAF.
      Frame getParent​(State state)
      Returns the parent of the frame

      If no static parent exists it look for at DAF parent.
      PropertyMap getPropertyMap()
      Miscellaneous properties of the frame.

      The property map of the frame is provided to let the user store
      various settings for the frame.
      Transform3Dd getTransform​(State state)
      The transform of the frame relative to its parent.

      The transform is calculated for the joint values of state.

      The exact implementation of getTransform() depends on the type of
      frame.
      boolean isDAF()
      Test if this frame is a Dynamically Attachable Frame

      void multiplyTransform​(Transform3Dd parent, State state, Transform3Dd result)
      Post-multiply the transform of the frame to the parent transform.

      The transform is calculated for the joint values of state.

      The exact implementation of getTransform() depends on the type of
      frame.
      Transform3Dd wTf​(State state)
      Get the transform relative to world.

      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Frame

        public Frame​(long cPtr,
                     boolean cMemoryOwn)
    • Method Detail

      • getCPtr

        public static long getCPtr​(Frame obj)
      • multiplyTransform

        public void multiplyTransform​(Transform3Dd parent,
                                      State state,
                                      Transform3Dd result)
        Post-multiply the transform of the frame to the parent transform.

        The transform is calculated for the joint values of state.

        The exact implementation of getTransform() depends on the type of
        frame. See for example RevoluteJoint and PrismaticJoint.

        Parameters:
        parent - [in] The world transform of the parent frame.
        state - [in] Joint values for the forward kinematics tree.
        result - [in] The transform of the frame in the world frame.
      • getTransform

        public Transform3Dd getTransform​(State state)
        The transform of the frame relative to its parent.

        The transform is calculated for the joint values of state.

        The exact implementation of getTransform() depends on the type of
        frame. See for example RevoluteJoint and PrismaticJoint.

        Parameters:
        state - [in] Joint values for the forward kinematics tree.

        Returns:
        The transform of the frame relative to its parent.
      • getPropertyMap

        public PropertyMap getPropertyMap()
        Miscellaneous properties of the frame.

        The property map of the frame is provided to let the user store
        various settings for the frame. The settings are typically loaded
        from setup files.

        The low-level manipulations of the property map can be cumbersome. To
        ease these manipulations, the PropertyAccessor utility class has been
        provided. Instances of this class are provided for a number of common
        settings, however it is undecided if these properties are a public
        part of RobWork.

        Returns:
        The property map of the frame.
      • getDOF

        public int getDOF()
        The number of degrees of freedom (dof) of the frame.

        The dof is the number of joint values that are used for controlling
        the frame.

        Given a set joint values of type State, the getDof() number of joint
        values for the frame can be read and written with State::getQ() and
        State::setQ().

        Returns:
        The number of degrees of freedom of the frame.
      • getParent

        public Frame getParent()
        The parent of the frame or NULL if the frame is a DAF.
      • getParent

        public Frame getParent​(State state)
        Returns the parent of the frame

        If no static parent exists it look for at DAF parent. If such
        does not exists either it returns NULL.

        Parameters:
        state - [in] the state to consider
        Returns:
        the parent
      • getDafParent

        public Frame getDafParent​(State state)
        The dynamically attached parent or NULL if the frame is not a
        DAF.
      • attachTo

        public void attachTo​(Frame parent,
                             State state)
        Move a frame within the tree.

        The frame frame is detached from its parent and reattached to
        parent. The frames frame and parent must both belong to the
        same kinematics tree.

        Only frames with no static parent (see getParent()) can be moved.

        Parameters:
        parent - [in] The frame to attach frame to.
        state - [inout] The state to which the attachment is written.
      • isDAF

        public boolean isDAF()
        Test if this frame is a Dynamically Attachable Frame

        Returns:
        true if this frame is a DAF, false otherwise
      • wTf

        public Transform3Dd wTf​(State state)
        Get the transform relative to world.

        Parameters:
        state - [in] the state.
        Returns:
        transform relative to world.
      • fTf

        public Transform3Dd fTf​(Frame to,
                                State state)
        Get the transform of other frame relative to this frame.

        Parameters:
        to - [in] the other frame
        state - [in] the state.
        Returns:
        transform of frame to relative to this frame.
      • getChildren

        public FrameVector getChildren​(State state)
        Iterator pair for all children of the frame.