Algoritmo
Algoritmo
Autor: Tutor:
Dayán Jr. Méndez Vásquez PhD. Winston S. Percybrooks B.
Noviembre 2022
Sistema de navegación para un vehículo autónomo de superficie (ASV) multipropósito, ©
Noviembre 2022
Autor:
Dayán Jr. Méndez Vásquez
Tutor:
PhD. Winston S. Percybrooks B.
Universidad:
Universidad del Norte, Barranquilla, Colombia
ii
CONTENIDO
Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Firma de Autoría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
1 introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Pregunta Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Enfoque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 marco teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Vehículos autónomos de superficie . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Sistema de navegación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Cinemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Sistema de localización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4.1 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Sistema de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Planificación de ruta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7 Sistema Operativo Robótico(ROS) . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.8 Aprendizaje por refuerzo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.8.1 Q-learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8.2 Deep Q-Network (DQN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.8.3 Double DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.8.4 Dueling DQN (DDQN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Vehículos no tripulados de superficie . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 Tabla resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4 método propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1 Modelo ASV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
iii
4.2 Escenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Representación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Sistema de Navegación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.1 Sistema de localización . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.2 Sistema de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.3 Sistema de planificación de ruta . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Algoritmos de aprendizaje por refuerzo (RL) . . . . . . . . . . . . . . . . . . . 33
4.4.1 Q-learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4.2 Deep Q-Network (DQN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.3 Double DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4.4 Dueling DQN (DDQN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Arquitectura de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7 bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
iv
L I S TA D E F I G U R A S
v
Figura 5.4 Mapas de calor Q-learning . . . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 5.3 Mapas en cuadrículas sin modificaciones . . . . . . . . . . . . . . . . 45
Figura 5.5 Ruta Final Q-learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figura 5.6 Victorias Acumuladas con DQN . . . . . . . . . . . . . . . . . . . . . 46
Figura 5.7 Mapas de calor DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 5.8 Ruta Final DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 5.9 Victorias Acumuladas con Double DQN . . . . . . . . . . . . . . . . . 48
Figura 5.10 Ruta Final Double DQN . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Figura 5.11 Mapas de calor Double DQN . . . . . . . . . . . . . . . . . . . . . . . 49
Figura 5.12 Victorias Acumuladas con Dueling DQN . . . . . . . . . . . . . . . . 50
Figura 5.13 Mapas de calor DDQN . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Figura 5.14 Ruta Final DDQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Figura 5.15 Escenario 1 con modificaciones . . . . . . . . . . . . . . . . . . . . . . 52
Figura 5.16 Escenario 2 con modificaciones . . . . . . . . . . . . . . . . . . . . . . 53
Figura 5.17 Escenario 3 con modificaciones . . . . . . . . . . . . . . . . . . . . . . 54
vi
L I S TA D E TA B L A S
vii
RESUMEN
viii
FIRMA DE AUTORÍA
Por:
Tutor:
ix
AGRADECIMIENTOS
A Dios, mis padres y hermanos, familia y amigos que han acompañado directa o
indirectamente este camino de la vida. Agradezco y valoro en demasía el apoyo de mi
tutor Winston Percybrooks, que me ha aconsejado en muchos aspectos durante este largo
proceso.
x
INTRODUCCIÓN
1
1.1 motivación
1.2 objetivos
1
2 introducción
• Objetivos Específicos:
- Implementar un sistema de posicionamiento georreferenciado.
- Diseñar y construir un algoritmo para planificación automática de rutas.
- Desarrollar e implementar un algoritmo de seguimiento de rutas y evasión de
obstáculos.
- Realizar pruebas y validar el sistema.
1.2.2 Enfoque
1.3 contribuciones
Los ASV están compuestos de múltiples actuadores y sensores que son adaptados para
realizar diferentes tareas [2] [13]. Por lo tanto, lograr la autonomía requiere de un sistema
de navegación que le permita al bote desplazarse de un lugar a otro. Así que, basado en
el sistema definido por Fossen, este constaría de tres módulos[14]. Ver en Figura 2.1 la
adaptación del sistema. El sistema de navegación está compuesto de estos tres sistemas,
localización, control y planificación de ruta. El primero se encarga de mantener actualizada
y estimar la posición y orientación del ASV. El sistema de control se encarga de ejecutar
los actuadores del ASV. El último define las acciones basadas en una ruta o estrategias de
navegación.
2.3 cinemática
Según Fossen, para describir el movimiento de una embarcación se toman dos marcos
de referencia. Un sistema coordenado fijo en tierra y otro fijo a la embarcación. Las
embarcaciones se mueven a una velocidad relativamente baja(< 2m/s) por consiguiente
tomar la tierra como un marco inercial es una buena aproximación [14]. El sistema
4
2.3 cinemática 5
coordenado fijo en tierra con origen on por lo general toma como dirección positiva
North-East-Down, esto se conoce como NED y se simboliza con n. El sistema coordenado
fijo a la embarcación tiene origen ob en el centro de gravedad del bote y dirección positiva
en proa(frontal,x), estribor(la derecha del bote desde la frontal,y) y abajo(z). En la Figura
2.2 se observa una ilustración del sistema de coordenado.
Las velocidades son expresadas en términos del sistema coordenado fijo al bote y se
definen como el vector generalizado de velocidad.
n b
ν= ṗb/n = [u, v, w, p, q, r ]T (2.2)
b
ωb/n
El vector de velocidad lineal n ṗb = [u, v, w]T es la derivada del vector de posición
b/n
b
de n. Estas velocidades son llamadas surge(u), sway(v) y heave(w). El vector ωb/n =
T
[ p, q, r ] es la velocidad angular del bote respecto a n. Estas velocidades son alabeo(roll),
cabeceo(pitch) y guiñada(yaw) respectivamente. La trayectoria del bote es dada por
la evolución en el tiempo del vector generalizado de la posición η definido en 2.1,
relacionando el vector de posición con las velocidades, por medio del siguiente ecuación:
η̇ = J (η)ν (2.3)
En la figura de arriba podemos observar como surge es la velocidad lineal del avance
frontal del bote, mientras que la velocidad yaw está relacionada con la orientación de la
proa o cabecera del bote. En el libro [14] se explica con mayor profundidad los aspectos
hidrodinámicos de las embarcaciones.
2.4 sistema de localización 7
Los filtros de Kalman pueden ser empleados en sistemas lineales y no lineales para
estimar un estado oculto. Por ejemplo, el filtro de Kalman extendido tiene la capacidad
de linealizar sistemas no lineales respecto a la estimación actual. Por otro lado, los
sistemas dinámicos pueden inducir errores debido a fallas en la medida de los sensores
o factores externos como ruidos o perturbaciones, el filtro Kalman tiene en cuenta estas
incertidumbres producidas por el proceso y las mediciones, para alcanzar una estimación
más precisa de la localización. En sistemas de navegación y GPS son muy usados,
generalmente en los ASV se emplea, para combinar la información de los sensores y
estimar con mayor precisión la localización [15][16].
P̂k|k−1 = F k Pk−1|k−1 F ⊤
k + Qk (2.5)
P k | k = ( I − K k H k ) P k | k −1 (2.8)
El sistema de control genera las señales para los actuadores. Regulan la ejecución de los
motores del vehículo, conduciendo el ASV hacia la acción indicada por la planificación
de ruta. Según Bibuli et al. en general, solo controlando las dinámicas de surge y yaw es
suficiente para la navegación en el plano horizontal [17]. Aunque, para las embarcaciones
de mayor tamaño es necesario controlar las dinámicas de sway para estabilizar con más
precisión la navegación [18] [2].
Los grados de libertad de surge y yaw pueden ser separados en velocidad y dirección.
Por consiguiente, se pueden crear dos controles sin que estos tengan que interactuar entre
sí. Típicamente, se utilizan controladores PD o PID para el control lineal(velocidad) y
angular(dirección) del ASV.
Según Wang et al. la planificación de ruta se puede dividir en dos, una planificación
global basada en el conocimiento a priori del entorno, y una planificación local basada
en la percepción de información. La desventaja de la planificación global es que en un
entorno extenso es difícil conocer con certeza todos los elementos que están presentes. En
planificación local requieres de sensores para adquirir información del entorno en tiempo
real, posición, obstáculos, y calcular una ruta óptima en vivo [22]. En la planificación
de ruta se pueden emplear diferentes técnicas, así como fusionar la información para
planificación local, también algoritmos de exploración basado en reglas fijas, programación
a mano o de aprendizaje automático.
la mayoría de aspectos de la robótica según Zhang et al. [24] desde áreas de la industria
y la academia. El proceso de desarrollo de una aplicación robótica puede ser simplificada
con el uso de módulos en ROS para sensores, navegación, planeación de movimientos,
detección de choques, y simulación.
(a) ROS
(b) Gazebo
ROS en conjunto con Gazebo son parte esencial de la conexión y visualización de los
diferentes componentes que conforman una simulación. ROS crea una red centralizada
donde los componentes de hardware y software, se convierten en nodos que pueden
comunicarse e intercambiar datos entre ellos. Además, ROS en los últimos años ha sido
usado en numerosos proyectos para simulación de vehículos móviles acuáticos [10][27][28]
[29]. Para esta investigación se ha utilizado la versión Melodic de ROS y la versión 9 de
Gazebo.
En todos los algoritmos de aprendizaje por refuerzo es muy relevante aplicar algún
método de exploración. La exploración hace referencia a la forma como se escogen las
acciones, es decir, si se decide de forma aleatoria o se escoge la acción más probable del
algoritmo RL empleado. Entonces, cuando se elige una acción de forma aleatoria se llama
exploración y cuando el algoritmo elige la mejor acción se llama explotación. Un método
muy utilizado y simple es el ϵ-greedy, se define un valor 0 < ϵ < 1 y un factor de
descuento σ. Este valor controla de forma uniforme la tasa de exploración y explotación
en un entrenamiento.
2.8 aprendizaje por refuerzo 11
2.8.1 Q-learning
Q-learning es una forma de aprendizaje por refuerzo sin modelo, el cual también puede ser
visto como un método de programación dinámica asíncrona. Provee al agente la capacidad
de aprender a actuar óptimamente, experimentando las consecuencias de las acciones, sin
que esto requiera construir mapas del dominio[33]. Sato et al. describe las variables de
Q-learning de la siguiente forma[34]:
• r es la función de recompensa.
El objetivo es construir una tabla Q(St , at ) que mapea los estados y las acciones. Una
serie de episodios constituyen la experiencia de un agente en Q-learning. Inicialmente, los
valores de Q(St , at ) se inician en ceros. El resto del proceso de aprendizaje es resumido en
los siguientes pasos:
Luego hallar la política o estrategia (π ) que maximice los valores de la tabla Q. Para esto
se debe tomar el valor más alto de Q y retornar la acción que le corresponda. La Ecuación
2.10 se observa.
π ( a) = argmaxπ Q(St ) (2.10)
En la Figura 2.7 se observa un ejemplo de la tabla Q. Está conformado por todos los
posibles estados y acciones. Los estados son [s1 , s2 , s3 ] y las acciones son [ a1 , a2 ]. Cada
combinación estado-acción tiene una recompensa, este es el valor Q.
Una de las desventajas de Q-learning es que debe contener una tabla de todas las
posibles combinaciones de estado-acción, y para problemas donde el número de estados
sea muy grande las combinaciones también aumentarán. Por ejemplo, si se desea entrenar
un agente para jugar Pac-man hay cerca de 150 puntos que se pueden comer, cada uno
puede estar presente o ausente. Por lo tanto, los posibles estados pueden ser 2150 y si se
añaden todas las posibles combinaciones de la posición de los fantasmas y Pac-man los
estados aumentarán. Por esto es difícil mantener un estimado de cada posible valor Q [35].
Este tipo de agente emplea redes neuronales profundas para aprender de las interacciones
con el entorno. Según Mnih et al. el objetivo de DQN es aproximar al valor óptimo de la
función Q [36].
explícitamente construida. En la red neuronal ingresan los estados y como salida retorna
los valores Q correspondiente a cada acción.
El aprendizaje por refuerzo es conocido por ser inestable o incluso diverge cuando una
función de aproximación no lineal como una red neuronal es usada para representar los
valores de la función Q. Esa inestabilidad se debe a varias causas: la correlación presente
en una secuencias de observaciones, el hecho de que pequeñas actualizaciones a los
valores Q puede cambiar la política(π) y, por lo tanto cambiar la distribución de los datos.
También, la correlación entre los valores Q y los valores objetivo r + γmax a′ Q(s′ , a′ ). Por
esto se creó una estructura donde una memoria almacena los datos de las interacciones
con el entorno y luego de forma aleatoria se extrae una muestra, esto ayuda a remover
las correlaciones entre observaciones secuenciales y suaviza los cambios sobre la
distribución de los datos. Además, se usa una actualización iterativa, donde el ajuste
de los valores Q hacia los valores objetivos se hace solo periódicamente, reduciendo así
la correlación entre ambos valores[35]. En la Figura 2.9 se observa un diagrama de la DQN.
También, podemos ver que el agente recibe el estado actual y determina una acción.
Luego el entorno la ejecuta, el resultado es almacenado en una memoria en conjunto con
la acción At , la recompensa Rt , el estado siguiente St+1 y el estado actual St . Luego se
selecciona un minibatch aleatorio de esta memoria y es empleado para optimizar la red
neuronal. El valor-Q usado por DQN es:
Donde θt son los pesos de la red neuronal, R la recompensa, S el estado, a las acciones
y γ la tasa de descuento.
Este algoritmo es una variación a DQN propuesto por Van Hasselt et al.[37] como una
mejora al desempeño y estabilización del entrenamiento para DQN. Basados en la
14 marco teórico
Donde θo son los pesos de la red Online y θt son los de la red Target, se puede ver que la
mejor acción es la seleccionada por la red Online, mientras que la valoración de esa acción
es realizada por la red Target.
2.8 aprendizaje por refuerzo 15
Esta propuesta de Wang et al.[39] cambia la arquitectura red anteriores. En DDQN para
calcular el valor-Q se estiman internamente dos factores, el valor de estado V (s) y el valor
de cada acción sobre el estado, llamado ventaja A(s, a). Estas dos estimaciones luego son
agrupadas para calcular el valor-Q [39] [35]. Según Wang et al. la arquitectura de DDQN
puede aprender intuitivamente cuáles estados son o no valiosos, sin tener en cuenta el
efecto de la acción sobre el estado. Esto puede ser útil en estados donde sus acciones no
afectan el entorno de forma relevante. También, generaliza el aprendizaje a través de las
acciones al normalizar los beneficios de cada una, cuando se calculan las ventajas. En la
figura 2.11 se observa una ilustración de la red.
En la figura de arriba se observa que la red neuronal se divide en dos hilos, uno calcula
el valor del estado y el otro calcula la ventaja de tomar cada acción, estos dos componentes
se agrupan para crear la estimación final del valorQ. La ecuación 2.14 muestra como se
agrupan los valores.
Q(s, a) = V (s) + A(s, a) (2.14)
1
Q(s, a; θ, α, β) = V (s; θ, β) + A(s, a; θ, α) −
| A| ∑′ A(s, a′ ; θ, α) (2.16)
a
Donde θ representa los parámetros de la red neuronal, α y β son los parámetros de los
dos hilos para la capa fully-connected. La ecuación 2.15 resta la ventaja más alta contra
el resto, convirtiendo Q(s, a; θ, α, β) igual a V (s; θ, β) para la acción con más ventaja. En la
ecuación 2.16 se usa la ventaja promedio para calcular el valor-Q de cada acción. El valor-Q
usado por DDQN para actualizar la red es:
De la ecuación anterior se puede observar que la forma como se calcula el valor objetivo
de la red es igual a DQN, sin embargo, como se ha descrito, la arquitectura interna de esta
red es diferente.
TRABAJOS RELACIONADOS
3
Es necesario tener en cuenta las investigaciones relacionadas, por esto se deben explorar
temáticas que nos acerquen a una visión panorámica del problema a resolver. Lecturas
acerca vehículos no tripulados, planificación de ruta y aprendizaje por refuerzo serán
abordadas.
El desarrollo de Los vehículos autónomos de superficie data desde los años 90. Cuando
el MIT presentó un vehículo llamado ARTEMIS [40]. El objetivo era recolectar muestras
de batimetría en el río. Académicamente, esto generó interés por la investigación, luego
más institutos se sumaron al desarrollo en este campo [41]. Su creciente popularidad
y aplicaciones han conllevado un continuo desarrollo, el cual se podría dividir en
tres categorías principales, (I) diseño y construcción, (II) Control y navegación y (III)
planificación de ruta [42]. En esas tres áreas se concentra la mayoría de investigaciones.
En 2014 Fraga et al. [10] propuso Squirtle ASV, su aplicación era realizar mediciones
batimétricas en un río. Se construyó uniendo dos kayaks con un puente de aluminio y
dos motores. El control y navegación son dirigidos a través de un sistema GPS y cámara
estéreo, para la orientación fue usada una unidad de medición inercial (IMU). También,
una combinación de un láser omnidireccional y un sonar complementan el sistema de
evasión de obstáculos. El control era simple, lograr que el ASV realizara giros cada
cierta cantidad de metros hasta completar un rectángulo. Mientras que, la planificación
de la ruta se basó en realizar dos recorridos rectangulares. El robot era teleoperado
desde la estación base hasta llegar al punto desde el cual iniciaba el recorrido autónomo.
Toda la parte software del bote fue realizada en ROS. En la Figura 3.1 se puede ver la
representación.
17
18 trabajos relacionados
Hossein et al. [46] también propone el uso de campos potenciales con un algoritmo
de segmentación de ruta para la planificación de ruta, en su ASV llamado Morvarid. En
este caso, la ruta de planificada está dividida en trayectos cortos, obteniendo así varios
puntos que debe cumplir antes de completar toda la ruta y en caso de aparecer obstáculos
evadirlos aplicando campos potenciales. Para la localización del ASV, se empleó un GPS,
IMU, LIDAR, sondas para la medición de batimetría. Esto se combina en un filtro de
Kalman extendido para generar la localización del bote. Además, crearon un modelo
dinámico del ASV, a partir de ensayos y mediciones físicas, para simular los recorridos
y validar la navegación. En la figura 3.5 se observa el ASV.
En los ASV también se han usado los diagramas de Voronoi para planificación de rutas.
Los mapas de Voronoi consisten en crear regiones a partir de un plano con puntos. Estas
regiones son conectadas por vértices y aristas. Xiao et al. [47] propuso usar los diagramas
en un bote de vela autónomo, que sea independiente a la dirección del viento y se genere
una ruta que cumpla el objetivo de arribar al destino y a la vez evada lo más posible
las costas. Este método luego fue aplicado, para crear un mapa de rutas o caminos que
podría seguir un ASV para navegar sin problemas. Niu et al. [48] propone un método de
planificación de ruta, usando diagramas de Voronoi, el algoritmo de Dijkstra e información
de las corrientes marinas, el cual busca minimizar los gastos energéticos del bote. Aquí, se
utilizó un modelo de simulación del bote. En la Figura 3.6 se observa un ejemplo de este
último.
Figura 3.8: Heron y densidad de Clorofila en el agua simualdo con Gazebo [29]
Song et al. [50] propone planificar rutas aplicando el algoritmo de grafos A* para un ASV,
en este enfoque es necesario dividir el mapa en cuadrículas que representen el espacio
de navegación. El mapa es obtenido de una imagen satelital, donde se define un punto
de partida y destino, luego es divido en cuadrículas. Cada cuadrícula es una celda o
nodo de tamaño predefinido, que se interconecta con sus celdas vecinas dependiendo de
los movimientos que pueda realizar el bote. Debido a que es un enfoque práctico para
obtener fácilmente una ruta segura para navegar, se debe conocer previamente todo el
mapa antes de generar la ruta. Además, se propone una optimización de la ruta generada
por el algoritmo de planificación para reducir la cantidad de celdas, con el fin de obtener
movimientos más suaves en el control del ASV.
24 trabajos relacionados
Huang et al. [51] en 2021 propone utilizar aprendizaje por refuerzo profundo,
particularmente Double DQN. Es aplicar redes neuronales profundas para estimar valores
Q. En este enfoque se construyó el algoritmo de planificación de ruta en Python. Se
diseñaron cuatro escenarios estáticos, que son cuadrículas con obstáculos estáticos, donde
el ASV es representado por punto o nodo de partida y tiene un espacio de acción de
cuatro movimientos. El objetivo es que aplicando redes neuronales profundas, el ASV
explore y aprenda del mapa hasta encontrar el destino, evadiendo los obstáculos, también
se contrastaron dos variaciones de DQN.
Por otra parte, el enfoque de esta investigación será desarrollar un sistema de navegación
que realice una planificación de ruta por medio de aprendizaje por refuerzo en escenarios
desconocidos y con obstáculos. Las rutas planificadas serán validadas a través de
simulación del ASV. Además, serán evaluados y comparados distintos algoritmos de
aprendizaje por refuerzo, como Q-learning, DQN, double DQN y Dueling DQN, ante
las mismas condiciones. En esta recopilación bibliográfica no se encontraron trabajos
relacionados donde se realizaran comparativas para estos algoritmos.
En la tabla 3.1 se encuentra un resumen con algunas referencias anteriormente vistas, las
técnicas y la aplicación de cada uno de esos trabajos.
1 Fraga et al., 2014 planificación de ruta local, fusión de sensores Diseño y construcción de ASV, software y simulación ROS
25
MÉTODO PROPUESTO
4
4.1 planteamiento del problema
Por otro lado, poner a prueba un sistema de navegación implica mucho tiempo de
ensayo, así que generar pruebas de campo tomarían muchas horas. Además, algunas
zonas no son de fácil acceso o de disponibilidad limitada, por esto el uso de simuladores
como ROS y Gazebo son esenciales para realizar esta tarea. También, para evaluar
eventuales fallos y tareas de navegación complejas, sería menos costoso, ahorrando así
recursos y alargando la vida útil de los dispositivos. Por lo anterior, en muchos casos
los sistemas de navegación son evaluados y/o validados usando simuladores como paso
previo a un posterior desarrollo físico del ASV facilitando así su construcción.
26
4.1 planteamiento del problema 27
la planificación de ruta con métodos de RL y que realicen una comparación del desempeño
entre los métodos elegidos.
El modelo de bote empleado es el Heron USV creado por la compañia Clearpath, este es un
bote portable que cuenta con un modelo de simulación diseñado por la misma compañía
para ROS & Gazebo. En la Figura 4.1 se observa el bote [52] [53].
Este es un bote tipo catamarán diseñado con una arquitectura abierta y escalable ideal
para los proyectos de investigación, desarrollo y pruebas de nuevas estrategias para el
control de los vehículos autónomos [54] [55]. En la Tabla 4.1 se observan algunas de las
especificaciones del bote [54].
Se eligió este modelo debido a que es un bote portable, por lo cual en caso de una
implementación en un entorno real no requeriría grandes espacios o recursos. Además, al
contar con un modelo de simulación del bote provisto por la compañía provee una ventaja
para el acople con las herramientas de simulación.
28 método propuesto
4.2 escenarios
Se generaron tres tipos de escenarios para la navegación del vehículo acuático. Para la
construcción de estos escenarios se tomó como base una de las tareas de la competencia
internacional Virtual RobotX que se organizó en 20191 [56]. Esta competencia es
organizada por RoboNation2 , la Oficina de Investigación Naval3 de Estados Unidos,
en la que se diseñaron diversos entornos de simulación para ROS y Gazebo como una
herramienta de código abierto para la investigación y evaluación de robots autónomos
marítimos, con la finalidad de dar solución a diferentes desafíos en este campo. Por esto,
la competencia es popular y diferentes grupos de investigación universitarios presentan
sus propuestas anualmente.
Se eligió un mapa que hace parte de un desafío de navegación, en el cual el ASV debe
navegar hasta llegar a la meta. El escenario cuenta con boyas y obstáculos. Las boyas son
de color rojo y verde, empleándolas como indicador para limitar la zona transitable del
bote. Los obstáculos son objetos flotantes que están ubicados en diferentes lugares dentro
de esta zona. Cada mapa cuenta con 9 obstáculos. En la Figura 4.2 se observa un ejemplo.
Además, se generaron dos escenarios adicionales con las mismas características con el fin
de evaluar el desempeño del ASV en diferentes desafíos de navegación. En la Figura 4.3
se pueden ver.
1 https://github.com/osrf/vrx
2 https://robonation.org/
3 https://www.nre.navy.mil/
4.2 escenarios 29
En la figura de arriba se observan los otros dos escenarios, estos cuentan con un destino
diferente y obstáculos en diferentes posiciones. El punto de partida está dado por la boya
blanca y roja, mientras que el destino es la última pareja de boyas, que está más alejada en
el escenario.
4.2.1 Representación
En esta investigación, se definió que todos los mapas tendrán una dimensión de 60 × 60
y cada cuadrícula representa un área de 4m2 . Con las dimensiones de la grilla se puede
cubrir toda la extensión de los escenarios, por otra parte, el tamaño del robot se ajusta
completamente al espacio de una cuadrícula.
Los datos de los sensores son entradas del EKF, que usa para estimar y ajustar el vector
de estados que conforman la localización del ASV.
El sistema de control se encarga de accionar los actuadores del ASV, en este caso son los
dos motores con los que cuenta el bote. El control de los motores se realiza ajustando
la velocidad lineal y angular, entonces, para lograrlo se empleó dos controladores tipo
PD para ambas velocidades. El controlador se encarga de mantener el curso y seguir la
trayectoria dada por la planificación de ruta. La ecuación de control es la siguiente:
ẋ = K p δl + Kd β l (4.1)
θ̇ = K p δa + Kd β a (4.2)
Se eligió crear dos controladores por los grados de libertad sobre los que puede actuar
el motor. Como se describe en el capítulo 2 estas velocidades pueden ser controladas de
forma individual. Se decidió el controlador PD, debido a que en las pruebas realizadas el
manejo de los motores fue satisfactorio para el objetivo deseado.
El sistema de planificación se encarga de generar una ruta segura para el ASV. Para
esto, el sistema de planificación explorará el mapa inicialmente desconocido hallando la
mejor ruta que lo lleve hasta el destino. Para esta labor, se decidió emplear métodos de
aprendizaje por refuerzo con capacidad de aprender del entorno. Los métodos escogidos
fueron Q-learning, DQN, Double DQN y Dueling DQN que pueden ser empleados en
mapas o entornos discretos como el utilizado en este caso. Se eligió un método de RL
clásico como Q-learning que mapea el entorno y las acciones, mientras que, los otros
métodos utilizan redes neuronales con capacidad de aprendizaje.
Estos métodos deben interactuar con los escenarios inicialmente desconocidos hasta
lograr converger. La interacción consiste en explorar los nodos de los mapas, mientras
hace esto aprende de la realimentación provista por el entorno. Es decir, el sistema de
planificación elige las acciones que ejecuta el ASV, teniendo en cuenta la localización
y el objetivo de arribo. Dentro de este sistema se encuentra el agente RL. Finalmente,
una vez el agente ha aprendido del mapa, debe generar una serie de pasos que serán
ejecutados por el sistema de control hasta arribar al destino. En la Figura 4.8 se ilustra
una representación del sistema.
4.4 algoritmos de aprendizaje por refuerzo (rl) 33
En esta sección se describen cada uno de los algoritmos seleccionados y como se empleó
la estrategia que determina las mejores acciones dentro de los diferentes escenarios.
4.4.1 Q-learning
Este método aprende mediante el mapeo de los estados y acciones con una valoración.
Básicamente, construye una tabla donde cada elemento representa un par estado-acción y
cada par tiene un valor conocido como valor-Q. La implementación en Q-learning debe
34 método propuesto
seguir una secuencia de pasos lógicos para hallar la política que va a determinar las
mejores acciones dentro del entorno hasta maximizar la recompensa y a la vez lograr el
objetivo de destino. El Algoritmo 4.1 resume los pasos que se deben seguir para completar
la tabla Q.
Esta secuencia de acciones nos debe llevar al estado con mayor recompensa. Luego, se
puede crear una lista con cada estado visitado y construir la ruta a seguir por el ASV hasta
arribar al destino, completando así la planificación.
4.4 algoritmos de aprendizaje por refuerzo (rl) 35
DQN no crea explícitamente una tabla como en el anterior caso, sino que a través de
un modelo de red neuronal se espera que replique el comportamiento de la tabla pero
sin ser programado para ello. En DQN la entrada de la red son los estados y la salida
son las acciones. Para este algoritmo se propuso usar una red neuronal tipo perceptrón
multicapa(Multilayer Perceptron, MLP). La red debe predecir el valor Q de cada acción. La
Figura 4.9 muestra la arquitectura general de la red.
En la Figura 4.9 se puede observar que se eligió una configuración secuencial de la red
neuronal, también, los estados son la entrada de la red y la salida son los valores-Q para
cada acción. Las capas ocultas son fully-connected y la función de activación ELU. Se
definió esta arquitectura puesto que ayuda a la convergencia de la red. La función ELU
según sus pruebas tiende a converger más rápido y producir resultados más precisos,
además tiene la capacidad de producir valores positivos y negativos [61]. Esto es útil por
el tipo de valores que puede tomar función de recompensa. La red neuronal se actualiza
aplicando back-propagation a cada peso y como función de pérdida se aplicó el error
cuadrático medio(MSE). Su función es minimizar el error entre la valor-Q objetivo y el
valor-Q calculado de la recompensa.
36 método propuesto
Una vez definida la red neuronal, se seleccionó la arquitectura DQN con memoria,
porque ayuda a la red a tener menos sesgo entre las acciones secuenciales y pueda
converger más rápido. El Algoritmo 4.3 describe los pasos que se debe seguir para el
entrenamiento de la red.
En esta arquitectura de red se usan dos redes neuronales. Una escoge las acciones(online)
y la otra valora(target) que tan buenas son esas acciones. El uso de dos redes neuronales
en vez de una, puede mejorar el desempeño y la convergencia en el entrenamiento,
además evita la sobreestimación que puede presentarse cuando una misma red selecciona
y valora la acción. Por otra parte, en este enfoque se decidió que las dos redes empleadas
mantengan las mismas capas ocultas de la DQN anterior.
Target. Por otro lado, para probar la influencia de la arquitectura de red en los modelos
de aprendizaje, no se modificaron las capas ocultas al modelo, esto para contrastar las dos
propuestas de aprendizaje bajo la aplicación de los mismos modelos.
El algoritmo 4.5 describe los pasos que se siguieron para entrenar este tipo de agente.
En este caso también se utilizó Double DQN con una memoria para evitar los problemas
de sesgo entre acciones consecutivas. Los pesos de la red Online se representan wo y la red
Target wt .
La estrategia para Double DQN una vez entrenada, es igual a las anteriores. En cada
estado hacer una inferencia de la red Online y escoger la acción con el valor más alto hasta
arribar al destino.
4.4 algoritmos de aprendizaje por refuerzo (rl) 39
En la Figura 4.11 se puede observar el modelo de red, el cálculo del valor del estado V (s)
se hace en la capa, FC |1 mientras que las ventajas A(s, a) se calculan la capa FC |4 luego
se normalizan las ventajas respecto a la máxima. Estos valores se agrupan para calcular
finalmente el valor-Q. Las capas fully-connected se mantienen iguales a los modelos
40 método propuesto
anteriores, para así poder comparar las arquitecturas usando la misma capa básica de
conexiones neuronales.
Por otra parte, el Algoritmo 4.6 describe los pasos lógicos para entrenar el agente con
Dueling DQN. En esta arquitectura como en las anteriores se empleó una memoria para
almacenar experiencias.
Luego de entrenada la red DDQN la estrategia a seguir es igual a los anteriores, se debe
escoger en cada paso la acción que más valor posea para cada estado. De esta forma se
maximiza la recompensa de la red hasta arribar al lugar de destino.
Q-learning mapea los estados y las acciones con un valor de recompensa. El objetivo
entonces es maximizar los valores de recompensa para que el agente tome las
mejores acciones dependiendo del estado en que se encuentre. Los parámetros para el
entrenamiento fueron α = 0.8, γ = 0.97,ϵ = 0.999, ϵd = 0.9999 y episodios= 35000.
Los valores de ϵ y ϵd , así como la cantidad de episodios se tomaron de tal forma que
el algoritmo pueda pasar de exploración a explotación con tasas pequeñas, es decir
que pueda explorar mucho al comienzo y luego gradualmente aprovechar lo aprendido
para que realice más explotación. Se decidió esa cantidad de episodios, puesto que la
exploración en ese punto es apenas del 3% con lo cual el aprendizaje adicional que pueda
obtener es pequeño. En la Figura 5.1 se observa. Estos mismos valores fueron usados en
todos los modelos Q-learning. A través de la librería gym de OpenAI en conjunto con ROS
y Gazebo se entrenaron los modelos. Obteniendo los resultados que se pueden ver en la
Tabla 5.1.
42
5.2 escenarios sin modificaciones 43
Además, en la Figura 5.2 se observan las victorias que va acumulando mientras entrena.
La característica principal es que al aumentar los episodios, el algoritmo va obteniendo
victorias de forma creciente. Mostrando así que con el paso de los episodios al aplicar lo
aprendido, el entrenamiento mantiene un aumento en el número de victorias.
En los mapas de calor de la Figura 5.4 se puede ver las cuadrículas más visitadas
mientras entrenaba en cada escenario. Las zonas con mayor intensidad de rojo suponen
mayor cantidad de visitas. Además, se calculó la ruta que maximiza la recompensa para
cada escenario, ver Figura 5.5.
44 experimentos & resultados
(c) Mapa 3
(c) Mapa 3
(c) Mapa 3
El entrenamiento con DQN tiene como entrada los estados para las múltiples capas de
la red y como salida un valor estimado de cada acción. Los parámetros para todos
los entrenamientos fueron ϵ = 0.999 y ϵd = 0.99995. Un resumen de los resultados
46 experimentos & resultados
obtenidos, se pueden ver en la Tabla 5.2. Además, en la Figura 5.6 se observan las victorias
acumuladas.
(c) Mapa 3
Para el caso de DQN podemos observar el mapa de calor en la Figura 5.7. Además, los
resultados obtenidos del cálculo de la ruta final en la Figura 5.8.
5.2 escenarios sin modificaciones 47
(c) Mapa 3
victorias acumuladas se encuentran en la Figura 5.9, las rutas en la Figura 5.10 y el mapa
de calor generado se encuentra en la Figura 5.11.
(c) Mapa 3
(c) Mapa 3
Para esta red los parámetros ϵ y ϵd son iguales a los anteriores. Los resultados del
entrenamiento están descritos en la tabla 5.4. Las zonas visitadas se pueden observar en el
50 experimentos & resultados
mapa de calor de la Figura 5.13. Así como la ruta que maximiza la recompensa del agente
en la Figura 5.14 y las victorias acumuladas se encuentran en la Figura 5.9.
(c) Mapa 3
(c) Mapa 3
5.2.5 Resultados
Después del entrenamiento descrito se somete a pruebas los modelos. La prueba consiste
en tomar la acción que posea el valor de recompensa más alto para cada estado, hasta
completar la máxima cantidad de pasos o llegar al destino. Se mide la cantidad de pasos
52 experimentos & resultados
No. Pasos
Mapa % Victorias Dijkstra Q-learn DQN DB. DQN DDQN
1 100 60 84 77 60 65
2 100 68 68 74 69 73
3 100 38 38 38 39 45
En esta prueba se evalúa el desempeño de los métodos de aprendizaje por refuerzo ante
variaciones de los escenarios. Se han realizado modificaciones respecto a los mapas en que
fueron entrenados. Aquí los obstáculos se desplazan en posiciones aleatorias con referencia
a las iniciales. Los destinos y las boyas se mantienen en las posiciones iniciales, además se
asegura que los desplazamientos de los obstáculos permitan siempre el paso del vehículo
móvil. Se generaron de cada escenario cuatro nuevos mapas modificados. Ver Figura 5.15.
Teniendo en cuenta que los escenarios ahora tienen variaciones, los modelos entrenados
deben cambiar su estrategia, por esto se añade un grado de exploración para que el agente
elija sus acciones. Este grado de exploración es definido por el usuario. Para esta prueba
se definió en 10%, este valor se obtuvo a través de pruebas simuladas, es decir, que el
90% de las acciones que tome el modelo serán las de mayor recompensa y el porcentaje
restante serán exploratorias. Por otro lado, las Figuras 5.16, 5.17 contienen el resto de
escenarios modificados.
Se estableció una prueba para definir la cantidad de episodios necesarios para encontrar
una media de victorias confiable en los escenarios modificados dado el grado de
exploración añadido en la estrategia. Esta prueba consistió en definir una cantidad(m) de
episodios y repetir n veces el experimento, hasta establecer si la variación del promedio
de victorias es suficientemente pequeña entre repeticiones. Entonces, si la variación del
promedio de victorias a través de las repeticiones es menor al 0.01, se puede establecer
que el número de episodios definidos es suficiente para calcular las victorias del modelo
en un mapa con modificaciones.
54 experimentos & resultados
Para cada modelo se realizaron 1000 episodios y se repitió 100 veces la prueba. Se calculó
la desviación estándar del porcentaje de victorias promedio por repetición. Los resultados
están resumidos en la Tabla 5.6.
A partir de los resultados, se puede establecer que para 1000 episodios el porcentaje de
victorias promedio no registra grandes variaciones, siendo menor a 0.01 para todos los
métodos de aprendizaje. Este resultado es suficiente para fijar la cantidad de episodios,
que serán aplicados en las pruebas de los escenarios con modificaciones.
5.3.2 Resultados
Una vez establecida la cantidad de episodios en 1000, se ejecutó la prueba en todos los
escenarios modificados. Los resultados obtenidos se resumen en las Tablas 5.7,5.8,5.9.
5.3 escenarios modificados 55
En esta sección se analizan las pruebas y resultados obtenidos en las secciones anteriores,
con el fin de demostrar la utilidad, viabilidad y veracidad de los métodos propuestos.
5.4.1 Entrenamiento
Observando los resultados de la Tabla 5.5 que compara la cantidad de pasos que debe
ejecutar cada algoritmo RL en su ruta óptima contra Dijkstra, se puede ver que aunque
existen diferencias son cercanos los resultados y dado que el destino no es un punto en
particular, sino una zona, depende del punto de arribo que cada agente maximizó la
diferencia con Dijkstra. Por otra parte, se puede visualizar en los mapas de calor que no
es necesario explorar todo el mapa para hallar una ruta, en los diferentes mapas de calor
se puede observar que existen zonas de los escenarios donde el agente no necesitó explorar.
De esta prueba se puedo comprobar como reaccionan los algoritmos entrenados ante
modificaciones en los mapas de entrenamiento. En las Tablas [5.7, 5.8,5.9] se observan
que los resultados en este aspecto son variados. En las modificaciones del Escenario
1 el algoritmo DB. DQN obtuvo más victorias que el resto, exceptuando la primera
modificación. Esto se debe a que los obstáculos se desplazan sobre una zona muy
influyente en la toma de decisión para la ruta final. En contraste, DDQN tuvo el peor
desempeño con el 2.25% de victorias. En el escenario 2 DQN obtuvo los mejores puntajes
excepto en la modificación 3 donde DB. DQN lo superó, sin embargo, tuvo la segunda
mejor tasa de victorias. El resto de algoritmos para esta prueba tuvo un desempeño
similar, las diferencias no son mayores a un 3%. Las modificaciones del escenario 3 todos
obtienen puntajes por encima del 53% en victorias excepto DDQN quien nuevamente
tiene resultados por debajo del 5%, esto se debe a que las variaciones introducidas le
generan mayor dificultad, teniendo en cuenta la ruta final aprendida. En esta prueba
DQN obtiene los puntajes más altos en todas las modificaciones.
Uno de los factores que más afecta a los algoritmos de RL en los escenarios modificados
es que los obstáculos ocupen una zona importante sobre su ruta aprendida y dejen
un paso estrecho, menor a 2m2 por el que pueda transitar sin problemas el ASV.
Aunque, en el caso de DDQN se puede decir que la red tiene un sobreajuste(overfitting)
porque ante las variaciones le resulta difícil generar una alternativa diferente a la ruta final.
Luego de observar los resultados de todos los algoritmos, hay varias características
que tiene cada uno. Q-learnig por ejemplo, obtuvo en todas las modificaciones resultados
positivos y su rendimiento en cada escenario tiene muy poca variación, resulta ser el más
consistente. DQN fue el de mejor desempeño general con un 54% de victorias, obteniendo
los mejores puntajes en la mayoría de escenarios modificados, le resulta más fácil adaptarse
a los cambios. DB. DQN es el segundo mejor algoritmo, tiene un buen desempeño,
sin embargo, hay variaciones que le afectan mucho su promedio. DDQN resulta ser el
algoritmo que menos supo adaptarse a los cambios, tuvo el desempeño más bajo, es muy
probable que haya ocurrido un sobre ajuste en los entrenamientos de esta red.
CONCLUSIONES & TRABAJO FUTURO
6
6.1 conclusiones
6.2 contribuciones
58
6.3 trabajo futuro 59
[12] M. Ozkan, L. Garcia and S. King, ‘Rescue boat path planning in flooded urban
environments’, en, in de 2019 IEEE International Symposium on Measurement and
Control in Robotics (ISMCR, Houston, 2019.
[13] J. E. Manley, A. Marsh, W. Cornforth and C. Wiseman, ‘Evolution of the autonomous
surface craft autocat’, in OCEANS 2000 MTS/IEEE conference and exhibition. Conference
proceedings (Cat. No. 00CH37158), IEEE, vol. 1, 2000, pp. 403–408.
60
bibliografía 61
[14] T. I. Fossen, Handbook of marine craft hydrodynamics and motion control. John Wiley &
Sons, 2011.
[15] A. Becker. ‘Introduction to kalman filter’. (Jul. 2022), [Online]. Available: https://
www.kalmanfilter.net.
[16] R. E. Kalman, ‘A new approach to linear filtering and prediction problems’, 1960.
[17] M. Bibuli, G. Bruzzone, M. Caccia and L. Lapierre, ‘Path-following algorithms and
experiments for an unmanned surface vehicle’, Journal of Field Robotics, vol. 26, no. 8,
pp. 669–688, 2009.
[18] J. Park et al., ‘Development of an unmanned surface vehicle system for the 2014
maritime robotx challenge’, Journal of field robotics, vol. 34, no. 4, pp. 644–665, 2017.
[19] S. Zhou, Y. Wen, Z. Du, C. Xiao, L. Huang and M. Zhu, ‘The review unmanned
surface vehicle path planning: Based on multi-modality constraint’, en, Ocean
Engineering, vol. 200, 15 Mar. 2020.
[20] R. R. Murphy, Introduction to AI robotics. MIT press, 2019.
[21] H. Durrant-Whyte, ‘Where am i? a tutorial on mobile vehicle localization’, Industrial
Robot: An International Journal, 1994.
[22] C. Wang, X. Zhang, R. Li and P. Dong, ‘Path planning of maritime autonomous
surface ships in unknown environment with reinforcement learning’, International
Conference on Cognitive Systems and Signal Processing, pp. 127–137, 2018.
[23] O. Robotics, Why ros, en, En línea]. Available: [Online]. Available: https://www.ros.
org/blog/why-ros/.
[24] L. Zhang, R. Merrifield, A. Deguet and G.-Z. Yang, ‘Powering the world’s robots-10
years of ros’, Science Robotics, vol. 2, no. 11, eaar1868, 2017. doi: 10 . 1126 /
scirobotics . aar1868. eprint: https : / / www . science . org / doi / pdf / 10 . 1126 /
scirobotics.aar1868. [Online]. Available: https://www.science.org/doi/abs/10.
1126/scirobotics.aar1868.
[26] I. Open Source Robotics Foundation. ‘Open platforms for robotics’. (Jul. 2022),
[Online]. Available: https://www.openrobotics.org/.
[27] D. Pickem, D. Morioniti, C. Taylor, S. Balestrini-Robinson and D. Mavris, ‘Captain
hindsight: An autonomous surface vessel’, Georgia Institute of Technology, 2011.
[28] D. Pedrosa, A. Dias, A. Martins, J. Almeida and E. Silva, ‘Control-law for oil spill
mitigation with an autonomous surface vehicle’, 2018 OCEANS-MTS/IEEE Kobe
Techno-Oceans (OTO), pp. 1–6, 2018.
[29] S. Manjanna, A. Li, R. Smith, I. Rekleitis and G. Dudek, ‘Heterogeneous multi-robot
system for exploration and strategic water sampling’, en, de, 2018.
[30] R. S. Sutton and A. G. Barto, Reinforcement learning: An introduction. MIT press, 2018.
62 bibliografía
[32] C. Buhr, How to train your robot an introduction to reinforcement learning, en, En línea,
MathWorks. [Online]. Available: https : / / www . mathworks . com / content / dam /
mathworks/presentation-loop/how-to-train-your-robot-video-slides.pdf.
[33] C. J. Watkins and P. Dayan, ‘Q-learning’, Machine learning, vol. 8, no. 3, pp. 279–292,
1992.
[34] M. Sato, K. Abe and H. Takeda, ‘Learning control of finite markov chains with an
explicit trade-off between estimation and control’, IEEE transactions on systems, man,
and cybernetics, vol. 18, no. 5, pp. 677–684, 1988.
[35] A. Géron, Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow: Concepts,
tools, and techniques to build intelligent systems. OŔeilly Media, Inc., 2019.
[36] V. Mnih et al., ‘Human-level control through deep reinforcement learning’, nature,
vol. 518, no. 7540, pp. 529–533, 2015.
[37] H. Van Hasselt, A. Guez and D. Silver, ‘Deep reinforcement learning with double
q-learning’, in Proceedings of the AAAI conference on artificial intelligence, vol. 30, 2016.
[38] S. Thrun and A. Schwartz, ‘Issues in using function approximation for reinforcement
learning’, in Proceedings of the 1993 Connectionist Models Summer School Hillsdale, NJ.
Lawrence Erlbaum, vol. 6, 1993, pp. 1–9.
[39] Z. Wang, T. Schaul, M. Hessel, H. Hasselt, M. Lanctot and N. Freitas, ‘Dueling
network architectures for deep reinforcement learning’, in International conference on
machine learning, PMLR, 2016, pp. 1995–2003.
[40] C. D. Rodriguez-Ortiz, ‘Automated bathymetry mapping using an autonomous
surface craft’, 1996.
[41] M. Schiaretti, L. Chen and R. Negenborn, ‘Survey on autonomous surface vessels:
Part i - a new detailed definition of autonomy levels’, en, Computational Logistics.
ICCL 2017, B. T., C. S., M.-S. A. and V. S, Eds., 2017.
[42] M. Caccia, ‘Autonomous surface craft: Prototypes and basic research issues’, en, de,
2006.
[43] E. Pinto, F. Marques, R. Mendonça, A. Lourenço, P. Santana and J. Barata,
‘An autonomous surface-aerial marsupial robotic team for riverine environmental
monitoring: Benefiting from coordinated aerial, underwater, and surface level
perception’, en, in de 2014 IEEE International Conference on Robotics and Biomimetics
(ROBIO 2014, Bali, 2014.
[44] M. Hong and M. Arshad, ‘Modeling and motion control of a riverine autonomous
surface vehicle (asv) with differential thrust’, en, de Jurnal Teknologi, 2015.
bibliografía 63
[45] ——, A balance-artificial potential field method for autonomous surface vessel navigation in
unstructured Riverine Environment, en. de Procedia Computer Science, 2015.
[46] M. Hossein et al., ‘Developing a navigation, guidance and obstacle avoidance
algorithm for an unmanned surface vehicle (usv) by algorithms fusion’, en, Ocean
Engineering, vol. 159, pp. 56–65, 2018.
[47] K. Xiao, J. Sliwka and L. Jaulin, ‘A wind-independent control strategy for
autonomous sailboats based on voronoi diagram’, en, Field Robotics, pp. 110–124,
2011.
[48] H. Niu, A. Savvaris, A. Tsourdos and Z. Ji, ‘Voronoi-visibility roadmap-based path
planning algorithm for unmanned surface vehicles’, en, Journal of Navigation, vol. 72,
no. 4, pp. 850–874, 2019.
[49] C. Chen, X.-Q. Chen, F. Ma, X.-J. Zeng and J. Wang, ‘A knowledge-free path planning
approach for smart ships based on reinforcement learning’, Ocean Engineering,
vol. 189, p. 106 299, 2019.
[50] R. Song, Y. Liu and R. Bucknall, ‘Smoothed a* algorithm for practical unmanned
surface vehicle path planning’, Applied Ocean Research, vol. 83, pp. 9–20, 2019.
[51] Z. Huang, H. Lin and G. Zhang, ‘The usv path planning based on an improved
dqn algorithm’, 2021 International Conference on Networking, Communications and
Information Technology (NetCIT), pp. 162–166, 2021.
[52] C. Robotics. ‘Heron usv tutorials’. (Jul. 2022), [Online]. Available: https : / / www .
clearpathrobotics.com/assets/guides/melodic/heron/index.html.
[53] C. R. Inc. ‘Heron usv gets a new simulator’. (Jul. 2022), [Online]. Available: https:
//clearpathrobotics.com/blog/2019/01/heron-usv-gets-a-new-simulator/.
[54] directindustry. ‘Monitoring usv heron’. (Jul. 2022), [Online]. Available: https://www.
directindustry.com/prod/clearpath-robotics/product-177123-1770837.html.
[55] Geo-matching. ‘Clearpath robotics heron usv’. (Jul. 2022), [Online]. Available: https:
//geo-matching.com/usvs-unmanned-surface-vehicles/heron-usv.
[61] D.-A. Clevert, T. Unterthiner and S. Hochreiter, ‘Fast and accurate deep network
learning by exponential linear units (elus)’, arXiv preprint arXiv:1511.07289, 2015.