Basic Frame Tracking with an Axis

Brief: An axis group with a single axis is created and a part frame is attached to the axis. The robot then maintains a constant relative pose to the part frame constant while the axis is jogged back and forth.

URScript API functions used in this example:

  • axis_group_add

  • axis_group_add_axis

  • axis_group_movej

  • reset_world_model

  • add_frame

  • attach_frame

  • frame_tracking_enable

  • frame_tracking_disable

This is a basic example of frame tracking. An axis group called “positioner” is created with a single axis called “axis1”. A frame called “part” is then added and attached to the axis. Frame tracing is turned on using the frame tracking feature, which is provided through new world model & kinematic tree functionality. The robot then keeps its pose constant relative to the “part” frame while the robot is jogged back and forth using axis_group_movej().

NOTE: This example does not drive any EtherCAT hardware and the external axes move only in the world model.

img

Let’s go through the example in greater detail:

Setting up the World and Axis

img

This resets the world model and creates an axis group called “positioner” positioner located 0.3m in the x direction of the robot base frame. It then adds an axis called “axis1” to the axis group located 0.3m in the z direction of “positioner” axis group.

Adding and Attaching a New Frame

img

This adds a new frame called “part” to the world model. It’s placed -.15m in the x direction, 0.05m in the z direction of the “axis1” frame, and rotated 90 degrees around the y axis of the “axis1” frame. The “part” frame is then attached to the “axis1” frame.

Axis Motion with Frame Tracking

img

This enables frame tracking on the “part” frame so that subsequent robot motion commands are performed in the moving “part” frame. The axis is then commanded to rotate to its 90 deg position, it’s -90 deg position, and then back to 0 deg. No robot motion commands are commanded during the axes motions and so frame tracking keeps the robot’s TCP pose constant relative to the tracked “part” frame.