Skip to content

Commit

Permalink
(memory) module part included
Browse files Browse the repository at this point in the history
  • Loading branch information
csanrod committed Aug 25, 2023
1 parent 36dd94a commit 46cbf01
Show file tree
Hide file tree
Showing 8 changed files with 210 additions and 91 deletions.
53 changes: 52 additions & 1 deletion memoria/capitulos/capitulo4.tex
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,58 @@ \subsection{Aproximación de Friis}
\subsection{Módulo python de Friis}
\label{subsec:friis-module}

ToDo...
Una vez realizadas las pruebas iniciales, se buscó compactar todo, en un lugar accesible para cada aplicación que lo necesitase.\\

De este modo, surgió la idea de crear un módulo python que se encargará de modelizar un mapa de señales. Para ello, se diseño una clase cuyo constructor se encarga de recibir por parámetros, las variables implicadas en las ecuaciones de Friis. Además, se debe especificar las dimensiones del mapa y su resolución (que afecta al tamaño de celda).\\

Básicamente, primero se crea un objeto de la clase Friis donde se especifican las características de la señal y el mapa, el cual genera un mapa sin información. Luego, se selecciona el tipo de modelo que se quiera usar (propagación o pérdidas, este último no está testeado), pasando las coordenadas de la señal por parámetros, el cual retornará el mapa relleno con los valores asociados a las ecuaciones de Friis. A continuación se muestra un ejemplo de uso:

\begin{code}[H]
\begin{lstlisting}[language=Python]

#! /usr/bin/env python
import friss as fr

if __name__ == '__main__':
friis_object = fr.Friss(power_tras=10.0,
gain_tras=1.5,
gain_recv=2.0,
freq=fr.FREQ_WIFI,
losses_factor=1.0,
losses_path=2.0,
world_sz=(10,10),
resolution=1.0)

signal_map = friis_object.model_power_signal(origin=(5,3))

\end{lstlisting}
\caption[Main de center to center app]{Main de center to center app}
\label{cod:c2c_app}
\end{code}

En este código, se puede ver que se está generando un mapa 10x10 con resolución 1 (es decir, cada celdilla es de 1x1), de una señal WIFI, donde el transmisor emite a 10 W, con una ganancia de 1.5, el receptor posee una ganancia de 2, un factor de pérdidas (L) de 1, es decir, sin pérdidas, y por último, el exponente n (\emph{path-loss exponent (PLE)}) con un valor de 2, que representa el espacio vacío. Luego se genera el mapa de propagación de la señal, indicando que la fuente se encuentra en las coordenadas (5,3).\\

Sin embargo, este módulo posee otras funcionalidades útiles para trabajar con él. Como son:

\begin{enumerate}
\item \textbf{\emph{reset\_world}}: modifica el mapa que hubiera, estableciendo todos sus valores a cero.

\item \textbf{\emph{get\_world\_sz}}: retorna las dimensiones del mapa.

\item \textbf{\emph{set\_values}}: modifica las características de la señal simulada.
\end{enumerate}

Recordar que aunque se modifiquen los parámetros, se debe modelar de nuevo el mapa para ver los resultados.\\

Por último, se busco extender la funcionalidad del módulo, de manera que fuera posible incluir obstáculos en el mapa. La idea era crear un método capaz de posicionar obstáculos en el mapa de la señal, y simular su efecto en la señal.\\

Para ello, se buscó trazar proyecciones desde la señal hasta los bordes del obstáculo, de forma que se generase un polígono con los bordes del mapa. Posteriormente, se revisó que puntos se encontraban dentro del polígono (que no fueran propiamente parte del obstáculo), a través de un algoritmo basado en el número de intersecciones del punto con el perímetro del polígono, trazando una línea horizontal y hacia la derecha. CITAAAAAAAAR!!!. Por último, para cada punto dentro del polígono se le aplicó un factor de pérdida al valor almacenado de la señal, de manera que se simulase el efecto del obstáculo.\\

(imagenes de los obstáculos)\\

La idea fue abrir puertas a nuevos entornos más complejos y realistas, sobre los que poder probar diversas soluciones, en nuestro caso, para testear el efecto de un muro en el camino del dron a la señal.

(código ejemplo obstáculos)\\

