com.kuka.roboticsAPI.controllerModel.sunrise.mapping
Class FrameGraphHelper

java.lang.Object
  extended by com.kuka.roboticsAPI.controllerModel.sunrise.mapping.FrameGraphHelper

public final class FrameGraphHelper
extends Object

Helper class to parameterize and map the sunriseFrameGraph.

This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

Method Summary
static void checkExactlyOneDynamicFrame(AbstractFrame dynamicFrame)
          Checks that there is no more than one dynamic frame on the path to scenegraph root.
static void checkTaskFrameInWorld(AbstractFrame taskFrame, Robot robot)
          Checks that the task frame is not connected to a robot flange.
static ISunriseSensorModuleConfig checkTransformationProvider(AbstractFrame dynamicFrame)
          Checks whether a dynamic frame has an active transformation provider of type ISunriseSensorModuleConfig.
static AbstractFrame searchTaskFrame(AbstractFrame targetFrame)
          Search the (possibly dynamic) task frame for the motion interpolation in the configured scenegraph.
static FrameDefinitionList targetFrameMapping(FrameDefinitionList frameGraph, SunriseMappingToken info, Robot robot, AbstractFrame taskFrame, AbstractFrame targetFrame)
          Configures the frame graph so that the transformation from robot root to robot flange for a given target frame can be computed.
static void taskFrameMapping(FrameDefinitionList frameGraph, SunriseMappingToken info, Robot robot, DeviceMappingResult robotPorts, AbstractFrame taskFrame)
          Configures the frame to be used for interpolation on a (possibly dynamic) task frame.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

checkTransformationProvider

public static ISunriseSensorModuleConfig checkTransformationProvider(AbstractFrame dynamicFrame)
Checks whether a dynamic frame has an active transformation provider of type ISunriseSensorModuleConfig.
If an active transformation provider of correct type is available, it will be returned, otherwise an exception is thrown.

Parameters:
dynamicFrame - the dynamic frame whose transformation provider should be checked
Returns:
ISunriseSensorModuleConfig
Throws:
IllegalArgumentException - if the transformation provider is of wrong type
IllegalStateException - if the transformation provider is not active
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

checkTaskFrameInWorld

public static void checkTaskFrameInWorld(AbstractFrame taskFrame,
                                         Robot robot)
Checks that the task frame is not connected to a robot flange.
If the task frame is connected to the robot flange, an exception is thrown.

Parameters:
taskFrame - the task frame that should be checked
robot - the robot instance
Throws:
IllegalArgumentException - if the task frame is a child of robot flange
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

checkExactlyOneDynamicFrame

public static void checkExactlyOneDynamicFrame(AbstractFrame dynamicFrame)
Checks that there is no more than one dynamic frame on the path to scenegraph root.
If there is more than one dynamic frame, or the given frame is not dynamic, an exception is thrown.

Parameters:
dynamicFrame - the dynamic frame that should be checked
Throws:
IllegalArgumentException - if the given frame is not dynamic
IllegalArgumentException - if more than one frame on the path to scenegraph root is dynamic
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

targetFrameMapping

public static FrameDefinitionList targetFrameMapping(FrameDefinitionList frameGraph,
                                                     SunriseMappingToken info,
                                                     Robot robot,
                                                     AbstractFrame taskFrame,
                                                     AbstractFrame targetFrame)
Configures the frame graph so that the transformation from robot root to robot flange for a given target frame can be computed.
This function handles both static and dynamic task frames, as long as the target frame is not connected to the robot flange. The resulting frame graph will look like this:

FF - AF
|
RF
|
WF - (AuxFrame) - TF - CA

CA corresponds to the target frame. Note that an implicit loop closure is performed by the Sunrise Core between CA and AF, so that the transformation from RF to FF can be computed for each time step.

Parameters:
frameGraph - the frame definitions
info - the sunrise mapping token
robot - the robot
taskFrame - the task frame (reference CS for interpolation)
targetFrame - the target frame
Returns:
the configured frameDefinitionList
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

taskFrameMapping

public static void taskFrameMapping(FrameDefinitionList frameGraph,
                                    SunriseMappingToken info,
                                    Robot robot,
                                    DeviceMappingResult robotPorts,
                                    AbstractFrame taskFrame)
Configures the frame to be used for interpolation on a (possibly dynamic) task frame.
Three subgraphs will be created. One for computing the task frame relative Cartesian commanded position. One for computing the task frame relative Cartesian measured position. And one for computing the absolute task frame position.
This function handles both static and dynamic task frames, as long as the target frame is not connected to the robot flange. The resulting frame graph will look like this:

FF_Msr - AF_Msr
|
| FF_CmdT1m - AF_CmdT1m
| /
RF
|
WF - (AuxFrame) - TF
`(AuxFrame) - TF_Msr

TODO: split this function into three functions, one for each use case.

Parameters:
frameGraph - the frame definitions
info - the sunrise mapping token
robot - the robot
robotPorts - the robot ports
taskFrame - the task frame (reference CS for interpolation)
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

searchTaskFrame

public static AbstractFrame searchTaskFrame(AbstractFrame targetFrame)
Search the (possibly dynamic) task frame for the motion interpolation in the configured scenegraph.

Parameters:
targetFrame - the target frame
Returns:
the task frame (either world or the first parent with a dynamic transformation on the path to world)
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.


Copyright © 2019. All rights reserved.