Software for a Service Robot

Detalhes bibliográficos
Autor(a) principal: Correia, André Rosa de Sousa Porfírio
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10400.6/10808
Resumo: Service robots are becoming more commonplace every year due to advances in artificial intelligence, substituting humans in increasingly more complex tasks. By having an autonomous and competent service robot performing routinely tasks instead of its human owners, their productivity increases. The search for better service robots has led to the creation of competitions where such robots are tested and the state of the art technology is pushed further. Socialab acquired a Turtlebot2 robot to serve people around the university campus and one day participate in such competitions. With hopes of achieving these goals, the laboratory has proposed a variety of projects over the years, each adding new layers offunctionality to the robot. With each studentthathas tackled their respective project,thedeveloped softwarehasbeencontinuously stacking. However, each completed project has remained separate from each other andhasn’t been used ever since. Hence,the developed software is being wasted. Therefore, it is imperative to integrate all the available software into the robot. Yet, as new projects are proposed, the problem of scattered software can reoccur after the integration of the currently available ones. Furthermore, with more functionality that is developed, the harder and longer it takes to complete their integration. To preventthis entirely, itis necessary to create structural software that eases the development of new functionality as well as its integration with the current software. To achieve this, a class was developed which is responsible for controlling the execution of all processes running in the robot, of which the different software depends on. Additionally, research was done on multiple competitions to identify the most commonly required functionality traits, which we refer to as modules. Afterwards, an implementation of each of these modules was developed. Because of their universality, their implementation allows future software that requires any of the modules to simply import them, rather than having to re-implement them. In line with good software quality practices, if any of the modules needs an upgrade, this upgrade simply has to be performed on the respective module, instead of upgrading every adjacent software that uses this module. This was the first goal of this thesis. After creating a solid foundation for robot software development, the focus shifted towards the creation of new functionality. The different tasks were obtained from the previous research of various robotic competitions. The idea is that if the robot can perform such tasks then it can participate in the competitions, while the same functionalities can be used around campus. The list aimed to be as long as possible with the goal of leaving the robot with as much functionality as possible while taking into consideration the time restraints of the development of this thesis. Seven tasks were selected. The implementation of each task is explained in detail. As each task was developed, the implemented steps were turned into modules, therefore respecting the initial goal of flexible and reusable software. Because of this, as more tasks were developed the following task’s implementation was increasingly simpler as some of the requirements were already available from the development of their predecessors. The tasks required knowledge from different areas of artificial intelligence. This lead to the broadening of my knowledge rather than specialization in a single area. With this work, we show how distinct robotic tasks were implemented. Due to the varied nature ofthe tasks, we show how to tackle a multitude of different problems that appear in the area of artificial intelligence. Additionally, the work presents an approach to create a solid foundation for the development and integration of increasingly more software. The tasks are benchmarked, meaning future updates ofthe tasks can be performed and proved superior through the comparison of their results.
id RCAP_c179ad5b7b65ec4158f1dad26f7ec8dd
oai_identifier_str oai:ubibliorum.ubi.pt:10400.6/10808
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Software for a Service RobotClassificaçãoDeteçãoInteligência ArtificialQualidade de SoftwareRobóticaSegmentação SemânticaDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaService robots are becoming more commonplace every year due to advances in artificial intelligence, substituting humans in increasingly more complex tasks. By having an autonomous and competent service robot performing routinely tasks instead of its human owners, their productivity increases. The search for better service robots has led to the creation of competitions where such robots are tested and the state of the art technology is pushed further. Socialab acquired a Turtlebot2 robot to serve people around the university campus and one day participate in such competitions. With hopes of achieving these goals, the laboratory has proposed a variety of projects over the years, each adding new layers offunctionality to the robot. With each studentthathas tackled their respective project,thedeveloped softwarehasbeencontinuously stacking. However, each completed project has remained separate from each other andhasn’t been used ever since. Hence,the developed software is being wasted. Therefore, it is imperative to integrate all the available software into the robot. Yet, as new projects are proposed, the problem of scattered software can reoccur after the integration of the currently available ones. Furthermore, with more functionality that is developed, the harder and longer it takes to complete their integration. To preventthis entirely, itis necessary to create structural software that eases the development of new functionality as well as its integration with the current software. To achieve this, a class was developed which is responsible for controlling the execution of all processes running in the robot, of which the different software depends on. Additionally, research was done on multiple competitions to identify the most commonly required functionality traits, which we refer to as modules. Afterwards, an implementation of each of these modules was developed. Because of their universality, their implementation allows future software that requires any of the modules to simply import them, rather than having to re-implement them. In line with good software quality practices, if any of the modules needs an upgrade, this upgrade simply has to be performed on the respective module, instead of upgrading every adjacent software that uses this module. This was the first goal of this thesis. After creating a solid foundation for robot software development, the focus shifted towards the creation of new functionality. The different tasks were obtained from the previous research of various robotic competitions. The idea is that if the robot can perform such tasks then it can participate in the competitions, while the same functionalities can be used around campus. The list aimed to be as long as possible with the goal of leaving the robot with as much functionality as possible while taking into consideration the time restraints of the development of this thesis. Seven tasks were selected. The implementation of each task is explained in detail. As each task was developed, the implemented steps were turned into modules, therefore respecting the initial goal of flexible and reusable software. Because of this, as more tasks were developed the following task’s implementation was increasingly simpler as some of the requirements were already available from the development of their predecessors. The tasks required knowledge from different areas of artificial intelligence. This lead to the broadening of my knowledge rather than specialization in a single area. With this work, we show how distinct robotic tasks were implemented. Due to the varied nature ofthe tasks, we show how to tackle a multitude of different problems that appear in the area of artificial intelligence. Additionally, the work presents an approach to create a solid foundation for the development and integration of increasingly more software. The tasks are benchmarked, meaning future updates ofthe tasks can be performed and proved superior through the comparison of their results.Os robôs de serviço são cada vez mais comuns devido aos avanços constantes na área da inteligência artificial, substituindo os humanos em tarefas cada vez mais complexas. Ao ter um robô autónomo e competente desempenhando tarefas diárias em vez do seu dono humano, a produtividade destes consequentemente aumenta. A pesquisa por melhores robôs de serviço levou à criação de competições robóticas onde tais tipos de robôs são avaliados e o estado da arte é forçado a avançar. Com o objetivo de possuir um robô de serviço que sirva as pessoas na universidade, bem como um dia participar em tais competições, o Socialab adquiriu um robô Turtlebot2. O laboratório tem proposto vários projetos ao longo dos anos, cada um adicionando novos níveis de funcionalidade ao robô. Com cada estudante que tem vindo a realizar o respetivo projeto, o software que foi desenvolvido tem estado continuamente a aumentar. Adicionalmente, cada projeto completado tem permanecido separado dos restantes e não tem sido utilizado desde o momento da sua criação. Por esta razão, o software desenvolvido está a ser desperdiçado. Portanto, é imperativo integrar todo o software disponível no robô. No entanto, como novos projetos serão desenvolvidos, este problema de projetos disjuntos poderá voltar a ocorrer após a integração dos projetos atuais. Ademais, com o aumento da funcionalidade que é desenvolvida, mais dificil e demorado será a sua integração. De forma a evitar este problema na sua totalidade, é necessário criar software estrutural que facilite o desenvolvimento de novas funcionalidades, bem como a sua integração com o software já existente. De forma a atingir este objetivo, foi desenvolvida uma classe cujo propósito é controlar a execução de todos os processos em execução no robô. Adicionalmente, foi efetuada uma pesquisa sobre diversas competições robóticas com o objetivo de identificar os tipos de funcionalidades mais comuns, que referimos como módulos. Depois foi realizada uma implementação de cada um destes módulos. Devido à universalidade destes módulos, a sua implementação permite que software futuro, que provavelmente depende de alguns dos módulos, apenas os tenha que importar, em contraste com ter que os re-implementar. Adicionalmente, emlinha comas práticas dequalidadede software, se cadaumdosmódulos precisa de uma atualização, esta apenas tem de ser realizada nos respetivos módulos, ao invés de ter de atualizar cada software adjacente que teve de o implementar. Este foi o primeiro objetivo da tese. Após a criação de uma fundação sólida para o desenvolvimento de software para robô, o foco transferiu-se para a criação de nova funcionalidade. Uma lista de tarefas robóticas foi obtida da pesquisa anterior sobre várias competições robóticas. A ideia é que se o robô é capaz de realizar tais tarefas então não só pode participar nas competições que as requerem, como também tem utilidade que pode ser utilizada pelas pessoas na universidade. A lista visava ser o mais extensa possível, tendo em conta as restrições temporais de desenvolvimento da tese, de modo a deixar o robô com o máximo de funcionalidades possível. Desta forma, sete tarefas foram escolhidas. A implementação de cada uma das tarefas é explicada em detalhe no seu capítulo respetivo. À medida que cada tarefa foi desenvolvida, os seus componentes individuais foram extraídos para novos módulos, passiveis de serem utilizados por outras funcionalidades, respeitando assim, o objetivo inicial de criar software flexível e reutilizável. Este fator tornou a criação das tarefas seguintes cada vez mais simples devido a estas dependerem de funcionalidades já implementadas nas anteriores. A implementação das tarefas exigiu conhecimento das diferentes áreas da inteligência artificial. Este facto levou à ampliação do meu conhecimento ao invés da especialização numa área, algo que é frequente na realização de teses. A realização deste trabalho demonstra como as distintas tarefas robóticas foram implementadas. Devido à natureza variada das tarefas, é demonstrado como enfrentar um conjunto diverso de problemas que podem aparecer na área da inteligência artificial. Adicionalmente, este trabalho apresenta uma abordagem para a criação de uma fundação sólida para o desenvolvimento e integração de novo software. Por último, as tarefas estão aferidas contra o estado da arte, significando que atualizações futuras às tarefas podem ser realizadas e provadas superiores através da comparação dos seus resultados.Alexandre, Luís Filipe Barbosa de AlmeidauBibliorumCorreia, André Rosa de Sousa Porfírio2020-12-21T14:33:46Z2020-07-202020-06-292020-07-20T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10400.6/10808TID:202559050enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-12-15T09:52:49Zoai:ubibliorum.ubi.pt:10400.6/10808Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T00:50:40.898802Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Software for a Service Robot
title Software for a Service Robot
spellingShingle Software for a Service Robot
Correia, André Rosa de Sousa Porfírio
Classificação
Deteção
Inteligência Artificial
Qualidade de Software
Robótica
Segmentação Semântica
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Software for a Service Robot
title_full Software for a Service Robot
title_fullStr Software for a Service Robot
title_full_unstemmed Software for a Service Robot
title_sort Software for a Service Robot
author Correia, André Rosa de Sousa Porfírio
author_facet Correia, André Rosa de Sousa Porfírio
author_role author
dc.contributor.none.fl_str_mv Alexandre, Luís Filipe Barbosa de Almeida
uBibliorum
dc.contributor.author.fl_str_mv Correia, André Rosa de Sousa Porfírio
dc.subject.por.fl_str_mv Classificação
Deteção
Inteligência Artificial
Qualidade de Software
Robótica
Segmentação Semântica
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Classificação
Deteção
Inteligência Artificial
Qualidade de Software
Robótica
Segmentação Semântica
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Service robots are becoming more commonplace every year due to advances in artificial intelligence, substituting humans in increasingly more complex tasks. By having an autonomous and competent service robot performing routinely tasks instead of its human owners, their productivity increases. The search for better service robots has led to the creation of competitions where such robots are tested and the state of the art technology is pushed further. Socialab acquired a Turtlebot2 robot to serve people around the university campus and one day participate in such competitions. With hopes of achieving these goals, the laboratory has proposed a variety of projects over the years, each adding new layers offunctionality to the robot. With each studentthathas tackled their respective project,thedeveloped softwarehasbeencontinuously stacking. However, each completed project has remained separate from each other andhasn’t been used ever since. Hence,the developed software is being wasted. Therefore, it is imperative to integrate all the available software into the robot. Yet, as new projects are proposed, the problem of scattered software can reoccur after the integration of the currently available ones. Furthermore, with more functionality that is developed, the harder and longer it takes to complete their integration. To preventthis entirely, itis necessary to create structural software that eases the development of new functionality as well as its integration with the current software. To achieve this, a class was developed which is responsible for controlling the execution of all processes running in the robot, of which the different software depends on. Additionally, research was done on multiple competitions to identify the most commonly required functionality traits, which we refer to as modules. Afterwards, an implementation of each of these modules was developed. Because of their universality, their implementation allows future software that requires any of the modules to simply import them, rather than having to re-implement them. In line with good software quality practices, if any of the modules needs an upgrade, this upgrade simply has to be performed on the respective module, instead of upgrading every adjacent software that uses this module. This was the first goal of this thesis. After creating a solid foundation for robot software development, the focus shifted towards the creation of new functionality. The different tasks were obtained from the previous research of various robotic competitions. The idea is that if the robot can perform such tasks then it can participate in the competitions, while the same functionalities can be used around campus. The list aimed to be as long as possible with the goal of leaving the robot with as much functionality as possible while taking into consideration the time restraints of the development of this thesis. Seven tasks were selected. The implementation of each task is explained in detail. As each task was developed, the implemented steps were turned into modules, therefore respecting the initial goal of flexible and reusable software. Because of this, as more tasks were developed the following task’s implementation was increasingly simpler as some of the requirements were already available from the development of their predecessors. The tasks required knowledge from different areas of artificial intelligence. This lead to the broadening of my knowledge rather than specialization in a single area. With this work, we show how distinct robotic tasks were implemented. Due to the varied nature ofthe tasks, we show how to tackle a multitude of different problems that appear in the area of artificial intelligence. Additionally, the work presents an approach to create a solid foundation for the development and integration of increasingly more software. The tasks are benchmarked, meaning future updates ofthe tasks can be performed and proved superior through the comparison of their results.
publishDate 2020
dc.date.none.fl_str_mv 2020-12-21T14:33:46Z
2020-07-20
2020-06-29
2020-07-20T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10400.6/10808
TID:202559050
url http://hdl.handle.net/10400.6/10808
identifier_str_mv TID:202559050
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799136396850495488