CTE Arm#

Giới thiệu#

Lớp arm cung cấp khả năng điều khiển cho Cánh tay 6 trục được sử dụng trong Ô làm việc CTE. Trong VEX EXP C++, Cánh tay 6 trục có thể di chuyển đầu cuối đến các vị trí trong không gian ba chiều, xoay đầu cuối, kiểm tra xem các chuyển động có khả thi hay không và điều khiển các công cụ được gắn kèm như Công cụ gắp nam châm hoặc Công cụ giữ bút.

Các ví dụ trên trang này sử dụng một cánh tay robot 6 trục đã được cấu hình có tên là Arm.

Các hàm tạo#

arm#

Lệnh arm tạo ra một đối tượng Cánh tay 6 trục.

Chức năng khả dụng

arm(int32_t index);

Tham số

Kiểu

Sự miêu tả

index

int32_t

Cổng thông minh mà tay cần 6 trục được kết nối, được viết dưới dạng PORTx, trong đó x là số cổng. Ví dụ: PORT1.

Ví dụ

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

Kẻ hủy diệt#

~arm#

~arm phá hủy đối tượng arm và giải phóng các tài nguyên liên quan.

Chức năng khả dụng

~arm();

Chức năng thành viên#

Lớp arm bao gồm các hàm thành viên sau:

Thao tác — Di chuyển cánh tay 6 trục đến các vị trí hoặc hướng mong muốn.

  • moveTo — Di chuyển đầu cuối đến tọa độ x, y và z được chỉ định.

  • moveInc — Di chuyển bộ phận cuối cùng một khoảng cách xác định từ vị trí hiện tại của nó.

  • moveEndEffectorTo — Xoay bộ phận cuối đến hướng yaw, roll và pitch được chỉ định.

  • moveEndEffectorInc — Xoay bộ phận cuối cùng theo một lượng yaw, roll và pitch được chỉ định.

Bộ điều chỉnh — Cấu hình chuyển động, công cụ và thiết lập điều khiển.

  • setSpeed — Đặt tốc độ di chuyển được sử dụng bởi Cánh tay 6 trục.

  • setEndEffectorType — Đặt loại đầu cuối gắn vào Cánh tay 6 trục.

  • setEndEffectorMagnet — Bật hoặc tắt Công cụ Nhặt Nam châm.

  • setPenOffset — Đặt độ lệch trục z được sử dụng với Công cụ Giữ Bút.

  • setControlStop — Bật hoặc tắt chức năng dừng điều khiển cho Cánh tay 6 trục.

  • setTimeout — Đặt thời gian chờ được sử dụng bởi các chức năng chuyển động của Cánh tay 6 trục.

Các phương thức getter — Trả về trạng thái chuyển động, vị trí, hướng và giá trị kết nối.

  • isDone — Trả về trạng thái liệu Cánh tay 6 trục đã hoàn thành chuyển động hay chưa.

  • isCrashed — Trả về liệu Cánh tay 6 trục có bị va chạm trong khi di chuyển hay không.

  • getX — Trả về vị trí x hiện tại của bộ phận cuối.

  • getY — Trả về vị trí y hiện tại của bộ phận cuối.

  • getZ — Trả về vị trí z hiện tại của bộ phận cuối.

  • getYaw — Trả về góc yaw hiện tại của bộ phận cuối.

  • getRoll — Trả về cuộn hiện tại của bộ phận cuối.

  • getPitch — Trả về cao độ hiện tại của bộ phận cuối.

  • canArmReachTo — Trả về liệu Cánh tay 6 trục có thể đạt tới vị trí được chỉ định hay không.

  • canArmReachInc — Trả về liệu Cánh tay 6 trục có thể di chuyển một khoảng cách được chỉ định hay không.

  • canEndEffectorReachTo — Trả về liệu bộ phận cuối có thể đạt tới hướng được chỉ định hay không.

  • canEndEffectorReachInc — Trả về liệu bộ phận cuối có thể xoay một lượng nhất định hay không.

  • isConnected — Trả về liệu Cánh tay 6 trục có được kết nối với Bộ não EXP hay không.

  • timestamp — Trả về dấu thời gian của gói trạng thái cuối cùng được nhận từ Cánh tay 6 trục.

  • installed — Trả về trạng thái kết nối của Cánh tay 6 trục.

