CTE 팔#

소개#

arm 클래스는 CTE 워크셀에서 사용되는 6축 암을 제어합니다. VEX V5 C++에서 6축 암은 엔드 이펙터를 3차원 공간의 위치로 이동시키고, 회전시키고, 이동 가능 여부를 확인하고, 자석 픽업 툴이나 펜 홀더 툴과 같은 부착된 툴을 제어할 수 있습니다.

6축 로봇 팔은 VEXcode V5에서 장치로 구성되어 있지 않습니다. VEX V5 C++ 프로젝트에서 사용하려면 6축 로봇 팔이 연결된 스마트 포트를 사용하여 코드에서 수동으로 arm 객체를 생성해야 합니다.

이 페이지의 예제에서는 Arm 이라는 이름의 수동으로 제작된 6축 암을 사용합니다.

건설업자#

arm#

arm 6축 암 객체를 생성합니다.

사용 가능한 기능

arm(int32_t index);

매개변수

유형

설명

index

int32_t

6축 암이 연결된 스마트 포트는 PORTx형식으로 표기되며, 여기서 x 포트 번호입니다. 예를 들어, PORT1.

예

// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);

오물 소각로#

~arm#

~arm arm 객체를 파괴하고 관련 리소스를 해제합니다.

사용 가능한 기능

~arm();

회원 기능#

arm 클래스는 다음과 같은 멤버 함수를 포함합니다.

동작 — 6축 암을 원하는 위치 또는 방향으로 이동합니다.

  • moveTo — 엔드 이펙터를 지정된 x, y, z 좌표로 이동합니다.

  • moveInc — 엔드 이펙터를 현재 위치에서 지정된 거리만큼 이동합니다.

  • moveEndEffectorTo — 엔드 이펙터를 지정된 요, 롤 및 피치 방향으로 회전시킵니다.

  • moveEndEffectorInc — 지정된 요, 롤 및 피치 양만큼 엔드 이펙터를 회전시킵니다.

변환기 — 이동, 도구 및 제어 설정을 구성합니다.

  • setSpeed — 6축 암에서 사용되는 이동 속도를 설정합니다.

  • setEndEffectorType — 6축 암에 부착된 엔드 이펙터의 유형을 설정합니다.

  • setEndEffectorMagnet — 자석 픽업 도구를 활성화 또는 비활성화합니다.

  • setPenOffset — 펜 홀더 도구와 함께 사용되는 z축 오프셋을 설정합니다.

  • setControlStop — 6축 암의 제어 정지를 활성화 또는 비활성화합니다.

  • setTimeout — 6축 암 이동 기능에 사용되는 타임아웃을 설정합니다.

게터 — 동작 상태, 위치, 방향 및 연결 값을 반환합니다.

  • isDone — 6축 암이 이동을 완료했는지 여부를 반환합니다.

  • isCrashed — 6축 암이 이동 중에 충돌했는지 여부를 반환합니다.

  • getX — 엔드 이펙터의 현재 x 위치를 반환합니다.

  • getY — 엔드 이펙터의 현재 y 위치를 반환합니다.

  • getZ — 엔드 이펙터의 현재 z 위치를 반환합니다.

  • getYaw — 엔드 이펙터의 현재 요(yaw)를 반환합니다.

  • getRoll — 엔드 이펙터의 현재 롤을 반환합니다.

  • getPitch — 엔드 이펙터의 현재 피치를 반환합니다.

  • canArmReachTo — 6축 암이 지정된 위치에 도달할 수 있는지 여부를 반환합니다.

  • canArmReachInc — 6축 암이 지정된 거리만큼 이동할 수 있는지 여부를 반환합니다.

  • canEndEffectorReachTo — 엔드 이펙터가 지정된 방향에 도달할 수 있는지 여부를 반환합니다.

  • canEndEffectorReachInc — 엔드 이펙터가 지정된 양만큼 회전할 수 있는지 여부를 반환합니다.

  • isConnected — 6축 암이 V5 브레인에 연결되어 있는지 여부를 반환합니다.

  • timestamp — 6축 암에서 마지막으로 수신된 상태 패킷의 타임스탬프를 반환합니다.

  • installed — 6축 암이 연결되었는지 여부를 반환합니다.

