6 Eksenli Kol#

giriiş#

VEX 6 Eksenli Robotik Kol, uç elemanı üç boyutlu uzayda hareket ettirir, uç elemanın yönünü kontrol eder ve Manyetik Toplama Aleti veya Kalem Tutucu Aleti gibi takılı aletlerle birlikte çalışı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.

  • 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 Beyne 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.

Yapıcı Fonksiyon — 6 Eksenli Kol nesnesini manuel olarak oluşturun.

  • Arm — 6 Eksenli Kol nesnesi oluşturur.

Bu sayfa, 6 Eksenli Kolu CTE Karosu ile tek başına kullanmak içindir. 6 Eksenli Kolu Pnömatik veya Konveyörler gibi diğer CTE İş Hücresi bileşenleriyle kullanmak için, 6 Eksenli Kolu bir EXP Beynine bağlayın ve ilgili EXP Kolu sayfasını kullanın.

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:
arm.move_to(x, y, z, wait)

Parametre

Tanım

x

Hedef konumun x koordinatı (milimetre cinsinden).

y

Hedef konumun y koordinatı (milimetre cinsinden).

z

Hedef konumun milimetre cinsinden z koordinatı.

wait

İsteğe bağlı. wait=True (varsayılan) hareket tamamlanana kadar projenin beklemesini sağlar. wait=False hareketi başlatır ve hemen bir sonraki kod satırına geçer.

# 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 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:
arm.move_inc(x, y, z, wait)

Parametre

Tanım

x

X ekseni boyunca kat edilecek mesafe (milimetre cinsinden).

y

Y ekseni boyunca kat edilecek mesafe milimetre cinsinden.

z

Z ekseni boyunca kat edilecek mesafe (milimetre cinsinden).

wait

İsteğe bağlı. wait=True (varsayılan) hareket tamamlanana kadar projenin beklemesini sağlar. wait=False hareketi başlatır ve hemen bir sonraki kod satırına geçer.

# 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 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:
arm.move_end_effector_to(yaw, roll, pitch, wait)

Parametre

Tanım

yaw

Hedef sapma açısı, derece cinsinden.

roll

Hedef yuvarlanma açısı, derece cinsinden.

pitch

Hedeflenen eğim açısı, derece cinsinden.

wait

İsteğe bağlı. wait=True (varsayılan) hareket tamamlanana kadar projenin beklemesini sağlar. wait=False hareketi başlatır ve hemen bir sonraki kod satırına geçer.

# 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 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:
arm.move_end_effector_inc(yaw, roll, pitch, wait)

Parametre

Tanım

yaw

Yalpa açısındaki değişim, derece cinsinden.

roll

Yuvarlanma açısındaki değişim, derece cinsinden.

pitch

Perdedeki değişim, derece cinsinden.

wait

İsteğe bağlı. wait=True (varsayılan) hareket tamamlanana kadar projenin beklemesini sağlar. wait=False hareketi başlatır ve hemen bir sonraki kod satırına geçer.

# Rotate the end effector -50 degrees in pitch
arm.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:
arm.set_speed(speed)

Parametre

Tanım

speed

The movement speed of the 6-Axis Arm, from 1 to 100 percent.

# Set the 6-Axis Arm speed to 30%
arm.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. Proje başlangıcında uç efektör tipi Arm.MAGNET olarak ayarlanır.

Usage:
arm.set_end_effector_type(type)

Parametre

Tanım

type

6 Eksenli Kola takılan alet: Arm.MAGNET (Mıknatıslı Alma Aleti) veya Arm.PEN (Kalem Tutucu Aleti).

# 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 , 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:
arm.set_end_effector_magnet(state)

Parametre

Tanım

state

Mıknatısla Nesne Toplama Aleti durumu: True , nesneleri alıp tutmak için; False tutulan nesneyi bırakmak ve yeni nesne toplamayı durdurmak için.

# 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 , Kalem Tutucu Aleti 6 Eksenli Kola takıldığında kullanılan z ekseni ofsetini ayarlar.

