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

목표 위치의 x 좌표(밀리미터 단위).

y

목표 위치의 y 좌표(밀리미터 단위).

z

목표 위치의 z 좌표(밀리미터 단위).

wait

선택 사항입니다. wait=True (기본값)은 이동이 완료될 때까지 프로젝트가 대기한 후 다음 단계로 넘어갑니다. wait=False 이동을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

# 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

x축을 따라 이동할 거리(밀리미터).

y

y축을 따라 이동할 거리(밀리미터).

z

z축을 따라 이동할 거리(밀리미터).

wait

선택 사항입니다. wait=True (기본값)은 이동이 완료될 때까지 프로젝트가 대기한 후 다음 단계로 넘어갑니다. wait=False 이동을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

# 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)

매개변수

설명

yaw

목표물의 요각(도 단위).

roll

목표 롤 각도(도 단위).

pitch

목표 피치 각도(도 단위).

wait

선택 사항입니다. wait=True (기본값)은 이동이 완료될 때까지 프로젝트가 대기한 후 다음 단계로 넘어갑니다. wait=False 이동을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

# 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

요(yaw)의 변화량(도).

roll

롤의 변화량(도).

pitch

음높이의 변화(도 단위).

wait

선택 사항입니다. wait=True (기본값)은 이동이 완료될 때까지 프로젝트가 대기한 후 다음 단계로 넘어갑니다. wait=False 이동을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

# 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)

매개변수

설명

speed

6축 로봇 팔의 이동 속도는 1 에서 100 %까지입니다.

# 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)

매개변수

설명

type

6축 암에 부착된 도구: Arm.MAGNET (자석 픽업 도구) 또는 Arm.PEN (펜 홀더 도구).

# 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)

매개변수

설명

state

자석 집게 도구의 상태: True 물체를 집어 들고 고정) 또는 False 붙잡은 물체를 놓고 새로운 물체 집어 올리기를 중지).

# 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)

매개변수

설명

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)

매개변수

설명

state

선택 사항입니다. True (기본값)은 제어 정지를 활성화합니다. False 제어 정지를 활성화하지 않습니다.

# Stop the 6-Axis Arm and prevent further movement
arm.set_control_stop()

set_timeout#

set_timeout 6축 암을 움직일 때 사용되는 타임아웃 값을 설정합니다.

만약 동작이 타임아웃 시간 내에 완료되지 않으면 프로젝트는 다음 코드 줄로 넘어갑니다.

Usage:
arm.set_timeout(timeout, units)

매개변수

설명

timeout

새로운 타임아웃 값입니다.

units

선택 사항입니다. 시간 단위: MSEC (밀리초, 기본값), SECONDS또는 SEC.

# 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

목표 위치의 x 좌표(밀리미터 단위).

y

목표 위치의 y 좌표(밀리미터 단위).

z

목표 위치의 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

x축을 따라 이동할 거리(밀리미터).

y

y축을 따라 이동할 거리(밀리미터).

z

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)

매개변수

설명

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

요(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)

매개변수

설명

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()