Sensing#

Arm Sensing#

Can 6-Axis Arm Move to Position#

The Can 6-Axis Arm Move to Position block is used to report if the 6-Axis Robotic Arm is able to reach the specified position.

  <[arm v] move to position x: (0) y: (0) z: (0) [mm v] ?>

The Can 6-Axis Arm Move to Position block reports True when the 6-Axis Arm can reach that position.

The Can 6-Axis Arm Move to Position block reports False when the 6-Axis Arm can not reach that position.

Choose which 6-Axis Arm to use.

arm_reach_to_arm

Select which unit to use: millimeters (mm) or inches.

arm_reach_to_units

In this example, the 6-Axis Arm will check if it can move to (0, 0, 0) and print that it can not reach the position.

  when started :: hat events
  if <not <[arm v] move to position x: (0) y: (0) z: (0) [mm v] ?>>then
  print [The Arm can't move to this position.] ▶

Can 6-Axis Arm Increment Move to Position#

The Can 6-Axis Arm Increment Move to Position block is used to report if the 6-Axis Robotic Arm is able to incrementally move for that distance.

  <[arm v] increment position by x: (0) y: (0) z: (0) [mm v] ?>

The Can 6-Axis Arm Increment Move to Position block reports True when the 6-Axis Arm can incrementally move for that distance.

The Can 6-Axis Arm Increment Move to Position block reports False when the 6-Axis Arm can not incrementally move for that distance.

Select which unit to use: millimeters (mm) or inches.

The image shows a hexagonal block in a visual coding environment designed to control the movement of an "arm" to a specific position in 3D space. The block allows the user to set the x, y, and z coordinates, which are currently set to 0. The unit of measurement can be selected from a dropdown menu, with "mm" currently selected, and "inches" as another option. This block enables precise positioning of the arm using either millimeters or inches.

In this example, the 6-Axis Arm will check if it can increment move for 500 millimeters on the Y axis and print that it can’t move for that distance.

  when started :: hat events
  if <not <[arm v] increment position by x: (0) y: (500) z: (0) [mm v] ?>>then
  print [The Arm can't incremental move for this distance.] ▶

Can 6-Axis Arm End Effector Move to Orientation#

The Can 6-Axis Arm End Effector Move to Orientation block is used to report if the 6-Axis Arm’s End Effector can rotate about an axis to a specific orientation.

  <[arm v] move end effector to [pitch v] (0) degrees?>

The Can 6-Axis Arm End Effector Move to Orientation block reports True when the 6-Axis Arm can rotate about an axis to a specific orientation.

The Can 6-Axis Arm End Effector Move to Orientation block reports False when the 6-Axis Arm can not rotate about an axis to a specific orientation.

Select which axis to use:

  • pitch - Movement around the Y-axis.

  • roll - Movement around the X-axis.

  • yaw - Movement around the Z-axis.

The image displays a coding block that is used to increment the position of an "arm" by specific values along the x, y, and z axes. The block allows you to input values for these coordinates and select the unit of measurement, which can be either millimeters (mm) or inches, as shown by the dropdown menu. The block has a hexagonal shape, indicating that it is likely used within a conditional or loop structure, allowing it to adjust the arm's position during execution.

In this example, the 6-Axis Arm will check if the End Effector can point towards the 40 degrees position on the X axis and print if it can or can not.

  when started :: hat events
  if <[arm v] move end effector to [roll v] (40) degrees?> then
  print [The End Effector can move to this orientation.] ▶
  else
  print [The End Effector can move to this orientation.] ▶

Can 6-Axis Arm End Effector Incrementally Move to Orientation#

The Can 6-Axis Arm End Effector Incrementally Move to Orientation block is used to report if the 6-Axis Arm’s End Effector can incrementally rotate about an axis its orientation for a specific amount of degrees.

  <[arm v] increment orientation by [pitch v] (0) degrees?>

The Can 6-Axis Arm End Effector Incrementally Move to Orientation block reports True when the 6-Axis Arm can incrementally rotate about an axis for a specific amount of degrees.

The Can 6-Axis Arm End Effector Incrementally Move to Orientation block reports False when the 6-Axis Arm can not incrementally rotate about an axis for a specific amount of degrees.

Select which axis to use:

  • pitch - Rotation around the Y-axis.

  • roll - Rotation around the X-axis.

  • yaw - Rotation around the Z-axis.

The image shows a hexagonal-shaped block used to control the movement of an arm's end effector to a specific angle in degrees. The block includes a dropdown menu that allows the user to choose between different types of movements: pitch, roll, and yaw. The currently selected movement is "pitch," with the angle set to "0 degrees." This block would be used in a coding environment to precisely control the orientation of the robotic arm’s end effector in 3D space.

In this example, the 6-Axis Arm will check if the End Effector can increment move for 20 degrees on the Z axis and print if it can or can not.

  when started :: hat events
  if <[arm v] increment orientation by [yaw v] (20) degrees?> then
  print [The End Effector can increment move for this distance.] ▶
  else
  print [The End Effector can not increment move for this distance.] ▶

6-Axis Arm is Done?#

The 6-Axis Arm is Done? block is used to report if the 6-Axis Arm has completed moving.

  <[arm v] is done moving?>

The 6-Axis Arm is Done? block reports True when the 6-Axis Arm is not moving.

The 6-Axis Arm is Done? block reports False when the 6-Axis Arm is moving.

In this example, the Arm will move to the position (-100, 200, 100) and print its Y coordinate in mm every .25 seconds as it moves, until it is done moving.

  when started :: hat events
  [Move to (-100, 200, 100) and let subsequent blocks trigger.]
  move [Arm1 v] to position x: (-100) y: (200) z: (100) [mm v] ◀ and don't wait
  [Repeat the blocks until the Arm has finished moving.]
  repeat until <[Arm1 v] is done moving?>
  [Print the Arm's current Y position in mm on the Brain every .25 seconds.]
  print ([Arm1 v] position [y v] in [mm v]) on [Brain v] ◀ and set cursor to next row
  wait (0.25) seconds

6-Axis Arm Position#

The 6-Axis Arm Position block is used to report the current position of the 6-Axis Arm in the specified axis.

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

Choose which axis to report.

The image shows a block that is used to retrieve the position of a robotic arm. The block allows the user to choose between the "x," "y," and "z" coordinates to specify which axis's position is being queried. The selected coordinate will then return the position in millimeters, as indicated by the dropdown options. This block would be used in a program to determine the current position of the arm along the chosen axis.

Choose which unit to report with: millimeters (mm) or inches.

The image displays a block that is used to retrieve the position of a robotic arm along a specified axis. The block allows you to select which axis ("x," "y," or "z") you want to measure. It also includes a dropdown menu to choose the unit of measurement, either millimeters ("mm") or inches. This block would be used in a program to determine and return the current position of the arm along the selected axis in the chosen unit of measurement.

In this example, the 6-Axis Arm will print its current Z axis position in millimeters to the Print Console.

  when started :: hat events
  print ([arm v] position [z v] in [mm v]) ▶

6-Axis Arm End Effector Orientation#

The 6-Axis Arm End Effector Orientation block is used to report the current orientation of the 6-Axis Arm’s End Effector.

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

Choose which axis to report:

  • pitch - Rotation around the Y-axis.

  • roll - Rotation around the X-axis.

  • yaw - Rotation around the Z-axis.

The image shows a block that is designed to measure and output the orientation of a robotic arm. The block is set to determine the orientation along the pitch axis, with options to select between pitch, roll, and yaw. The selected orientation, in this case, pitch, will be measured in degrees and the output will be in the specified units. The dropdown menu allows users to choose between pitch, roll, and yaw to determine the specific axis of orientation they want to measure.

In this example, the 6-Axis Arm will print the End Effector’s current Y axis orientation in degrees to the Print Console.

  when started :: hat events
  print ([arm v] orientation [pitch v] in degrees) ▶