Hàm gọi lại — Thực thi các hàm khi các sự kiện kích hoạt xảy ra.

  • controlStopped — Đăng ký một hàm để chạy khi dừng điều khiển được bật.

  • crashed — Đăng ký một hàm để chạy khi phát hiện lỗi.

Hành động#

moveTo#

Lệnh moveTo di chuyển Cánh tay 6 trục đến tọa độ x, y và z được chỉ định.

Tọa độ x, y và z mô tả vị trí của bộ phận cuối trong không gian ba chiều. Sử dụng canArmReachTo trước hàm này nếu vị trí mục tiêu có thể nằm ngoài không gian làm việc có thể tiếp cận của Cánh tay 6 trục.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

x

double

Tọa độ x của vị trí mục tiêu tính bằng milimét.

y

double

Tọa độ y của vị trí mục tiêu tính bằng milimét.

z

double

Tọa độ z của vị trí mục tiêu tính bằng milimét.

waitForCompletion

bool

Tùy chọn. true (mặc định) chờ cho đến khi quá trình di chuyển hoàn tất trước khi tiếp tục. false bắt đầu quá trình di chuyển và ngay lập tức tiếp tục đến dòng mã tiếp theo.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay robot 6 trục đã đạt đến vị trí mục tiêu.

  • false — Cánh tay 6 trục không đạt đến vị trí mục tiêu, hoặc waitForCompletion được đặt thành false.

Ví dụ

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

Lệnh moveInc di chuyển cánh tay robot 6 trục một khoảng cách xác định so với vị trí hiện tại dọc theo các trục x, y và z.

Sử dụng chức năng này để di chuyển tương đối so với vị trí hiện tại của bộ phận cuối. Sử dụng canArmReachInc trước chức năng này nếu chuyển động có thể đặt Cánh tay 6 trục ra ngoài không gian làm việc có thể tiếp cận của nó.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

x

double

Khoảng cách di chuyển dọc theo trục x tính bằng milimét.

y

double

Khoảng cách di chuyển dọc theo trục y tính bằng milimét.

z

double

Khoảng cách di chuyển dọc theo trục z tính bằng milimét.

waitForCompletion

bool

Tùy chọn. true (mặc định) chờ cho đến khi quá trình di chuyển hoàn tất trước khi tiếp tục. false bắt đầu quá trình di chuyển và ngay lập tức tiếp tục đến dòng mã tiếp theo.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay robot 6 trục đã đạt đến vị trí yêu cầu.

  • false — Cánh tay robot 6 trục không đạt đến vị trí yêu cầu, hoặc waitForCompletion được đặt thành false.

Ví dụ

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

moveEndEffectorTo#

Lệnh moveEndEffectorTo xoay đầu cuối của cánh tay robot 6 trục đến hướng yaw, roll và pitch được chỉ định.

Hướng xoay mô tả cách đầu cuối của thiết bị được xoay. yaw xoay quanh trục z, roll xoay quanh trục x, và pitch xoay quanh trục y.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

yaw

double

Góc lệch hướng mục tiêu tính bằng độ.

roll

double

Tùy chọn. Góc nghiêng mục tiêu tính bằng độ. Giá trị mặc định là 0.

pitch

double

Tùy chọn. Góc nghiêng mục tiêu tính bằng độ. Giá trị mặc định là 0.

waitForCompletion

bool

Tùy chọn. true (mặc định) chờ cho đến khi quá trình di chuyển hoàn tất trước khi tiếp tục. false bắt đầu quá trình di chuyển và ngay lập tức tiếp tục đến dòng mã tiếp theo.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Đầu cuối của thiết bị đã đạt đến hướng mục tiêu.

  • false — Đầu cuối của bộ phận tác động không đạt được hướng mục tiêu, hoặc waitForCompletion được đặt thành false.

Ví dụ

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

moveEndEffectorInc#

moveEndEffectorInc xoay đầu cuối của Cánh tay 6 trục một lượng yaw, roll và pitch được chỉ định so với hướng hiện tại của nó.

Sử dụng chức năng này để xoay tương đối so với hướng xoay ngang, xoay dọc hoặc xoay nghiêng hiện tại của đầu cuối robot.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

yaw

double

Sự thay đổi góc lệch hướng, tính bằng độ.

roll

double

Tùy chọn. Độ thay đổi góc nghiêng, tính bằng độ. Giá trị mặc định là 0.

pitch

double

Tùy chọn. Độ thay đổi cao độ, tính bằng độ. Giá trị mặc định là 0.

