parameters: (
          robot:Union[RobotModel,SubRobotModel],
          constraints: Union[int,str,IKObjective,Sequence[int],Sequence[str],Sequence[IKObjective]],
          delta: float = 1e-2,
          solver: Optional[IKSolver] = None,
          feasibilityTest: Optional[Callable[[Vector],bool]] = None,
          maximize: bool = False
      )
return_statement: return cartesian_interpolate_linear(robot,taskStart,taskEnd,constraints,
          delta=delta,solver=solver,feasibilityTest=feasibilityTest,
          maximize=maximize)
docstring: A convenience function that generates a path that performs a linear
      cartesian interpolation starting from the robot's current configuration
      and ending at the desired IK constraints.
  
      This is a bit more convenient than :func:`cartesian_interpolate_linear`
      since you only need to pass in the target objective, rather than the
      start and end Cartesian parameters as well. 
  
      Usage::
  
          path = cartesian_move_to(robot,goal)
  
      Other arguments are equivalent to those in cartesian_interpolate_linear.
docstring_summary: A convenience function that generates a path that performs a linear
      cartesian interpolation starting from the robot's current configuration
      and ending at the desired IK constraints.
docstring_tokens: A convenience function that generates a path that performs a linear cartesian interpolation starting from the robot s current configuration and ending at the desired IK constraints .
function: def cartesian_move_to(
          robot:Union[RobotModel,SubRobotModel],
          constraints: Union[int,str,IKObjective,Sequence[int],Sequence[str],Sequence[IKObjective]],
          delta: float = 1e-2,
          solver: Optional[IKSolver] = None,
          feasibilityTest: Optional[Callable[[Vector],bool]] = None,
          maximize: bool = False
      ) -> Optional[RobotTrajectory]:
      """A convenience function that generates a path that performs a linear
      cartesian interpolation starting from the robot's current configuration
      and ending at the desired IK constraints.
  
      This is a bit more convenient than :func:`cartesian_interpolate_linear`
      since you only need to pass in the target objective, rather than the
      start and end Cartesian parameters as well. 
  
      Usage::
  
          path = cartesian_move_to(robot,goal)
  
      Other arguments are equivalent to those in cartesian_interpolate_linear.
      """
      if not hasattr(constraints,'__iter__'):
          constraints = [constraints]
      for c in constraints:
          assert isinstance(c,IKObjective)
      #extract the task space coordinates of the constraints
      taskEnd = config.getConfig(constraints)
      #extract the task space coordinates of the current robot
      for c in constraints:
          xforml = robot.link(c.link()).getTransform()
          xformr = robot.link(c.destLink()).getTransform() if c.destLink() >= 0 else se3.identity()
          c.matchDestination(*se3.mul(se3.inv(xformr),xforml))
      taskStart = config.getConfig(constraints)
      #just call the solver
      return cartesian_interpolate_linear(robot,taskStart,taskEnd,constraints,
          delta=delta,solver=solver,feasibilityTest=feasibilityTest,
          maximize=maximize)
function_tokens: def cartesian_move_to ( robot : Union [ RobotModel , SubRobotModel ] , constraints : Union [ int , str , IKObjective , Sequence [ int ] , Sequence [ str ] , Sequence [ IKObjective ] ] , delta : float = 1e-2 , solver : Optional [ IKSolver ] = None , feasibilityTest : Optional [ Callable [ [ Vector ] , bool ] ] = None , maximize : bool = False ) -> Optional [ RobotTrajectory ] : if not hasattr ( constraints , '__iter__' ) : constraints = [ constraints ] for c in constraints : assert isinstance ( c , IKObjective ) #extract the task space coordinates of the constraints taskEnd = config . getConfig ( constraints ) #extract the task space coordinates of the current robot for c in constraints : xforml = robot . link ( c . link ( ) ) . getTransform ( ) xformr = robot . link ( c . destLink ( ) ) . getTransform ( ) if c . destLink ( ) >= 0 else se3 . identity ( ) c . matchDestination ( * se3 . mul ( se3 . inv ( xformr ) , xforml ) ) taskStart = config . getConfig ( constraints ) #just call the solver return cartesian_interpolate_linear ( robot , taskStart , taskEnd , constraints , delta = delta , solver = solver , feasibilityTest = feasibilityTest , maximize = maximize )