6축 암#
소개#
VEX 6축 로봇 팔은 엔드 이펙터를 3차원 공간에서 이동시키고, 엔드 이펙터의 방향을 제어하며, 자석 픽업 도구나 펜 홀더 도구와 같은 부착된 도구와 함께 작동합니다.
아래는 사용 가능한 모든 방법의 목록입니다.
동작 — 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— 엔드 이펙터의 현재 요(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축 Arm 객체를 생성합니다.
이 페이지는 CTE 타일과 함께 6축 암을 단독으로 사용하는 데 사용됩니다. 공압 장치나 컨베이어와 같은 다른 CTE 워크셀 구성 요소와 함께 6축 암을 사용하려면 6축 암을 EXP 브레인에 연결하고 해당 EXP 암 페이지를 사용하십시오.
행위#
move_to#
move_to 은 6축 암을 지정된 x, y, z 좌표로 이동시킵니다.
x, y, z 좌표는 3차원 공간에서 엔드 이펙터의 위치를 설명합니다. 대상 위치가 6축 암의 도달 가능한 작업 공간 외부에 있을 수 있는 경우 이 메서드 전에 can_arm_reach_to를 사용하십시오.
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축을 따라 지정된 거리만큼 이동시킵니다.
이 방법을 사용하여 엔드 이펙터가 현재 있는 위치를 기준으로 이동합니다. 이동으로 인해 6축 암이 도달 가능한 작업 공간 외부에 위치할 수 있는 경우 이 방법 전에 can_arm_reach_inc를 사용합니다.
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)
매개변수 |
설명 |
|---|---|
|
요(yaw)의 변화량(도). |
|
롤의 변화량(도). |
|
음높이의 변화(도 단위). |
|
선택 사항입니다. |
# 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 펜 홀더 툴이 6축 암에 부착될 때 사용되는 z축 오프셋을 설정합니다.
이 방법을 사용하기 전에 엔드 이펙터 유형을 Arm.PEN 로 설정하십시오. 펜 홀더 도구가 선택되지 않은 경우 이 방법은 효과가 없습니다.
펜 오프셋은 펜 홀더 도구의 상단에서 화이트보드 마커 끝까지의 거리입니다. 프로젝트 시작 시 펜 오프셋은 0로 설정됩니다. 펜 오프셋을 0 으로 설정하면 펜 홀더 도구가 6축 암에 연결되는 지점에 암의 z축 원점이 위치하게 됩니다.
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 엔드 이펙터의 현재 요(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)
매개변수 |
설명 |
|---|---|
|
요(yaw)의 변화량(도). |
|
롤의 변화량(도). |
|
음높이의 변화(도 단위). |
# 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 6축 암 객체를 생성합니다.
Usage:
Arm()
매개변수 |
설명 |
|---|---|
이 생성자에는 매개변수가 없습니다. |
# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()