Package org.robwork.sdurw_models
Class CompositeJointDevice
- java.lang.Object
-
- org.robwork.sdurw_kinematics.Stateless
-
- org.robwork.sdurw_models.Device
-
- org.robwork.sdurw_models.JointDevice
-
- org.robwork.sdurw_models.CompositeJointDevice
-
public class CompositeJointDevice extends JointDevice
A device constructed from a sequence of devices.
The configuration of a composite device is equal to the concatenation of
the configurations of the sequence of devices.
The devices that make up the CompositeJointDevice may not share joints, but
the implementation does not check if this is actually the case.
A composite device implements its operations of Device by querying each
Joint in the straight-forward way of JointDevice. The notable
exception is Device::setQ() which is implemented by forwarding the
Device::setQ() calls to the sequence of devices. This means that
CompositeJointDevice works also for example for devices of type ParallelDevice
that have an overwritten implementation of Device::setQ().
The devices from which the composite device is constructed must all be of
type JointDevice. An exception is thrown by the constructor if one of
the devices is not of this subtype.
The computation of Jacobians of CompositeJointDevice is not correct in
general, but is correct only for devices for which the standard technique
of JointDevice is correct. We cannot in general in RobWork do any
better currently. The implementation does not check if the requirements
for the computation of Jacobians are indeed satisfied.
CompositeJointDevice is related to TreeDevice in the sense that
CompositeJointDevice has also multiple end-effectors (one end-effector for
each device). CompositeJointDevice differs from TreeDevice by not requiring
that the child-to-parent paths of the end-effectors connect to a common
base.
-
-
Constructor Summary
Constructors Constructor Description CompositeJointDevice(long cPtr, boolean cMemoryOwn)
CompositeJointDevice(FramePtr base, DevicePtrVector devices, FramePtr end, java.lang.String name, State state)
Constructor
CompositeJointDevice(FramePtr base, DevicePtrVector devices, FrameVector ends, java.lang.String name, State state)
Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Jacobian
baseJends(State state)
like Device::baseJend() but with a Jacobian calculated for all
end-effectors (see getEnds()).void
delete()
static long
getCPtr(CompositeJointDevice obj)
FrameVector
getEnds()
The end-effectors of the composite device.
The end-effectors of the composite device are the end-effectors of
the devices from which the composite device was constructed.
This sequence of end-effectors may or may not include the default
end-effector returned by getEnd().void
setQ(Q q, State state)
The method is implemented via forwarding to the Device::setQ()
methods of the subdevices.-
Methods inherited from class org.robwork.sdurw_models.JointDevice
baseJCframes, baseJend, getAccelerationLimits, getBase, getBounds, getCPtr, getDOF, getEnd, getJoints, getQ, getVelocityLimits, setAccelerationLimits, setBounds, setVelocityLimits
-
Methods inherited from class org.robwork.sdurw_models.Device
baseJCend, baseJCframe, baseJframe, baseJframes, baseTend, baseTframe, getCPtr, getName, getPropertyMap, setName, toString, worldTbase
-
Methods inherited from class org.robwork.sdurw_kinematics.Stateless
getCPtr, getStateStructure, isRegistered, registerIn, registerIn, unregister
-
-
-
-
Constructor Detail
-
CompositeJointDevice
public CompositeJointDevice(long cPtr, boolean cMemoryOwn)
-
CompositeJointDevice
public CompositeJointDevice(FramePtr base, DevicePtrVector devices, FramePtr end, java.lang.String name, State state)
Constructor
- Parameters:
base
- [in] the base of the devicedevices
- [in] the sequence of subdevicesend
- [in] the end (or tool) of the devicename
- [in] the name of the devicestate
- [in] the kinematic structure assumed for Jacobian computations
-
CompositeJointDevice
public CompositeJointDevice(FramePtr base, DevicePtrVector devices, FrameVector ends, java.lang.String name, State state)
Constructor
- Parameters:
base
- [in] the base of the devicedevices
- [in] the sequence of subdevicesends
- [in] the end frames (or tools) of the devicename
- [in] the name of the devicestate
- [in] the kinematic structure assumed for Jacobian computations
-
-
Method Detail
-
getCPtr
public static long getCPtr(CompositeJointDevice obj)
-
delete
public void delete()
- Overrides:
delete
in classJointDevice
-
setQ
public void setQ(Q q, State state)
The method is implemented via forwarding to the Device::setQ()
methods of the subdevices.- Overrides:
setQ
in classJointDevice
- Parameters:
q
- [in] configuration vector \mathbf{q}state
- [in] state into which to set \mathbf{q}
-
baseJends
public Jacobian baseJends(State state)
like Device::baseJend() but with a Jacobian calculated for all
end-effectors (see getEnds()).
-
getEnds
public FrameVector getEnds()
The end-effectors of the composite device.
The end-effectors of the composite device are the end-effectors of
the devices from which the composite device was constructed.
This sequence of end-effectors may or may not include the default
end-effector returned by getEnd().
-
-