Arm#

Introduction#

The 6-Axis Robotic Arm is a robotic manipulator used in the CTE Workcell that can move in three-dimensional space and rotate its end effector to different orientations. Blocks in the Arm category allow the EXP Brain to move the 6-Axis Arm to positions, adjust its orientation, and control its speed.

Below is a list of available blocks:

Actions – Move the 6-Axis Arm to positions or orientations in 3D space.

Settings – Configure the 6-Axis Arm’s movement speed and attached tools.

Values – Return 6-Axis Arm motion status, position, and orientation.

Actions#

move Arm to position#

The move Arm to position block moves the 6-Axis Arm to a specified x, y, and z coordinate.

move [Arm1 v] to position x:[120] y:[0] z:[100] [mm v] ▶

Parameter

Description

device

Which 6-Axis Arm to use, configured in the Devices window.

x

The x-coordinate of the target position.

y

The y-coordinate of the target position.

z

The z-coordinate of the target position.

unit

Selects the unit for coordinates:

  • mm — millimeters
  • inches

expanding arrow

By default, this is a waiting block, so the 6-Axis Arm will finish moving before running the next block. To make the 6-Axis Arm start moving and immediately run the next block right away, expand the block to say and don’t wait.

Example

when started
move [Arm1 v] to position x:(120) y:(120) z:(75) [mm v] ▶

increment Arm position#

The increment Arm position block moves the 6-Axis Arm by an incremental distance along the x, y, and z axes.

increment [Arm1] position by x:[0] y:[0] z:[0] [mm v] ▶

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

x

Distance to move along the X axis.

y

Distance to move along the Y axis.

z

Distance to move along the Z axis.

unit

Selects the unit for the movement distance:

  • mm — millimeters
  • inches

expanding arrow

By default, this is a waiting block, so the 6-Axis Arm will finish moving before running the next block. To make the 6-Axis Arm start moving and immediately run the next block right away, expand the block to say and don’t wait.

Example

when started
[Move the Arm1 100 millimeters along the X axis.]
increment [Arm1 v] position by x:[100] y:[0] z:[0] [mm v] ▶

move Arm to orientation#

The move Arm to orientation block rotates the 6-Axis Arm’s end effector about a selected axis to a specified orientation.

move [Arm1 v] to orientation [pitch v] [0] degrees ▶

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

orientation

Selects which axis to rotate the end effector about:

  • pitch
  • roll
  • yaw

degrees

The target orientation angle in degrees.

expanding arrow

By default, this is a waiting block, so the 6-Axis Arm will finish moving before running the next block. To make the 6-Axis Arm start moving and immediately run the next block right away, expand the block to say and don’t wait.

Example

when started
[Rotate the end effector to 270 degrees of yaw.]
move [Arm1 v] to orientation [yaw v] [270] degrees ▶

increment Arm orientation#

The increment Arm orientation block rotates the 6-Axis Arm’s end effector by a specified number of degrees about a selected axis.

increment [Arm1 v] orientation by [pitch v] [0] degrees ▶

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

orientation

Selects which axis to rotate the end effector about:

  • pitch
  • roll
  • yaw

degrees

The number of degrees to rotate the end effector.

expanding arrow

By default, this is a waiting block, so the 6-Axis Arm will finish moving before running the next block. To make the 6-Axis Arm start moving and immediately run the next block right away, expand the block to say and don’t wait.

Example

when started
[Rotate the end effector 40 degrees in pitch.]
increment [Arm1] orientation by [pitch v] [40] degrees ▶

Settings#

set Arm speed#

The set Arm speed block sets the movement speed of the 6-Axis Arm.

By default, the 6-Axis Arm’s speed is set to 50% at the start of a project.

set [Arm1 v] speed to [50]%

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

percent

Sets the 6-Axis Arm’s speed as a percentage from 1 to 100.

Example