콜백 함수 — ARM 이벤트 발생 시 함수를 실행합니다.

  • controlStopped — 제어 정지가 활성화될 때 실행될 함수를 등록합니다.

  • crashed — 충돌이 감지될 때 실행될 함수를 등록합니다.

행위#

moveTo#

moveTo 6축 암을 지정된 x, y, z 좌표로 이동시킵니다.

x, y, z 좌표는 3차원 공간에서 엔드 이펙터의 위치를 ​​나타냅니다. 대상 위치가 6축 암의 도달 가능한 작업 공간 외부에 있을 수 있는 경우 이 함수 앞에 canArmReachTo를 사용하십시오.

사용 가능한 기능

bool moveTo(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

매개변수

유형

설명

x

double

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

y

double

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

z

double

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

waitForCompletion

bool

선택 사항입니다. true (기본값)은 동작이 완료될 때까지 기다린 후 다음 코드 줄로 넘어갑니다. false 동작을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

반환 값

불리언 값을 반환합니다.

  • true — 6축 로봇 팔이 목표 위치에 도달했습니다.

  • false — 6축 암이 목표 위치에 도달하지 않았거나 waitForCompletion false 로 설정되었습니다.

예시

// Move the 6-Axis Arm to (200, 0, 100)
Arm.moveTo(200, 0, 100);

// Start moving, then print the y-position while the arm moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

moveInc#

moveInc 6축 암을 현재 위치에서 x, y, z축을 따라 지정된 거리만큼 이동시킵니다.

이 함수를 사용하여 엔드 이펙터가 현재 있는 위치를 기준으로 이동합니다. 이동으로 인해 6축 암이 도달 가능한 작업 공간 외부에 위치할 수 있는 경우 이 함수 앞에 canArmReachInc를 사용합니다.

사용 가능한 기능

bool moveInc(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

매개변수

유형

설명

x

double

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

y

double

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

z

double

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

waitForCompletion

bool

선택 사항입니다. true (기본값)은 동작이 완료될 때까지 기다린 후 다음 코드 줄로 넘어갑니다. false 동작을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

반환 값

불리언 값을 반환합니다.

  • true — 6축 로봇 팔이 요청된 위치에 도달했습니다.

  • false — 6축 암이 요청된 위치에 도달하지 않았거나 waitForCompletion false 로 설정되었습니다.

예

// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);

moveEndEffectorTo#

moveEndEffectorTo 6축 암의 엔드 이펙터를 지정된 요, 롤 및 피치 방향으로 회전시킵니다.

방향은 엔드 이펙터의 회전 방향을 나타냅니다. yaw 은 z축을 중심으로 회전하고, roll x축을 중심으로 회전하며, pitch y축을 중심으로 회전합니다.

사용 가능한 기능

bool moveEndEffectorTo(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

매개변수

유형

설명

yaw

double

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

roll

double

선택 사항입니다. 목표 롤 각도(도). 기본값은 0 입니다.

pitch

double

선택 사항입니다. 목표 피치 각도(도). 기본값은 0 입니다.

waitForCompletion

bool

선택 사항입니다. true (기본값)은 동작이 완료될 때까지 기다린 후 다음 코드 줄로 넘어갑니다. false 동작을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

반환 값

불리언 값을 반환합니다.

  • true — 엔드 이펙터가 목표 방향에 도달했습니다.

  • false — 엔드 이펙터가 목표 방향에 도달하지 않았거나 waitForCompletion false 로 설정되었습니다.

예

// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);

moveEndEffectorInc#

moveEndEffectorInc 6축 암의 엔드 이펙터를 현재 방향에서 지정된 요, 롤 및 피치 값만큼 회전시킵니다.

이 기능을 사용하여 엔드 이펙터의 현재 요, 롤 또는 피치에 대해 회전할 수 있습니다.

사용 가능한 기능

bool moveEndEffectorInc(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

매개변수

유형

설명

yaw

double

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

roll

double

선택 사항입니다. 롤 변화량(도). 기본값은 0 입니다.

pitch

double

선택 사항입니다. 음높이 변화량(도). 기본값은 0 입니다.

waitForCompletion

bool

선택 사항입니다. true (기본값)은 동작이 완료될 때까지 기다린 후 다음 코드 줄로 넘어갑니다. false 동작을 시작하고 즉시 다음 코드 줄로 넘어갑니다.

반환 값

불리언 값을 반환합니다.

  • true — 엔드 이펙터가 요청된 방향에 도달했습니다.

  • false — 엔드 이펙터가 요청된 방향에 도달하지 않았거나 waitForCompletion false 로 설정되었습니다.

예

// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);

돌연변이체#

setSpeed#

setSpeed 6축 암에서 사용되는 이동 속도를 설정합니다.

사용 가능한 기능

void setSpeed(uint32_t speed);

매개변수

유형

설명

speed

uint32_t

6축 로봇 팔이 움직여야 하는 속도(밀리미터/초).

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);

setEndEffectorType#

setEndEffectorType 은 6축 암에 부착되는 엔드 이펙터의 유형을 설정합니다.

엔드 이펙터 유형이 변경되면 6축 암은 선택된 공구에 맞춰 Z축 오프셋을 자동으로 조정합니다.

사용 가능한 기능

bool setEndEffectorType(
  endEffectorType type,
  bool            waitForCompletion = true
);

매개변수

유형

설명

type

endEffectorType

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

waitForCompletion

bool

선택 사항입니다. true (기본값)은 변경이 완료될 때까지 기다린 후 계속합니다. false 변경을 시작하고 즉시 다음 코드 줄로 이동합니다.

반환 값

불리언 값을 반환합니다.

  • true — 요청된 유형이 설정되었습니다.

  • false — 요청된 유형이 설정되지 않았거나 waitForCompletion false 로 설정되었습니다.

예

// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);

setEndEffectorMagnet#

setEndEffectorMagnet 자석 픽업 도구를 활성화 또는 비활성화합니다.

사용 가능한 기능

void setEndEffectorMagnet(bool enabled);

매개변수

유형

설명

enabled

bool

true 자석이 물체를 집어 올려 고정할 수 있도록 합니다. false 자석이 고정된 물체를 떨어뜨립니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);

setPenOffset#

setPenOffset 펜 홀더 툴이 6축 암에 부착될 때 사용되는 z축 오프셋을 설정합니다.

이 기능을 사용하기 전에 엔드 이펙터 유형을 pen 로 설정하십시오. 펜 홀더 도구가 선택되지 않은 경우 이 기능은 작동하지 않습니다.

펜 오프셋은 펜 홀더 도구의 상단에서 화이트보드 마커 끝까지의 거리입니다. z 값이 양수이면 오프셋이 도구 장착 지점에서 위쪽으로 이동합니다.

사용 가능한 기능

void setPenOffset(double zOffset);

매개변수

유형

설명

zOffset

double

펜 오프셋 값(밀리미터).

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);

setControlStop#

setControlStop 6축 암의 제어 정지 기능을 활성화 또는 비활성화합니다.

제어 정지 기능이 활성화되면 6축 암은 즉시 움직임을 멈추고 추가적인 직선 또는 관절 움직임을 방지합니다.

사용 가능한 기능

void setControlStop(bool state = true);

매개변수

유형

설명

state

bool

선택 사항입니다. true (기본값) 제어 정지를 활성화하고 추가적인 선형 또는 관절 움직임을 방지합니다. false 제어 정지를 비활성화합니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();

setTimeout#

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

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

사용 가능한 기능

void setTimeout(
  int32_t   timeout,
  timeUnits units
);

매개변수

유형

설명

timeout

int32_t

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

units

timeUnits

시간 단위: sec 초 또는 msec 밀리초.

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);

