Ramię 6-osiowe#
Wstęp#
Ramię robota VEX 6-osiowe przemieszcza efektor końcowy w przestrzeni trójwymiarowej, kontroluje orientację efektora końcowego i współpracuje z dołączonymi narzędziami, takimi jak narzędzie do pobierania magnesów lub narzędzie do trzymania długopisu.
Poniżej znajduje się lista wszystkich dostępnych metod:
Działania — przesuwanie ramienia 6-osiowego do różnych pozycji lub orientacji.
move_to— Przesuwa efektor końcowy do określonej współrzędnej x, y i z.move_inc— Przesuwa efektor końcowy o określoną odległość od jego bieżącej pozycji.move_end_effector_to— Obraca efektor końcowy o określony kąt odchylenia, przechyłu i pochylenia.move_end_effector_inc— Obraca efektor końcowy o określoną wartość odchylenia, przechyłu i pochylenia.
Mutatory — konfiguracja ustawień ruchu, narzędzi i sterowania.
set_speed— Ustawia prędkość ruchu używaną przez ramię 6-osiowe.set_end_effector_type— Ustawia typ efektora końcowego przymocowanego do ramienia 6-osiowego.set_end_effector_magnet— Włącza lub zwalnia narzędzie do podnoszenia magnesów.set_pen_offset— Ustawia przesunięcie osi Z używane z narzędziem uchwytu pióra.set_control_stop— Włącza zatrzymanie sterowania ramieniem 6-osiowym.set_timeout— Ustawia limit czasu używany przez metody ruchu ramienia 6-osiowego.
Gettery — zwracają wartości stanu ruchu, pozycji, orientacji i połączenia.
is_done— Zwraca informację, czy ramię 6-osiowe zakończyło ruch.get_x— Zwraca aktualną pozycję x efektora końcowego.get_y— Zwraca aktualną pozycję y efektora końcowego.get_z— Zwraca aktualną pozycję z efektora końcowego.get_pitch— Zwraca aktualny skok efektora końcowego.get_roll— Zwraca aktualny obrót efektora końcowego.get_yaw— Zwraca aktualne odchylenie efektora końcowego.can_arm_reach_to— Zwraca informację, czy ramię 6-osiowe może osiągnąć określoną pozycję.can_arm_reach_inc— Zwraca informację, czy ramię 6-osiowe może się poruszać o określoną odległość.can_end_effector_reach_to— Zwraca informację, czy efektor końcowy może osiągnąć określoną orientację.can_end_effector_reach_inc— Zwraca informację, czy efektor końcowy może obracać się o określoną wartość.get_timeout— Zwraca aktualną wartość limitu czasu używaną przez metody ruchu.is_connected— Zwraca informację, czy ramię 6-osiowe jest połączone z mózgiem.
Wywołania zwrotne — uruchamiają funkcje, gdy wystąpią zdarzenia arm.
control_stopped— Rejestruje funkcję, która ma zostać uruchomiona po włączeniu zatrzymania sterowania.
Konstruktor — ręczne tworzenie obiektu ramienia 6-osiowego.
Arm— Tworzy obiekt ramienia 6-osiowego.
Ta strona dotyczy samodzielnego używania ramienia 6-osiowego z kafelkiem CTE. Aby używać ramienia 6-osiowego z innymi komponentami stanowiska roboczego CTE, takimi jak pneumatyka lub przenośniki, należy podłączyć ramię 6-osiowe do modułu EXP Brain i użyć odpowiedniej strony ARM EXP.
Akcje#
move_to#
move_to przesuwa ramię 6-osiowe do określonych współrzędnych x, y i z.
Współrzędne x, y i z opisują położenie efektora końcowego w przestrzeni trójwymiarowej. Przed tą metodą należy użyć can_arm_reach_to, jeśli położenie docelowe może znajdować się poza dostępnym obszarem roboczym ramienia 6-osiowego.
Usage:
arm.move_to(x, y, z, wait)
Parametr |
Opis |
|---|---|
|
Współrzędna x pozycji docelowej w milimetrach. |
|
Współrzędna y pozycji docelowej w milimetrach. |
|
Współrzędna z pozycji docelowej w milimetrach. |
|
Opcjonalnie. |
# 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 przesuwa ramię 6-osiowe o określoną odległość od jego bieżącej pozycji wzdłuż osi x, y i z.
Użyj tej metody, aby przesunąć się względem miejsca, w którym obecnie znajduje się efektor końcowy. Użyj can_arm_reach_inc przed tą metodą, jeśli ruch może umieścić ramię 6-osiowe poza jego dostępnym obszarem roboczym.
Usage:
arm.move_inc(x, y, z, wait)
Parametr |
Opis |
|---|---|
|
Odległość, jaką należy pokonać wzdłuż osi x, podana w milimetrach. |
|
Odległość, jaką należy pokonać wzdłuż osi Y, podana w milimetrach. |
|
Odległość, jaką należy pokonać wzdłuż osi Z, podana w milimetrach. |
|
Opcjonalnie. |
# 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 obraca efektor końcowy ramienia 6-osiowego o określony kąt odchylenia, przechyłu i pochylenia.
Orientacja opisuje sposób obracania efektora końcowego. yaw oznacza obrót wokół osi z, roll oznacza obrót wokół osi x, a pitch.
Usage:
arm.move_end_effector_to(yaw, roll, pitch, wait)
Parametr |
Opis |
|---|---|
|
Docelowy kąt odchylenia w stopniach. |
|
Docelowy kąt przechyłu w stopniach. |
|
Docelowy kąt nachylenia w stopniach. |
|
Opcjonalnie. |
# 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 obraca efektor końcowy ramienia 6-osiowego o określoną wartość odchylenia, przechyłu i pochylenia od jego bieżącej orientacji.
Użyj tej metody, aby wykonać obrót względem aktualnego odchylenia, pochylenia lub pochylenia efektora końcowego.
Usage:
arm.move_end_effector_inc(yaw, roll, pitch, wait)
Parametr |
Opis |
|---|---|
|
Zmiana odchylenia w stopniach. |
|
Zmiana kąta nachylenia w stopniach. |
|
Zmiana wysokości dźwięku w stopniach. |
|
Opcjonalnie. |
# Rotate the end effector -50 degrees in pitch
arm.move_end_effector_inc(0, 0, -50)
Mutatory#
set_speed#
set_speed ustawia prędkość ruchu używaną przez ramię 6-osiowe w metodach ruchu.
Prędkość ramienia 6-osiowego jest ustawiona na początku projektu na 50%.
Usage:
arm.set_speed(speed)
Parametr |
Opis |
|---|---|
|
Prędkość ruchu ramienia 6-osiowego od |
# Set the 6-Axis Arm speed to 30%
arm.set_speed(30)
set_end_effector_type#
set_end_effector_type ustawia typ efektora końcowego przymocowanego do ramienia 6-osiowego.
Po zmianie typu efektora końcowego, ramię 6-osiowe automatycznie dostosowuje swoje przesunięcie osi Z do wybranego narzędzia. Na początku projektu typ efektora końcowego jest ustawiony na Arm.MAGNET.
Usage:
arm.set_end_effector_type(type)
Parametr |
Opis |
|---|---|
|
Narzędzie przymocowane do ramienia 6-osiowego: |
# 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 włącza lub wyłącza narzędzie do podnoszenia magnesów.
Stan magnesu pozostaje aktywny, dopóki nie zmieni go inna metoda set_end_effector_magnet Stan magnesu jest resetowany do False na początku projektu.
Usage:
arm.set_end_effector_magnet(state)
Parametr |
Opis |
|---|---|
|
Stan narzędzia magnetycznego: |
# 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 ustawia przesunięcie osi Z używane, gdy uchwyt na pióro jest przymocowany do ramienia 6-osiowego.
Przed użyciem tej metody ustaw typ efektora końcowego na Arm.PEN Jeśli narzędzie uchwytu pióra nie jest wybrane, ta metoda nie będzie działać.
Przesunięcie pióra to odległość od górnej krawędzi uchwytu pióra do końcówki markera suchościeralnego. Na początku projektu przesunięcie pióra jest ustawione na 0Przesunięcie pióra o wartości 0 umieszcza początek osi Z ramienia w punkcie, w którym uchwyt pióra łączy się z ramieniem 6-osiowym.
Usage:
arm.set_pen_offset(zOffset)
Parametr |
Opis |
|---|---|
|
Wartość przesunięcia pióra w milimetrach. |
# 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 włącza zatrzymanie sterowania ramieniem 6-osiowym.
Po włączeniu funkcji zatrzymania sterowania ramię 6-osiowe natychmiast zatrzymuje każdy ruch i nie uruchamia żadnych dalszych metod ruchu ramienia do momentu ponownego uruchomienia projektu.
Usage:
arm.set_control_stop(state)
Parametr |
Opis |
|---|---|
|
Opcjonalnie. |
# Stop the 6-Axis Arm and prevent further movement
arm.set_control_stop()
set_timeout#
set_timeout ustawia wartość limitu czasu używaną podczas przesuwania ramienia 6-osiowego.
Jeśli ruch nie zakończy się przed upływem limitu czasu, projekt przechodzi do następnego wiersza kodu.
Usage:
arm.set_timeout(timeout, units)
Parametr |
Opis |
|---|---|
|
Nowa wartość limitu czasu. |
|
Opcjonalnie. Jednostka czasu: |
# Set the 6-Axis Arm timeout to 2 seconds
arm.set_timeout(2, SECONDS)
Getters#
is_done#
is_done zwraca informację o tym, czy ramię 6-osiowe zakończyło ruch.
Ta metoda jest użyteczna po wywołaniu metody ruchu z wait=False.
True— Ramię 6-osiowe zakończyło ruch.False— Ramię 6-osiowe nadal się porusza.
Usage:
arm.is_done()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# 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 zwraca aktualną pozycję x efektora końcowego w milimetrach.
Za pomocą tej metody można odczytać, gdzie aktualnie znajduje się efektor końcowy na osi x.
Usage:
arm.get_x()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current x position of the 6-Axis Arm
brain.print(arm.get_x())
get_y#
get_y zwraca aktualną pozycję y efektora końcowego w milimetrach.
Za pomocą tej metody można odczytać aktualne położenie efektora końcowego na osi Y.
Usage:
arm.get_y()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current y position of the 6-Axis Arm
brain.print(arm.get_y())
get_z#
get_z zwraca aktualną pozycję z efektora końcowego w milimetrach.
Za pomocą tej metody można odczytać, gdzie aktualnie znajduje się efektor końcowy wzdłuż osi Z.
Usage:
arm.get_z()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current z position of the 6-Axis Arm
brain.print(arm.get_z())
get_pitch#
get_pitch zwraca aktualny skok efektora końcowego w stopniach.
Usage:
arm.get_pitch()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current pitch of the end effector
brain.print(arm.get_pitch())
get_roll#
get_roll zwraca aktualny obrót efektora końcowego w stopniach.
Usage:
arm.get_roll()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current roll of the end effector
brain.print(arm.get_roll())
get_yaw#
get_yaw zwraca aktualne odchylenie efektora końcowego w stopniach.
Usage:
arm.get_yaw()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current yaw of the end effector
brain.print(arm.get_yaw())
can_arm_reach_to#
can_arm_reach_to zwraca informację, czy ramię 6-osiowe może przesunąć efektor końcowy do określonej współrzędnej x, y i z.
Użyj tej metody, aby sprawdzić pozycję docelową przed użyciem move_to.
True— Ramię 6-osiowe może osiągnąć żądaną pozycję.False— Ramię 6-osiowe nie może osiągnąć żądanej pozycji.
Usage:
arm.can_arm_reach_to(x, y, z)
Parametr |
Opis |
|---|---|
|
Współrzędna x pozycji docelowej w milimetrach. |
|
Współrzędna y pozycji docelowej w milimetrach. |
|
Współrzędna z pozycji docelowej w milimetrach. |
# 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 zwraca informację, czy ramię 6-osiowe może przesunąć efektor końcowy o określoną odległość x, y i z od jego bieżącej pozycji.
Użyj tej metody, aby sprawdzić względny ruch przed użyciem move_inc.
True— Ramię 6-osiowe może wykonać żądany ruch.False— Ramię 6-osiowe nie może wykonać żądanego ruchu.
Usage:
arm.can_arm_reach_inc(x, y, z)
Parametr |
Opis |
|---|---|
|
Odległość, jaką należy pokonać wzdłuż osi x, podana w milimetrach. |
|
Odległość, jaką należy pokonać wzdłuż osi Y, podana w milimetrach. |
|
Odległość, jaką należy pokonać wzdłuż osi Z, podana w milimetrach. |
# 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 zwraca informację, czy efektor końcowy może obracać się do określonego odchylenia, przechyłu i pochylenia.
Użyj tej metody, aby sprawdzić orientację celu przed użyciem move_end_effector_to.
True— Efektor końcowy może osiągnąć żądaną orientację.False— Efektor końcowy nie może osiągnąć żądanej orientacji.
Usage:
arm.can_end_effector_reach_to(yaw, roll, pitch)
Parametr |
Opis |
|---|---|
|
Docelowy kąt odchylenia w stopniach. |
|
Docelowy kąt przechyłu w stopniach. |
|
Docelowy kąt nachylenia w stopniach. |
# 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 zwraca informację, czy efektor końcowy może obracać się o określoną wartość odchylenia, przechyłu i pochylenia od bieżącej orientacji.
Użyj tej metody, aby sprawdzić względny ruch orientacji przed użyciem move_end_effector_inc.
True— Efektor końcowy może wykonać żądany obrót.False— Efektor końcowy nie może wykonać żądanego obrotu.
Usage:
arm.can_end_effector_reach_inc(yaw, roll, pitch)
Parametr |
Opis |
|---|---|
|
Zmiana odchylenia w stopniach. |
|
Zmiana kąta nachylenia w stopniach. |
|
Zmiana wysokości dźwięku w stopniach. |
# 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 zwraca wartość limitu czasu używaną przez metody ruchu ramienia 6-osiowego w milisekundach.
Usage:
arm.get_timeout()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print the current movement timeout in milliseconds
brain.print(arm.get_timeout())
is_connected#
is_connected zwraca informację, czy ramię 6-osiowe jest połączone z mózgiem.
True— Ramię 6-osiowe jest połączone z mózgiem.False— Ramię 6-osiowe nie jest połączone z mózgiem.
Usage:
arm.is_connected()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Print whether the 6-Axis Arm is connected
brain.print(arm.is_connected())
Wywołania zwrotne#
control_stopped#
control_stopped rejestruje funkcję, która jest uruchamiana po włączeniu funkcji Control Stop.
Ta metoda zwraca instancję klasy Event.
Usage:
arm.control_stopped(callback, arg)
Parametr |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która jest uruchamiana po włączeniu zatrzymania sterowania. |
|
Opcjonalnie. Krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Używanie funkcji z parametrami. |
# 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)
Konstruktorzy#
Arm#
Arm tworzy obiekt ramienia 6-osiowego.
Usage:
Arm()
Parametry |
Opis |
|---|---|
Ten konstruktor nie ma żadnych parametrów. |
# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()