Integrating a test robot for head-mounted displays to a continuous integration system
Nikula, Tommi (2021)
Nikula, Tommi
2021
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication 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ä
2021-04-28
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202104092885
https://urn.fi/URN:NBN:fi:tuni-202104092885
Tiivistelmä
The goal of the thesis is to study how a pre-existing measurement robot can be integrated to a continuous integration system. The test robot in question consists of a moving head and a camera. It is used to measure the performance of virtual and augmented reality devices. Before the thesis, the pre-existing system had no remote interface, and the developer needed to be present to use the system.
Developing VR/AR devices requires large-scale software development, and using modern software development practices like continuous integration is beneficial. The thesis first goes through the background related to continuous integration and head-mounted displays. The challenge of applying continuous integration to the development of embedded systems that interact with the environment is also discussed.
The thesis uses design science as a paradigm. During the thesis, the requirements and goals for the system were defined. The restrictions of the pre-existing system were also identified. After this, the requirements were collected using user stories. In addition, the performance requirements related to continuous integration were identified.
The technology and design choices were made based on the requirements. The choice was made to build an interface that enables integrating the test robot to a continuous integration system. The implementation was created as an add-on to the pre-existing environment and serves a REST API. The created interface allows the robot to be used for automated remote testing.
The architecture of the implemented system is described in detail, with several diagrams that show the system architecture in different levels of abstraction. The created interface is also introduced with usage examples.
The implemented system was evaluated by looking at the architecture and interface. An experiment was carried out to test the system’s abilities. It was shown to be able to measure the motion-to-photon latency of a VR device as part of a continuous integration pipeline. A change in latency introduced by a software change was detected in a test that took about 1 minute. Diplomityön tavoitteena on tutkia, millä tavalla olemassa oleva päässä pidettäviä näyttöjä, eli virtuaalilaseja sekä lisätyn todellisuuden laseja, testaava mittausrobotti voidaan integroida jatkuvan integraation järjestelmään. Kyseessä on mittausrobotti, joka koostuu fyysisesti liikkuvasta päästä sekä kamerasta, ja sitä käytetään mittaamaan päässä pidettävien näyttöjen suorituskykyä. Ennen diplomityön toteuttamista laitteen käyttö vaati kehittäjän fyysistä läsnäoloa, eikä etäkäyttörajapintaa ollut saatavilla.
Päässä pidettävien näyttöjen kehitys vaatii suuren määrän ohjelmistotyötä, ja kehitystä voidaan nopeuttaa ottamalla käyttöön moderneja ohjelmistokehityksen käytäntöjä, kuten jatkuva integraatio. Työn alussa esitellään oleellinen teoriataustajatkuvasta integraatiosta sekä päässä pidettävistä näytöistä. Lisäksi esitellään haasteita, jotka liittyvät jatkuvan integraation käyttöönottamiseen ohjelmistokehityksessä, jonka kohteena on ympäristönsä kanssa vuorovaikuttava sulautettu järjestelmä.
Diplomityö noudattaa design science -tutkimusmetodia. Työn alussa luotiin vaatimukset ja tavoitteet integroinnille. Aluksi tunnistettiin jo olemassa olevan järjestelmän rajoitteet, minkä jälkeen vaatimukset rakennettiin käyttäjätarinoiden pohjalta. Lisäksi vaatimuksissa huomioitiin jatkuvan integraation mukanaan tuomat suorituskykyvaatimukset.
Teknologiavalintoja ja toteutustapoja vertailtiin vaatimusten pohjalta, ja työssä päädyttiin toteuttamaan REST-rajapinta, joka mahdollistaa mittausrobotin liittämisen jatkuvan integraation järjestelmiin. Toteutus tehtiin laajennukseksi olemassa olevaan ympäristöön, ja se tarjoaa yksinkertaisen rajapinnan, jonka avulla laitetta voidaan käyttää automaattiseen testaamiseen.
Toteutetun järjestelmän kokonaisarkkitehtuuri esitellään yksityiskohtaisesti. Arkkitehtuurin kuvauksessa käytetään useita näkymiä, jotka kuvaavat arkkitehtuuria eri abstraktiotasoilla. Lisäksi toteutettu rajapinta esitellään, ja sen käytöstä annetaan esimerkkejä.
Järjestelmän arkkitehtuuria ja rajapintaa arvioitiin osana diplomityötä. Lisäksi järjestelmää testattiin käytännössä, jolloin huomattiin, että järjestelmä mahdollistaa virtuaalilasien latenssin testaamisen osana jatkuvaa integraatiota. Lasien ohjelmistomuutoksen aiheuttama latenssi pystyttiin havaitsemaan jopa vain minuutin kestävässä testissä.
Developing VR/AR devices requires large-scale software development, and using modern software development practices like continuous integration is beneficial. The thesis first goes through the background related to continuous integration and head-mounted displays. The challenge of applying continuous integration to the development of embedded systems that interact with the environment is also discussed.
The thesis uses design science as a paradigm. During the thesis, the requirements and goals for the system were defined. The restrictions of the pre-existing system were also identified. After this, the requirements were collected using user stories. In addition, the performance requirements related to continuous integration were identified.
The technology and design choices were made based on the requirements. The choice was made to build an interface that enables integrating the test robot to a continuous integration system. The implementation was created as an add-on to the pre-existing environment and serves a REST API. The created interface allows the robot to be used for automated remote testing.
The architecture of the implemented system is described in detail, with several diagrams that show the system architecture in different levels of abstraction. The created interface is also introduced with usage examples.
The implemented system was evaluated by looking at the architecture and interface. An experiment was carried out to test the system’s abilities. It was shown to be able to measure the motion-to-photon latency of a VR device as part of a continuous integration pipeline. A change in latency introduced by a software change was detected in a test that took about 1 minute.
Päässä pidettävien näyttöjen kehitys vaatii suuren määrän ohjelmistotyötä, ja kehitystä voidaan nopeuttaa ottamalla käyttöön moderneja ohjelmistokehityksen käytäntöjä, kuten jatkuva integraatio. Työn alussa esitellään oleellinen teoriataustajatkuvasta integraatiosta sekä päässä pidettävistä näytöistä. Lisäksi esitellään haasteita, jotka liittyvät jatkuvan integraation käyttöönottamiseen ohjelmistokehityksessä, jonka kohteena on ympäristönsä kanssa vuorovaikuttava sulautettu järjestelmä.
Diplomityö noudattaa design science -tutkimusmetodia. Työn alussa luotiin vaatimukset ja tavoitteet integroinnille. Aluksi tunnistettiin jo olemassa olevan järjestelmän rajoitteet, minkä jälkeen vaatimukset rakennettiin käyttäjätarinoiden pohjalta. Lisäksi vaatimuksissa huomioitiin jatkuvan integraation mukanaan tuomat suorituskykyvaatimukset.
Teknologiavalintoja ja toteutustapoja vertailtiin vaatimusten pohjalta, ja työssä päädyttiin toteuttamaan REST-rajapinta, joka mahdollistaa mittausrobotin liittämisen jatkuvan integraation järjestelmiin. Toteutus tehtiin laajennukseksi olemassa olevaan ympäristöön, ja se tarjoaa yksinkertaisen rajapinnan, jonka avulla laitetta voidaan käyttää automaattiseen testaamiseen.
Toteutetun järjestelmän kokonaisarkkitehtuuri esitellään yksityiskohtaisesti. Arkkitehtuurin kuvauksessa käytetään useita näkymiä, jotka kuvaavat arkkitehtuuria eri abstraktiotasoilla. Lisäksi toteutettu rajapinta esitellään, ja sen käytöstä annetaan esimerkkejä.
Järjestelmän arkkitehtuuria ja rajapintaa arvioitiin osana diplomityötä. Lisäksi järjestelmää testattiin käytännössä, jolloin huomattiin, että järjestelmä mahdollistaa virtuaalilasien latenssin testaamisen osana jatkuvaa integraatiota. Lasien ohjelmistomuutoksen aiheuttama latenssi pystyttiin havaitsemaan jopa vain minuutin kestävässä testissä.