게터스#

isDone#

isDone 6축 암의 이동이 완료되었는지 여부를 반환합니다.

이 함수는 이동 함수가 호출 waitForCompletion false 으로 설정된 경우에 유용합니다.

사용 가능한 기능

bool isDone();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

불리언 값을 반환합니다.

  • true — 6축 암의 이동이 완료되었습니다.

  • false — 6축 로봇 팔이 여전히 움직이고 있습니다.

예

// Display the 6-Axis Arm's y-position while it moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

isCrashed#

isCrashed 6축 암이 이동 중에 충돌했는지 여부를 반환합니다.

충돌이 감지되면 6축 암은 모터 움직임을 멈추고 마치 힘이 빠진 것처럼 보일 수 있습니다. 이는 부하를 줄이고 모터가 우발적인 손상을 입는 것을 방지하는 데 도움이 됩니다.

사용 가능한 기능

bool isCrashed();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

불리언 값을 반환합니다.

  • true — 6축 암이 고장났습니다.

  • false — 6축 암이 충돌하지 않았습니다.

예

// Quickly move to a new location
Arm.setSpeed(100);
Arm.moveTo(-40, 250, 40, false);

// While moving, check for a crash
while (true) {
  if (Arm.isCrashed()) {
    // Indicate a crash with the Brain screen
    Brain.Screen.print("Crash Detected");
    break;
  }

  wait(5, msec);
}