when started
[Set the 6-Axis Arm's speed to 30%.]
set [Arm1 v] speed to [30]%
move [Arm1 v] to position x:[120] y:[120] z:[70] [mm v] ▶

set Arm end effector#

The set Arm end effector block selects which tool is attached to the 6-Axis Arm.

When the end effector is changed, the 6-Axis Arm automatically adjusts its z-offset to match the selected tool.

By default, the end effector is set to the Magnet Pickup Tool at the start of a project.

set [Arm1 v] end effector to [magnet v]

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

end effector

Selects which tool is attached to the 6-Axis Arm:

  • magnet — Magnet Pickup Tool
  • pen — Pen Holder Tool

Example

when started
[Set the 6-Axis Arm to use the Pen Holder Tool.]
set [Arm1 v] end effector to [pen v]

set Arm magnet mode#

The set Arm magnet mode block sets the mode of the 6-Axis Arm’s Magnet Pickup Tool.

The magnet mode remains active until another set arm magnet mode block changes it.

At the start of a project, the magnet mode is reset to released.

set [Arm1 v] magnet to [engaged v]

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

mode

Sets the magnet state:

  • engaged — the Magnet Pickup Tool will pick up objects
  • released — the Magnet Pickup Tool will drop any held object and not pick up new ones

Example

when started
[Pick up objects, then drop them after 2 seconds.]
set [Arm1 v] magnet to [engaged v]
wait [2] seconds
set [Arm1 v] magnet to [released v]

set Arm pen offset#

The set Arm pen offset block sets the current z-offset of the 6-Axis Arm when using the Pen Holder Tool.

Before using this block, the arm’s end effector must be set to the Pen Holder Tool with the set arm end effector block. If the Pen Holder Tool is not selected, this block has no effect.

The pen offset is the distance between the top of the Pen Holder Tool and the tip of the Dry-Erase Marker. At the start of a project, the pen offset is set to 0. By default, this corresponds to approximately 23 mm between the tip of the Dry-Erase Marker included with the CTE Workcell Kit and the Pen Holder Tool.

A pen offset of 0 places the arm’s z-axis origin at the point where the Pen Holder Tool connects to the 6-Axis Arm.

set [Arm1 v] pen offset to [0] [mm v]

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

offset

Sets the pen offset value.

unit

Selects the unit for the pen offset:

  • mm — millimeters
  • inches

Example

when started
[Set the pen offset to 1 inch.]
set [Arm1 v] pen offset to [1] [inches v]
move [Arm1 v] to position x:[120] y:[120] z:[0] [mm v] ▶

set Arm to control stopped#

The set Arm to control stopped block enables the 6-Axis Arm’s control stop.

When control stop is enabled, the 6-Axis Arm immediately stops any movement and will not execute any further Arm blocks. Once this block runs, the 6-Axis Arm cannot be re-enabled until the project is restarted.

set [Arm1 v] to control stopped

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

Example

when started
[Control stop after a movement.]
move [Arm1 v] to position x:[120] y:[120] z:[70] [mm v] ▶
set [Arm1 v] to control stopped

Values#

Arm move to position?#

The Arm move to position? block returns a Boolean indicating whether the 6-Axis Arm can move to the specified position.

  • True — The 6-Axis Arm can move to the specified x, y, and z position.

  • False — The specified position is outside the reachable workspace of the 6-Axis Arm.

<[Arm1 v] move to position x:[0] y:[0] z:[0] [mm v] ?>

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

x

The x-coordinate of the target position.

y

The y-coordinate of the target position.

z

The z-coordinate of the target position.

unit

Selects the unit for the coordinates:

  • mm — millimeters
  • inches

Example

when started
[Check if the 6-Axis Arm can move to a position.]
if <not <[Arm1 v] move to position x:[0] y:[0] z:[0] [mm v] ?>>
print [The 6-Axis Arm can't move to this position.] ▶

Arm increment position?#

The Arm increment position? block returns a Boolean indicating whether the 6-Axis Arm can move the specified incremental distance.

  • True — The 6-Axis Arm can move the requested distance along the x, y, and z axes.

  • False — Moving the requested distance would place the 6-Axis Arm outside its reachable workspace.

<[Arm1 v] increment position by x:[0] y:[0] z:[0] [mm v] ?>

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

x

Distance to move along the x-axis.

y

Distance to move along the y-axis.

z

Distance to move along the z-axis.

unit

Selects the unit for the movement distance:

  • mm — millimeters
  • inches

Example

when started
[Check if the 6-Axis Arm can increment from its position.]
if <not <[Arm1 v] move to position x:[0] y:[500] z:[0] [mm v] ?>>
print [The 6-Axis Arm can't incremental move for this distance.] ▶

Arm move end effector?#

The Arm move end effector? block returns a Boolean indicating whether the 6-Axis Arm can rotate its end effector to the specified orientation.

  • True — The 6-Axis Arm can rotate the end effector to the specified orientation.

  • False — The requested orientation is outside the allowed range for the 6-Axis Arm.

<[Arm1 v] move end effector to [pitch v] [0] degrees?>

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

orientation

Selects which axis to rotate the end effector about:

  • pitch
  • roll
  • yaw

degrees

The target orientation angle in degrees.

when started
[Check if the 6-Axis Arm can roll its end effector to a position.]
if <[Arm1 v] move end effector to [roll v] [40] degrees?>>
print [The End Effector can roll to that position.] on screen ▶

Arm increment orientation?#

The Arm increment orientation? block returns a Boolean indicating whether the 6-Axis Arm can rotate its end effector by the specified number of degrees.

  • True — The 6-Axis Arm can rotate the end effector by the specified amount.

  • False — Rotating the end effector by the specified amount would move it outside the allowed range.

<[Arm1 v] increment orientation by [pitch v] [0] degrees?>

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

orientation

Selects which axis to rotate the end effector about:

  • pitch
  • roll
  • yaw

degrees

The number of degrees to rotate the end effector.

when started
[Check if the 6-Axis Arm can incrementally yaw its end effector.]
if <[Arm1 v] increment orientation by [yaw v] [20] degrees?>>
print [The End Effector can incrementally yaw for that distance.] ▶

Arm is done moving?#

The Arm is done moving? block returns a Boolean indicating whether the 6-Axis Arm is currently moving.

  • True — The 6-Axis Arm is not moving.

  • False — The 6-Axis Arm is moving.

<[Arm1 v] is done moving?>

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

when started
[Display the current y-position while the 6-Axis Arm moves.]
move [Arm1 v] to position x:(-100) y:(200) z:(100) [mm v] ◀ and don't wait
repeat until <[Arm1 v] is done moving?>
print ([Arm1 v] position [y v] in [mm v]) on screen ◀ and set cursor to next row
wait [0.25] seconds

Arm position#

The Arm position block returns the current position of the 6-Axis Arm along a selected axis.

([Arm1 v] position [x v] in [mm v])

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

axis

Selects which axis to return the position for:

  • x
  • y
  • z

unit

Selects the unit for the position value:

  • mm — millimeters
  • inches

when started
[Display the current y-position while the 6-Axis Arm moves.]
move [Arm1 v] to position x:(-100) y:(200) z:(100) [mm v] ◀ and don't wait
repeat until <[Arm1 v] is done moving?>
print ([Arm1 v] position [y v] in [mm v]) on screen ◀ and set cursor to next row
wait [0.25] seconds

Arm orientation#

The Arm orientation block returns the current orientation of the 6-Axis Arm’s end effector about a selected axis in degrees.

([Arm1 v] orientation [pitch v] in degrees)

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.

orientation

Selects which orientation axis to report:

  • pitch
  • roll
  • yaw

when Arm control stopped#

The when Arm control stopped block runs the attached stack when the 6-Axis Arm’s control stop has been enabled.

  when [Arm1 v] control stopped  :: hat events

Parameter

Description

device

Selects which 6-Axis Arm to use, configured in the Devices window.