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
| Code | Title | Recovery Instructions |
|---|---|---|
| 10201 | Collision Error | Check the error message for recovery instructions. |
| 10301 | Inverse Kinematics (IK) Error | Check the error message for recovery instructions. |
| 10401 | Generic Linear Cartesian Path Planning Error | Check the error message for recovery instructions. |
| 10402 | Linear Cartesian Path Planning Error: Fine Path Inverse Kinematics | Check the error message for recovery instructions. |
| 10501 | Joint Limit Error | Check the error message for recovery instructions. |
| 10601 | Generic Motion Planning Error | Check the error message for recovery instructions. |