Braço de 6 eixos#
Introdução#
O braço robótico de 6 eixos da VEX movimenta um atuador final no espaço tridimensional, controla a orientação desse atuador e funciona com ferramentas acopladas, como a ferramenta de recolha magnética ou o suporte para caneta.
Segue-se uma lista de todos os métodos disponíveis:
Ações — Mova o braço de 6 eixos para as posições ou orientações pretendidas.
move_to— Move o efetor final para uma coordenada x, y e z especificada.move_inc— Move o efetor final por uma distância especificada a partir da sua posição atual.move_end_effector_to— Roda o efetor final para uma orientação de guinada, rotação e inclinação especificada.move_end_effector_inc— Roda o efetor final por uma quantidade especificada de guinada, rotação e inclinação.
Mutadores — Configure os movimentos, as ferramentas e os ajustes de controlo.
set_speed— Define a velocidade de movimento utilizada pelo braço de 6 eixos.set_end_effector_type— Define o tipo de efetor final ligado ao braço de 6 eixos.set_end_effector_magnet— Engata ou liberta a Ferramenta de Recolha Magnética.set_pen_offset— Define o deslocamento do eixo z utilizado com a Ferramenta de Suporte de Canetas.set_control_stop— Activa a paragem de controlo para o braço de 6 eixos.set_timeout— Define o tempo limite utilizado pelos métodos de movimento do braço de 6 eixos.
Getters — Devolvem o estado do movimento, a posição, a orientação e os valores de ligação.
is_done— Retorna se o braço de 6 eixos terminou de se mover.get_x— Retorna a posição x actual do efetor final.get_y— Retorna a posição y atual do efetor final.get_z— Retorna a posição z atual do efetor final.get_pitch— Retorna o tom atual do efetor final.get_roll— Retorna o roll atual do efetor final.get_yaw— Retorna o yaw atual do efetor final.can_arm_reach_to— Retorna se o braço de 6 eixos consegue atingir uma posição especificada.can_arm_reach_inc— Retorna se o braço de 6 eixos se pode mover uma distância especificada.can_end_effector_reach_to— Retorna se o efetor final pode atingir uma orientação especificada.can_end_effector_reach_inc— Retorna se o efetor final pode rodar por uma quantidade especificada.get_timeout— Retorna o valor de tempo limite actual utilizado pelos métodos de movimento.is_connected— Retorna se o Braço de 6 Eixos está ligado ao Cérebro.
Callbacks — Executam funções quando ocorrem eventos de ativação do mecanismo de disparo.
control_stopped— Regista uma função para executar quando a paragem de controlo está activada.
Construtor — Crie manualmente um objeto de braço de 6 eixos.
Arm— Cria um objeto de braço de 6 eixos.
Esta página é para utilizar o Braço de 6 Eixos sozinho com o CTE Tile. Para utilizar o Braço de 6 Eixos com outros componentes da CTE Workcell, como Pneumáticos ou Transportadores, ligue o Braço de 6 Eixos a um EXP Brain e utilize a página EXP Arm correspondente.
Ações#
move_to#
move_to move o braço de 6 eixos para uma coordenada x, y e z especificada.
As coordenadas x, y e z descrevem a posição do efetor final no espaço tridimensional. Utilize can_arm_reach_to antes deste método se a posição alvo puder estar fora do espaço de trabalho alcançável do Braço de 6 Eixos.
Usage:
arm.move_to(x, y, z, wait)
Parâmetro |
Descrição |
|---|---|
|
A coordenada x da posição do alvo em milímetros. |
|
A coordenada y da posição do alvo em milímetros. |
|
A coordenada z da posição do alvo em milímetros. |
|
Opcional. |
# 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 move o braço de 6 eixos por uma distância especificada a partir da sua posição actual ao longo dos eixos x, y e z.
Utilize este método para se mover em relação ao local onde o efetor final está agora. Utilize can_arm_reach_inc antes deste método se o movimento puder colocar o Braço de 6 Eixos fora do seu espaço de trabalho alcançável.
Usage:
arm.move_inc(x, y, z, wait)
Parâmetro |
Descrição |
|---|---|
|
A distância a percorrer ao longo do eixo x, em milímetros. |
|
A distância a percorrer ao longo do eixo dos y, em milímetros. |
|
A distância a percorrer ao longo do eixo z, em milímetros. |
|
Opcional. |
# 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 roda o efetor final do braço de 6 eixos para uma orientação específica de guinada, rotação e inclinação.
A orientação descreve como o efetor final é rodado. yaw roda em torno do eixo z, roll roda em torno do eixo x e pitch roda em torno do eixo y.
Usage:
arm.move_end_effector_to(yaw, roll, pitch, wait)
Parâmetro |
Descrição |
|---|---|
|
O ângulo de guinada alvo, em graus. |
|
O ângulo de inclinação alvo, em graus. |
|
O ângulo de inclinação alvo, em graus. |
|
Opcional. |
# 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 roda o efetor final do braço de 6 eixos numa quantidade especificada de guinada, rotação e inclinação a partir da sua orientação atual.
Utilize este método para rodar em relação à guinada, rotação ou inclinação atual do efetor final.
Usage:
arm.move_end_effector_inc(yaw, roll, pitch, wait)
Parâmetro |
Descrição |
|---|---|
|
A variação do ângulo de guinada, em graus. |
|
A mudança de inclinação, em graus. |
|
A mudança de tom, em graus. |
|
Opcional. |
# Rotate the end effector -50 degrees in pitch
arm.move_end_effector_inc(0, 0, -50)
Mutantes#
set_speed#
set_speed define a velocidade de movimento utilizada pelo braço de 6 eixos para os métodos de movimento.
A velocidade do braço de 6 eixos é definida para 50% no início de um projeto.
Usage:
arm.set_speed(speed)
Parâmetro |
Descrição |
|---|---|
|
A velocidade de movimento do braço de 6 eixos, de |
# Set the 6-Axis Arm speed to 30%
arm.set_speed(30)
set_end_effector_type#
set_end_effector_type define o tipo de efetor final ligado ao braço de 6 eixos.
Quando o tipo de ferramenta final é alterado, o braço de 6 eixos ajusta automaticamente o seu deslocamento em z para corresponder à ferramenta selecionada. O tipo de ferramenta final é definido como Arm.MAGNET no início de um projeto.
Usage:
arm.set_end_effector_type(type)
Parâmetro |
Descrição |
|---|---|
|
A ferramenta acoplada ao braço de 6 eixos é: |
# 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 engrena ou desengata a ferramenta de recolha magnética.
O estado do íman permanece ativo até que outro método set_end_effector_magnet o altere. O estado do íman é reposto em False no início de um projeto.
Usage:
arm.set_end_effector_magnet(state)
Parâmetro |
Descrição |
|---|---|
|
O estado da Ferramenta de Recolha Magnética é: |
# 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 define o deslocamento do eixo z utilizado quando a ferramenta de suporte da caneta está ligada ao braço de 6 eixos.
Defina o tipo de atuador final para Arm.PEN antes de utilizar este método. Se a Ferramenta Suporte de Canetas não estiver selecionada, este método não terá qualquer efeito.
O deslocamento da caneta é a distância entre a parte superior do suporte da caneta e a ponta do marcador de quadro branco. No início de um projeto, o deslocamento da caneta é definido como 0Um deslocamento da caneta de 0 posiciona a origem do eixo z do braço no ponto onde o suporte da caneta se liga ao braço de 6 eixos.
Usage:
arm.set_pen_offset(zOffset)
Parâmetro |
Descrição |
|---|---|
|
O valor de deslocamento da caneta em milímetros. |
# 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#
O comando set_control_stop activa a paragem de controlo para o braço de 6 eixos.
Quando a paragem de controlo está ativada, o braço de 6 eixos interrompe imediatamente qualquer movimento e não executará mais nenhum método de movimento do braço até que o projeto seja reiniciado.
Usage:
arm.set_control_stop(state)
Parâmetro |
Descrição |
|---|---|
|
Opcional. |
# Stop the 6-Axis Arm and prevent further movement
arm.set_control_stop()
set_timeout#
set_timeout define o valor de tempo limite utilizado ao mover o braço de 6 eixos.
Se uma ação não for concluída antes de ser atingido o tempo limite, o projeto continua para a linha de código seguinte.
Usage:
arm.set_timeout(timeout, units)
Parâmetro |
Descrição |
|---|---|
|
O novo valor de tempo limite. |
|
Opcional. A unidade de tempo: |
# Set the 6-Axis Arm timeout to 2 seconds
arm.set_timeout(2, SECONDS)
Getters#
is_done#
is_done retorna se o braço de 6 eixos tiver terminado de se mover.
Este método é útil após um método de movimento ser chamado com wait=False.
True— O braço de 6 eixos terminou de se mover.False— O braço de 6 eixos ainda se move.
Usage:
arm.is_done()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# 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 devolve a posição x atual do efetor final em milímetros.
Utilize este método para ler a posição atual do efetor final ao longo do eixo x.
Usage:
arm.get_x()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current x position of the 6-Axis Arm
brain.print(arm.get_x())
get_y#
get_y devolve a posição y atual do efetor final em milímetros.
Utilize este método para ler a posição atual do efetor final ao longo do eixo y.
Usage:
arm.get_y()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current y position of the 6-Axis Arm
brain.print(arm.get_y())
get_z#
get_z devolve a posição z atual do efetor final em milímetros.
Utilize este método para ler a posição atual do efetor final ao longo do eixo z.
Usage:
arm.get_z()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current z position of the 6-Axis Arm
brain.print(arm.get_z())
get_pitch#
get_pitch devolve a inclinação atual do efetor final em graus.
Usage:
arm.get_pitch()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current pitch of the end effector
brain.print(arm.get_pitch())
get_roll#
get_roll devolve a rotação atual do efetor final em graus.
Usage:
arm.get_roll()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current roll of the end effector
brain.print(arm.get_roll())
get_yaw#
get_yaw devolve o ângulo de guinada atual do efetor final em graus.
Usage:
arm.get_yaw()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current yaw of the end effector
brain.print(arm.get_yaw())
can_arm_reach_to#
valor para can_arm_reach_to indica se o braço de 6 eixos pode mover o efetor final para uma coordenada x, y e z especificada.
Utilize este método para verificar uma posição alvo antes de utilizar move_to.
True— O braço de 6 eixos consegue alcançar a posição solicitada.False— O braço de 6 eixos não consegue alcançar a posição solicitada.
Usage:
arm.can_arm_reach_to(x, y, z)
Parâmetro |
Descrição |
|---|---|
|
A coordenada x da posição do alvo em milímetros. |
|
A coordenada y da posição do alvo em milímetros. |
|
A coordenada z da posição do alvo em milímetros. |
# 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 retorna se o braço de 6 eixos pode mover o efetor final uma distância x, y e z especificada a partir da sua posição atual.
Utilize este método para verificar um movimento relativo antes de utilizar move_inc.
True— O braço de 6 eixos pode fazer o movimento solicitado.False— O braço de 6 eixos não pode executar o movimento solicitado.
Usage:
arm.can_arm_reach_inc(x, y, z)
Parâmetro |
Descrição |
|---|---|
|
A distância a percorrer ao longo do eixo x, em milímetros. |
|
A distância a percorrer ao longo do eixo dos y, em milímetros. |
|
A distância a percorrer ao longo do eixo z, em milímetros. |
# 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#
valor para can_end_effector_reach_to indica se o efetor final pode rodar para uma orientação específica de guinada, rotação e inclinação.
Utilize este método para verificar uma orientação alvo antes de utilizar move_end_effector_to.
True— O efetor final consegue atingir a orientação solicitada.False— O efetor final não consegue alcançar a orientação solicitada.
Usage:
arm.can_end_effector_reach_to(yaw, roll, pitch)
Parâmetro |
Descrição |
|---|---|
|
O ângulo de guinada alvo, em graus. |
|
O ângulo de inclinação alvo, em graus. |
|
O ângulo de inclinação alvo, em graus. |
# 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 retorna se o efetor final pode rodar por uma quantidade especificada de guinada, rotação e inclinação a partir da sua orientação atual.
Utilize este método para verificar um movimento de orientação relativa antes de utilizar move_end_effector_inc.
True— O efetor final pode fazer a rotação solicitada.False— O efetor final não consegue realizar a rotação solicitada.
Usage:
arm.can_end_effector_reach_inc(yaw, roll, pitch)
Parâmetro |
Descrição |
|---|---|
|
A variação do ângulo de guinada, em graus. |
|
A mudança de inclinação, em graus. |
|
A mudança de tom, em graus. |
# 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 devolve o valor de tempo limite utilizado pelos métodos de movimento do braço de 6 eixos em milissegundos.
Usage:
arm.get_timeout()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print the current movement timeout in milliseconds
brain.print(arm.get_timeout())
is_connected#
is_connected retorna se o braço de 6 eixos está ligado ao cérebro.
True— O braço de 6 eixos está ligado ao cérebro.False— O braço de 6 eixos não está ligado ao cérebro.
Usage:
arm.is_connected()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Print whether the 6-Axis Arm is connected
brain.print(arm.is_connected())
Retornos de chamada#
control_stopped#
control_stopped regista uma função que é executada quando a paragem de controlo está activada.
Este método retorna uma instância da classe Event.
Usage:
arm.control_stopped(callback, arg)
Parâmetro |
Descrição |
|---|---|
|
Uma função previamente definida que é executada quando a paragem de controlo é activada. |
|
Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar funções com parâmetros para obter mais informações. |
# 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)
Construtores#
Arm#
O comando Arm cria um objeto de braço de 6 eixos.
Usage:
Arm()
Parâmetros |
Descrição |
|---|---|
Este construtor não possui parâmetros. |
# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()