Design of Wireless RGB-D Sensor with Raspberry Pi
Järvenpää, Juuso (2024)
Järvenpää, Juuso
2024
Teknisten tieteiden kandidaattiohjelma - Bachelor's Programme in Engineering Sciences
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-05-21
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202405186004
https://urn.fi/URN:NBN:fi:tuni-202405186004
Tiivistelmä
The purpose of this thesis is to design a wireless RGB-D sensor with inertial sensing capabilities. This is done by integrating Intel RealSense D435 depth camera and MPU-6050 GY-521 6-DOF inertial measurement unit (IMU) to Raspberry Pi 4 8GB single-board computer. Pi sends the gathered data over Wi-Fi to MacBook Pro 2015 laptop to accomplish the wireless aspect of the design. Kalman filter is also designed to estimate the attitude of the sensor based on the measured inertial measurements: angular velocity and linear acceleration. Only roll and pitch angles are estimated because yaw cannot be estimated accurately with 6-DOF IMU.
Communication between Pi and the laptop is established by using Robot Operating System’s (ROS) publisher and subscriber nodes. To enable the use of ROS, Linux-based Ubuntu 20.04 operating system is installed on both devices. The scripts run by ROS are written in Python programming language because Python offers libraries rospy and smbus.
The second chapter of the thesis presents the hardware and software used in the thesis. The third chapter explains the theory behind the attitude estimation. The chapter goes through a simple Kalman filter algorithm. The state estimated with Kalman filter is a quaternion vector. Other topics presented in the chapter are conversion between quaternions and Euler angles and estimating altitude from acceleration measurements. The fourth chapter presents the steps of integrating devices together. The three steps were setting up and configuring the devices, integrating the IMU and integrating RealSense. The fifth chapter presents the results of the thesis and discusses potential improvements of the design.
The attitude estimation of the designed sensor is accurate when the attitude is not near singularity points. An if statement is included in the programmed Kalman filter algorithm. The statement skips the correction step of the algorithm if the pitch angle is too close to a singularity. This solution improves the attitude estimation near singularities. RealSense’s data is visualized in RViz 3D visualization tool. The RGB data is visualized in 30 FPS almost delay-free, and the depth data is visualized in ~30 FPS with ~0,5 second delay.
Tämän kandidaatintyön tarkoituksena on suunnitella langaton RGB-D-anturi inertiamittauskyvyllä. Tämä on toteutettu integroimalla Intel RealSense D435 -syvyyskamera sekä MPU-6050 GY-521 6-DOF -inertiamittausyksikkö Raspberry Pi 4 8GB -yhden piirilevyn tietokoneeseen. Pi lähettää mitatun datan Wi-Fin välityksellä MacBook Pro 2015 -kannettavaan tietokoneeseen, millä saavutetaan työn langaton näkökulma. Työssä suunnitellaan myös Kalman-suodin anturin asennon estimointiin. Asentoestimaatit lasketaan inertiamittausten, kulmanopeuden ja lineaarisen kiihtyvyyden, pohjalta. Ainoastaan kallistumis- ja nyökkäämiskulmia estimoidaan, sillä kääntymiskulmaa ei voida estimoida tarkasti 6-DOF-inertiamittausyksiköllä.
Kommunikaatio Pin ja tietokoneen välillä tapahtuu käyttäen Robot Operating System (ROS) -robottikäyttöjärjestelmän julkaisija- sekä tilaajanoodeja. Jotta ROS:in käyttö on mahdollista, molempiin laitteisiin asennetaan Linux-pohjainen Ubuntu 20.04 -käyttöjärjestelmä. ROS:in suorittamat ohjelmat kirjoitetaan Python-ohjelmointikielellä, joka tarjoaa ulkoiset kirjastot rospy ja smbus.
Työn toinen kappale esittelee työssä käytetyn laitteiston ja ohjelmistot tarkemmin. Kolmas kappale selittää asentoestimoinnin taustalla olevaa teoriaa. Kappaleessa käydään läpi yksinkertaisen Kalman-suotimen algoritmi. Kalman-suotimella estimoitu tila on kvaterniovektori. Kappaleessa käsitellään lisäksi muunnoksia Eulerin kulmien ja kvaternioiden välillä sekä asennon estimointia kiihtyvyysmittausten pohjalta. Neljäs kappale esittelee laitteiden integroimisen vaiheet. Prosessi koostui kolmesta vaiheesta, jotka olivat laitteiden alustus ja konfigurointi, inertiamittausyksikön integrointi, sekä RealSensen integrointi. Viides kappale esittelee työn tulokset ja pohtii suunnitellun anturin jatkokehityskohteita.
Työn lopputuloksena saadun anturin asennon estimointi on tarkkaa, kun ei olla lähellä singulariteettipisteitä. Kalman-suotimen ohjelmoituun toteutukseen on sisällytetty if-lauseke, joka jättää väliin Kalman-suotimen korjausaskeleen, jos nyökkäämiskulma on liian lähellä singulariteettipistettä. Tämä ratkaisu parantaa suotimen kykyä estimoida asentoa singulariteeteissa. RealSensen dataa visualisoidaan RViz-3D-visualisointityökalulla. RGB-dataa saadaan visualisoitua 30 kuvalla sekunnissa lähes viiveettä, ja syvyysdataa saadaan visualisoitua lähes 30 kuvalla sekunnissa noin 0,5 sekunnin viiveellä.
Communication between Pi and the laptop is established by using Robot Operating System’s (ROS) publisher and subscriber nodes. To enable the use of ROS, Linux-based Ubuntu 20.04 operating system is installed on both devices. The scripts run by ROS are written in Python programming language because Python offers libraries rospy and smbus.
The second chapter of the thesis presents the hardware and software used in the thesis. The third chapter explains the theory behind the attitude estimation. The chapter goes through a simple Kalman filter algorithm. The state estimated with Kalman filter is a quaternion vector. Other topics presented in the chapter are conversion between quaternions and Euler angles and estimating altitude from acceleration measurements. The fourth chapter presents the steps of integrating devices together. The three steps were setting up and configuring the devices, integrating the IMU and integrating RealSense. The fifth chapter presents the results of the thesis and discusses potential improvements of the design.
The attitude estimation of the designed sensor is accurate when the attitude is not near singularity points. An if statement is included in the programmed Kalman filter algorithm. The statement skips the correction step of the algorithm if the pitch angle is too close to a singularity. This solution improves the attitude estimation near singularities. RealSense’s data is visualized in RViz 3D visualization tool. The RGB data is visualized in 30 FPS almost delay-free, and the depth data is visualized in ~30 FPS with ~0,5 second delay.
Tämän kandidaatintyön tarkoituksena on suunnitella langaton RGB-D-anturi inertiamittauskyvyllä. Tämä on toteutettu integroimalla Intel RealSense D435 -syvyyskamera sekä MPU-6050 GY-521 6-DOF -inertiamittausyksikkö Raspberry Pi 4 8GB -yhden piirilevyn tietokoneeseen. Pi lähettää mitatun datan Wi-Fin välityksellä MacBook Pro 2015 -kannettavaan tietokoneeseen, millä saavutetaan työn langaton näkökulma. Työssä suunnitellaan myös Kalman-suodin anturin asennon estimointiin. Asentoestimaatit lasketaan inertiamittausten, kulmanopeuden ja lineaarisen kiihtyvyyden, pohjalta. Ainoastaan kallistumis- ja nyökkäämiskulmia estimoidaan, sillä kääntymiskulmaa ei voida estimoida tarkasti 6-DOF-inertiamittausyksiköllä.
Kommunikaatio Pin ja tietokoneen välillä tapahtuu käyttäen Robot Operating System (ROS) -robottikäyttöjärjestelmän julkaisija- sekä tilaajanoodeja. Jotta ROS:in käyttö on mahdollista, molempiin laitteisiin asennetaan Linux-pohjainen Ubuntu 20.04 -käyttöjärjestelmä. ROS:in suorittamat ohjelmat kirjoitetaan Python-ohjelmointikielellä, joka tarjoaa ulkoiset kirjastot rospy ja smbus.
Työn toinen kappale esittelee työssä käytetyn laitteiston ja ohjelmistot tarkemmin. Kolmas kappale selittää asentoestimoinnin taustalla olevaa teoriaa. Kappaleessa käydään läpi yksinkertaisen Kalman-suotimen algoritmi. Kalman-suotimella estimoitu tila on kvaterniovektori. Kappaleessa käsitellään lisäksi muunnoksia Eulerin kulmien ja kvaternioiden välillä sekä asennon estimointia kiihtyvyysmittausten pohjalta. Neljäs kappale esittelee laitteiden integroimisen vaiheet. Prosessi koostui kolmesta vaiheesta, jotka olivat laitteiden alustus ja konfigurointi, inertiamittausyksikön integrointi, sekä RealSensen integrointi. Viides kappale esittelee työn tulokset ja pohtii suunnitellun anturin jatkokehityskohteita.
Työn lopputuloksena saadun anturin asennon estimointi on tarkkaa, kun ei olla lähellä singulariteettipisteitä. Kalman-suotimen ohjelmoituun toteutukseen on sisällytetty if-lauseke, joka jättää väliin Kalman-suotimen korjausaskeleen, jos nyökkäämiskulma on liian lähellä singulariteettipistettä. Tämä ratkaisu parantaa suotimen kykyä estimoida asentoa singulariteeteissa. RealSensen dataa visualisoidaan RViz-3D-visualisointityökalulla. RGB-dataa saadaan visualisoitua 30 kuvalla sekunnissa lähes viiveettä, ja syvyysdataa saadaan visualisoitua lähes 30 kuvalla sekunnissa noin 0,5 sekunnin viiveellä.
Kokoelmat
- Kandidaatintutkielmat [8918]