sim.getAlternateConfigs

Generates alternative manipulator configurations, for a same end-effector pose, for a manipulator that has revolute joints with a range larger than 360 degrees. The original submitted configuration will be part of the returned configurations

Synopsis

list configurations = sim.getAlternateConfigs(list jointHandles, list inputConfig, int tipHandle = -1, list lowLimits = None, list ranges = None) float[] configurations = sim.getAlternateConfigs(int[] jointHandles, float[] inputConfig, int tipHandle = -1, float[] lowLimits = nil, float[] ranges = nil)

Arguments

  • jointHandles: an array with the handles of the manipulator joints.
  • inputConfig: the manipulator configuration (i.e. joint values).
  • tipHandle: the handle of the object acting as end-effector or tip of the kinematic chain, used to make sure the additional configurations have the same end-effector pose (e.g. in case some joints are dependent on others). Can be set to -1 if there are no joint dependencies involved.
  • lowLimits: an optional array containing the low limit values for each specified joint. This can be useful when you wish to explore a sub-set of the joint's intervals.
  • ranges: an optional array containing the range values for each specified joint. This can be useful when you wish to explore a sub-set of the joint's intervals. If the range value is 0, then the lowLimit and range values are taken from the joint's properties. If the range value is negative, then the search interval will be centered around the current linear/angular joint position, with an extent of (-range).

Return values

  • configurations: an array containing configurations that are equivalent to the specified inputConfig, in terms of end-effector pose.