Embedded nRF52 robot
Master thesis
Permanent lenke
http://hdl.handle.net/11250/2625759Utgivelsesdato
2019Metadata
Vis full innførselSamlinger
Beskrivelse
Full text not available
Sammendrag
Denne masteroppgåva har opphav i arbeider gjort av tekstforfattaren i samhøve med LEGO robot prosjektet. Programvara brukt til komunikasjon i tidligare prosjekt vert gjennomgått, naudsynte forandringar for å bruke den eksisterande programvara vart identifiserte og implementert. Eit lag for å sende Uart komunikasjonen gjennom den interne Bluetooth modulen vart utforma basert på Nordic Semiconductor sin UART teneste. Programvara for komunikasjon vart feilsøkt til ho var stabil. Fleir av sensorane på roboten vart justerte. Eit program som automatiserar delar av kalibrasjonprosessen for avstandsensorane vart utforma. Eit Kalmanfilter med 6 tilstandar vart utforma med mål om å annslå roboten sin posisjon. Filteret blei justert gjennom testing på loggførte sensorverdiar i programvara Matlab, og implementert på roboten. Roboten vart køyrt gjennom fleire testar i både nøyaktigheit og kartutforming i samarbeid med den ekisterande Java baserte serverapplikasjonen. Nødvendige forandringar for å bruke roboten samman med ein nyutvikla serveraplikasjon basert på C++, vart gjennomført slik at kjeldekoden fungerar både med den nyutvikla applikasjonen og den gamle. Resultata frå testinga blei diskutert og forslag til forbedringar vart frammlagt. Sidan Legoroboten no kan brukast i sammarbeid med server applikasjonen til å utforme kart over områder, er den no å betrakte som funksjonsdyktig. Forandringane i navigasjonen til roboten var vellukka, men det endå er rom for forbetringar. Inkluderinga av akselerometer målingane var vellukka, mend et viste seg at ein ikkje kunne bruke magnetometer målingane direkte i posisjonsestimatet, ei betre kalibrasjonsrutine eller ytterlegare tilverking av målinga vert tilrådt. This thesis is based on the work done on the "LEGO" robot project by the author. The communication used in the previous robot were analyzed, the changes necessary to be able use the same communication protocols, where identified and implemented. An interface for UART communication over the systems internal Bluetooth transceiver was written, based on the Nordic Semiconductor's UART service. The final communication setup was debugged until it was stable. Many of the sensors used on the robot were calibrated. A task that automates the gathering of raw IR-sensor data at various distances was created. A 6-state Kalman filter dedicated to estimating the robot position was proposed, implemented and tested in Matlab using actual sensor values from the robot. The filter was then implemented on the robot. Finally, the system was tested in both driving accuracy and in its ability to work with the existing Java sever application to map out areas. Necessary changes to work with a newly developed C++ and MQTT based server application were identified, and the source code modified to be able to function with both the new server and the old Java server. The results from the testing where discussed, and areas where the robot can be improved where identified.At the end of the project the LEGO robot is considered to have reached a state where it is operational, and can be used in conjunction with the server software for mapping out areas. The changes done to the navigation proved to be effective, although room for improvement is still present. The inclusion of the accelerometer in the position estimate was successful through the use of the Kalman filter. However it was not feasible to directly include the magnetometer measurements in the estimation process, a better calibration routine or additional refinement of the measurement is recommended.