\subsection{Aplicación de Friis}
\label{subsec:friis-app}
Expand Down
38 changes: 21 additions & 17 deletions memoria/memoria.aux
Original file line number Diff line number Diff line change
Expand Up @@ -276,33 +276,37 @@
\acronymused{RF}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Aproximación de Friis}{22}{subsection.4.2.1}\protected@file@percent }
\newlabel{subsec:friis}{{4.2.1}{22}{Aproximación de Friis}{subsection.4.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Módulo python de friis}{23}{subsection.4.2.2}\protected@file@percent }
\newlabel{subsec:friis-module}{{4.2.2}{23}{Módulo python de friis}{subsection.4.2.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Conclusiones}{24}{chapter.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Módulo python de Friis}{23}{subsection.4.2.2}\protected@file@percent }
\newlabel{subsec:friis-module}{{4.2.2}{23}{Módulo python de Friis}{subsection.4.2.2}{}}
\@writefile{locode}{\contentsline {code}{\numberline {4.2}{\ignorespaces Main de center to center app}}{24}{code.caption.38}\protected@file@percent }
\newlabel{cod:c2c_app}{{4.2}{24}{Main de center to center app}{code.caption.38}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Aplicación de Friis}{25}{subsection.4.2.3}\protected@file@percent }
\newlabel{subsec:friis-app}{{4.2.3}{25}{Aplicación de Friis}{subsection.4.2.3}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Conclusiones}{26}{chapter.5}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{locode}{\addvspace {10\p@ }}
\@writefile{lomyequation}{\addvspace {10\p@ }}
\newlabel{cap:capitulo5}{{5}{24}{Conclusiones}{chapter.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Objetivos cumplidos}{24}{section.5.1}\protected@file@percent }
\newlabel{sec:objetivos_cumplidos}{{5.1}{24}{Objetivos cumplidos}{section.5.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.2}Requisitos satisfechos}{24}{section.5.2}\protected@file@percent }
\newlabel{sec:requisitos_satisfechos}{{5.2}{24}{Requisitos satisfechos}{section.5.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.3}Balance global y competencias adquiridas}{24}{section.5.3}\protected@file@percent }
\newlabel{sec:balance_global_competencias_adquiridas}{{5.3}{24}{Balance global y competencias adquiridas}{section.5.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.4}Líneas futuras}{24}{section.5.4}\protected@file@percent }
\newlabel{sec:lineas_futuras}{{5.4}{24}{Líneas futuras}{section.5.4}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Anexo}{25}{chapter.6}\protected@file@percent }
\newlabel{cap:capitulo5}{{5}{26}{Conclusiones}{chapter.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Objetivos cumplidos}{26}{section.5.1}\protected@file@percent }
\newlabel{sec:objetivos_cumplidos}{{5.1}{26}{Objetivos cumplidos}{section.5.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.2}Requisitos satisfechos}{26}{section.5.2}\protected@file@percent }
\newlabel{sec:requisitos_satisfechos}{{5.2}{26}{Requisitos satisfechos}{section.5.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.3}Balance global y competencias adquiridas}{26}{section.5.3}\protected@file@percent }
\newlabel{sec:balance_global_competencias_adquiridas}{{5.3}{26}{Balance global y competencias adquiridas}{section.5.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.4}Líneas futuras}{26}{section.5.4}\protected@file@percent }
\newlabel{sec:lineas_futuras}{{5.4}{26}{Líneas futuras}{section.5.4}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}Anexo}{27}{chapter.6}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{locode}{\addvspace {10\p@ }}
\@writefile{lomyequation}{\addvspace {10\p@ }}
\newlabel{cap:anexo}{{6}{25}{Anexo}{chapter.6}{}}
\newlabel{cap:anexo}{{6}{27}{Anexo}{chapter.6}{}}
\citation{*}
\bibstyle{unsrt}
\bibdata{bibliografia}
\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces Anexo con las fuentes de donde se han obtenido las imágenes para este proyecto\relax }}{26}{table.caption.39}\protected@file@percent }
\newlabel{cuadro:anexo_imagenes_fuentes}{{6.1}{26}{Anexo con las fuentes de donde se han obtenido las imágenes para este proyecto\relax }{table.caption.39}{}}
\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces Anexo con las fuentes de donde se han obtenido las imágenes para este proyecto\relax }}{28}{table.caption.40}\protected@file@percent }
\newlabel{cuadro:anexo_imagenes_fuentes}{{6.1}{28}{Anexo con las fuentes de donde se han obtenido las imágenes para este proyecto\relax }{table.caption.40}{}}
\bibcite{rae-robotica}{{1}{}{{}}{{}}}
\bibcite{revista-de-robots}{{2}{}{{}}{{}}}
\bibcite{industrial-robot}{{3}{}{{}}{{}}}
Expand All @@ -313,7 +317,7 @@
\bibcite{kettering-bug}{{8}{}{{}}{{}}}
\bibcite{queen-bee}{{9}{}{{}}{{}}}
\bibcite{operation-aphrodite}{{10}{}{{}}{{}}}
\@writefile{toc}{\contentsline {chapter}{Bibliograf\'{\i }a}{27}{appendix*.40}\protected@file@percent }
\@writefile{toc}{\contentsline {chapter}{Bibliograf\'{\i }a}{29}{appendix*.41}\protected@file@percent }
\bibcite{uas-definicion}{{11}{}{{}}{{}}}
\bibcite{gcs-definicion}{{12}{}{{}}{{}}}
\bibcite{data-link-definicion}{{13}{}{{}}{{}}}
Expand Down
1 change: 1 addition & 0 deletions memoria/memoria.locode
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
\contentsline {code}{\numberline {3.2}{\ignorespaces Hello world en C++}}{12}{code.caption.25}%
\addvspace {10\p@ }
\contentsline {code}{\numberline {4.1}{\ignorespaces Main de center to center app}}{21}{code.caption.37}%
\contentsline {code}{\numberline {4.2}{\ignorespaces Main de center to center app}}{24}{code.caption.38}%
\addvspace {10\p@ }
\addvspace {10\p@ }
Loading

0 comments on commit 46cbf01

Please sign in to comment.