Funciones del busca objetos

HE puesto el post en otra categoría, pero lo pongo por aquí mejor.

No entiendo muy bien las funciones del busca objetos. ¿Qué parámetros se le tiene que pasar? Pone que una posición y un color (“get_object_color(posicion,color)”), pero ¿la posición de qué?

¿Podríais ponerme un ejemplo?

Gracias!
Un saludo.

Hola!

Estamos actualizando esa función, por lo que ya no va a ser necesario pasarle una posición, como es más apropiado. Estará disponible en los próximos días!

Sergio

Hola, Sergio.
¿Cómo va esta función?¿funciona ya?

Un saludo.

Buenas!

Ahora la función la función ya no necesita el argumento de la posición como indicaba Sergio. Ahora basta con indicar el color. Lo que devuelve a función es un diccionario con lo campos “areas”, que indica el número de objetos que hay y “detalles” que está compuesto por una lista con los distintos objetos. Cada entrada de esa lista tiene un diccionario con “centro” (con las coordenadas “x,y”), “area” (con el área del objeto), y “esquinas” (con las coordenadas de las esquinas).

Para simplificarlo, te pongo un ejemplo: {"areas": 1, detalles: [{center: [x,y], area: _, corner1: [p1.x, p1.y], corner2:[p2.x, p2.y]}]".
En caso de que el robot no detecte ningún objeto, el campo áreas será 0.

Quedo a tu disposición para cualquier duda que tengas.

Un saludo!

Me sigue sin funcionar. ¿Sigue llamándose igual?:

Buenas!
Ya está arreglada la función que comentabas. En castellano puedes llamar a la función mediante API.dame_objeto_de_color("XXXX"). En inglés la función ahora se llama API.get_colored_object("XXXX"). Lo que devuelve esta función es una estructura de datos con el siguiente aspecto:

{"areas": número_de_áreas, "detalles": [{"area": tamaño_del_área, "centro": [centro_X, centro_Y], "esquina1":[esquina_X, esquina_Y], "esquina2": [esquina_X, esquina_Y]}]}

Como puedes ver, devuelve un diccionario en Python con la cantidad de áreas encontradas para el color que quieras y una lista con información de cada una de las áreas que ha encontrado (tamaño, centro y esquinas).
En inglés los campos serían:

  • detalles => details
  • centro => center
  • esquina1 => border1
  • esquina2 => border2

Si tienes cualquier otra duda con respecto a esto, coméntalo y responderemos lo antes posible.

Un saludo!

Pablo

Hola:
Gracias!. Aunque sigue sin funcionarme. :sweat_smile: ¿Qué estoy haciendo mal?
import HAL, time, consoleAPI
HAL.despegar()
HAL.bajar_hasta(2.5)
x=API.dame_objeto_de_color(“blanco”)
consoleAPI.print_console(x)
while True:
HAL.girar_izquierda(0.01)
time.sleep(0.3)
x=API.dame_objeto_de_color(“blanco”)
consoleAPI.print_console(x)

Me sale el error: “NameError: name ‘API’ is not defined” y girar sin imprimir.
Si cambio “API” por “HAL” se me queda parado justo donde lee por primera vez la función.
Un saludo.

Hola!

Hemos mejorado la función de dame_objecto_de_color. Te dejo tu código con este sistema, probado que funciona. Los colores ahora mismo deben ir en inglés y la forma de escribirlo es un poco diferente HAL.dame_objeto_de_color en vez de API.dame_objeto_de_color

import HAL, time
HAL.despegar()
HAL.bajar_hasta(2.5)
x=HAL.dame_objeto_de_color(“white”)
print(x)
while True:
    HAL.girar_izquierda(0.01)
    time.sleep(0.3)
    x=HAL.dame_objeto_de_color(“white”)
    print(x)

Un saludo