5. | Métodos de Sensorización

5.15 Detección de marcadores ArUco

Introducción

Robobo puede detectar marcadores ArUco. Para conocer los detalles de este proceso, se recomienda consultar:

Elementos de programación

5.15.1 Clase Tag

Representa un tag ArUco detectado por Robobo, definido por cuatro esquinas leídas en sentido horario.

Atributos:

  • cor1 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la primera esquina.
  • cor2 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la segunda esquina.
  • cor3 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la tercera esquina.
  • cor4 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la cuarta esquina.
  • tvects (dict): Diccionario con ‘x’, ‘y’ y ‘z’, componentes del vector de traslación.
  • rvects (dict): Diccionario con ‘x’, ‘y’ y ‘z’, componentes del vector de rotación.
  • id (int): Identificador del tag ArUco.

5.15.2 Método startArUcoTagDetection

startArUcotagDetection()
Habilita la detección de ArUco.
La detención ArUco está deshabilitada por defecto.
Este cambio es persistente.

Ejemplo de Uso

El siguiente programa hace que Robobo habilite la detección de marcadores ArUco para poder usarla posteriormente.

from robobopy.Robobo import Robobo

rob = Robobo('localhost')
rob.connect()

rob.startArUcoTagDetection()

5.15.3 Método stopArUcoTagDetection

stopArUcoTagDetection()
Deshabilita la detección de marcadores ArUco.
La detención ArUco está deshabilitada por defecto.
Este cambio es persistente.

Ejemplo de Uso

El siguiente programa hace que Robobo deshabilite la lectura de marcadores ArUco. De esta forma, no es posible usar este módulo hasta que se habilite de nuevo.

from robobopy.Robobo import Robobo

rob = Robobo('localhost')
rob.connect()

rob.stopArUcoTagDetection()

5.15.4 Método readArucoTag

readArUcotag()

Lee el último marcador ArUco detectado.

Devuelve:

• El marcador ArUco (Tag). Ver Clase Tag.

Ejemplo de Uso

El siguiente programa hace que Robobo avise cuando lea el ID de un marcador ArUco o diga que no ha detectado ninguno en caso contrario.

from robobopy.Robobo import Robobo

rob = Robobo('localhost')
rob.connect()

while True:
    rob.wait(0.1)
    if rob.readArucoTag().id != '':
        print(f'Aruco detectado con ID: {rob.readArucoTag().id}')
    else:
        print('Aruco no detectado')

5.15.5 Método setArucoTagSize

sertArUcoTagSize(size)

Establece la longitud del lado de la etiqueta ArUco que será detectada. Es importante que este valor
se ajuste al tamaño real de la etiqueta utilizada, ya que esto se utiliza para calcular la distancia de
Robobo a la etiqueta.

Parámetros:

     • size (int): Tamaño del lado del marcador ArUco en milímetros.

Este cambio es persistente.

.

Ejemplo de Uso

En este ejemplo, se varía el tamaño del tag detectado a 100 milímetros y acto seguido se comienza a leer de forma indefinida el ID de ArUco detectado en voz alta.

from robobopy.Robobo import Robobo

rob = Robobo('localhost')
rob.connect()

rob.setArucoTagSize(100)

while True:
    rob.wait(1)
    rob.sayText(f'Aruco detectado con ID: {rob.readArucoTag().id}')

5.15.6 Método whenArucoTagIsDetected

whenArUcotaglsDetected(callback)

Establece la función callback que se llama cuando se detecta un marcador ArUco.

     • callback (fun): La función callback a ser llamada.

Ejemplo de Uso

El siguiente programa hace que Robobo diga que ha detectado un nuevo marcador ArUco y diga en voz al

from robobopy.Robobo import Robobo

def fun():
    rob.sayText(f'Aruco detectado con ID: {rob.readArucoTag().id}')

rob = Robobo('localhost')
rob.connect()

rob.startArUcoTagDetection()
rob.whenArucoTagIsDetected(fun)

# el programa se mantiene en ejecución continua
while True:
    rob.wait(0.1)

5. | Métodos de sensorización

