6 Eksenli Kol#
giriiş#
VEX 6 Eksenli Robotik Kol, CTE Çalışma Hücresinde kullanılan bir robotik manipülatördür. VEXcode EXP’de, Kol yöntemleri, bir EXP Beyninin 6 Eksenli Kolu hareket ettirmesine, uç elemanını döndürmesine, hareketlerin mümkün olup olmadığını kontrol etmesine ve Mıknatıs Toplama Aleti veya Kalem Tutucu Aleti gibi bağlı aletleri kontrol etmesine olanak tanır.
Bu sayfa, 6 Eksenli Kolun bir EXP Beynine bağlı olduğu CTE Workcell projeleri içindir. 6 Eksenli Kolu CTE Karosu ile tek başına kullanıyorsanız, bunun yerine CTE Kol API sayfasını kullanın.
Bu sayfadaki örneklerde arm1 olarak adlandırılan yapılandırılmış 6 Eksenli Kol kullanılmaktadır.
Aşağıda mevcut tüm yöntemlerin listesi bulunmaktadır:
İşlemler — 6 Eksenli Kolu konumlara veya yönlere hareket ettirin.
move_to— Uç efektörü belirtilen x, y ve z koordinatına taşır.move_inc— Uç efektörü mevcut konumundan belirtilen bir mesafe kadar hareket ettirir.move_end_effector_to— Uç efektörü belirtilen bir sapma, yuvarlanma ve eğim yönüne döndürür.move_end_effector_inc— Uç efektörü belirtilen bir sapma, yuvarlanma ve eğim miktarı kadar döndürür.
Değiştiriciler — Hareket, araçlar ve kontrol ayarlarını yapılandırın.
set_speed— 6 Eksenli Kol tarafından kullanılan hareket hızını ayarlar.set_end_effector_type— 6 Eksenli Kola bağlı uç efektörün tipini ayarlar.set_end_effector_magnet— Mıknatıs Toplama Aletini devreye sokar veya serbest bırakır.set_pen_offset— Kalem Tutucu Aracı ile kullanılan z ekseni ofsetini ayarlar.set_control_stop— 6 Eksenli Kol için kontrol durdurmayı etkinleştirir.set_timeout— 6 Eksenli Kol hareket yöntemleri tarafından kullanılan zaman aşımını ayarlar.
Getter’lar — Hareket durumu, konum, yönelim ve bağlantı değerlerini döndürür.
is_done— 6 Eksenli Kolun hareketini tamamlayıp tamamlamadığını döndürür.is_crashed— 6 Eksenli Kolun hareket halindeyken çarpıp çarpışmadığını döndürür.get_x— Uç efektörün mevcut x konumunu döndürür.get_y— Uç efektörün mevcut y konumunu döndürür.get_z— Uç efektörün mevcut z konumunu döndürür.get_pitch— Uç efektörün mevcut perdesini döndürür.get_roll— Uç efektörün mevcut zarını döndürür.get_yaw— Uç efektörün mevcut yaw değerini döndürür.can_arm_reach_to— 6 Eksenli Kolun belirtilen bir konuma ulaşıp ulaşamayacağını döndürür.can_arm_reach_inc— 6 Eksenli Kolun belirtilen bir mesafeye kadar hareket edip edemeyeceğini döndürür.can_end_effector_reach_to— Uç efektörün belirtilen bir yöne ulaşabilip ulaşamayacağını döndürür.can_end_effector_reach_inc— Uç efektörün belirtilen miktarda dönebilme yeteneğine sahip olup olmadığını döndürür.get_timeout— Hareket yöntemleri tarafından kullanılan geçerli zaman aşımı değerini döndürür.is_connected— 6 Eksenli Kolun EXP Beynine bağlı olup olmadığını döndürür.
Geri Çağrı Fonksiyonları — ARM olayları gerçekleştiğinde fonksiyonları çalıştırın.
control_stopped— Kontrol durdurma etkinleştirildiğinde çalıştırılacak bir fonksiyonu kaydeder.crashed— Bir çökme tespit edildiğinde çalıştırılacak bir fonksiyonu kaydeder.
Yapıcı Fonksiyon — 6 Eksenli Kol nesnesini manuel olarak oluşturun.
Arm— 6 Eksenli Kol nesnesi oluşturur.
Eylemler#
move_to#
move_to komutu, 6 Eksenli Kolu belirtilen x, y ve z koordinatlarına hareket ettirir.
x, y ve z koordinatları, uç efektörün üç boyutlu uzaydaki konumunu tanımlar. Hedef konumun 6 Eksenli Kolun erişilebilir çalışma alanının dışında olabileceği durumlarda bu yöntemden önce can_arm_reach_to kullanın.
Usage:
arm1.move_to(x, y, z, wait)
Parametre |
Tanım |
|---|---|
|
Hedef konumun x koordinatı (milimetre cinsinden). |
|
Hedef konumun y koordinatı (milimetre cinsinden). |
|
Hedef konumun milimetre cinsinden z koordinatı. |
|
İsteğe bağlı. |
# 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 komutu, 6 Eksenli Kolu, mevcut konumundan x, y ve z eksenleri boyunca belirtilen bir mesafe kadar hareket ettirir.
Uç efektörün şu anki konumuna göre hareket etmek için bu yöntemi kullanın. Hareket, 6 Eksenli Kolu erişilebilir çalışma alanının dışına çıkarabilecekse, bu yöntemden önce can_arm_reach_inc kullanın.
Usage:
arm1.move_inc(x, y, z, wait)
Parametre |
Tanım |
|---|---|
|
X ekseni boyunca kat edilecek mesafe (milimetre cinsinden). |
|
Y ekseni boyunca kat edilecek mesafe milimetre cinsinden. |
|
Z ekseni boyunca kat edilecek mesafe (milimetre cinsinden). |
|
İsteğe bağlı. |
# 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 komutu, 6 Eksenli Kolun uç elemanını belirtilen bir sapma, yuvarlanma ve eğim yönüne döndürür.
Yönlendirme, uç elemanın nasıl döndürüldüğünü açıklar. yaw , z ekseni etrafında döner; roll , x ekseni etrafında döner ve pitch y ekseni etrafında döner.
Usage:
arm1.move_end_effector_to(yaw, roll, pitch, wait)
Parametre |
Tanım |
|---|---|
|
Hedef sapma açısı, derece cinsinden. |
|
Hedef yuvarlanma açısı, derece cinsinden. |
|
Hedeflenen eğim açısı, derece cinsinden. |
|
İsteğe bağlı. |
# 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 komutu, 6 Eksenli Kolun uç elemanını mevcut konumundan belirtilen bir sapma, yuvarlanma ve eğim miktarı kadar döndürür.
Bu yöntemi, uç elemanın mevcut sapma, yuvarlanma veya eğim açısına göre döndürmek için kullanın.
Usage:
arm1.move_end_effector_inc(yaw, roll, pitch, wait)
Parametre |
Tanım |
|---|---|
|
Yalpa açısındaki değişim, derece cinsinden. |
|
Yuvarlanma açısındaki değişim, derece cinsinden. |
|
Perdedeki değişim, derece cinsinden. |
|
İsteğe bağlı. |
# Rotate the end effector -50 degrees in pitch
arm1.move_end_effector_inc(0, 0, -50)
Mutatörler#
set_speed#
set_speed 6 Eksenli Kolun hareket yöntemleri için kullandığı hareket hızını ayarlar.
6 eksenli kolun hızı, projenin başlangıcında %50’ye ayarlanır.
Usage:
arm1.set_speed(speed)
Parametre |
Tanım |
|---|---|
|
The movement speed of the 6-Axis Arm, from |
# Set the 6-Axis Arm speed to 30%
arm1.set_speed(30)
set_end_effector_type#
set_end_effector_type , 6 Eksenli Kola takılan uç efektörün tipini ayarlar.
Uç efektör tipi değiştirildiğinde, 6 Eksenli Kol, seçilen alete uyacak şekilde z-ofsetini otomatik olarak ayarlar. Uç efektör tipi, projenin başlangıcında MAGNET olarak ayarlanır.
Usage:
arm1.set_end_effector_type(type)
Parametre |
Tanım |
|---|---|
|
6 Eksenli Kola takılan alet: |
# Set the end effector type to the Pen Holder Tool
arm1.set_end_effector_type(PEN)
set_end_effector_magnet#
set_end_effector_magnet , Manyetik Alma Aletini devreye sokar veya serbest bırakır.
Mıknatıs durumu, başka bir set_end_effector_magnet yöntemi tarafından değiştirilene kadar aktif kalır. Mıknatıs durumu, projenin başlangıcında False olarak sıfırlanır.
Usage:
arm1.set_end_effector_magnet(state)
Parametre |
Tanım |
|---|---|
|
Mıknatısla Nesne Toplama Aleti durumu: |
# 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 , Kalem Tutucu Aleti 6 Eksenli Kola takıldığında kullanılan z ekseni ofsetini ayarlar.
Bu yöntemi kullanmadan önce uç efektör tipini PEN olarak ayarlayın. Kalem Tutucu Aracı seçili değilse, bu yöntemin hiçbir etkisi olmaz.
Kalem ofseti, Kalem Tutucu Aletinin üst kısmından Kuru Silinebilir Kalemin ucuna kadar olan mesafedir. Bir projenin başlangıcında, kalem ofseti 0olarak ayarlanır. 0 bir kalem ofseti, kolun z ekseni orijinini Kalem Tutucu Aletinin 6 Eksenli Kola bağlandığı noktaya yerleştirir.
Usage:
arm1.set_pen_offset(zOffset)
Parametre |
Tanım |
|---|---|
|
Kalemin milimetre cinsinden sapma değeri. |
# 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 komutu, 6 Eksenli Kol için kontrol durdurma özelliğini etkinleştirir.
Kontrol durdurma özelliği etkinleştirildiğinde, 6 Eksenli Kol anında tüm hareketleri durdurur ve proje yeniden başlatılana kadar başka hiçbir Kol hareket yöntemi çalıştırmaz.
Usage:
arm1.set_control_stop(state)
Parametre |
Tanım |
|---|---|
|
İsteğe bağlı. |
# Stop the 6-Axis Arm and prevent further movement
arm1.set_control_stop()
set_timeout#
set_timeout , 6 Eksenli Kolu hareket ettirirken kullanılan zaman aşımı değerini ayarlar.
Bir işlem zaman aşımı süresi dolmadan tamamlanmazsa, proje bir sonraki kod satırına geçer.
Usage:
arm1.set_timeout(timeout, units)
Parametre |
Tanım |
|---|---|
|
Yeni zaman aşımı değeri. |
|
İsteğe bağlı. Zaman birimi: |
# Set the 6-Axis Arm timeout to 2 seconds
arm1.set_timeout(2, SECONDS)
Getters#
is_done#
is_done 6 eksenli kolun hareketinin tamamlanıp tamamlanmadığını döndürür.
Bu yöntem, wait=False parametresiyle bir hareket yöntemi çağrıldıktan sonra kullanışlıdır.
True— 6 Eksenli Kol hareketini tamamladı.False— 6 Eksenli Kol hala hareket halinde.
Usage:
arm1.is_done()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# 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 6 Eksenli Kolun hareket halindeyken çarpıp çarpışmadığını döndürür.
Çarpışma algılandığında, 6 Eksenli Kol motor hareketini durdurur ve gevşemiş gibi görünebilir. Bu, gerilimi azaltır ve motorları kazara hasardan korumaya yardımcı olur.
True— 6 Eksenli Kol çöktü.False— 6 Eksenli Kol kaza yapmadı.
Usage:
arm1.is_crashed()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# 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 , uç elemanın mevcut x konumunu milimetre cinsinden döndürür.
Bu yöntemi kullanarak uç elemanın x ekseni boyunca şu anda nerede bulunduğunu okuyabilirsiniz.
Usage:
arm1.get_x()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current x position of the 6-Axis Arm
brain.screen.print(arm1.get_x())
get_y#
get_y , uç elemanın mevcut y konumunu milimetre cinsinden döndürür.
Bu yöntemi kullanarak uç elemanın y ekseni boyunca şu anda nerede bulunduğunu okuyabilirsiniz.
Usage:
arm1.get_y()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current y position of the 6-Axis Arm
brain.screen.print(arm1.get_y())
get_z#
get_z uç elemanın mevcut z konumunu milimetre cinsinden döndürür.
Bu yöntemi kullanarak uç elemanın z ekseni boyunca şu anda nerede bulunduğunu okuyabilirsiniz.
Usage:
arm1.get_z()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current z position of the 6-Axis Arm
brain.screen.print(arm1.get_z())
get_pitch#
get_pitch , uç efektörün mevcut perdesini derece cinsinden döndürür.
Usage:
arm1.get_pitch()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current pitch of the end effector
brain.screen.print(arm1.get_pitch())
get_roll#
get_roll , uç efektörün mevcut dönüş açısını derece cinsinden döndürür.
Usage:
arm1.get_roll()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current roll of the end effector
brain.screen.print(arm1.get_roll())
get_yaw#
get_yaw , uç efektörün mevcut yaw açısını derece cinsinden döndürür.
Usage:
arm1.get_yaw()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current yaw of the end effector
brain.screen.print(arm1.get_yaw())
can_arm_reach_to#
can_arm_reach_to , 6 Eksenli Kolun uç elemanını belirtilen x, y ve z koordinatlarına hareket ettirip ettiremeyeceğini döndürür.
move_to kullanmadan önce hedef konumu kontrol etmek için bu yöntemi kullanın.
True— 6 Eksenli Kol, istenen konuma ulaşabilir.False— 6 Eksenli Kol istenen konuma ulaşamıyor.
Usage:
arm1.can_arm_reach_to(x, y, z)
Parametre |
Tanım |
|---|---|
|
Hedef konumun x koordinatı (milimetre cinsinden). |
|
Hedef konumun y koordinatı (milimetre cinsinden). |
|
Hedef konumun milimetre cinsinden z koordinatı. |
# 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 , 6 Eksenli Kolun uç elemanını mevcut konumundan belirtilen x, y ve z mesafesi kadar hareket ettirip ettiremeyeceğini döndürür.
move_inc kullanmadan önce göreceli hareketi kontrol etmek için bu yöntemi kullanın.
True— 6 Eksenli Kol, istenen hareketi gerçekleştirebilir.False— 6 Eksenli Kol istenen hareketi gerçekleştiremiyor.
Usage:
arm1.can_arm_reach_inc(x, y, z)
Parametre |
Tanım |
|---|---|
|
X ekseni boyunca kat edilecek mesafe (milimetre cinsinden). |
|
Y ekseni boyunca kat edilecek mesafe milimetre cinsinden. |
|
Z ekseni boyunca kat edilecek mesafe (milimetre cinsinden). |
# 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 fonksiyonu, uç elemanın belirtilen bir sapma, yuvarlanma ve eğim yönüne dönebilme yeteneğini döndürür.
move_end_effector_to kullanmadan önce hedef yönelimini kontrol etmek için bu yöntemi kullanın.
True— Uç efektör istenen yöne ulaşabilir.False— Uç efektör istenen yöne ulaşamıyor.
Usage:
arm1.can_end_effector_reach_to(yaw, roll, pitch)
Parametre |
Tanım |
|---|---|
|
Hedef sapma açısı, derece cinsinden. |
|
Hedef yuvarlanma açısı, derece cinsinden. |
|
Hedeflenen eğim açısı, derece cinsinden. |
# 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 , uç elemanın mevcut konumundan belirtilen bir sapma, yuvarlanma ve eğim miktarı kadar dönebilme yeteneğini döndürür.
move_end_effector_inc kullanmadan önce göreceli yönelim hareketini kontrol etmek için bu yöntemi kullanın.
True— Uç efektör istenen dönüşü yapabilir.False— Uç efektör istenen dönüşü gerçekleştiremiyor.
Usage:
arm1.can_end_effector_reach_inc(yaw, roll, pitch)
Parametre |
Tanım |
|---|---|
|
Yalpa açısındaki değişim, derece cinsinden. |
|
Yuvarlanma açısındaki değişim, derece cinsinden. |
|
Perdedeki değişim, derece cinsinden. |
# 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 6 Eksenli Kol hareket yöntemleri tarafından kullanılan zaman aşımı değerini milisaniye cinsinden döndürür.
Usage:
arm1.get_timeout()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print the current movement timeout in milliseconds
brain.screen.print(arm1.get_timeout())
is_connected#
is_connected , 6 Eksenli Kolun EXP Beynine bağlı olup olmadığını döndürür.
True— 6 Eksenli Kol, EXP Beynine bağlıdır.False— 6 Eksenli Kol, EXP Beynine bağlı değildir.
Usage:
arm1.is_connected()
Parametreler |
Tanım |
|---|---|
Bu yöntemin parametresi yoktur. |
# Print whether the 6-Axis Arm is connected
brain.screen.print(arm1.is_connected())
Geri aramalar#
control_stopped#
control_stopped , kontrol durdurma etkinleştirildiğinde çalışan bir fonksiyonu kaydeder.
Bu yöntem, Event sınıfının bir örneğini döndürür.
Usage:
arm1.control_stopped(callback, arg)
Parametre |
Tanım |
|---|---|
|
Kontrol durdurma etkinleştirildiğinde çalışan, önceden tanımlanmış bir fonksiyon. |
|
İsteğe bağlı. Geri çağrı fonksiyonuna iletilecek argümanları içeren bir demet. Daha fazla bilgi için Parametreli Fonksiyonları Kullanma bölümüne bakın. |
# 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 6 eksenli kolun hareket halindeyken kaza yapması durumunda çalışan bir fonksiyonu kaydeder.
Çarpışma algılandığında, 6 Eksenli Kol motor hareketini durdurur ve gevşemiş gibi görünebilir. Bu, gerilimi azaltır ve motorları kazara hasardan korumaya yardımcı olur.
Usage:
arm1.crashed(callback)
Parametre |
Tanım |
|---|---|
|
Bir kaza tespit edildiğinde çalışan, önceden tanımlanmış bir fonksiyon. |
# 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)
İnşaatçılar#
Arm#
Arm 6 eksenli bir kol nesnesi oluşturur.
Usage:
Arm(smartport)
Parametre |
Tanım |
|---|---|
|
6 Eksenli Kolun bağlı olduğu Akıllı Bağlantı Noktası, |
# Construct a 6-Axis Arm named arm1 with the Arm class
arm1 = Arm(Ports.PORT1)