waitForCompletion

bool

Tùy chọn. true (mặc định) chờ cho đến khi quá trình di chuyển hoàn tất trước khi tiếp tục. false bắt đầu quá trình di chuyển và ngay lập tức tiếp tục đến dòng mã tiếp theo.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Đầu cuối của thiết bị đã đạt đến hướng mong muốn.

  • false — Đầu cuối của bộ phận tác động không đạt được hướng mong muốn, hoặc waitForCompletion được đặt thành false.

Ví dụ

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

Biến đổi#

setSpeed#

setSpeed thiết lập tốc độ di chuyển được sử dụng bởi Cánh tay 6 trục.

Chức năng khả dụng

void setSpeed(uint32_t speed);

Tham số

Kiểu

Sự miêu tả

speed

uint32_t

Tốc độ mà cánh tay robot 6 trục cần di chuyển, tính bằng milimét mỗi giây.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

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

setEndEffectorType#

setEndEffectorType thiết lập loại đầu cuối gắn vào Cánh tay 6 trục.

Khi loại đầu kẹp được thay đổi, tay máy 6 trục sẽ tự động điều chỉnh độ lệch trục Z để phù hợp với công cụ đã chọn.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

type

endEffectorType

Công cụ được gắn vào Cánh tay 6 trục: nam châm magnet (Công cụ gắp nam châm) hoặc bút pen (Công cụ giữ bút).

waitForCompletion

bool

Tùy chọn. true (mặc định) chờ cho đến khi thay đổi hoàn tất trước khi tiếp tục. false bắt đầu thay đổi và ngay lập tức tiếp tục đến dòng mã tiếp theo.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Loại được yêu cầu đã được thiết lập.

  • false — Loại được yêu cầu chưa được thiết lập, hoặc waitForCompletion được đặt thành false.

Ví dụ

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

setEndEffectorMagnet#

setEndEffectorMagnet bật hoặc tắt Công cụ Nhặt Nam châm.

Chức năng khả dụng

void setEndEffectorMagnet(bool enabled);

Tham số

Kiểu

Sự miêu tả

enabled

bool

true cho phép nam châm nhặt và giữ vật thể. false vô hiệu hóa nam châm và thả bất kỳ vật thể nào đang được giữ.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

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

setPenOffset#

setPenOffset thiết lập độ lệch trục z được sử dụng khi Công cụ Giữ Bút được gắn vào Cánh tay 6 Trục.

Hãy đặt loại đầu cuối của bút thành pen trước khi sử dụng chức năng này. Nếu công cụ Pen Holder Tool không được chọn, chức năng này sẽ không có tác dụng.

Khoảng cách lệch của bút là khoảng cách từ đỉnh của dụng cụ giữ bút đến đầu bút xóa bảng. Giá trị z dương sẽ làm dịch chuyển khoảng cách lệch lên trên so với điểm gắn dụng cụ.

Chức năng khả dụng

void setPenOffset(double zOffset);

Tham số

Kiểu

Sự miêu tả

zOffset

double

Giá trị độ lệch của bút tính bằng milimét.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

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

setControlStop#

setControlStop cho phép hoặc vô hiệu hóa chức năng dừng điều khiển cho Cánh tay 6 trục.

Khi chức năng dừng điều khiển được kích hoạt, cánh tay robot 6 trục sẽ ngay lập tức dừng chuyển động và ngăn chặn các chuyển động tuyến tính hoặc chuyển động khớp tiếp theo.

Chức năng khả dụng

void setControlStop(bool state = true);

Tham số

Kiểu

Sự miêu tả

state

bool

Tùy chọn. true (mặc định) cho phép dừng điều khiển và ngăn chặn các chuyển động tuyến tính hoặc khớp tiếp theo. false vô hiệu hóa dừng điều khiển.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

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

setTimeout#

setTimeout thiết lập giá trị thời gian chờ được sử dụng khi di chuyển Cánh tay 6 trục.

Nếu một thao tác không hoàn thành trước khi hết thời gian chờ, dự án sẽ tiếp tục thực hiện dòng mã tiếp theo.

Chức năng khả dụng

void setTimeout(
  int32_t   timeout,
  timeUnits units
);

Tham số

Kiểu

Sự miêu tả

timeout

int32_t

Giá trị thời gian chờ mới.

units

timeUnits

Đơn vị thời gian: sec (sec) hoặc msec (msec).

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

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

Người nhận#

