Bare-Metal Visual-Inertial Odometry
Master thesis
Permanent lenke
https://hdl.handle.net/11250/3148818Utgivelsesdato
2023Metadata
Vis full innførselSamlinger
Sammendrag
The utilisation of cameras as guiding sensors for state estimation has become increasingly prevalent during the last two decades with methods such as visual odometry (VO), visual-inertial odometry (VIO) and simultaneous localisation and mapping (SLAM). Existing implementations for these methods are typically computationally demanding and unsuitable for nanoscale drones (≤ 10 cm in diameter and ≤ 50 grams in weight). Due to these platforms’ reduced computational resources and power budget, a different mindset is required for the design and implementation of these methods. This master’s thesis presents a bare-metal implementation for a visual-inertial odometry pipeline running on a microcontroller with a clock speed of 1 GHz. The implementation is constructed under tight memory and runtime requirements, requires 3 MB of RAM and is tested against the EuRoC dataset. It achieves comparable runtime performance and accuracy to state-of-the-art implementations on more performant hardware. Bruken av kameraer som veiledende sensorer for tilstandsestimering har blitt stadig mer utbredt de siste to tiårene med metoder som visuell odometri (VO), visuellinertiell odometri (VIO) og simultan lokalisering og kartlegging (SLAM). Eksisterende implementasjoner for disse metodene er typisk beregningskrevende og uegnet for nanoskala-droner (≤ 10 cm i diameter og ≤ 50 gram i vekt). På grunn av disse plattformenes reduserte beregningsressurser og strømbudsjett kreves det en annen tankegang for designet og implementasjonen av disse metodene. Denne masteroppgaven presenterer en "på-metallet"-implementasjon for visuell-inertiell odometri som kjører på en mikrokontroller med en klokkehastighet på 1 GHz. Implementasjonen er konstruert under strenge krav til minne og kjøretid, krever 3 MB hurtigminne og er testet mot EuRoC-datasettet. Implementasjonen oppnår en kjøretid og nøyaktighet som er sammenlignbar med de mest avanserte implementasjonene som kjører på mer ytelsessterk maskinvare.