Arm#
Introduction#
The 6-Axis Robotic Arm is a robotic manipulator used in the CTE Workcell. The Arm blocks move the 6-Axis Arm to positions in three-dimensional space, rotate its end effector, check whether movements are possible, and control attached tools such as the Magnet Pickup Tool or Pen Holder Tool.
Below is a list of available blocks:
Actions — Move the 6-Axis Arm, configure movement, and control tools.
move arm to position — Moves the 6-Axis Arm to a specified x, y, and z coordinate.
increment arm position — Moves the 6-Axis Arm by a distance from its current position.
move arm to orientation — Rotates the end effector to a specific orientation.
increment arm orientation — Rotates the end effector by a specified number of degrees.
set arm speed — Sets the movement speed of the 6-Axis Arm.
set arm end effector — Selects the tool attached to the 6-Axis Arm.
set arm magnet mode — Engages or releases the Magnet Pickup Tool.
set arm pen offset — Sets the vertical offset for the Pen Holder Tool.
set arm to control stopped — Stops the 6-Axis Arm and prevents further Arm movement.
Values — Check whether a movement can run, whether movement has finished, or read the current position or orientation.
arm move to position? — Returns whether the 6-Axis Arm can move to a specified position.
arm increment position? — Returns whether the 6-Axis Arm can move by a specified distance.
arm move end effector? — Returns whether the end effector can rotate to a specified orientation.
arm increment orientation? — Returns whether the end effector can rotate by a specified number of degrees.
arm is done moving? — Returns whether the 6-Axis Arm has finished moving.
arm position — Returns the current position of the 6-Axis Arm along a selected axis.
arm orientation — Returns the current orientation of the end effector along a selected axis.
This page is for using the 6-Axis Arm on its own with the CTE Tile. To use the 6-Axis Arm with other CTE Workcell components, such as Pneumatics or Conveyors, connect the 6-Axis Arm to an EXP Brain and use the corresponding EXP Arm page.
Actions#
move arm to position#
The move arm to position stack block moves the 6-Axis Arm to a specified x, y, and z coordinate.
The x, y, and z coordinates describe the position of the end effector in three-dimensional space. Use arm move to position? before this block if the target position may be outside the 6-Axis Arm’s reachable workspace.
move [arm v] to position x:[120] y:[0] z:[100] [mm v] ▶
Parameter |
Description |
|---|---|
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 |
The unit used for the x, y, and z coordinates: mm (millimeters) or inches. |
expanding arrow |
By default, the 6-Axis Arm finishes moving before the next block runs. Expand the block to and don’t wait to start the movement and immediately continue to the next block. |
Example
when started
[Move the 6-Axis Arm to a standard position at the start of the project.]
move [arm v] to position x:(120) y:(120) z:(75) [mm v] ▶
increment arm position#
The increment arm position stack block moves the 6-Axis Arm by a specified distance from its current position along the x, y, and z axes.
Use this block to move relative to where the end effector is now. Use arm increment position? before this block if the movement may place the 6-Axis Arm outside its reachable workspace.
increment [arm v] position by x:[0] y:[0] z:[0] [mm v] ▶
Parameter |
Description |
|---|---|
x |
The distance to move along the x-axis. |
y |
The distance to move along the y-axis. |
z |
The distance to move along the z-axis. |
unit |
The unit used for the x, y, and z distances: mm (millimeters) or inches. |
expanding arrow |
By default, the 6-Axis Arm finishes moving before the next block runs. Expand the block to and don’t wait to start the movement and immediately continue to the next block. |
Example
when started
[Move the 6-Axis Arm 100 millimeters along the x-axis.]
increment [arm v] position by x:[100] y:[0] z:[0] [mm v] ▶
move arm to orientation#
The move arm to orientation stack block rotates the end effector to a specified orientation.
Orientation describes how the end effector is rotated. pitch tilts the end effector up or down, roll rotates it side to side, and yaw rotates it left or right.
move [arm v] to orientation [pitch v] [0] degrees ▶
Parameter |
Description |
|---|---|
orientation |
The axis to rotate the end effector around:
|
degrees |
The target orientation angle, in degrees. |
expanding arrow |
By default, the 6-Axis Arm finishes moving before the next block runs. Expand the block to and don’t wait to start the movement and immediately continue to the next block. |
Example
when started
[Rotate the end effector to 270 degrees of yaw.]
move [arm v] to orientation [yaw v] [270] degrees ▶
increment arm orientation#
The increment arm orientation stack block rotates the end effector by a specified number of degrees from its current orientation.
Use this block to rotate relative to the end effector’s current pitch, roll, or yaw.
increment [arm v] orientation by [pitch v] [0] degrees ▶
Parameter |
Description |
|---|---|
orientation |
The axis to rotate the end effector around:
|
degrees |
The number of degrees to rotate the end effector. |
expanding arrow |
By default, the 6-Axis Arm finishes moving before the next block runs. Expand the block to and don’t wait to start the movement and immediately continue to the next block. |
Example
when started
[Rotate the end effector 40 degrees in pitch.]
increment [arm v] orientation by [pitch v] [40] degrees ▶
set arm speed#
The set arm speed stack block sets the movement speed of the 6-Axis Arm.
The 6-Axis Arm speed is set to 50% at the start of a project.
set [arm v] speed to [50]%
Parameter |
Description |
|---|---|
percent |
The movement speed of the 6-Axis Arm, from 1 to 100 percent. |
Example
when started
[Set the 6-Axis Arm's speed to 30%.]
set [arm v] speed to [30]%
move [arm v] to position x:[120] y:[120] z:[70] [mm v] ▶
set arm end effector#
The set arm end effector stack block selects the tool 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. The end effector is set to the Magnet Pickup Tool at the start of a project.
set [arm v] end effector to [magnet v]
Parameter |
Description |
|---|---|
end effector |
The tool attached to the 6-Axis Arm: magnet (Magnet Pickup Tool) or pen (Pen Holder Tool). |
Example
when started
[Set the 6-Axis Arm to use the Pen Holder Tool.]
set [arm v] end effector to [pen v]
set arm magnet mode#
The set arm magnet mode stack block engages or releases the Magnet Pickup Tool.
The magnet mode stays active until another set arm magnet mode block changes it. The magnet mode is reset to released at the start of a project.
set [arm v] magnet to [engaged v]
Parameter |
Description |
|---|---|
mode |
The Magnet Pickup Tool state: engaged to pick up objects or released to drop any held object and not pick up new objects. |
Example
when started
[Pick up objects, then drop them after 2 seconds.]
set [arm v] magnet to [engaged v]
wait [2] seconds
set [arm v] magnet to [released v]
set arm pen offset#
The set arm pen offset stack block sets the vertical offset for the Pen Holder Tool.
Set the end effector to pen before using this block. If the Pen Holder Tool is not selected, this block has no effect.
The pen offset is the distance from the top of the Pen Holder Tool to the tip of the Dry-Erase Marker. At the start of a project, the pen offset is set to 0. 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 [arm v] pen offset to [0] [mm v]
Parameter |
Description |
|---|---|
offset |
The pen offset value. |
unit |
The unit used for the pen offset: mm (millimeters) or inches. |
Example
when started
[Set the end effector to the Pen Holder Tool and set the pen offset to 1 inch.]
set [arm v] end effector to [pen v]
set [arm v] pen offset to [1] [inches v]
move [arm v] to position x:[120] y:[120] z:[0] [mm v] ▶
set arm to control stopped#
The set arm to control stopped stack block immediately stops the 6-Axis Arm and prevents any more Arm blocks from running.
Once this block runs, the 6-Axis Arm cannot be re-enabled until the project is restarted.
set [arm v] to control stopped
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Control stop after a movement.]
move [arm v] to position x:[120] y:[120] z:[70] [mm v] ▶
set [arm v] to control stopped
Values#
arm move to position?#
The arm move to position? Boolean block returns whether the 6-Axis Arm can move to a specified x, y, and z coordinate.
This block checks a target position before the 6-Axis Arm moves. It can help prevent a project from trying to move the arm outside its reachable workspace.
<[arm v] move to position x:[0] y:[0] z:[0] [mm v] ?>
Parameter |
Description |
|---|---|
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 |
The unit used for the x, y, and z coordinates: mm (millimeters) or inches. |
Example
when started
[Check if the 6-Axis Arm can move to a position.]
if <not <[arm v] move to position x:[0] y:[0] z:[0] [mm v] ?>> then
print [The 6-Axis Arm can't move to this position.] on console ◀ and set cursor to next row
end
arm increment position?#
The arm increment position? Boolean block returns whether the 6-Axis Arm can move the specified distance from its current position.
This block checks an incremental movement before the 6-Axis Arm moves.
<[arm v] increment position by x:[0] y:[0] z:[0] [mm v] ?>
Parameter |
Description |
|---|---|
x |
The distance to move along the x-axis. |
y |
The distance to move along the y-axis. |
z |
The distance to move along the z-axis. |
unit |
The unit used for the x, y, and z distances: mm (millimeters) or inches. |
Example
when started
[Check if the 6-Axis Arm can increment from its current position.]
if <not <[arm v] increment position by x:[0] y:[500] z:[0] [mm v] ?>> then
print [The 6-Axis Arm can't move that distance.] on console ◀ and set cursor to next row
end
arm move end effector?#
The arm move end effector? Boolean block returns whether the end effector can rotate to a specified orientation.
Use this block to check whether a target pitch, roll, or yaw value is within the allowed range before rotating the end effector.
<[arm v] move end effector to [pitch v] [0] degrees?>
Parameter |
Description |
|---|---|
orientation |
The axis to rotate the end effector around:
|
degrees |
The target orientation angle, in degrees. |
Example
when started
[Check if the 6-Axis Arm can roll its end effector to an orientation.]
if <[arm v] move end effector to [roll v] [40] degrees?> then
print [The end effector can roll to that orientation.] on console ◀ and set cursor to next row
end
arm increment orientation?#
The arm increment orientation? Boolean block returns whether the end effector can rotate by a specified number of degrees from its current orientation.
Use this block to check an incremental pitch, roll, or yaw movement before rotating the end effector.
<[arm v] increment orientation by [pitch v] [0] degrees?>
Parameter |
Description |
|---|---|
orientation |
The axis to rotate the end effector around:
|
degrees |
The number of degrees to rotate the end effector. |
Example
when started
[Check if the 6-Axis Arm can increment yaw.]
if <[arm v] increment orientation by [yaw v] [20] degrees?> then
print [The end effector can increment yaw by 20 degrees.] on console ◀ and set cursor to next row
end
arm is done moving?#
The arm is done moving? Boolean block returns whether the 6-Axis Arm has finished moving.
This block is useful after a movement block is expanded to and don’t wait.
<[arm v] is done moving?>
Parameters |
Description |
|---|---|
This block has no parameters. |
Example
when started
[Display the current y-position while the 6-Axis Arm moves.]
move [arm v] to position x:(-100) y:(200) z:(100) [mm v] ◀ and don't wait
repeat until <[arm v] is done moving?>
print ([arm v] position [y v] in [mm v]) on console ◀ and set cursor to next row
wait [0.25] seconds
end
arm position#
The arm position reporter block returns the current position of the 6-Axis Arm along a selected axis.
Use this block to read where the end effector is currently located along the x, y, or z axis.
([arm v] position [x v] in [mm v])
Parameter |
Description |
|---|---|
axis |
The position axis to report:
|
unit |
The unit used for the position value: mm (millimeters) or inches. |
Example
when started
[Display the current y-position while the 6-Axis Arm moves.]
move [arm v] to position x:(-100) y:(200) z:(100) [mm v] ◀ and don't wait
repeat until <[arm v] is done moving?>
print ([arm v] position [y v] in [mm v]) on console ◀ and set cursor to next row
wait [0.25] seconds
end
arm orientation#
The arm orientation reporter block returns the current orientation of the end effector about a selected axis in degrees.
Use this block to read the end effector’s current pitch, roll, or yaw.
([arm v] orientation [pitch v] in degrees)
Parameter |
Description |
|---|---|
orientation |
The orientation axis to report:
|
Example
when started
[Display the current yaw after rotating the end effector.]
move [arm v] to orientation [yaw v] [90] degrees ◀ and don't wait
repeat until <[arm v] is done moving?>
print ([arm v] orientation [yaw v] in degrees) on console ◀ and set cursor to next row
wait [0.25] seconds
end