getX#

getX 엔드 이펙터의 현재 x 위치를 밀리미터 단위로 반환합니다.

이 함수를 사용하여 엔드 이펙터가 현재 x축을 따라 어디에 위치하는지 읽을 수 있습니다.

사용 가능한 기능

float getX();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

엔드 이펙터의 x 위치를 밀리미터 단위로 나타내는 float 사이의 부동 소수점 값을 반환합니다.

예

// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());

getY#

getY 엔드 이펙터의 현재 y 위치를 밀리미터 단위로 반환합니다.

이 함수를 사용하여 엔드 이펙터가 현재 y축을 따라 어디에 위치하는지 읽을 수 있습니다.

사용 가능한 기능

float getY();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

엔드 이펙터의 y 위치를 밀리미터 단위로 나타내는 float 의 부동 소수점 값을 반환합니다.

예

// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());

getZ#

getZ 엔드 이펙터의 현재 z 위치를 밀리미터 단위로 반환합니다.

이 함수를 사용하여 엔드 이펙터가 현재 z축을 따라 어디에 위치하는지 읽을 수 있습니다.

사용 가능한 기능

float getZ();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

엔드 이펙터의 z 위치를 밀리미터 단위로 나타내는 float 사이의 부동 소수점 값을 반환합니다.

예

// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());

getYaw#

getYaw 엔드 이펙터의 현재 요(yaw) 값을 도 단위로 반환합니다.

사용 가능한 기능

float getYaw();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

Returns a float representing the current yaw of the end effector in degrees.

예

// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());

getRoll#

getRoll 엔드 이펙터의 현재 롤 값을 도 단위로 반환합니다.

사용 가능한 기능

float getRoll();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

엔드 이펙터의 현재 롤 값을 도 단위로 나타내는 float 을 반환합니다.

예

// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());

getPitch#

getPitch 엔드 이펙터의 현재 피치를 도 단위로 반환합니다.

사용 가능한 기능

float getPitch();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

엔드 이펙터의 현재 피치를 도 단위로 나타내는 float 을 반환합니다.

예

// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());

canArmReachTo#

canArmReachTo 의 경우 6축 암이 엔드 이펙터를 지정된 x, y, z 좌표로 이동할 수 있는지 여부를 반환합니다.

moveTo를 사용하기 전에 이 함수를 사용하여 대상 위치를 확인합니다.

사용 가능한 기능

bool canArmReachTo(
  double x,
  double y,
  double z
);

매개변수

유형

설명

x

double

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

y

double

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

z

double

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

반환 값

불리언 값을 반환합니다.

  • true — 6축 로봇 팔은 요청된 위치에 도달할 수 있습니다.

  • false — 6축 로봇 팔이 요청된 위치에 도달할 수 없습니다.

예

// Move the 6-Axis Arm to (100, -20, 50) if it can reach
if (Arm.canArmReachTo(100, -20, 50)) {
  Arm.moveTo(100, -20, 50);
}

canArmReachInc#

canArmReachInc 은 6축 암이 현재 위치에서 지정된 x, y, z 거리만큼 엔드 이펙터를 이동할 수 있는지 여부를 반환합니다.

moveInc를 사용하기 전에 상대적 움직임을 확인하려면 이 함수를 사용하십시오.

사용 가능한 기능

bool canArmReachInc(
  double x,
  double y,
  double z
);

매개변수

유형

설명

x

double

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

y

double

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

z

double

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

반환 값

불리언 값을 반환합니다.

  • true — 6축 암은 요청된 움직임을 수행할 수 있습니다.

  • false — 6축 암이 요청된 움직임을 수행할 수 없습니다.

예

// Increment the 6-Axis Arm 100 mm along the x-axis if possible
if (Arm.canArmReachInc(100, 0, 0)) {
  Arm.moveInc(100, 0, 0);
}

canEndEffectorReachTo#

