1 minute read

Preparación del ejercicio

En primer lugar, he cambiado la forma de pasar la odometría del robot a GUI, antes lo hacía mediante memoria compartida y ahora utilizo una variable compartida entre HAL y GUI.

En segundo lugar, he implementado una función showPath() para mostrar la ruta en el mapa. Esta función espera recibir un array bidimensional con las coordenadas de la ruta similar a como se hacía en el ejercicio Global Navigation.

Función showPath()

Por último, he añadido la descarga e instalación de la librería OMPL en el Dockerfile de dependencias.

Solución de referencia

La última tarea es generar una solución de referencia para el ejercicio, pero me estoy enfrentando al problema de que no llega a encontrar los miembros de los módulos de la librería OMPL. Por ejemplo, cuando quiero instanciar el espacio de estado con la función RealVectorStateSpace() salta el siguiente mensaje de error:

Module 'ompl.base' has no 'RealVectorStateSpace' member"

El código que he utilizado para hacer esta prueba es:

from GUI import GUI
from HAL import HAL
import cv2
from ompl import util as ou
from ompl import base as ob
from ompl import geometric as og
from functools import partial

fname = "/RoboticsAcademy/exercises/static/exercises/amazon_warehouse_newmanager/resources/images/map.png"
# Obtener dimensiones de la imagen en formato png
im = cv2.imread(fname)

space = ob.RealVectorStateSpace()

while True:
  # Enter iterative code!

Error

Como consecuencia de este error tampoco llega a encontrar los miembros de la librería OpenCV, cosa que no ocurre si no se llega a utilizar la librería OMPL como se puede ver en la siguiente imagen:

cv2 sin error