isDone#

isDone trả về trạng thái cho biết cánh tay robot 6 trục đã chuyển động xong hay chưa.

Chức năng này hữu ích sau khi một chức năng di chuyển được gọi với waitForCompletion được đặt thành false.

Chức năng khả dụng

bool isDone();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay 6 trục đã hoàn thành chuyển động.

  • false — Cánh tay robot 6 trục vẫn đang di chuyển.

Ví dụ

// 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 trả về giá trị cho biết liệu cánh tay robot 6 trục có bị va chạm trong quá trình di chuyển hay không.

Khi phát hiện va chạm, cánh tay robot 6 trục sẽ ngừng chuyển động của động cơ và có thể trông như bị chùng xuống. Điều này giúp giảm tải trọng và bảo vệ động cơ khỏi hư hỏng do va chạm bất ngờ.

Chức năng khả dụng

bool isCrashed();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay robot 6 trục đã bị lỗi.

  • false — Cánh tay robot 6 trục không bị lỗi.

Ví dụ

// 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 Signal Tower and Brain screen
    Brain.Screen.print("Crash Detected");
    SignalTower6.setColor(signaltower::green, signaltower::off);
    SignalTower6.setColor(signaltower::red, signaltower::on);
    break;
  }

  wait(5, msec);
}

getX#

getX trả về vị trí x hiện tại của đầu cuối cơ cấu trong milimét.

Sử dụng hàm này để đọc vị trí hiện tại của đầu cuối robot dọc theo trục x.

Chức năng khả dụng

float getX();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị float float vị trí x của đầu cuối bộ phận thao tác tính bằng milimét.

Ví dụ

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

getY#

getY trả về vị trí y hiện tại của đầu cuối bộ phận thao tác tính bằng milimét.

Sử dụng hàm này để đọc vị trí hiện tại của đầu cuối thiết bị dọc theo trục y.

Chức năng khả dụng

float getY();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về một giá trị float float vị trí y của đầu cuối bộ phận thao tác tính bằng milimét.

Ví dụ

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

getZ#

getZ trả về vị trí z hiện tại của đầu cuối bộ phận thao tác tính bằng milimét.

Sử dụng chức năng này để đọc vị trí hiện tại của đầu cuối bộ phận chấp hành dọc theo trục z.

Chức năng khả dụng

float getZ();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị float float vị trí z của đầu cuối bộ phận thao tác tính bằng milimét.

Ví dụ

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

getYaw#

getYaw trả về góc yaw hiện tại của đầu cuối cánh tay robot tính bằng độ.

Chức năng khả dụng

float getYaw();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về một giá trị float float góc yaw hiện tại của đầu cuối cánh tay robot tính bằng độ.

Ví dụ

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

getRoll#

getRoll trả về góc quay hiện tại của đầu cuối cánh tay robot tính bằng độ.

Chức năng khả dụng

float getRoll();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về một giá trị float float góc quay hiện tại của đầu cuối bộ phận thao tác tính bằng độ.

Ví dụ

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

getPitch#

getPitch trả về góc nghiêng hiện tại của đầu cuối bộ phận tác động tính bằng độ.

Chức năng khả dụng

float getPitch();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị float float góc nghiêng hiện tại của đầu cuối bộ phận tác động tính bằng độ.

Ví dụ

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

canArmReachTo#

canArmReachTo trả về giá trị cho biết liệu cánh tay robot 6 trục có thể di chuyển đầu cuối đến tọa độ x, y và z được chỉ định hay không.

Sử dụng chức năng này để kiểm tra vị trí mục tiêu trước khi sử dụng moveTo.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

x

double

Tọa độ x của vị trí mục tiêu tính bằng milimét.

y

double

Tọa độ y của vị trí mục tiêu tính bằng milimét.

z

double

Tọa độ z của vị trí mục tiêu tính bằng milimét.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay robot 6 trục có thể đạt đến vị trí yêu cầu.

  • false — Cánh tay robot 6 trục không thể đạt đến vị trí yêu cầu.

Ví dụ

// 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 trả về giá trị cho biết liệu cánh tay robot 6 trục có thể di chuyển đầu cuối của thiết bị theo khoảng cách x, y và z được chỉ định so với vị trí hiện tại của nó hay không.

Sử dụng chức năng này để kiểm tra chuyển động tương đối trước khi sử dụng moveInc.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

x

double

