6-осьова рука#
Вступ#
6-осьова роботизована рука VEX переміщує кінцевий ефектор у тривимірному просторі, контролює його орієнтацію та працює з підключеними інструментами, такими як інструмент магнітного захоплення або інструмент тримача ручки.
Нижче наведено список усіх доступних методів:
Дії — Переміщення 6-осьового маніпулятора в потрібні положення або орієнтації.
move_to— Переміщує кінцевий ефектор до заданої координати x, y та z.move_inc— Переміщує кінцевий ефектор на задану відстань від його поточного положення.move_end_effector_to— Повертає кінцевий ефектор до заданої орієнтації по риску, крену та тангажу.move_end_effector_inc— Повертає кінцевий ефектор на задану величину рисьблення, крену та тангажу.
Мутатори — налаштуйте рух, інструменти та параметри керування.
set_speed— Встановлює швидкість руху, що використовується 6-осьовим маніпулятором.set_end_effector_type— Встановлює тип кінцевого ефектора, прикріпленого до 6-осьового важеля.set_end_effector_magnet— Вмикає або відпускає інструмент магнітного захоплення.set_pen_offset— Встановлює зміщення осі z, яке використовується з інструментом «Тримач пера».set_control_stop— Вмикає зупинку керування для 6-осьового маніпулятора.set_timeout— Встановлює час очікування, що використовується методами руху 6-осьової руки.
Геттери — Повертають значення статусу руху, позиції, орієнтації та з’єднання.
is_done— Повертає, чи завершив рух 6-осьового маніпулятора.get_x— Повертає поточну позицію x кінцевого ефектора.get_y— Повертає поточну позицію кінцевого ефектора по осі Y.get_z— Повертає поточну позицію z кінцевого ефектора.get_pitch— Повертає поточний тон кінцевого ефектора.get_roll— Повертає поточний кидок кінцевого ефектора.get_yaw— Повертає поточне значення нишпорення кінцевого ефектора.can_arm_reach_to— Повертає, чи може 6-осьова рука досягти заданого положення.can_arm_reach_inc— Повертає, чи може 6-осьова рука рухатися на задану відстань.can_end_effector_reach_to— Повертає, чи може кінцевий ефектор досягти заданої орієнтації.can_end_effector_reach_inc— Повертає, чи може кінцевий ефектор обертатися на задану величину.get_timeout— Повертає поточне значення тайм-ауту, яке використовується методами переміщення.is_connected— Повертає, чи підключена 6-осьова рука до мозку.
Зворотні виклики — Запускають функції, коли відбуваються події arm.
control_stopped— Реєструє функцію для запуску, коли ввімкнено зупинку керування.
Конструктор — вручну створіть об’єкт 6-осьової руки.
Arm— Створює об’єкт «6-осьова рука».
Ця сторінка призначена для використання 6-осьового маніпулятора окремо з плиткою CTE. Щоб використовувати 6-осьовий маніпулятор з іншими компонентами робочої клітини CTE, такими як пневматика або конвеєри, підключіть 6-осьовий маніпулятор до EXP Brain та використовуйте відповідну сторінку EXP Arm.
Дії#
move_to#
move_to переміщує 6-осьовий маніпулятор до заданих координат x, y та z.
Координати x, y та z описують положення кінцевого ефектора у тривимірному просторі. Використовуйте can_arm_reach_to перед цим методом, якщо цільове положення може бути поза межами досяжного робочого простору 6-осьового маніпулятора.
Usage:
arm.move_to(x, y, z, wait)
Параметр |
Опис |
|---|---|
|
Координата x цільового положення в міліметрах. |
|
Y-координата цільового положення в міліметрах. |
|
Z-координата цільового положення в міліметрах. |
|
Необов’язково. |
# Move the 6-Axis Arm to (40, 140, 210)
arm.move_to(40, 140, 210)
# Start moving, then print the y-position while the arm moves
arm.move_to(-100, 200, 100, wait=False)
while not arm.is_done():
brain.print(arm.get_y())
brain.new_line()
wait(0.25, SECONDS)
move_inc#
move_inc переміщує 6-осьовий маніпулятор на задану відстань від його поточного положення вздовж осей x, y та z.
Використовуйте цей метод для переміщення відносно поточного місця розташування кінцевого ефектора. Використовуйте can_arm_reach_inc перед цим методом, якщо рух може розмістити 6-осьовий маніпулятор за межами його досяжної робочої області.
Usage:
arm.move_inc(x, y, z, wait)
Параметр |
Опис |
|---|---|
|
Відстань, на яку потрібно переміститися вздовж осі x, у міліметрах. |
|
Відстань, на яку потрібно переміститися вздовж осі Y, у міліметрах. |
|
Відстань, на яку потрібно переміститися вздовж осі z, у міліметрах. |
|
Необов’язково. |
# Move the 6-Axis Arm 100 millimeters along the y-axis
arm.move_inc(0, 100, 0)
move_end_effector_to#
move_end_effector_to повертає кінцевий ефектор 6-осьового важеля до заданої орієнтації по риску, крену та тангажу.
Орієнтація описує, як обертається кінцевий ефектор. yaw обертається навколо осі z, roll обертається навколо осі x, а pitch обертається навколо осі y.
Usage:
arm.move_end_effector_to(yaw, roll, pitch, wait)
Параметр |
Опис |
|---|---|
|
Кут рискування цілі, у градусах. |
|
Кут крену цілі, у градусах. |
|
Кут тангажу цілі, у градусах. |
|
Необов’язково. |
# Rotate the end effector to 90 degrees of roll
arm.move_end_effector_to(0, 90, 0)
move_end_effector_inc#
move_end_effector_inc повертає кінцевий ефектор 6-осьового маніпулятора на задану величину рисьблення, крен та тангажу відносно його поточної орієнтації.
Використовуйте цей метод для обертання відносно поточного кута рисьблення, крену або тангажу кінцевого ефектора.
Usage:
arm.move_end_effector_inc(yaw, roll, pitch, wait)
Параметр |
Опис |
|---|---|
|
Зміна кута рисьхання, у градусах. |
|
Зміна крену, у градусах. |
|
Зміна висоти тону, у градусах. |
|
Необов’язково. |
# Rotate the end effector -50 degrees in pitch
arm.move_end_effector_inc(0, 0, -50)
Мутатори#
set_speed#
set_speed встановлює швидкість руху, що використовується 6-осьовим маніпулятором для методів руху.
Швидкість 6-осьової руки встановлюється на 50% на початку проекту.
Usage:
arm.set_speed(speed)
Параметр |
Опис |
|---|---|
|
Швидкість руху 6-осьової руки від |
# Set the 6-Axis Arm speed to 30%
arm.set_speed(30)
set_end_effector_type#
set_end_effector_type встановлює тип кінцевого ефектора, прикріпленого до 6-осьового важеля.
Коли тип кінцевого ефектора змінюється, 6-осьовий маніпулятор автоматично налаштовує своє зміщення по осі z відповідно до вибраного інструменту. На початку проекту тип кінцевого ефектора встановлюється на Arm.MAGNET.
Usage:
arm.set_end_effector_type(type)
Параметр |
Опис |
|---|---|
|
Інструмент, прикріплений до 6-осьового маніпулятора: |
# Set the end effector type to the Pen Holder Tool
arm.set_end_effector_type(Arm.PEN)
set_end_effector_magnet#
set_end_effector_magnet вмикає або відпускає інструмент магнітного захоплення.
Стан магніту залишається активним, доки інший метод set_end_effector_magnet не змінить його. Стан магніту скидається до False на початку проєкту.
Usage:
arm.set_end_effector_magnet(state)
Параметр |
Опис |
|---|---|
|
Стан інструмента магнітного підбирання: |
# Pick up objects and then drop them
arm.set_end_effector_type(Arm.MAGNET)
arm.set_end_effector_magnet(True)
wait(2, SECONDS)
arm.set_end_effector_magnet(False)
set_pen_offset#
set_pen_offset встановлює зміщення по осі z, яке використовується, коли інструмент «Тримач пера» прикріплений до 6-осьового важеля.
Перед використанням цього методу встановіть тип кінцевого ефектора на Arm.PEN Якщо інструмент «Тримач пера» не вибрано, цей метод не матиме ефекту.
Зсув пера – це відстань від верхньої частини інструмента «Тримач пера» до кінчика маркера сухого стирання. На початку проєкту зсув пера встановлюється на 0Зсув пера 0 розміщує початок координат осі z кронштейна в точці, де інструмент «Тримач пера» з’єднується з 6-осьовим кронштейном.
Usage:
arm.set_pen_offset(zOffset)
Параметр |
Опис |
|---|---|
|
Значення зміщення пера в міліметрах. |
# Set the end effector type to the Pen Holder Tool and set the pen offset
arm.set_end_effector_type(Arm.PEN)
arm.set_pen_offset(25)
set_control_stop#
set_control_stop вмикає зупинку керування для 6-осьового маніпулятора.
Коли ввімкнено зупинку керування, 6-осьова рука негайно зупиняє будь-який рух і не виконуватиме жодних подальших методів переміщення руки, доки проєкт не буде перезапущено.
Usage:
arm.set_control_stop(state)
Параметр |
Опис |
|---|---|
|
Необов’язково. |
# Stop the 6-Axis Arm and prevent further movement
arm.set_control_stop()
set_timeout#
set_timeout встановлює значення тайм-ауту, яке використовується під час переміщення 6-осьового маніпулятора.
Якщо рух не завершується до досягнення тайм-ауту, проєкт продовжується до наступного рядка коду.
Usage:
arm.set_timeout(timeout, units)
Параметр |
Опис |
|---|---|
|
Нове значення часу очікування. |
|
Необов’язково. Одиниця вимірювання часу: |
# Set the 6-Axis Arm timeout to 2 seconds
arm.set_timeout(2, SECONDS)
Геттери#
is_done#
is_done повертає, чи завершив рух 6-осьового маніпулятора.
Цей метод корисний після виклику методу переміщення з wait=False.
True— Рух 6-осьового маніпулятора завершено.False— 6-осьовий маніпулятор все ще рухається.
Usage:
arm.is_done()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Display the 6-Axis Arm's y-position while it moves
arm.move_to(-100, 200, 100, wait=False)
while not arm.is_done():
brain.print(arm.get_y())
brain.new_line()
wait(0.25, SECONDS)
get_x#
get_x повертає поточну позицію кінцевого ефектора по осі x у міліметрах.
Використовуйте цей метод, щоб зчитати, де на даний момент знаходиться кінцевий ефектор вздовж осі x.
Usage:
arm.get_x()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current x position of the 6-Axis Arm
brain.print(arm.get_x())
get_y#
get_y повертає поточне положення кінцевого ефектора по осі Y у міліметрах.
Використовуйте цей метод, щоб зчитати, де наразі знаходиться кінцевий ефектор вздовж осі Y.
Usage:
arm.get_y()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current y position of the 6-Axis Arm
brain.print(arm.get_y())
get_z#
get_z повертає поточну позицію z кінцевого ефектора в міліметрах.
Використовуйте цей метод, щоб зчитати, де наразі знаходиться кінцевий ефектор вздовж осі z.
Usage:
arm.get_z()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current z position of the 6-Axis Arm
brain.print(arm.get_z())
get_pitch#
get_pitch повертає поточний крок нахилу кінцевого ефектора в градусах.
Usage:
arm.get_pitch()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current pitch of the end effector
brain.print(arm.get_pitch())
get_roll#
get_roll повертає поточний кут кренування кінцевого ефектора в градусах.
Usage:
arm.get_roll()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current roll of the end effector
brain.print(arm.get_roll())
get_yaw#
get_yaw повертає поточне значення кута риски кінцевого ефектора в градусах.
Usage:
arm.get_yaw()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current yaw of the end effector
brain.print(arm.get_yaw())
can_arm_reach_to#
can_arm_reach_to повертає, чи може 6-осьовий маніпулятор перемістити кінцевий ефектор до заданих координат x, y та z.
Використовуйте цей метод для перевірки цільової позиції перед використанням move_to.
True— 6-осьова ручка може досягти потрібного положення.False— 6-осьова ручка не може досягти потрібного положення.
Usage:
arm.can_arm_reach_to(x, y, z)
Параметр |
Опис |
|---|---|
|
Координата x цільового положення в міліметрах. |
|
Y-координата цільового положення в міліметрах. |
|
Z-координата цільового положення в міліметрах. |
# Move the 6-Axis Arm to (100, -20, 50) if it can reach
if arm.can_arm_reach_to(100, -20, 50):
arm.move_to(100, -20, 50)
can_arm_reach_inc#
can_arm_reach_inc повертає, чи може 6-осьовий маніпулятор перемістити кінцевий ефектор на задану відстань x, y та z від його поточного положення.
Використовуйте цей метод для перевірки відносного руху перед використанням move_inc.
True— 6-осьовий маніпулятор може виконати запитуваний рух.False— 6-осьовий маніпулятор не може виконати запитуваний рух.
Usage:
arm.can_arm_reach_inc(x, y, z)
Параметр |
Опис |
|---|---|
|
Відстань, на яку потрібно переміститися вздовж осі x, у міліметрах. |
|
Відстань, на яку потрібно переміститися вздовж осі Y, у міліметрах. |
|
Відстань, на яку потрібно переміститися вздовж осі z, у міліметрах. |
# Increment the 6-Axis Arm 100 mm along the x-axis if possible
if arm.can_arm_reach_inc(100, 0, 0):
arm.move_inc(100, 0, 0)
can_end_effector_reach_to#
can_end_effector_reach_to повертає, чи може кінцевий ефектор обертатися до заданої орієнтації по риску, крену та тангажу.
Використовуйте цей метод для перевірки орієнтації цілі перед використанням move_end_effector_to.
True— Кінцевий ефектор може досягти потрібної орієнтації.False— Кінцевий ефектор не може досягти потрібної орієнтації.
Usage:
arm.can_end_effector_reach_to(yaw, roll, pitch)
Параметр |
Опис |
|---|---|
|
Кут рискування цілі, у градусах. |
|
Кут крену цілі, у градусах. |
|
Кут тангажу цілі, у градусах. |
# Rotate the end effector to 90 degrees of roll if possible
if arm.can_end_effector_reach_to(0, 90, 0):
arm.move_end_effector_to(0, 90, 0)
can_end_effector_reach_inc#
can_end_effector_reach_inc повертає, чи може кінцевий ефектор обертатися на задану величину рисьбування, крену та тангажу відносно своєї поточної орієнтації.
Використовуйте цей метод для перевірки руху відносної орієнтації перед використанням move_end_effector_inc.
True— Кінцевий ефектор може виконати запитуване обертання.False— Кінцевий ефектор не може виконати запитуване обертання.
Usage:
arm.can_end_effector_reach_inc(yaw, roll, pitch)
Параметр |
Опис |
|---|---|
|
Зміна кута рисьхання, у градусах. |
|
Зміна крену, у градусах. |
|
Зміна висоти тону, у градусах. |
# Increment the end effector by 10 degrees of pitch if possible
if arm.can_end_effector_reach_inc(0, 0, 10):
arm.move_end_effector_inc(0, 0, 10)
get_timeout#
get_timeout повертає значення тайм-ауту, яке використовується методами руху 6-осьової руки в мілісекундах.
Usage:
arm.get_timeout()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print the current movement timeout in milliseconds
brain.print(arm.get_timeout())
is_connected#
is_connected повертає, чи підключена 6-осьова рука до мозку.
True— 6-осьова рука з’єднана з мозком.False— 6-осьова рука не пов’язана з мозком.
Usage:
arm.is_connected()
Параметри |
Опис |
|---|---|
Цей метод не має параметрів. |
# Print whether the 6-Axis Arm is connected
brain.print(arm.is_connected())
Зворотні виклики#
control_stopped#
control_stopped реєструє функцію, яка виконується, коли ввімкнено зупинку керування.
Цей метод повертає екземпляр класу Event.
Usage:
arm.control_stopped(callback, arg)
Параметр |
Опис |
|---|---|
|
Раніше визначена функція, яка виконується, коли ввімкнено зупинку керування. |
|
Необов’язково. Кортеж, що містить аргументи для передачі функції зворотного виклику. Див. Використання функцій з параметрами для отримання додаткової інформації. |
# Define a function to run when control stop is enabled
def when_control_stopped():
brain.print("The arm has been control stopped")
# Run when_control_stopped when the 6-Axis Arm is control stopped
arm.control_stopped(when_control_stopped)
Конструктори#
Arm#
Arm створює об’єкт Arm з 6 осями.
Usage:
Arm()
Параметри |
Опис |
|---|---|
Цей конструктор не має параметрів. |
# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()