Lengan 6-Sumbu#
Perkenalan#
Lengan Robot 6-Axis VEX adalah manipulator robot yang digunakan di Workcell CTE. Dalam VEXcode EXP, metode Arm memungkinkan EXP Brain untuk menggerakkan Lengan 6-Axis, memutar efektor ujungnya, memeriksa apakah gerakan dimungkinkan, dan mengontrol alat yang terpasang seperti Alat Pengambil Magnet atau Alat Pemegang Pena.
Halaman ini ditujukan untuk proyek CTE Workcell di mana Lengan 6-Axis terhubung ke EXP Brain. Jika Anda menggunakan Lengan 6-Axis secara terpisah dengan CTE Tile, gunakan halaman CTE Arm API.
Contoh-contoh pada halaman ini menggunakan Lengan 6-Axis yang telah dikonfigurasi bernama arm1.
Berikut adalah daftar semua metode yang tersedia:
Aksi — Gerakkan Lengan 6-Axis ke posisi atau orientasi tertentu.
move_to— Memindahkan ujung efektor ke koordinat x, y, dan z yang ditentukan.move_inc— Menggerakkan ujung efektor sejauh jarak tertentu dari posisi saat ini.move_end_effector_to— Memutar ujung efektor ke orientasi yaw, roll, dan pitch yang ditentukan.move_end_effector_inc— Memutar end effector dengan jumlah yaw, roll, dan pitch yang ditentukan.
Mutator — Mengonfigurasi pergerakan, alat, dan pengaturan kontrol.
set_speed— Mengatur kecepatan gerakan yang digunakan oleh Lengan 6-Axis.set_end_effector_type— Mengatur tipe end effector yang terpasang pada Lengan 6-Axis.set_end_effector_magnet— Mengaktifkan atau menonaktifkan Alat Pengambilan Magnet.set_pen_offset— Mengatur offset sumbu z yang digunakan dengan Alat Pemegang Pena.set_control_stop— Mengaktifkan kontrol stop untuk Lengan 6-Axis.set_timeout— Mengatur waktu habis yang digunakan oleh metode pergerakan Lengan 6-Axis.
Getter — Mengembalikan status gerakan, posisi, orientasi, dan nilai koneksi.
is_done— Mengembalikan apakah Lengan 6-Axis telah selesai bergerak.is_crashed— Mengembalikan apakah Lengan 6-Axis mengalami crash saat bergerak.get_x— Mengembalikan posisi x saat ini dari ujung efektor.get_y— Mengembalikan posisi y saat ini dari efektor akhir.get_z— Mengembalikan posisi z saat ini dari ujung efektor.get_pitch— Mengembalikan pitch saat ini dari end effector.get_roll— Mengembalikan hasil lemparan dadu saat ini dari efektor akhir.get_yaw— Mengembalikan yaw saat ini dari efektor akhir.can_arm_reach_to— Mengembalikan apakah Lengan 6-Axis dapat mencapai posisi yang ditentukan.can_arm_reach_inc— Mengembalikan apakah Lengan 6-Axis dapat bergerak sejauh jarak tertentu.can_end_effector_reach_to— Mengembalikan apakah ujung efektor dapat mencapai orientasi yang ditentukan.can_end_effector_reach_inc— Mengembalikan apakah end effector dapat berputar dengan jumlah yang ditentukan.get_timeout— Mengembalikan nilai batas waktu saat ini yang digunakan oleh metode pergerakan.is_connected— Mengembalikan apakah Lengan 6-Axis terhubung ke EXP Brain.
Callback — Menjalankan fungsi saat peristiwa ARM terjadi.
control_stopped— Mendaftarkan fungsi yang akan dijalankan ketika penghentian kontrol diaktifkan.crashed— Mendaftarkan fungsi yang akan dijalankan ketika terjadi crash.
Konstruktor — Buat objek Lengan 6-Axis secara manual.
Arm— Membuat objek Lengan 6-Axis.
Tindakan#
move_to#
move_to menggerakkan Lengan 6-Axis ke koordinat x, y, dan z yang ditentukan.
Koordinat x, y, dan z menggambarkan posisi ujung efektor dalam ruang tiga dimensi. Gunakan can_arm_reach_to sebelum metode ini jika posisi target mungkin berada di luar ruang kerja yang dapat dijangkau oleh Lengan 6-Axis.
Usage:
arm1.move_to(x, y, z, wait)
Parameter |
Keterangan |
|---|---|
|
Koordinat x dari posisi target dalam milimeter. |
|
Koordinat y dari posisi target dalam milimeter. |
|
Koordinat z dari posisi target dalam milimeter. |
|
Opsional. |
# Move the 6-Axis Arm to (40, 140, 210)
arm1.move_to(40, 140, 210)
# Start moving, then print the y-position while the arm moves
arm1.move_to(-100, 200, 100, wait=False)
while not arm1.is_done():
brain.screen.print(arm1.get_y())
brain.screen.next_row()
wait(0.25, SECONDS)
move_inc#
move_inc menggerakkan Lengan 6-Axis sejauh jarak tertentu dari posisi saat ini di sepanjang sumbu x, y, dan z.
Gunakan metode ini untuk bergerak relatif terhadap posisi ujung efektor saat ini. Gunakan can_arm_reach_inc sebelum metode ini jika pergerakan tersebut dapat menempatkan Lengan 6-Axis di luar ruang kerja yang dapat dijangkaunya.
Usage:
arm1.move_inc(x, y, z, wait)
Parameter |
Keterangan |
|---|---|
|
Jarak yang ditempuh sepanjang sumbu x dalam milimeter. |
|
Jarak yang ditempuh sepanjang sumbu y dalam milimeter. |
|
Jarak yang ditempuh sepanjang sumbu z dalam milimeter. |
|
Opsional. |
# Move the 6-Axis Arm 100 millimeters along the y-axis
arm1.move_inc(0, 100, 0)
move_end_effector_to#
move_end_effector_to memutar ujung efektor Lengan 6-Axis ke orientasi yaw, roll, dan pitch yang ditentukan.
Orientasi menjelaskan bagaimana ujung efektor diputar. yaw berputar di sekitar sumbu z, roll berputar di sekitar sumbu x, dan pitch berputar di sekitar sumbu y.
Usage:
arm1.move_end_effector_to(yaw, roll, pitch, wait)
Parameter |
Keterangan |
|---|---|
|
Sudut yaw target, dalam derajat. |
|
Sudut putaran target, dalam derajat. |
|
Sudut kemiringan target, dalam derajat. |
|
Opsional. |
# Rotate the end effector to 90 degrees of roll
arm1.move_end_effector_to(0, 90, 0)
move_end_effector_inc#
move_end_effector_inc memutar ujung lengan 6-Axis Arm sebesar nilai yaw, roll, dan pitch yang ditentukan dari orientasi saat ini.
Gunakan metode ini untuk melakukan rotasi relatif terhadap yaw, roll, atau pitch end effector saat ini.
Usage:
arm1.move_end_effector_inc(yaw, roll, pitch, wait)
Parameter |
Keterangan |
|---|---|
|
Perubahan arah putaran (yaw), dalam derajat. |
|
Perubahan putaran, dalam derajat. |
|
Perubahan nada, dalam derajat. |
|
Opsional. |
# Rotate the end effector -50 degrees in pitch
arm1.move_end_effector_inc(0, 0, -50)
Mutator#
set_speed#
set_speed mengatur kecepatan gerakan yang digunakan oleh Lengan 6-Axis untuk metode pergerakan.
Kecepatan lengan 6-sumbu diatur ke 50% pada awal proyek.
Usage:
arm1.set_speed(speed)
Parameter |
Keterangan |
|---|---|
|
Kecepatan pergerakan Lengan 6-Axis, dari |
# Set the 6-Axis Arm speed to 30%
arm1.set_speed(30)
set_end_effector_type#
set_end_effector_type mengatur jenis end effector yang terpasang pada Lengan 6-Axis.
Saat tipe ujung efektor diubah, Lengan 6-Axis secara otomatis menyesuaikan offset z-nya agar sesuai dengan alat yang dipilih. Tipe ujung efektor diatur ke MAGNET di awal proyek.
Usage:
arm1.set_end_effector_type(type)
Parameter |
Keterangan |
|---|---|
|
Alat yang terpasang pada Lengan 6-Axis: |
# Set the end effector type to the Pen Holder Tool
arm1.set_end_effector_type(PEN)
set_end_effector_magnet#
set_end_effector_magnet mengaktifkan atau menonaktifkan Alat Pengambilan Magnet.
Status magnet tetap aktif hingga metode set_end_effector_magnet lainnya mengubahnya. Status magnet diatur ulang ke False pada awal proyek.
Usage:
arm1.set_end_effector_magnet(state)
Parameter |
Keterangan |
|---|---|
|
Status Alat Pengambil Magnet: |
# Pick up objects and then drop them
arm1.set_end_effector_type(MAGNET)
arm1.set_end_effector_magnet(True)
wait(2, SECONDS)
arm1.set_end_effector_magnet(False)
set_pen_offset#
set_pen_offset mengatur offset sumbu z yang digunakan saat Pen Holder Tool terpasang pada Lengan 6-Axis.
Atur tipe end effector ke PEN sebelum menggunakan metode ini. Jika Pen Holder Tool tidak dipilih, metode ini tidak akan berpengaruh.
Offset pena adalah jarak dari bagian atas Alat Pemegang Pena ke ujung Spidol Penghapus Kering. Pada awal proyek, offset pena diatur ke 0Offset pena 0 menempatkan titik asal sumbu z lengan pada titik di mana Alat Pemegang Pena terhubung ke Lengan 6-Axis.
Usage:
arm1.set_pen_offset(zOffset)
Parameter |
Keterangan |
|---|---|
|
Nilai offset pena dalam milimeter. |
# Set the end effector type to the Pen Holder Tool and set the pen offset
arm1.set_end_effector_type(PEN)
arm1.set_pen_offset(25)
set_control_stop#
set_control_stop mengaktifkan penghentian kontrol untuk Lengan 6-Axis.
Saat kontrol berhenti diaktifkan, Lengan 6-Axis akan segera menghentikan semua pergerakan dan tidak akan menjalankan metode pergerakan Lengan lebih lanjut hingga proyek dimulai ulang.
Usage:
arm1.set_control_stop(state)
Parameter |
Keterangan |
|---|---|
|
Opsional. |
# Stop the 6-Axis Arm and prevent further movement
arm1.set_control_stop()
set_timeout#
set_timeout mengatur nilai batas waktu yang digunakan saat menggerakkan Lengan 6-Axis.
Jika suatu pergerakan tidak selesai sebelum waktu habis, proyek akan berlanjut ke baris kode berikutnya.
Usage:
arm1.set_timeout(timeout, units)
Parameter |
Keterangan |
|---|---|
|
Nilai batas waktu yang baru. |
|
Opsional. Satuan waktu: |
# Set the 6-Axis Arm timeout to 2 seconds
arm1.set_timeout(2, SECONDS)
Pencari#
is_done#
is_done mengembalikan nilai boolean yang menunjukkan apakah Lengan 6-Axis telah selesai bergerak.
Metode ini berguna setelah metode pergerakan dipanggil dengan wait=False.
True— Lengan 6-Axis telah selesai bergerak.False— Lengan 6-Axis masih bergerak.
Usage:
arm1.is_done()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Display the 6-Axis Arm's y-position while it moves
arm1.move_to(-100, 200, 100, wait=False)
while not arm1.is_done():
brain.screen.print(arm1.get_y())
brain.screen.next_row()
wait(0.25, SECONDS)
is_crashed#
is_crashed mengembalikan nilai boolean yang menunjukkan apakah Lengan 6-Axis mengalami kerusakan saat bergerak.
Saat terjadi benturan, Lengan 6-Axis akan menghentikan pergerakan motor dan mungkin tampak lemas. Hal ini mengurangi tekanan dan membantu melindungi motor dari kerusakan yang tidak disengaja.
True— Lengan 6-Axis telah mengalami kerusakan.False— Lengan 6-Axis belum mengalami kerusakan.
Usage:
arm1.is_crashed()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Quickly move to a new location
arm1.set_speed(100)
arm1.move_to(-30, 240, 40, wait=False)
# While moving, check for a crash
while True:
if arm1.is_crashed():
# Indicate a crash with the Signal Tower and Brain screen
brain.screen.print("Crash Detected")
signal_tower_2.set_color(SignalTower.GREEN, SignalTower.OFF)
signal_tower_2.set_color(SignalTower.RED, SignalTower.ON)
break
wait(5, MSEC)
get_x#
get_x mengembalikan posisi x saat ini dari ujung efektor dalam milimeter.
Gunakan metode ini untuk membaca lokasi ujung efektor saat ini di sepanjang sumbu x.
Usage:
arm1.get_x()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current x position of the 6-Axis Arm
brain.screen.print(arm1.get_x())
get_y#
get_y mengembalikan posisi y saat ini dari ujung efektor dalam milimeter.
Gunakan metode ini untuk membaca lokasi ujung efektor saat ini di sepanjang sumbu y.
Usage:
arm1.get_y()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current y position of the 6-Axis Arm
brain.screen.print(arm1.get_y())
get_z#
get_z mengembalikan posisi z saat ini dari ujung efektor dalam milimeter.
Gunakan metode ini untuk membaca lokasi ujung efektor saat ini di sepanjang sumbu z.
Usage:
arm1.get_z()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current z position of the 6-Axis Arm
brain.screen.print(arm1.get_z())
get_pitch#
get_pitch mengembalikan pitch ujung efektor saat ini dalam derajat.
Usage:
arm1.get_pitch()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current pitch of the end effector
brain.screen.print(arm1.get_pitch())
get_roll#
get_roll mengembalikan kemiringan (roll) ujung efektor saat ini dalam derajat.
Usage:
arm1.get_roll()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current roll of the end effector
brain.screen.print(arm1.get_roll())
get_yaw#
get_yaw mengembalikan nilai yaw (sudut kemiringan) ujung efektor saat ini dalam derajat.
Usage:
arm1.get_yaw()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current yaw of the end effector
brain.screen.print(arm1.get_yaw())
can_arm_reach_to#
can_arm_reach_to mengembalikan nilai yang menunjukkan apakah Lengan 6-Axis dapat menggerakkan ujung efektor ke koordinat x, y, dan z yang ditentukan.
Gunakan metode ini untuk memeriksa posisi target sebelum menggunakan move_to.
True— Lengan 6-Axis dapat mencapai posisi yang diminta.False— Lengan 6-Axis tidak dapat mencapai posisi yang diminta.
Usage:
arm1.can_arm_reach_to(x, y, z)
Parameter |
Keterangan |
|---|---|
|
Koordinat x dari posisi target dalam milimeter. |
|
Koordinat y dari posisi target dalam milimeter. |
|
Koordinat z dari posisi target dalam milimeter. |
# Move the 6-Axis Arm to (100, -20, 50) if it can reach
if arm1.can_arm_reach_to(100, -20, 50):
arm1.move_to(100, -20, 50)
can_arm_reach_inc#
can_arm_reach_inc mengembalikan nilai yang menunjukkan apakah Lengan 6-Axis dapat menggerakkan ujung efektor sejauh jarak x, y, dan z yang ditentukan dari posisi saat ini.
Gunakan metode ini untuk memeriksa pergerakan relatif sebelum menggunakan move_inc.
True— Lengan 6-Axis dapat melakukan gerakan yang diminta.False— Lengan 6-Axis tidak dapat melakukan gerakan yang diminta.
Usage:
arm1.can_arm_reach_inc(x, y, z)
Parameter |
Keterangan |
|---|---|
|
Jarak yang ditempuh sepanjang sumbu x dalam milimeter. |
|
Jarak yang ditempuh sepanjang sumbu y dalam milimeter. |
|
Jarak yang ditempuh sepanjang sumbu z dalam milimeter. |
# Increment the 6-Axis Arm 100 mm along the x-axis if possible
if arm1.can_arm_reach_inc(100, 0, 0):
arm1.move_inc(100, 0, 0)
can_end_effector_reach_to#
can_end_effector_reach_to mengembalikan nilai yang menunjukkan apakah end effector dapat berputar ke orientasi yaw, roll, dan pitch yang ditentukan.
Gunakan metode ini untuk memeriksa orientasi target sebelum menggunakan move_end_effector_to.
True— Ujung efektor dapat mencapai orientasi yang diminta.False— Ujung efektor tidak dapat mencapai orientasi yang diminta.
Usage:
arm1.can_end_effector_reach_to(yaw, roll, pitch)
Parameter |
Keterangan |
|---|---|
|
Sudut yaw target, dalam derajat. |
|
Sudut putaran target, dalam derajat. |
|
Sudut kemiringan target, dalam derajat. |
# Rotate the end effector to 90 degrees of roll if possible
if arm1.can_end_effector_reach_to(0, 90, 0):
arm1.move_end_effector_to(0, 90, 0)
can_end_effector_reach_inc#
can_end_effector_reach_inc mengembalikan nilai yang menunjukkan apakah end effector dapat berputar sebesar nilai yaw, roll, dan pitch yang ditentukan dari orientasi saat ini.
Gunakan metode ini untuk memeriksa pergerakan orientasi relatif sebelum menggunakan move_end_effector_inc.
True— Ujung efektor dapat melakukan rotasi yang diminta.False— Ujung efektor tidak dapat melakukan rotasi yang diminta.
Usage:
arm1.can_end_effector_reach_inc(yaw, roll, pitch)
Parameter |
Keterangan |
|---|---|
|
Perubahan arah putaran (yaw), dalam derajat. |
|
Perubahan putaran, dalam derajat. |
|
Perubahan nada, dalam derajat. |
# Increment the end effector by 10 degrees of pitch if possible
if arm1.can_end_effector_reach_inc(0, 0, 10):
arm1.move_end_effector_inc(0, 0, 10)
get_timeout#
get_timeout mengembalikan nilai batas waktu yang digunakan oleh metode pergerakan Lengan 6-Axis dalam milidetik.
Usage:
arm1.get_timeout()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the current movement timeout in milliseconds
brain.screen.print(arm1.get_timeout())
is_connected#
is_connected mengembalikan nilai boolean yang menunjukkan apakah Lengan 6-Axis terhubung ke EXP Brain.
True— Lengan 6-Axis terhubung ke EXP Brain.False— Lengan 6-Axis tidak terhubung ke EXP Brain.
Usage:
arm1.is_connected()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print whether the 6-Axis Arm is connected
brain.screen.print(arm1.is_connected())
Panggilan balik#
control_stopped#
control_stopped mendaftarkan fungsi yang berjalan ketika penghentian kontrol diaktifkan.
Metode ini mengembalikan sebuah instance dari kelas Event.
Usage:
arm1.control_stopped(callback, arg)
Parameter |
Keterangan |
|---|---|
|
Sebuah fungsi yang telah didefinisikan sebelumnya yang dijalankan ketika penghentian kontrol diaktifkan. |
|
Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Menggunakan Fungsi dengan Parameter untuk informasi selengkapnya. |
# Define a function to run when control stop is enabled
def when_control_stopped():
brain.screen.print("The arm has been control stopped")
# Run when_control_stopped when the 6-Axis Arm is control stopped
arm1.control_stopped(when_control_stopped)
crashed#
crashed mendaftarkan fungsi yang dijalankan ketika Lengan 6-Axis mengalami kerusakan saat bergerak.
Saat terjadi benturan, Lengan 6-Axis akan menghentikan pergerakan motor dan mungkin tampak lemas. Hal ini mengurangi tekanan dan membantu melindungi motor dari kerusakan yang tidak disengaja.
Usage:
arm1.crashed(callback)
Parameter |
Keterangan |
|---|---|
|
Sebuah fungsi yang telah didefinisikan sebelumnya yang dijalankan ketika terjadi kerusakan. |
# Define what happens if a crash is detected
def arm_crash():
brain.screen.print("Crash Detected")
signal_tower_2.set_color(SignalTower.RED, SignalTower.ON)
# Run arm_crash when the 6-Axis Arm crashes
arm1.crashed(arm_crash)
Konstruktor#
Arm#
Arm membuat objek Lengan 6-Axis.
Usage:
Arm(smartport)
Parameter |
Keterangan |
|---|---|
|
Port Pintar yang terhubung ke Lengan 6-Axis, ditulis sebagai |
# Construct a 6-Axis Arm named arm1 with the Arm class
arm1 = Arm(Ports.PORT1)