5.15 Detección de marcadores ArUco

Introducción

Robobo puede detectar marcadores ArUco. Para conocer los detalles de este proceso, se recomienda consultar:

Elementos de programación

5.15.1 Clase Tag

Representa un tag ArUco detectado por Robobo, definido por cuatro esquinas leídas en sentido horario.

Atributos:

• cor1 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la primera esquina.
• cor2 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la segunda esquina.
• cor3 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la tercera esquina.
• cor4 (dict): Diccionario con ‘x’ e ‘y’, coordenadas de la cuarta esquina.
• tvects (dict): Diccionario con ‘x’. ‘y’ y ‘z’, componentes del vector de traslación.
• rvects (dict): Diccionario con ‘x’. ‘y’ y ‘z’, componentes del vector de rotación.
• id (int) Identificador del tag ArUco.

5.15.2 Método startArUcoTagDetection

startArUcotagDetection()
Habilita la detección de ArUco.
La detención ArUco está deshabilitada por defecto.
Este cambio es persistente.

Ejemplo de Uso

El siguiente programa hace que Robobo habilite la detección de marcadores ArUco para poder usarla posteriormente.

from robobopy.Robobo import Robobo
rob = Robobo('localhost')
rob.connect()
rob.startArUcoTagDetection()

5.15.3 Método stopArUcoTagDetection

stopArUcoTagDetection()
Deshabilita la detección de marcadores ArUco.
La detención ArUco está deshabilitada por defecto.
Este cambio es persistente.

Ejemplo de Uso

El siguiente programa hace que Robobo deshabilite la lectura de marcadores ArUco. De esta forma, no es posible usar este módulo hasta que se habilite de nuevo.

from robobopy.Robobo import Robobo
rob = Robobo('localhost')
rob.connect()

rob.stopArUcoTagDetection()

5.15.4 Método readArucoTag

readArUcotag()

Lee el último marcador ArUco detectado.

Devuelve:

• El marcador ArUco (Tag). Ver Clase Tag.

Ejemplo de Uso

El siguiente programa hace que Robobo avise cuando lea el ID de un marcador ArUco o diga que no ha detectado ninguno en caso contrario.

from robobopy.Robobo import Robobo

rob = Robobo('localhost')
rob.connect()

while True:
rob.wait(0.1)
if rob.readArucoTag().id != '':
print(f'Aruco detectado con ID: {rob.readArucoTag().id}')
else:
print('Aruco no detectado')

5.15.5 Método setArucoTagSize

sertArUcoTagSize(size)

Establece la longitud del lado de la etiqueta ArUco que será detectada. Es importante que este valor
se ajuste al tamaño real de la etiqueta utilizada, ya que esto se utiliza para calcular la distancia de
Robobo a la etiqueta.

Parámetros:

     • size (int): Tamaño del lado del marcador ArUco en milímetros.

Este cambio es persistente.

.

Ejemplo de Uso

En este ejemplo, se varía el tamaño del tag detectado a 100 milímetros y acto seguido se comienza a leer de forma indefinida el ID de ArUco detectado en voz alta.

from robobopy.Robobo import Robobo

rob = Robobo('localhost')
rob.connect()

rob.setArucoTagSize(100)

while True:
rob.wait(1)
rob.sayText(f'Aruco detectado con ID: {rob.readArucoTag().id}')

5.15.6 Método whenArucoTagIsDetected

whenArUcotaglsDetected

Establece la función callback que se llama cuando se detecta un marcador ArUco.

• callback (fun): La función callback a ser llamada.

Ejemplo de Uso

El siguiente programa hace que Robobo diga que ha detectado un nuevo marcador ArUco y diga en voz alta su ID haciendo uso del método WhenArucoTagIsDetected.

from robobopy.Robobo import Robobo

def fun():
rob.sayText(f'Aruco detectado con ID: {rob.readArucoTag().id}')

rob = Robobo('localhost')
rob.connect()

rob.startArUcoTagDetection()
rob.whenArucoTagIsDetected(fun)

# el programa se mantiene en ejecución continua

while True:
rob.wait(0.1)
Robobo
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.