Introducción a la librería robobpy

Robobo.py es la librería utilizada para crear programas para el robot educativo Robobo en el lenguaje Python.

En esta sección podrás encontrar documentación básica para empezar a utilizar esta librería, así como algunos ejercicios de muestra.

Clases y enumerados requeridos 

En algunos casos, los parámetros que reciben los métodos o los valores que devuelven, son clases o enumerados que se encuentran en otros módulos y por tanto tendremos que añadir un import de las clases o enumerados que necesitemos. 

En cada grupo de métodos se describen de forma detallada las clases y los enumerados necesarios para la utilización de ese grupo de métodos. 

Por ejemplo, Robobo tiene varios infrarrojos para detectar la distancia a los objetos cercanos. Estos infrarrojos están almacenados en el enumerado IR. El Método readIRSensor sirve para leer los valores detectados por un infrarrojo, pero es necesario especificar qué sensor infrarrojo se desea leer. Para eso se utiliza el enumerado IR, y antes de utilizarlo es necesario añadir la siguiente línea: 

from robobopy.utls.IR import IR

Modos de ejecución 

Los métodos de Robobo, permiten en la mayoría de los casos, dos modos de ejecución: bloqueante y no bloqueante: 

        • Una instrucción es bloqueante cuando evita que se realice otra hasta que la instrucción en curso termine su ejecución completamente. 
        • Una instrucción es no bloqueante cuando permite que se ejecute otra al mismo tiempo. Por ejemplo: el robot avanza hacia delante (instrucción de movimiento) al mismo tiempo gira la cabeza (instrucción de movimiento) y comunica información a través del altavoz (instrucción de producción de sonido). 

Método wait 

El método wait es un método especial que hacer que Robobo espere durante el tiempo indicado antes de ejecutar la siguiente instrucción. A lo largo de este manual se utiliza en muchos de los ejemplos. 

wait(seconds)

Pausa el programa durante el tiempo especificado. Después de ese tiempo, se ejecuta la siguiente instrucción.

Parámetros:

  • seconds (float): El tiempo en segundos. Los valores deben ser positivos.

    Ejemplo de Uso

    El siguiente programa hace que Robobo se mueva en línea recta hacia delante durante dos segundos; luego espera durante dos segundos y, por último, se vuelve a mover durante dos segundos. 

    from robobopy.Robobo import Robobo
    from robobopy.utils.Wheels import Wheels
    
    rob = Robobo("localhost") 
    rob.connect()
    
    rob.moveWheelsByTime(10, 10, 2)
    rob.wait(2)
    rob.moveWheelsByTime(10, 10, 2)

    Módulos habilitados y deshabilitados 

    Un módulo agrupa un conjunto de métodos que puede utilizar Robobo. Para mejorar el rendimiento, algunos módulos están deshabilitados por defecto. Para utilizar estos módulos, es necesario activarlos. Después de utilizarlos, es recomendable deshabilitarlos. 

    Por ejemplo, la detección de ArUco está deshabilitada por defecto. Para utilizar cualquier método relacionado con la detección de ArUcos, como el Método readArucoTag, primero es necesario habilitar el módulo con el método startArUcoTagDetection. Después de trabajar con la detección de ArUcos, se puede deshabilitar con el método stopArUcoTagDetection. 

    Los módulos habilitados por defecto son: 

          • Detección de caras. 
          • Detección de blobs. 
          • Detección de QRs.

    Los módulos deshabilitados por defecto son:

          • Stream de la cámara. 
          • Detección de líneas. 
          • Deteccion de carriles.
          • Reconocimiento de objetos.
          • Deteccion de ArUcos.

    FALTAN LOS PUNTOS 3.8 Y 3.9? (coordenadas de la pantalla y cambios persistentes)

    Coordenadas de pantalla

     

    En algunos métodos se utilizan coordenadas para indicar la posición de ciertos elementos dentro de la pantalla.

    Las coordenadas de la pantalla tienen su origen en la esquina superior izquierda de la pantalla, como se ve en la figura siguiente. El eje X sigue el borde superior de la pantalla, de izquierda a derecha. Toma valores entre 0 y 100, siendo 0 el borde izquierdo y 100 el borde derecho de la pantalla. El eje Y sigue el borde izquierdo de la pantalla, de arriba abajo. Toma valores entre 0 y 100, siendo 0 el borde superior y 100 el borde inferior de la pantalla.

    Cambios persistentes

     

    Algunos métodos afectan al hardware de Robobo. Los cambios persistentes permanecen incluso cuando el programa termina y hasta que Robobo se reinicia, momento en el que toma de nuevo todos los valores por defecto.

    Por ejemplo, la detección de ArUcos está deshabilitada por defecto y se habilita con el método startArUcoTagDetection. A partir de ese momento, se puede utilizar cualquier método relacionado con la detección de ArUcos, como el método readArucoTag. Aunque finalice el programa, no será necesario habilitar de nuevo la detección de ArUcos hasta que Robobo se reinicie. Una vez reiniciado, el módulo estará de nuevo deshabilitado.

    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.