diff --git a/WimaDok/main.aux b/WimaDok/main.aux index 7f0dee95bd3247f936bdfb13a2d07fceb722cf55..14660ba562b8253a7531ab662b0466265932fa9c 100644 --- a/WimaDok/main.aux +++ b/WimaDok/main.aux @@ -2,7 +2,7 @@ \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}} \@writefile{toc}{\contentsline {section}{\numberline {2}Documentation}{1}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Structure of QGroundControl with WiMA-Extension}{1}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Detail view of the QGC window, which appears after start-up. Marked in red is the button for switching to the plan view window, green indicates the flight view button (current window) and marked in magenta is the button for switching to the WiMA main window.}}{2}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Detail view of the QGC window, which appears after start-up. Marked in red is the button for switching to the Plan View Window, green indicates the Flight View button (current window) and marked in magenta is the button for switching to the WiMA Main Window.}}{2}} \newlabel{fig:QGCMainButtonExplain}{{1}{2}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}WiMA Main Window}{2}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}WiMA Tool Strip}{2}} @@ -12,7 +12,7 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}WiMA Areas}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces WiMA Item Editor at the right edge of the WiMA Main Window.}}{3}} \newlabel{fig:WimaItemEditor}{{3}{3}} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Flight path of a real world vehicle (the red line).}}{3}} +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Flight path of a real vehicle (red line).}}{3}} \newlabel{fig:optimPaht}{{4}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Adjust the vertex by dragging it's handle.}}{3}} \newlabel{fig:vertexHandle}{{5}{3}} @@ -21,6 +21,14 @@ \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Move any area by dragging its drag handle.}}{3}} \newlabel{fig:moveArea}{{7}{3}} \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces A valid configuration of Measurement, Service Area and Corridor.}}{4}} +\newlabel{fig:validConfig}{{8}{4}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.3}The generated Flight Path}{4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4}Circular Survey}{4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}ArduPilot Simulator}{5}} +\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Checking the Mission radio button displays the mission items.}}{5}} +\newlabel{fig:wimaRadioButtons}{{9}{5}} +\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces The flight path generated from the areas depicted in fig. 8\hbox {}.}}{5}} +\newlabel{fig:flightPath}{{10}{5}} +\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces An example of a Circular Survey pattern.}}{6}} +\newlabel{fig:circularSurvey}{{11}{6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.4}Circular Survey}{6}} +\newlabel{sec:circularSurvey}{{2.2.4}{6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}ArduPilot Simulator}{7}} diff --git a/WimaDok/main.pdf b/WimaDok/main.pdf index 14c7a5b757c93b4f28b26c587cf11b35899179e4..7e28af3daca9a918ef7ed691b1a52152bd4675a9 100644 Binary files a/WimaDok/main.pdf and b/WimaDok/main.pdf differ diff --git a/WimaDok/main.synctex.gz b/WimaDok/main.synctex.gz index d576720f60a1b9015f379c1b4fb822a512d06896..ae2034ad0e3a6c298abf519085420b23b11d9483 100644 Binary files a/WimaDok/main.synctex.gz and b/WimaDok/main.synctex.gz differ diff --git a/WimaDok/main.tex b/WimaDok/main.tex index 023f1967f3c093c6666cc397359670063ee59322..8b267b3d9c89f6ca4d6e8f942b2776f7d789dd08 100644 --- a/WimaDok/main.tex +++ b/WimaDok/main.tex @@ -14,16 +14,16 @@ \definecolor{shadecolor}{rgb}{0.9,0.9,0.9} %opening -\title{Documentation of the QGroundControl WiMA-Extension} +\title{Documentation of the WiMA-Extension} \author{Valentin Platzgummer} \begin{document} \maketitle \section{Introduction} -WiMA is a abbreviation for \textbf{Wi}reless \textbf{M}easurement \textbf{A}pplication. +WiMA is a abbreviation for \textbf{Wi}reless \textbf{M}easurement \textbf{A}pplication. The WiMA extension is a customization who's purpose is to simplify mobile coverage measurements. The current goal is to provide software which is able to generate flight paths form minimal user input. Future goals could be to develop interfaces such that KPI measurements could be triggered from within QGroundControl. An other goal could be to automatically retrieve, merge, analyze and visualize the measured data. -This document was created to explain the functionality of the WiMA-Extension at one hand and to encourage the reader to find bugs inside the program. Hence the document is split in two parts. The first part contains instructions on how to use WiMA and the second part gives some suggestions for testing. As the extension is still being developed the contents demonstrated inside this document may differ from those ones in the program. +This document was created to explain the functionality of the WiMA-Extension at one hand, and to encourage the reader to find bugs inside the program. As the extension is still being developed the contents demonstrated inside this document may differ from those ones in the program. The folder "deploy" in the QGroundControl root directory (can be cloned from Gitlab) contains a AppImage of the program. QGroundControl can be launched by double-clicking the AppImage. Currently only a Linux version is available. @@ -32,16 +32,16 @@ The folder "deploy" in the QGroundControl root directory (can be cloned from Git \subsection{Structure of QGroundControl with WiMA-Extension} Figure \ref{fig:QGCMainButtonExplain} shows a detail view of the QGC main window. Relevant for this documentation are the flight view, the plan view and the WiMA main window. Their function will now be briefly summarized. -The \textbf{plan view window} is used to create flight plans. They can be stored as .plan files or directly be uploaded to a vehicle (either a real one or a simulated one). Flight plans consist of waypoints. Each waypoint stores, among others, a coordinate (latitude, longitude, altitude) and a command (take off, land, wait for x seconds, etc.). To define a sensible flight plan a sequence of waypoints should begin with a take off command and end with a land command. Besides waypoints more complex patterns can be defined, which is done by inserting a Survey, a Circular Survey, a Structure Scan or a Corridor Scan. Just try them out! Using the simulator can be very helpful. +The \textbf{plan view window} is used to create flight plans. They can be stored as .plan files or directly be uploaded to a vehicle (either a real one or a simulated one). Flight plans consist of way-points. Each way-point stores, among others, a coordinate (latitude, longitude, altitude) and a command (take off, land, wait for x seconds, etc.). To define a sensible flight plan a sequence of way-points should begin with a take off command and end with a land command. Besides way-points more complex patterns can be defined, which is done by inserting a Survey, a Circular Survey, a Structure Scan or a Corridor Scan. Just try them out! Using the simulator can be very helpful. -The \textbf{flight view window} comes in necessary as soon as you want a vehicle to get in action. Once the vehicle established a connection (serial, TCP, UDP, etc.) QGroundControl starts to communicate automatically with it automatically in most cases. If not, check the settings menu of QGroundControl. A red arrow will appear on the map showing the vehicles position and orientation. On the top indicator strip telemetry data will be published. At the left edge a tool strip will be activated, which can be used to command the vehicle. +The \textbf{Flight View Window} comes in necessary as soon as you want a vehicle to get in action. Once the vehicle established a connection (serial, TCP, UDP, etc.), QGroundControl starts to communicate automatically with it, in most cases. If not, check the settings menu of QGroundControl. A red arrow will appear on the map, showing the vehicles position and orientation. On the top indicator strip, telemetry data will be published. At the left edge a tool strip will be activated, which can be used to command the vehicle. -The \textbf{WiMA main window} is used to automatically generate flight paths on the base of minimal user input. The user can define a Measurement Area, a Service Area (for take off, land, supply tasks, etc.) and a Corridor, which connects the previous two areas. Below the WiMA main window will be described in more detail. +The \textbf{WiMA Main W4indow} is used to automatically generate flight paths from minimal user input. The user can define a Measurement Area, a Service Area (for take off, land, supply tasks, etc.) and a Corridor, which connects the previous two areas. Below the WiMA main window will be described in more detail. \begin{figure}[h!] \includegraphics[width=\textwidth]{pics/QGCMainWindowCroppedRect} \centering - \caption{Detail view of the QGC window, which appears after start-up. Marked in red is the button for switching to the plan view window, green indicates the flight view button (current window) and marked in magenta is the button for switching to the WiMA main window.} + \caption{Detail view of the QGC window, which appears after start-up. Marked in red is the button for switching to the Plan View Window, green indicates the Flight View button (current window) and marked in magenta is the button for switching to the WiMA Main Window.} \label{fig:QGCMainButtonExplain} \end{figure} @@ -61,14 +61,14 @@ Pressing the \textbf{File} button opens a menu which offers saving and loading o The \textbf{Measure}, \textbf{Service} and \textbf{Corridor} buttons are used to insert a measurement, service and corridor area, respectively. At the time only one of each areas can be inserted. To automatically generate a flight plan at least a measurement and a service area must be defined. Both must be overlapping. -To auto generate a flight plan the \textbf{Calculate} button must be pressed. Further information about how to display the generated flight plan will follow below. In the future this button might be removed and be replaced by a routine which automatically triggers recalculation after any modification. However as the flight plan generation can be time consuming on older devices, this button will remain in the near future, up to the point, underlying routines get optimized. +To generate a flight plan the \textbf{Calculate} button must be pressed. Further information about how to display the generated flight plan will follow below. In the future this button might be removed and be replaced by a routine which automatically triggers recalculation after any modification. However as the flight plan generation can be time consuming on older devices, this button will remain in the near future, up to the point, underlying routines get optimized. As flight generation is manually triggered the flight plans might look wrong (for e.g. after user modification), pressing the \textbf{Calculate} button often will remove errors. If not, please report any bugs. The last three buttons, \textbf{Center}, \textbf{In} and \textbf{Out} are used to center the view and for zooming respectively. \subsubsection{WiMA Areas} -As all ready mention the three areas, namely the Measurement Area, the Service Area and the Corridor can be defined using the corresponding buttons of the WiMA Tool Strip (see \ref{sec:wimaToolStrip}). +As all ready mentioned the three areas, namely the Measurement Area, the Service Area and the Corridor can be defined using the corresponding buttons of the WiMA Tool Strip (see \ref{sec:wimaToolStrip}). \begin{figure}[h!] \begin{minipage}{0.3\textwidth} @@ -81,7 +81,7 @@ As all ready mention the three areas, namely the Measurement Area, the Service A \begin{minipage}{0.3\textwidth} \centering \includegraphics[width=\textwidth]{pics/optimPath} - \caption{Flight path of a real world vehicle (the red line).} + \caption{Flight path of a real vehicle (red line).} \label{fig:optimPaht} \end{minipage} \end{figure} @@ -128,27 +128,53 @@ The \textbf{WiMA Service Area} is meant to be the area were takeoff and landing The \textbf{WiMA Corridor} connects the two previous areas and defines a corridor which the vehicles uses to travel between Service and Measurement Area. -The flight plan will be generated such that all waypoints are within or at least at the edge of the above mentioned areas. However it should be taken in account, that the vehicle could still leave the save area, even under fully functional operation. Depending on software implementation of the vehicles flight stack (firmware) the flight controller could decide to perform any kind of path optimization. Additionally drifts caused by wind gusts could happen. An example can be seen in fig. \ref{fig:optimPaht}. -The vehicles flight controller indeed has no information about any WiMA Areas, they exist exclusively within the QGroundControl application. +The flight plan will be generated such that all way-points are within or at least at the edge of the above mentioned areas. However it should be taken in account, that the vehicle could still leave the save area, even under fully functional operation. Depending on software implementation of the vehicles flight stack (firmware) the flight controller could decide to perform any kind of path optimization. Additionally drifts caused by wind gusts could occur. An example can be seen in fig. \ref{fig:optimPaht}. +The vehicles flight controller has no information about any WiMA Areas, they exist exclusively within the QGroundControl application. All WiMA areas can be shaped by dragging the vertex handles (see fig. \ref{fig:vertexHandle}). New vertices can be created by hitting the plus signs at the edges (see fig. \ref{fig:vertexPlus}). The whole area can be moved by dragging its drag handle (see fig. \ref{fig:moveArea}). -A valid configuration including Measurement, Service Area and Corridor could look like shown in fig. +A valid configuration including Measurement, Service Area and Corridor could look like in figure \ref{fig:validConfig}. \begin{figure} \includegraphics[width=0.8\textwidth]{pics/validAreas} \centering \caption{A valid configuration of Measurement, Service Area and Corridor.} + \label{fig:validConfig} \end{figure} \subsubsection{The generated Flight Path} +\begin{figure} + \includegraphics[width=0.3\textwidth]{pics/wimaRadioButtons} + \centering + \caption{Checking the Mission radio button displays the mission items.} + \label{fig:wimaRadioButtons} +\end{figure} +\begin{figure} + \includegraphics[width=0.6\textwidth]{pics/flightPath2} + \centering + \caption{The flight path generated from the areas depicted in fig. \ref{fig:validConfig}.} + \label{fig:flightPath} +\end{figure} +The flight plan can be displayed by checking the mission radio button, as depicted in fig \ref{fig:wimaRadioButtons}. An example of a automatically generated flight path can be seen in figure \ref{fig:flightPath}. Within the green measurement area the program has generated a Circular Survey (see \ref{sec:circularSurvey} for further information). The survey has an entry and an exit point. The program has routed paths from the take off point to the surveys entry point and from the surveys exit point to the landing point. The paths have been chosen to be within the areas and as short as possible. \subsubsection{Circular Survey} +\label{sec:circularSurvey} +\begin{figure} + \includegraphics[width=0.8\textwidth]{pics/circularSurvey} + \centering + \caption{An example of a Circular Survey pattern.} + \label{fig:circularSurvey} +\end{figure} +The Circular Survey (see fig. \ref{fig:circularSurvey}) is a flight pattern provided by the WiMA extension. It is similar to the Survey pattern of the standard QGroundControl application. The Circular Survey was adapted for mobile coverage measurements. It consists of circle segments refereed to as transects. Ideally, the transects are connected with each other such that the path between entry and exit point is as short as possible. Currently this goal is approximated by a heuristics. The solution might not always be the global optimum. +The \textbf{Reference} point (Circle with R symbol and Reference tag, see fig. \ref{fig:circularSurvey}) defines the center of the circle segments. Normally it well be placed on the base stations position. +The Circular Survey editor (on the left side of the window) offers some options. The \textbf{Altitude} input box adjusts the altitude of the survey. The distance between adjacent circle segments can be modified by changing the \text{Delta R} value. The circle segments are approximated by polygonal structures, consisting of way-points. Two arbitrary adjacent way-points of a circle segment have a constant angle between the. This angle can be adjusted by editing the \textbf{Delta Alpha} input box. The Delta Alpha value can assume everything between 0.3$^{\circ}$ and 90$^{\circ}$. The higher the value the rougher the circle appears. The survey will contain the less way-points the higher the Delta R and the Delta Alpha values are. The number of way-points impacts how fast the computer can do recalculations and how long the upload to the UAV takes. +Sometimes transects are short (length of less than e.g. 3 m). Such ones are often undesired, because the real vehicle will not follow them correctly. To remove them in advance, the minimal transect length can be adjusted by editing the \textbf{Min. Length} value. Transects with a length smaller than Min. Length will removed. +The \textbf{Rotate Entry Point} button and the \textbf{Relative altitude} check box don't yet have a function. diff --git a/WimaDok/pics/.directory b/WimaDok/pics/.directory new file mode 100644 index 0000000000000000000000000000000000000000..0338b5213d97ff9607536ce25981ad1a1ce55809 --- /dev/null +++ b/WimaDok/pics/.directory @@ -0,0 +1,4 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2019,9,22,4,6,35 +Version=4 diff --git a/WimaDok/pics/CircularSurvey.png b/WimaDok/pics/circularSurvey.png similarity index 100% rename from WimaDok/pics/CircularSurvey.png rename to WimaDok/pics/circularSurvey.png diff --git a/WimaDok/pics/wimaRadioButtons.png b/WimaDok/pics/wimaRadioButtons.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1b77c96d4702c96b06f932bbae220ac49d4c2e Binary files /dev/null and b/WimaDok/pics/wimaRadioButtons.png differ