Select Git revision
-
Max Unander authoredMax Unander authored
result.tex 9.38 KiB
The final result of the project, in regards to fulfilled goals, is as follows:
\begin{itemize}
\item[\checkmark]{The drone should be airborne and be able to carry its entire payload long enough to safely map an entire mineshaft.} %Which takes approximately...?
\item[\checkmark]{It must be cheaper than the previous mapping method.}
\item[\checkmark]{New units must be easily replaceable.}
\item[\text{\sffamily X}]{It must be able to ascend and descend the shaft without direct human input and land autonomously.}
\item[\checkmark]{To facilitate this it shall implement some collision avoidance to prevent it hitting the sides of the shaft.}
\item[\text{\sffamily X}]{Under flight, the drone should map the surrounding mineshaft, either using a rotating laser sensor or similar.}
\item[\checkmark]{The drone should communicate with a base station and return its findings in real-time.}
\item[\text{\sffamily X}]{The drone should return to its base station and land in case of lost communications.}
\item[\text{\sffamily X}]{The base station shall present an interface containing relevant information for control of the drone, as well as receive data from the drone.}
\item[\text{\sffamily X}]{The drone should not let erroneous external input jeopardize system stability.}
\end{itemize}
\subsection{UWB - Final state}
\subsectionauthor{Author: Fredrik Grönlund}
The following items are complete in development:
\begin{itemize}
\item The DW1000 library has been ported to the STM32F7 processor.
\item Regular data transmission over UWB works.
\item Regular data reception over UWB works.
\end{itemize}
Following items were not completed:
\begin{itemize}
\item SPI does not operate using DMA.
\item Code for data transfer over UWB is not in place.
\item Ranging via UWB is not working.
\item The DW1000 library lack functionality for many functions.
\item LAMP needs to be extended to include Sonar and ranging data
\end{itemize}
Most of the missing functions should not be difficult to implement given time.
The required infrastructure is mostly in place, such as DMA settings and ranging examples and parsing.
Ranging was developed until the end of the project.
Time ran out, so no real progress was made.
The SPI team believes that the best way to implement the ranging is to scrap most of the state code borrowed from the library example and instead construct a new from scratch.
This would likely be simpler to understand and follow, and is more likely to work than the current implementation.
Regarding the DW1000 library, many parts of it could use expanding and explaining.
The UWB development team encountered several event flags that were not present as one would expect.
They also suspect that the ranging functionality file might be better if included as a library, although it is not presented as such.
\subsection{IR - Final state}
\subsectionauthor{Author: Fredrik Grönlund}
Development on IR was halted early in development, as we found that the sonar sensors were perfectly adequate for the application.
In comparison, two IR sensors were required for each sonar, and they still had a worse accuracy, speed and usability.
Thus the developer was moved to SPI and UWB development.
The sensors were ordered and should accompany this project.
The dev board shield has connectors dedicated to IR sensor connections, although these contacts have since been repurposed as general status LEDs.
\subsection{Collision Avoidance - Final state}
\subsectionauthor{Author: Lars Jonsson}
The Colission Avoidance and hovering is working, the copter can fly between to walls, with some oscillations and not as stable as we had wanted.
With further tuning of the PID's and some improved filtering of the sonar data, this could work to get a copter up and down the shaft without crashing.
This was not a priority for us at the end, since this controlling approach probably will be changed later on in the project.
\subsection{LIDAR - Final state}
\subsectionauthor{Author: Henrik Tjäder}
LIDAR communication works, albeit with some caveats. Due to timing, sometimes LIDAR is not initialised properly before the much faster MCU requests data.
A potential remedy for this is to delay during startup to give the LIDAR more time or alternatively write a parser to check for the LIDAR response.
The intentions are to pack the LIDAR data into LAMP packets, this has not been finalized. All LIDAR data is currently sent over UDP to broadcast to ease debugging.