Package org.robwork.sdurw_models
Class Device
- java.lang.Object
-
- org.robwork.sdurw_kinematics.Stateless
-
- org.robwork.sdurw_models.Device
-
- Direct Known Subclasses:
JointDevice,MobileDevice,SE3Device
public class Device extends Stateless
An abstract device class
The Device class is the basis for all other devices. It is assumed that all devices
have a configuration which can be encoded by a rw::math::Q, that all have a base frame
representing where in the work cell they are located and a primary end frame. Notice that
some devices may have multiple end-frames.
-
-
Constructor Summary
Constructors Constructor Description Device(long cPtr, boolean cMemoryOwn)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description JacobianCalculatorPtrbaseJCend(State state)DeviceJacobian for the end frame.
By default this method forwards to baseDJframe().JacobianCalculatorPtrbaseJCframe(FrameCPtr frame, State state)DeviceJacobian for a particular frame.
By default this method forwards to baseDJframes().JacobianCalculatorPtrbaseJCframes(FrameVector frames, State state)DeviceJacobian for a sequence of frames.JacobianbaseJend(State state)JacobianbaseJframe(FrameCPtr frame, State state)Calculates the jacobian matrix of a frame f described in the
robot base frame ^{base}_{frame}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
JacobianbaseJframes(FrameVector frames, State state)The Jacobian for a sequence of frames.
A Jacobian is computed for each of the frames and the Jacobians are
stacked on top of eachother.Transform3DbaseTend(State state)Calculates the homogeneous transform from base to the end frame
\robabx{base}{end}{\mathbf{T}}Transform3DbaseTframe(FrameCPtr f, State state)Calculates the homogeneous transform from base to a frame f
\robabx{b}{f}{\mathbf{T}}voiddelete()QgetAccelerationLimits()Returns the maximal acceleration of the joints
\mathbf{\ddot{q}}_{max}\in \mathbb{R}^n
It is assumed that \ddot{\mathbf{q}}_{min}=-\ddot{\mathbf{q}}_{max}
FramegetBase()a method to return the frame of the base of the device.PairQgetBounds()Returns the upper \mathbf{q}_{min} \in \mathbb{R}^n and
lower \mathbf{q}_{max} \in \mathbb{R}^n bounds of the joint space
static longgetCPtr(Device obj)longgetDOF()Returns number of active jointsFramegetEnd()a method to return the frame of the end of the devicejava.lang.StringgetName()Returns the name of the devicePropertyMapgetPropertyMap()QgetQ(State state)Gets configuration vector \mathbf{q}\in \mathbb{R}^n
QgetVelocityLimits()Returns the maximal velocity of the joints
\mathbf{\dot{q}}_{max}\in \mathbb{R}^n
It is assumed that \dot{\mathbf{q}}_{min}=-\dot{\mathbf{q}}_{max}
voidsetAccelerationLimits(Q acclimits)Sets the maximal acceleration of the joints
\mathbf{\ddot{q}}_{max}\in \mathbb{R}^n
It is assumed that \ddot{\mathbf{q}}_{min}=-\ddot{\mathbf{q}}_{max}
voidsetBounds(PairQ bounds)Sets the upper \mathbf{q}_{min} \in \mathbb{R}^n and
lower \mathbf{q}_{max} \in \mathbb{R}^n bounds of the joint space
voidsetName(java.lang.String name)Sets the name of the DevicevoidsetQ(Q q, State state)Sets configuration vector \mathbf{q} \in \mathbb{R}^n
voidsetVelocityLimits(Q vellimits)Sets the maximal velocity of the joints
\mathbf{\dot{q}}_{max}\in \mathbb{R}^n
It is assumed that \dot{\mathbf{q}}_{min}=-\dot{\mathbf{q}}_{max}
java.lang.StringtoString()Transform3DworldTbase(State state)Calculates the homogeneous transform from world to base \robabx{w}{b}{\mathbf{T}}
-
Methods inherited from class org.robwork.sdurw_kinematics.Stateless
getCPtr, getStateStructure, isRegistered, registerIn, registerIn, unregister
-
-
-
-
Method Detail
-
getCPtr
public static long getCPtr(Device obj)
-
setQ
public void setQ(Q q, State state)
Sets configuration vector \mathbf{q} \in \mathbb{R}^n
- Parameters:
q- [in] configuration vector \mathbf{q}state- [in] state into which to set \mathbf{q}
-
getQ
public Q getQ(State state)
Gets configuration vector \mathbf{q}\in \mathbb{R}^n
- Parameters:
state- [in] state from which which to get \mathbf{q}- Returns:
- configuration vector \mathbf{q}
-
getBounds
public PairQ getBounds()
Returns the upper \mathbf{q}_{min} \in \mathbb{R}^n and
lower \mathbf{q}_{max} \in \mathbb{R}^n bounds of the joint space
- Returns:
- std::pair containing (\mathbf{q}_{min}, \mathbf{q}_{max})
-
setBounds
public void setBounds(PairQ bounds)
Sets the upper \mathbf{q}_{min} \in \mathbb{R}^n and
lower \mathbf{q}_{max} \in \mathbb{R}^n bounds of the joint space
- Parameters:
bounds- [in] std::pair containing
(\mathbf{q}_{min}, \mathbf{q}_{max})
-
getVelocityLimits
public Q getVelocityLimits()
Returns the maximal velocity of the joints
\mathbf{\dot{q}}_{max}\in \mathbb{R}^n
It is assumed that \dot{\mathbf{q}}_{min}=-\dot{\mathbf{q}}_{max}
- Returns:
- the maximal velocity
-
setVelocityLimits
public void setVelocityLimits(Q vellimits)
Sets the maximal velocity of the joints
\mathbf{\dot{q}}_{max}\in \mathbb{R}^n
It is assumed that \dot{\mathbf{q}}_{min}=-\dot{\mathbf{q}}_{max}
- Parameters:
vellimits- [in] Q with the maximal velocity
-
getAccelerationLimits
public Q getAccelerationLimits()
Returns the maximal acceleration of the joints
\mathbf{\ddot{q}}_{max}\in \mathbb{R}^n
It is assumed that \ddot{\mathbf{q}}_{min}=-\ddot{\mathbf{q}}_{max}
- Returns:
- the maximal acceleration
-
setAccelerationLimits
public void setAccelerationLimits(Q acclimits)
Sets the maximal acceleration of the joints
\mathbf{\ddot{q}}_{max}\in \mathbb{R}^n
It is assumed that \ddot{\mathbf{q}}_{min}=-\ddot{\mathbf{q}}_{max}
- Parameters:
acclimits- [in] the maximal acceleration
-
getDOF
public long getDOF()
Returns number of active joints- Returns:
- number of active joints n
-
getName
public java.lang.String getName()
Returns the name of the device- Returns:
- name of the device
-
setName
public void setName(java.lang.String name)
Sets the name of the Device- Parameters:
name- [in] the new name of the frame
-
getBase
public Frame getBase()
a method to return the frame of the base of the device.- Returns:
- the base frame
-
getEnd
public Frame getEnd()
a method to return the frame of the end of the device- Returns:
- the end frame
-
baseTframe
public Transform3D baseTframe(FrameCPtr f, State state)
Calculates the homogeneous transform from base to a frame f
\robabx{b}{f}{\mathbf{T}}- Returns:
- the homogeneous transform \robabx{b}{f}{\mathbf{T}}
-
baseTend
public Transform3D baseTend(State state)
Calculates the homogeneous transform from base to the end frame
\robabx{base}{end}{\mathbf{T}}- Returns:
- the homogeneous transform \robabx{base}{end}{\mathbf{T}}
-
worldTbase
public Transform3D worldTbase(State state)
Calculates the homogeneous transform from world to base \robabx{w}{b}{\mathbf{T}}
- Returns:
- the homogeneous transform \robabx{w}{b}{\mathbf{T}}
-
baseJframe
public Jacobian baseJframe(FrameCPtr frame, State state)
Calculates the jacobian matrix of a frame f described in the
robot base frame ^{base}_{frame}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
- Parameters:
frame- [in] Frame for which to calculate the Jacobianstate- [in] State for which to calculate the Jacobian
- Returns:
- the 6*ndof jacobian matrix:
{^{base}_{frame}}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
This method calculates the jacobian relating joint velocities ( \mathbf{\dot{q}} ) to the frame f velocity seen from base-frame
( \nu^{base}_{frame} )
\nu^{base}_{frame} = {^{base}_{frame}}\mathbf{J}_\mathbf{q}(\mathbf{q})\mathbf{\dot{q}}
The jacobian matrix {^{base}_n}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
is defined as:
{^{base}_n}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) = \frac{\partial ^{base}\mathbf{x}_n}{\partial \mathbf{q}}
By default the method forwards to baseJframes().
-
baseJframes
public Jacobian baseJframes(FrameVector frames, State state)
The Jacobian for a sequence of frames.
A Jacobian is computed for each of the frames and the Jacobians are
stacked on top of eachother.- Parameters:
frames- [in] the frames to calculate the frames fromstate- [in] the state to calculate in- Returns:
- the jacobian
-
baseJCend
public JacobianCalculatorPtr baseJCend(State state)
DeviceJacobian for the end frame.
By default this method forwards to baseDJframe().
-
baseJCframe
public JacobianCalculatorPtr baseJCframe(FrameCPtr frame, State state)
DeviceJacobian for a particular frame.
By default this method forwards to baseDJframes().
-
baseJCframes
public JacobianCalculatorPtr baseJCframes(FrameVector frames, State state)
DeviceJacobian for a sequence of frames.
-
getPropertyMap
public PropertyMap getPropertyMap()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-