Skip to content

Commit 580fe05

Browse files
committed
ended first version for chapter 3 in the memory, images remaining...
1 parent cf0a5ce commit 580fe05

10 files changed

+648
-208
lines changed

memoria/bibliografia.bib

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,137 @@ @misc{paper-ia-dron
221221
eprint={1905.13406},
222222
archivePrefix={arXiv},
223223
primaryClass={eess.SP}
224+
}
225+
226+
@Electronic{tiobe,
227+
Title = {\textit{TIOBE Index for August 2023}},
228+
howpublished= {\url{https://www.tiobe.com/tiobe-index/}},
229+
author = {Tiobe},
230+
year = {2023}
231+
}
232+
233+
@Electronic{python-history,
234+
Title = {\textit{History of Python}},
235+
howpublished= {\url{https://www.geeksforgeeks.org/history-of-python/}},
236+
author = {SohomPramanick},
237+
year = {2022}
238+
}
239+
240+
@Electronic{python-def,
241+
Title = {\textit{What is Python? Executive Summary}},
242+
howpublished= {\url{https://www.python.org/doc/essays/blurb/}},
243+
author = {Python Source Fundation},
244+
year = {2023}
245+
}
246+
247+
@Electronic{compiled-vs-interpreted,
248+
Title = {\textit{Compiled vs interpreted language: Basics for beginning devs}},
249+
howpublished= {\url{https://www.educative.io/blog/compiled-vs-interpreted-language}},
250+
author = {Bryce Limón},
251+
year = {2022}
252+
}
253+
254+
@Electronic{c-history,
255+
Title = {\textit{History of C++}},
256+
howpublished= {\url{https://www.geeksforgeeks.org/history-of-c/}},
257+
author = {SohomPramanick},
258+
year = {2022}
259+
}
260+
261+
@Electronic{middleware-def,
262+
Title = {\textit{What is middleware?}},
263+
howpublished= {\url{https://www.ibm.com/topics/middleware}},
264+
author = {IBM},
265+
year = {2023}
266+
}
267+
268+
@Electronic{ros-def,
269+
Title = {\textit{ROS - Robot Operating System}},
270+
howpublished= {\url{https://www.ros.org/}},
271+
author = {ROS},
272+
year = {2023}
273+
}
274+
275+
@Electronic{ros-def,
276+
Title = {\textit{ROS - Robot Operating System}},
277+
howpublished= {\url{https://www.ros.org/}},
278+
author = {ROS},
279+
year = {2023}
280+
}
281+
282+
@Electronic{gazebo-def,
283+
Title = {\textit{About Gazebo}},
284+
howpublished= {\url{https://gazebosim.org/about}},
285+
author = {Gazebo},
286+
year = {2023}
287+
}
288+
289+
@Electronic{rviz-def,
290+
Title = {\textit{RVIZ}},
291+
howpublished= {\url{https://github.com/ros-visualization/rviz#readme}},
292+
author = {ros-visualization},
293+
year = {2023}
294+
}
295+
296+
@Electronic{vscode-def,
297+
Title = {\textit{Getting Started}},
298+
howpublished= {\url{https://code.visualstudio.com/docs}},
299+
author = {Visual Studio Code},
300+
year = {2023}
301+
}
302+
303+
@Electronic{github-def,
304+
Title = {\textit{What Is GitHub, and What Is It Used For?}},
305+
howpublished= {\url{https://www.howtogeek.com/180167/htg-explains-what-is-github-and-what-do-geeks-use-it-for/}},
306+
author = {HTG Stuff},
307+
year = {2016}
308+
}
309+
310+
@Electronic{opencv-def,
311+
Title = {\textit{About}},
312+
howpublished= {\url{https://opencv.org/about/}},
313+
author = {OpenCV},
314+
year = {2023}
315+
}
316+
317+
@Electronic{matplotlib-def,
318+
Title = {\textit{Python | Introduction to Matplotlib}},
319+
howpublished= {\url{https://www.geeksforgeeks.org/python-introduction-matplotlib/}},
320+
author = {KattamuriMeghna},
321+
year = {2023}
322+
}
323+
324+
@Electronic{flight-controller,
325+
Title = {\textit{How Drone Controllers Work (Explained for Beginners)}},
326+
howpublished= {\url{https://www.droneblog.com/drone-controller/}},
327+
author = {Peter Karanja},
328+
year = {2023}
329+
}
330+
331+
@Electronic{px4-def,
332+
Title = {\textit{PX4 Autopilot User Guide (main)}},
333+
howpublished= {\url{https://docs.px4.io/main/en/}},
334+
author = {PX4 User Guide},
335+
year = {2023}
336+
}
337+
338+
@Electronic{px4-mavlink,
339+
Title = {\textit{MAVLink Messaging}},
340+
howpublished= {\url{https://docs.px4.io/main/en/middleware/mavlink.html}},
341+
author = {PX4 User Guide},
342+
year = {2023}
343+
}
344+
345+
@Electronic{px4-mavros,
346+
Title = {\textit{ROS 1 with MAVROS}},
347+
howpublished= {\url{https://docs.px4.io/main/en/ros/ros1.html}},
348+
author = {PX4 User Guide},
349+
year = {2023}
350+
}
351+
352+
@Electronic{jderobot-ref,
353+
Title = {\textit{JdeRobot}},
354+
howpublished= {\url{https://jderobot.github.io/}},
355+
author = {JdeRobot},
356+
year = {2023}
224357
}

memoria/capitulos/capitulo3.tex

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,73 +9,82 @@ \section{Lenguajes de programación}
99
\subsection{Python}
1010
\label{subsec:python}
1111

12-
A día de hoy, considerado el lenguaje de programación más popular, se ideó en 1991 por Guido van Rossum y se desarrolló en la Python Software Foundation. Es interpretado, es decir, usa un programa que traduce las líneas de código para la máquina en tiempo de ejecución (lo cual lo hace más intuitivo pero menos eficiente). Además, permite la programación orientada a objetos en alto nivel, lo que ofrece gran dinamismo a la hora de usarlo.\\
12+
A día de hoy, considerado el lenguaje de programación más popular \cite{tiobe}, se ideó en 1991 por Guido van Rossum y se desarrolló en la Python Software Foundation \cite{python-history}. Es interpretado, es decir, usa un programa que traduce las líneas de código para la máquina en tiempo de ejecución (lo cual lo hace más intuitivo pero menos eficiente). Además, permite la programación orientada a objetos en alto nivel, lo que ofrece gran dinamismo a la hora de usarlo \cite{python-def} \cite{compiled-vs-interpreted}.\\
1313

14-
Debido a su amplia popularidad, podemos acceder a una gran variedad de módulos y utilidades desarrollados por la comunidad, los cuales se integran perfectamente en la resolución de nuestro problema. Entraremos en más detalles en apartados posteriores.
14+
Debido a su amplia popularidad, podemos acceder a una gran variedad de módulos y utilidades desarrollados por la comunidad, los cuales se integran perfectamente en la resolución de nuestro problema. Entraremos en más detalles en apartados posteriores.\\
1515

1616
\subsection{C++}
1717
\label{subsec:cplusplus}
1818

19-
Seguido muy de cerca en fama, se encuentra el lenguaje de programación creado por Bjarne Stroustrup, en los laboratorios Bell en 1971. En este caso es compilado, lo que implica la traducción y enlazado previo a la ejecución. De corte más eficiente que Python, también permite la programación orientada a objetos. Se sitúa a medio camino entre un lenguaje de alto nivel y uno de bajo nivel.\\
19+
Seguido muy de cerca en fama, se encuentra el lenguaje de programación creado por Bjarne Stroustrup, en los laboratorios Bell en 1971. En este caso es compilado, lo que implica la traducción y enlazado previo a la ejecución. De corte más eficiente que Python, también permite la programación orientada a objetos. Se sitúa a medio camino entre un lenguaje de alto nivel y uno de bajo nivel \cite{c-history}.\\
2020

2121
\section{\ac{ROS}}
2222
\label{sec:ros}
2323

2424
Si se habla de robótica, se habla de \ac{ROS}, ya que es el medio predilecto para el desarrollo de soluciones de este ámbito, pero, ¿qué es exactamente \ac{ROS}?.\\
2525

26-
Se trata de un \emph{middleware}, es decir, una infraestructura software situada entre el sistema operativo y el desarrollador, que incluye una serie de módulos y funcionalidades enfocadas al desarrollo de aplicaciones robóticas. La idea detrás, busca estandarizar soluciones que no dependan de los drivers de cada sensor y actuador presentes. De forma general, se trata de una arquitectura basada en nodos que se comunican entre sí, transmitiendo una serie de mensajes propios, a través de canales compartidos llamados \emph{topics}.\\
26+
Se trata de un \emph{middleware}, es decir, una infraestructura software situada entre el sistema operativo y el desarrollador, que incluye una serie de módulos y funcionalidades enfocadas al desarrollo de aplicaciones robóticas \cite{middleware-def} \cite{ros-def}. La idea detrás, busca estandarizar soluciones que no dependan de los drivers de cada sensor y actuador presentes. De forma general, se trata de una arquitectura basada en nodos que se comunican entre sí, transmitiendo una serie de mensajes propios, a través de canales compartidos llamados \emph{topics}.\\
2727

2828
Entre las herramientas usadas en este proyecto, se encuentran las siguientes.
2929

3030
\subsection{Gazebo 11}
3131
\label{subsec:gazebo}
3232

33-
ToDo...
33+
Se trata del simulador sobre el cual se desarrolla el proyecto. Concretamente consta de un conjunto de módulos optimizados para desarrollar aplicaciones robóticas, a través del previamente mencionado \ac{ROS} \cite{gazebo-def}.\\
34+
35+
Esta herramienta, nos permite visualizar en directo, el comportamiento del dron frente a los diversos escenarios que se planteen.
3436

3537
\subsection{Rviz}
3638
\label{subsec:rviz}
3739

38-
ToDo...
40+
Por el otro lado, se encuentra \emph{rviz}, que es un visualizador 3D diseñado para la depuración de aplicaciones \ac{ROS} \cite{rviz-def}.\\
41+
42+
En nuestro caso, nos permitirá ver como se dispersa la señal \ac{RF}, que trayectoria y orientación sigue el dron, que efecto tiene sobre la señal la presencia de obstáculos, y otras tantas opciones.\\
3943

4044
\section{Plataformas de programación}
4145
\label{sec:plataformas_de_programacion}
4246

4347
\subsection{Visual Studio Code}
4448
\label{subsec:visual_studio_code}
4549

46-
ToDo...
50+
Entre las plataformas usadas para programar, \emph{Visual Studio Code}, o mejor conocido como \emph{VS code}, es un editor de código ligero, funcional tanto en Linux, Windows y macOS \cite{vscode-def}.\\
51+
52+
Su principal ventaja, es que es altamente personalizable a el tipo de desarrollo software que se desee realizar. Todo ello a través de las múltiples extensiones que ofrece, así como la conexión directa y fluida con plataformas como Github, que se detallarán a continuación.\\
4753

4854
\subsection{Github}
4955
\label{subsec:github}
5056

51-
ToDo...
57+
Github nace de la herramienta \textbf{git}, creada por Linus Torvalds (desarrollador de Linux), que es un sistema de control de versiones, que funciona a grandes rasgos a través de repositorios (o lugares donde se almacenan los sistemas de versiones de forma local), y commits (que permiten actualizar la version del código almacenado del repositorio) \cite{github-def}.\\
58+
59+
Sabiendo esto entonces, ¿qué es github?. Consiste en trasladar la idea de, en vez de tener repositorios locales, que estén distribuidos en una plataforma online, donde además se permita el desarrollo conjunto de aplicaciones de manera distribuida.\\
60+
61+
Por ello, el papel que toma en este proyecto es de vital importancia, ya que asegura un seguimiento y una seguridad, de cara a tener copias de seguridad, donde todo el que desee puede acceder a ver en que punto se encuentra el \ac{TFG} pueda hacerlo.\\
5262

5363
\section{Módulos}
5464
\label{sec:modulos}
5565

56-
ToDo...
57-
5866
\subsection{OpenCV}
5967
\label{subsec:opencv}
6068

61-
ToDo...
69+
Es una biblioteca software de python, enfocada a visión artificial, que dispone de métodos para desarrollar interfaces gráficas de manera intuitiva \cite{opencv-def}.\\
70+
71+
Inicialmente se usó para esto último, por su sencillez y porque se implementó una cámara al dron, de cara a una posible extensión de su funcionalidad en algún punto del proyecto.\\
6272

6373
\subsection{Matplotlib}
6474
\label{subsec:matplotlib}
6575

66-
ToDo...
76+
Presentada por John Hunter en 2002, se usó como biblioteca python alternativa a la anterior mencionada. La gran diferencia radica en que está diseñada para trabajar con estructuras numéricas del tipo array (muy compatible con Numpy \footnote{\url{https://numpy.org/about/}}), lo que permite ofrecer una gran visualización y una interfaz responsiva \cite{matplotlib-def}.\\
6777

68-
\subsection{MavROS}
69-
\label{subsec:mavros}
78+
En el caso concreto del proyecto, se usó para desarrollar interfaz gráfica, que simula y muestra el comportamiento de una señal \ac{RF}, permitiendo modificar los parámetros de la ecuación en tiempo real.\\
7079

71-
ToDo...
72-
73-
\subsection{PX4}
80+
\subsection{PX4 autopilot}
7481
\label{subsec:px4}
7582

76-
ToDo...
83+
Es la capa de software que permite hacer funcionar las aeronaves con sus componentes, esto es a través del controlador de vuelo, que a efectos prácticos se trata del cerebro del sistema, es decir, interconecta los sensores y actuadores, permitiendo comandar diversas acciones \cite{flight-controller} \cite{px4-def}.\\
84+
85+
Este sistema, usa un conocido protocolo de comunicaciones llamado \textbf{MAVLink}, que se encarga de gestionar la comunicación entre el controlador de vuelo y la \ac{GCS}. En nuestro caso, y como queremos desarrollar aplicaciones mediante \ac{ROS}, debemos añadir una capa más, que se encarga de traducir los mensajes ROS a mensajes compatibles con el protocolo MAVLink, y de esto se encarga \textbf{MAVROS} \cite{px4-mavlink} \cite{px4-mavros}.\\
7786

78-
\subsection{jderobot}
79-
\label{subsec:jderobot}
87+
\section{Iris}
88+
\label{sec:iris}
8089

81-
ToDo...
90+
Es el nombre de la aeronave usada para solucionar los problemas planteados. En síntesis, es un dron cuadracóptero provisto de una cámara y un sensor de \ac{RF} simulado. Dicha aeronave es cortesía de \textbf{JdeRobot}, que es un conjunto de herramientas pensadas para desarrollar aplicaciones robóticas \cite{jderobot-ref}.\\

0 commit comments

Comments
 (0)