optimovej(goal, a=0.3, v=0.3, r=0)

Move to the goal position (linear in joint-space)

OptiMove dynamically adapts speed and acceleration to perform smooth motions using jerk-limited speed profiles. The speed and acceleration parameters control the speed profile of the move. Setting speed and acceleration parameters to 1 causes the fastest cycle time the robot is capable of. This command is similar to movej() but with smoother motions with less vibration.

Parameters

goal: (q, pose, struct{pose, frame}, string) - the target for the TCP motion can be defined in different ways:

  • (q) as robot joint positions.

  • (pose) as a pose in robot base coordinate frame. The target joint positions will be calculated by inverse kinematics.

  • (struct{pose, frame}) as a pose and the name of a reference coordinate frame. The goal will be set to this pose in this reference coordinate frame.

  • (string) as the name of a world model object. The goal will be set to the object's pose.

a (optional): Joint acceleration as a fraction of what the joints are able to perform - a∈(0.0,1.0]

v (optional): Joint speed as a fraction of how fast the joints can move during the motion - v∈(0.0,1.0]

r (optional): Blend radius [m]

If a blend radius is set, the robot arm trajectory will be modified within the blend radius of the destination position.

Example command: optimovej([0, 1.57, -1.57, 3.14, -1.57, 1.57], a=0.4, v=0.6, r=0.0)

  • Example Parameters:
    • goal = [0, 1.57, -1.57, 3.14, -1.57, 1.57] → joint positions with base at 0 deg rotation, shoulder at 90 deg rotation, elbow at -90 deg rotation, wrist 1 at 180 deg rotation, wrist 2 at -90 deg rotation, wrist 3 at 90 deg rotation.
    • a = 0.4 → acceleration at either end of the motion is 40% of the acceleration the robot is capable of producing in the specific joint configuration.
    • v = 0.6 → velocity during motion cruise phase is 60% of the velocity the joints can move at.
    • r = 0.0 → the blend radius is zero meters, meaning the robot will stop at the waypoint.

Notes:

  • The absolute speed and acceleration of the robot depends on the joint configuration during the move. A value of e.g. 0.4 might therefore produce a faster speed/acceleration in one area of the robot's workspace and a slower speed/acceleration in another area of the robot's workspace. Values of 1.0 will always give the highest speed and acceleration that are possible for a given robot path.

  • To avoid high accelerations that can cause dropped items in e.g. suction cup grippers, consider using the command tool_wrench_limit_set() to limit the acceleration of the items held by the gripper.

  • It is possible to blend into this move type from movej/l and optimovej/l. When coming from other movement types the robot should be at standstill when starting the move.