canEndEffectorReachTo 은 엔드 이펙터가 지정된 요, 롤 및 피치 방향으로 회전할 수 있는지 여부를 반환합니다.

moveEndEffectorTo를 사용하기 전에 대상 방향을 확인하려면 이 함수를 사용하십시오.

사용 가능한 기능

bool canEndEffectorReachTo(
  double yaw,
  double roll = 0,
  double pitch = 0
);

매개변수

유형

설명

yaw

double

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

roll

double

선택 사항입니다. 목표 롤 각도(도). 기본값은 0 입니다.

pitch

double

선택 사항입니다. 목표 피치 각도(도). 기본값은 0 입니다.

반환 값

불리언 값을 반환합니다.

  • true — 엔드 이펙터가 요청된 방향으로 도달할 수 있습니다.

  • false — 엔드 이펙터가 요청된 방향에 도달할 수 없습니다.

예

// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
  Arm.moveEndEffectorTo(0, 90, 0);
}

canEndEffectorReachInc#

canEndEffectorReachInc 은 엔드 이펙터가 현재 방향에서 지정된 요, 롤 및 피치 양만큼 회전할 수 있는지 여부를 반환합니다.

moveEndEffectorInc를 사용하기 전에 상대 방향 이동을 확인하려면 이 함수를 사용하십시오.

사용 가능한 기능

bool canEndEffectorReachInc(
  double yaw,
  double roll = 0,
  double pitch = 0
);

매개변수

유형

설명

yaw

double

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

roll

double

선택 사항입니다. 롤 변화량(도). 기본값은 0 입니다.

pitch

double

선택 사항입니다. 음높이 변화량(도). 기본값은 0 입니다.

반환 값

불리언 값을 반환합니다.

  • true — 엔드 이펙터가 요청된 회전을 수행할 수 있습니다.

  • false — 엔드 이펙터가 요청된 회전을 수행할 수 없습니다.

예

// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
  Arm.moveEndEffectorInc(0, 0, 10);
}

isConnected#

isConnected 6축 로봇 팔이 V5 브레인에 연결되어 있는지 여부를 반환합니다.

이것은 installed과 동일한 값을 반환하는 호환성 함수입니다.

사용 가능한 기능

bool isConnected();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

불리언 값을 반환합니다.

  • true — 6축 로봇 팔은 V5 브레인에 연결되어 있습니다.

  • false — 6축 로봇 팔은 V5 브레인에 연결되어 있지 않습니다.

예

// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());

timestamp#

timestamp 6축 암에서 마지막으로 수신된 상태 패킷의 타임스탬프를 반환합니다.

사용 가능한 기능

uint32_t timestamp();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

마지막 상태 패킷의 타임스탬프를 밀리초 단위의 uint32_t 으로 반환합니다.

installed#

installed 6축 암이 연결되었는지 여부를 반환합니다.

사용 가능한 기능

bool installed();

매개변수

이 함수는 매개변수를 받지 않습니다.

반환 값

불리언 값을 반환합니다.

  • true — 6축 암이 연결되었습니다.

  • false — 6축 암이 연결되지 않았습니다.

콜백#

controlStopped#

controlStopped 제어 정지가 활성화될 때 실행되는 함수를 등록합니다.

사용 가능한 기능

void controlStopped(void (* callback)(void));

매개변수

유형

설명

callback

void (*)(void)

제어 정지 기능이 활성화될 때 실행되는 함수입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Called when the 6-Axis Arm is control stopped
void onControlStopped() {
  Brain.Screen.print("Arm control stopped");
}

int main() {
  Arm.controlStopped(onControlStopped);
}

crashed#

crashed 축 로봇 팔이 이동 중에 충돌했을 때 실행되는 함수를 등록합니다.

충돌이 감지되면 6축 암은 모터 움직임을 멈추고 마치 힘이 빠진 것처럼 보일 수 있습니다. 이는 부하를 줄이고 모터가 우발적인 손상을 입는 것을 방지하는 데 도움이 됩니다.

사용 가능한 기능

void crashed(void (* callback)(void));

매개변수

유형

설명

callback

void (*)(void)

6축 로봇 팔이 이동 중에 충돌했을 때 실행되는 함수입니다.

반환 값

이 함수는 값을 반환하지 않습니다.

예

// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
  Brain.Screen.print("Crash detected");
}

int main() {
  Arm.crashed(onArmCrashed);
}