Khoảng cách di chuyển dọc theo trục x tính bằng milimét.

y

double

Khoảng cách di chuyển dọc theo trục y tính bằng milimét.

z

double

Khoảng cách di chuyển dọc theo trục z tính bằng milimét.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay robot 6 trục có thể thực hiện chuyển động được yêu cầu.

  • false — Cánh tay robot 6 trục không thể thực hiện chuyển động được yêu cầu.

Ví dụ

// 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 trả về giá trị cho biết liệu đầu cuối của bộ phận tác động có thể xoay theo hướng yaw, roll và pitch đã chỉ định hay không.

Sử dụng chức năng này để kiểm tra hướng mục tiêu trước khi sử dụng moveEndEffectorTo.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

yaw

double

Góc lệch hướng mục tiêu tính bằng độ.

roll

double

Tùy chọn. Góc nghiêng mục tiêu tính bằng độ. Giá trị mặc định là 0.

pitch

double

Tùy chọn. Góc nghiêng mục tiêu tính bằng độ. Giá trị mặc định là 0.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Đầu cuối có thể đạt được hướng mong muốn.

  • false — Đầu cuối của thiết bị không thể đạt được hướng mong muốn.

Ví dụ

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

canEndEffectorReachInc#

canEndEffectorReachInc trả về giá trị cho biết liệu đầu cuối của bộ phận tác động có thể xoay theo một góc yaw, roll và pitch được chỉ định so với hướng hiện tại của nó hay không.

Sử dụng chức năng này để kiểm tra chuyển động định hướng tương đối trước khi sử dụng moveEndEffectorInc.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

yaw

double

Sự thay đổi góc lệch hướng, tính bằng độ.

roll

double

Tùy chọn. Độ thay đổi góc nghiêng, tính bằng độ. Giá trị mặc định là 0.

pitch

double

Tùy chọn. Độ thay đổi cao độ, tính bằng độ. Giá trị mặc định là 0.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Đầu cuối có thể thực hiện chuyển động quay theo yêu cầu.

  • false — Đầu cuối của thiết bị không thể thực hiện chuyển động quay được yêu cầu.

Ví dụ

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

isConnected#

isConnected trả về trạng thái cho biết Cánh tay 6 trục có được kết nối với Bộ não EXP hay không.

Đây là một hàm tương thích trả về cùng giá trị với installed.

Chức năng khả dụng

bool isConnected();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay 6 trục được kết nối với bộ não EXP.

  • false — Cánh tay 6 trục không được kết nối với bộ não EXP.

Ví dụ

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

timestamp#

timestamp trả về dấu thời gian của gói trạng thái cuối cùng nhận được từ Arm 6 trục.

Chức năng khả dụng

uint32_t timestamp();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về dấu thời gian của gói trạng thái cuối cùng dưới dạng số nguyên uint32_t tính bằng mili giây.

installed#

installed trả về trạng thái kết nối của Cánh tay 6 trục.

Chức năng khả dụng

bool installed();

Thông số

Hàm này không có tham số.

Giá trị trả về

Trả về giá trị Boolean.

  • true — Cánh tay 6 trục đã được kết nối.

  • false — Cánh tay robot 6 trục chưa được kết nối.

Cuộc gọi lại#

controlStopped#

controlStopped đăng ký một hàm chạy khi chức năng dừng điều khiển được bật.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Một hàm được chạy khi chức năng dừng điều khiển được kích hoạt.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

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

int main() {
  vexcodeInit();

  Arm.controlStopped(onControlStopped);
}

crashed#

crashed đăng ký một hàm chạy khi cánh tay robot 6 trục bị va chạm trong quá trình di chuyển.

Khi phát hiện va chạm, cánh tay robot 6 trục sẽ ngừng chuyển động của động cơ và có thể trông như bị chùng xuống. Điều này giúp giảm tải trọng và bảo vệ động cơ khỏi hư hỏng do va chạm bất ngờ.

Chức năng khả dụng

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

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Chức năng này được thực thi khi cánh tay robot 6 trục bị va chạm trong quá trình di chuyển.

Giá trị trả về

Hàm này không trả về giá trị nào.

Ví dụ

// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
  Brain.Screen.print("Crash detected");
  SignalTower6.setColor(signaltower::green, signaltower::off);
  SignalTower6.setColor(signaltower::red, signaltower::on);
}

int main() {
  vexcodeInit();

  Arm.crashed(onArmCrashed);
}