Skip to main content

move_robot

Skill class for ai.intrinsic.move_robot skill.

The skill plans a path and trajectory according to the user-defined motion specification and executes the resulting trajectory.

The motion specification allow the user to set a sequence of motion segments. Each segment consists of a motion target, motion type, collision settings, path constraints, robot (joint and cartesian) limits, and optional motion events. Instead of multiple consecutive separate invocations prefer one invocation with multiple motion segments.

Motion targets will be defined in form of geometric constraints, this can be either a joint configuration, a 6d Cartesian pose, or a series of other constraints such as a point constraint together with a rotation cone constraint. For a series of motion segments, the motion between their targets are blended according to the blending parameters set in the motion specs.

Each motion segment defines a motion type. The default value is ANY, i.e., the planner will compute a trajectory that is collision-free and fulfills the specified path constraints. Otherwise, the user can specify JOINT (e.g., linear in joint space) or LINEAR (linear in Cartesian space).

Each motion segment may specify specific collision settings. By default, collision checking is enabled using the world's collision settings that can be defined via the frontend. Each segment can override these settings, including turning collision checking off or providing specific collision margins.

Path constraints, such as Rotation Cone, Position Bounding Box, or Joint Position-Sum Limit constraints, allow the user to constrain the end-effector of the robot during the entire motion of the segment.

It is also possible to define robot joint limits (from position and its time derivatives down to jerk) for an individual segment. If not defined, we will use the application limits of the robot in the application.

The required robot resource is a robot controller. Do not confuse this with the robot object in the world.

Prerequisites

Required assets:

  • Robot arm

Before invoking move_robot, make sure the robot is in a collision-free configuration. If the motion starts out in a collision state it is possible to exclude those collisions for the first motion segment. See the example guide below for more details.

Usage Example

A full guide for using and setting move_robot skill parameters can be found in the Plan and execute motion guide.

Parameters

motion_segments

A motion is composed of a sequence of motion segments that define the motion planning problem to be solved. Each motion segment can consist of a motion target, a motion type, collision settings, path constraints, and robot motion limits. The motion target of the segment defines the final robot configuration for this segment. When the motion consists of only one segment, the defined motion target defines the final configuration of the robot at the end of the motion. When multiple motion segments are defined, the motion targets of the non-final segments define waypoints. The resulting trajectory does not stop at these waypoints and only passes these waypoints up to a user-defined blending radius.

curve_parameters

The curve waypoint fitting parameters that will be applied during trajectory generation if multiple segments have been defined.

default_blending_parameters

intrinsic:enable_high_level_blending:strip_begin The default blending parameters used for all motion_segments if not overridden by an individual MotionSegment's blending_parameters_at_start. If not specified, the HighLevelBlendingParameters with blending_radius_in_meters=0.001 and CartesianPolylineBSplinesCurve with translational_blending_radius=0.001 and rotational_blending_radius=0.01 will be used here.

planning_parameters

General parameters that apply to motion planning (as opposed to execution). Allows setting a max planning time.

execution_parameters

General parameters that apply to motion execution (as opposed to planning).

arm_part

Name of the ICON arm part to control. If not provided but only a single arm part is present in the ICON instance, that part will be used.

plan_using_last_commanded_position

If true, planning uses the last commanded position instead of the last sensed position. This improves cache matching for sequentially planned motions. You should not typically need this option if you are planning online.

Capabilities

robot

Resource having all of the following capabilities:

  • Icon2Connection

  • Icon2PositionPart

Returns

stopped_on_signal

True if MoveRobot was stopped on a signal.

lock_motion_id

If the motion is locked based on the request, this is the id of the motion for loading later. Note this field is not set if this response is from loading a locked motion.

logging_id

Logging id of the motion planning request

Error Code

CodeTitleRecovery Instructions
10201Collision ErrorCheck the error message for recovery instructions.
10301Inverse Kinematics (IK) ErrorCheck the error message for recovery instructions.
10401Generic Linear Cartesian Path Planning ErrorCheck the error message for recovery instructions.
10402Linear Cartesian Path Planning Error: Fine Path Inverse KinematicsCheck the error message for recovery instructions.
10501Joint Limit ErrorCheck the error message for recovery instructions.
10601Generic Motion Planning ErrorCheck the error message for recovery instructions.