Package org.robwork.sdurw
Class DeviceCPtr
- java.lang.Object
-
- org.robwork.sdurw.DeviceCPtr
-
public class DeviceCPtr extends java.lang.ObjectPtr stores a pointer and optionally takes ownership of the value.
-
-
Constructor Summary
Constructors Constructor Description DeviceCPtr()Default constructor yielding a NULL-pointer.DeviceCPtr(long cPtr, boolean cMemoryOwn)DeviceCPtr(Device ptr)Do not take ownership of ptr.
ptr can be null.
The constructor is implicit on purpose.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Device__ref__()Dereferencing operator.JacobianbaseJend(State state)Calculates the jacobian matrix of the end-effector described
in the robot base frame ^{base}_{end}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
JacobianbaseJframe(Frame 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.Transform3DdbaseTend(State state)Calculates the homogeneous transform from base to the end frame
\robabx{base}{end}{\mathbf{T}}Transform3DdbaseTframe(Frame f, State state)Calculates the homogeneous transform from base to a frame f
\robabx{b}{f}{\mathbf{T}}voiddelete()Devicederef()The pointer stored in the object.booleanequals(Device p)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}
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(DeviceCPtr obj)DevicegetDeref()Member access operator.longgetDOF()Returns number of active jointsjava.lang.StringgetName()Returns the name of the deviceQgetQ(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}
booleanisNull()checks if the pointer is nullbooleanisShared()check if this Ptr has shared ownership or none
ownershipvoidsetQ(Q q, State state)Sets configuration vector \mathbf{q} \in \mathbb{R}^n
Transform3DdworldTbase(State state)Calculates the homogeneous transform from world to base \robabx{w}{b}{\mathbf{T}}
-
-
-
Constructor Detail
-
DeviceCPtr
public DeviceCPtr(long cPtr, boolean cMemoryOwn)
-
DeviceCPtr
public DeviceCPtr()
Default constructor yielding a NULL-pointer.
-
DeviceCPtr
public DeviceCPtr(Device ptr)
Do not take ownership of ptr.
ptr can be null.
The constructor is implicit on purpose.
-
-
Method Detail
-
getCPtr
public static long getCPtr(DeviceCPtr obj)
-
delete
public void delete()
-
deref
public Device deref()
The pointer stored in the object.
-
__ref__
public Device __ref__()
Dereferencing operator.
-
getDeref
public Device getDeref()
Member access operator.
-
equals
public boolean equals(Device p)
-
isShared
public boolean isShared()
check if this Ptr has shared ownership or none
ownership- Returns:
- true if Ptr has shared ownership, false if it has no ownership.
-
isNull
public boolean isNull()
checks if the pointer is null- Returns:
- Returns true if the pointer is null
-
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})
-
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
-
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
-
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
-
baseTframe
public Transform3Dd baseTframe(Frame 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 Transform3Dd 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 Transform3Dd 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}}
-
baseJend
public Jacobian baseJend(State state)
Calculates the jacobian matrix of the end-effector described
in the robot base frame ^{base}_{end}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
- Parameters:
state- [in] State for which to calculate the Jacobian
- Returns:
- the 6*ndof jacobian matrix:
{^{base}_{end}}\mathbf{J}_{\mathbf{q}}(\mathbf{q})
This method calculates the jacobian relating joint velocities ( \mathbf{\dot{q}} ) to the end-effector velocity seen from
base-frame ( \nu^{ase}_{end} )
\nu^{base}_{end} = {^{base}_{end}}\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}}
Where:
{^{base}_n}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) = \left[ \begin{array}{cccc} {^{base}_1}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) {^{base}_2}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) \cdots {^b_n}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) \\ \end{array} \right]
where {^{base}_i}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) is defined by
{^{base}_i}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) = \begin{array}{cc} \left[ \begin{array}{c} {^{base}}\mathbf{z}_i \times {^{i}\mathbf{p}_n} \\ {^{base}}\mathbf{z}_i \\ \end{array} \right] \textrm{revolute joint} \end{array}
{^{base}_i}\mathbf{J}_{\mathbf{q}}(\mathbf{q}) = \begin{array}{cc} \left[ \begin{array}{c} {^{base}}\mathbf{z}_i \\ \mathbf{0} \\ \end{array} \right] \textrm{prismatic joint} \\ \end{array}
By default the method forwards to baseJframe().
-
baseJframe
public Jacobian baseJframe(Frame 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
-
-