Bu yöntemi kullanmadan önce uç efektör tipini Arm.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:
arm.set_pen_offset(zOffset)

Parametre

Tanım

zOffset

Kalemin milimetre cinsinden sapma değeri.

# 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 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:
arm.set_control_stop(state)

Parametre

Tanım

state

İsteğe bağlı. True (varsayılan) kontrol durdurmayı etkinleştirir. False kontrol durdurmayı etkinleştirmez.

# Stop the 6-Axis Arm and prevent further movement
arm.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:
arm.set_timeout(timeout, units)

Parametre

Tanım

timeout

Yeni zaman aşımı değeri.

units

İsteğe bağlı. Zaman birimi: MSEC (milisaniye, varsayılan), SECONDSveya SEC.

# Set the 6-Axis Arm timeout to 2 seconds
arm.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:
arm.is_done()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# 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 , 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:
arm.get_x()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current x position of the 6-Axis Arm
brain.print(arm.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:
arm.get_y()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current y position of the 6-Axis Arm
brain.print(arm.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:
arm.get_z()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current z position of the 6-Axis Arm
brain.print(arm.get_z())

get_pitch#

get_pitch , uç efektörün mevcut perdesini derece cinsinden döndürür.

Usage:
arm.get_pitch()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current pitch of the end effector
brain.print(arm.get_pitch())

get_roll#

get_roll , uç efektörün mevcut dönüş açısını derece cinsinden döndürür.

Usage:
arm.get_roll()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current roll of the end effector
brain.print(arm.get_roll())

get_yaw#

get_yaw , uç efektörün mevcut yaw açısını derece cinsinden döndürür.

Usage:
arm.get_yaw()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current yaw of the end effector
brain.print(arm.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:
arm.can_arm_reach_to(x, y, z)

Parametre

Tanım

x

Hedef konumun x koordinatı (milimetre cinsinden).

y

Hedef konumun y koordinatı (milimetre cinsinden).

z

Hedef konumun milimetre cinsinden z koordinatı.

# 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 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:
arm.can_arm_reach_inc(x, y, z)

Parametre

Tanım

x

X ekseni boyunca kat edilecek mesafe (milimetre cinsinden).

y

Y ekseni boyunca kat edilecek mesafe milimetre cinsinden.

z

Z ekseni boyunca kat edilecek mesafe (milimetre cinsinden).

# 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 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:
arm.can_end_effector_reach_to(yaw, roll, pitch)

Parametre

Tanım

yaw

Hedef sapma açısı, derece cinsinden.

roll

Hedef yuvarlanma açısı, derece cinsinden.

pitch

Hedeflenen eğim açısı, derece cinsinden.

# 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 , 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:
arm.can_end_effector_reach_inc(yaw, roll, pitch)

Parametre

Tanım

yaw

Yalpa açısındaki değişim, derece cinsinden.

roll

Yuvarlanma açısındaki değişim, derece cinsinden.

pitch

Perdedeki değişim, derece cinsinden.

# 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 Eksenli Kol hareket yöntemleri tarafından kullanılan zaman aşımı değerini milisaniye cinsinden döndürür.

Usage:
arm.get_timeout()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print the current movement timeout in milliseconds
brain.print(arm.get_timeout())

is_connected#

is_connected , 6 Eksenli Kolun Beyne bağlı olup olmadığını döndürür.

  • True — 6 Eksenli Kol, Beyne bağlıdır.

  • False — 6 Eksenli Kol, Beyne bağlı değildir.

Usage:
arm.is_connected()

Parametreler

Tanım

Bu yöntemin parametresi yoktur.

# Print whether the 6-Axis Arm is connected
brain.print(arm.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:
arm.control_stopped(callback, arg)

Parametre

Tanım

callback

Kontrol durdurma etkinleştirildiğinde çalışan, önceden tanımlanmış bir fonksiyon.

arg

İ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.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)

İnşaatçılar#

Arm#

Arm 6 eksenli bir kol nesnesi oluşturur.

Usage:
Arm()

Parametreler

Tanım

Bu yapıcı fonksiyonun parametresi yoktur.

# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()