simulaÇÃo em v-rep da bnt da competiÇÃo r...

85
SIMULAÇÃO EM V-REP DA PROVA BNT DA COMPETIÇÃO ROBOCUP@WORK Rui Filipe Teixeira Alen Departamento de Engenharia Electrotécnica Instituto Superior de Engenharia do Porto 2014

Upload: others

Post on 03-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

SIMULAÇÃO EM V-REP DA

PROVA BNT DA COMPETIÇÃO

ROBOCUP@WORK

Rui Filipe Teixeira Alen

Departamento de Engenharia Electrotécnica

Instituto Superior de Engenharia do Porto

2014

Page 2: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract
Page 3: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

Este relatório satisfaz, parcialmente, os requisitos que constam da Ficha de Unidade

Curricular de Projeto/Estágio, do 3º ano, da Licenciatura em Engenharia Electrotécnica e

de Computadores

Candidato: Rui Filipe Teixeira Alen, Nº 1040552, [email protected]

Orientação científica: Manuel Fernando dos Santos Silva, [email protected]

Departamento de Engenharia Electrotécnica

Instituto Superior de Engenharia do Porto

12 de Fevereiro de 2014

Page 4: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract
Page 5: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

1

Agradecimentos

Gostaria de agradecer ao Prof. Francisco José Dias Pereira por me ter possibilitado a

integração num grupo de investigação do LSA, ao abrigo da Unidade Curricular de

Projeto/Estágio.

Agradeço ao meu orientador, o Prof. Manuel Fernando dos Santos Silva por todo o apoio e

acompanhamento durante todo o processo deste projeto.

O meu agradecimento para os colegas de PESTA, Pedro Rodrigues e Arthur Oliveira.

Agradeço à minha família e amigos, o apoio demonstrado ao longo do meu percurso

académico, profissional e pessoal.

Quero agradecer também à organização do RoCKIn Camp 2014, quer pelo suporte

financeiro oferecido à viagem e estadia, assim como pela oportunidade da minha

participação no mesmo.

Por último, mas não em último, à minha esposa Carla Vilaça, a quem devo a realização

desta licenciatura, pelo seu apoio, paciência e sacrifício.

Page 6: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

2

Page 7: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

3

Resumo

Como forma de desenvolvimento e para atrair os jovens para a área da robótica,

recentemente, uma nova liga surgiu na maior competição do mundo de robótica, chamada

RoboCup@Work.

Esta é destinada aos concorrentes que desejam competir no campo da manipulação

robótica móvel para ambiente industrial.

Esta competição é composta de várias tarefas com uma em particular, a Basic Navigation

Test (BNT), na qual o trabalho se reflete.

A realização deste projeto envolve a simulação em Virtual Robot Experimentation

Platform (V-REP) do comportamento de uma plataforma KUKA youBot (plataforma

utilizada por todas as equipas participantes).

O objetivo do BNT é verificar se os robôs podem navegar bem no seu ambiente, ou seja,

de um modo autónomo, robusto e seguro.

Para atingir os objetivos propostos, foi necessário criar um programa sólido e robusto em

linguagem Lua e testá-lo num simulador. Isto envolve o estudo da cinemática do robô;

mecânica; Simultaneous Localization And Mapping (SLAM) e percepção a partir de

sensores.

Neste trabalho foi implementado um algoritmo o qual funcionou de acordo com as

espectativas.

Palavras-Chave

SLAM, youBot, RoCKIn, Robô.

Page 8: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

4

Page 9: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

5

Abstract

As a form of development and to attract young people to the field of robotics, recently, a

new league emerged in the world's largest robotics competition called RoboCup@Work.

This is intended for competitors who wish to compete in the field of mobile robotics for

handling tasks in industrial environments.

This competition consists of several tasks with one in particular, the Basic Navigation Test

(BNT), which is reflected in this work.

The realization of this project involves the simulation in Virtual Robot Experimentation

Platform (V-REP) of the behaviour of a KUKA youBot (platform used by all participating

teams).

The goal is to verify that the BNT robots can navigate well in their environment, in a

standalone mode, robust and secure.

To achieve the proposed objectives, it was necessary to create a solid and robust program

in Lua and test this in a simulator. This involves the study of robot kinematics, mechanics;

Simultaneous Localization And Mapping (SLAM ) and perception from sensors.

In this work an algorithm was implemented, which work according to the expectations.

Keywords

SLAM, youBot, RoCKIn, Robot.

Page 10: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

6

Page 11: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

7

Índice

AGRADECIMENTOS .................................................................................................................................... 1

RESUMO ......................................................................................................................................................... 3

ABSTRACT ..................................................................................................................................................... 5

ÍNDICE ............................................................................................................................................................ 7

ÍNDICE DE FIGURAS ................................................................................................................................... 9

ÍNDICE DE TABELAS ................................................................................................................................ 11

ACRÓNIMOS ................................................................................................................................................ 13

1. INTRODUÇÃO .................................................................................................................................... 15

1.1. CONTEXTUALIZAÇÃO ..................................................................................................................... 15

1.2. OBJETIVOS PROPOSTOS ................................................................................................................... 16

1.3. CALENDARIZAÇÃO ......................................................................................................................... 16

1.4. ORGANIZAÇÃO DO DOCUMENTO ..................................................................................................... 16

2. ESTADO DA ARTE ............................................................................................................................. 19

2.1. COMPETIÇÕES ROBÓTICAS .............................................................................................................. 19

2.2. ROBÓTICA MÓVEL .......................................................................................................................... 23

2.3. SIMULAÇÃO EM ROBÓTICA E AUTOMAÇÃO ..................................................................................... 26

2.4. PLANEAMENTO E NAVEGAÇÃO ....................................................................................................... 28

3. FERRAMENTAS UTILIZADAS NO PROJETO ............................................................................. 33

3.1. PLATAFORMA OMNIDIRECIONAL KUKA YOUBOT .......................................................................... 33

3.2. CINEMÁTICA DA PLATAFORMA KUKA YOUBOT ............................................................................ 35

3.3. V-REP – VIRTUAL ROBOT EXPERIMENTATION PLATFORM ............................................................. 37

4. ARQUITETURA DO SISTEMA ........................................................................................................ 41

4.1. INTERFACE DO UTILIZADOR ............................................................................................................ 43

4.2. CINEMÁTICA ................................................................................................................................... 43

4.3. PERCEÇÃO E LOCALIZAÇÃO ............................................................................................................ 47

4.4. PLANEAMENTO E NAVEGAÇÃO ....................................................................................................... 51

5. PROGRAMAÇÃO REALIZADA ....................................................................................................... 57

5.1. CICLO DE REPETIÇÃO DO ALGORITMO ............................................................................................. 58

5.2. POSIÇÃO DO BRAÇO DO ROBÔ PARA NAVEGAÇÃO ........................................................................... 59

6. TESTES EFETUADOS E RESULTADOS OBTIDOS ..................................................................... 61

6.1. VELOCIDADE E POSIÇÃO ................................................................................................................. 61

Page 12: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

8

6.2. NAVEGAÇÃO AUTÓNOMA DO ROBÔ ................................................................................................. 67

7. CONCLUSÕES ..................................................................................................................................... 73

7.1. IDEIAS PARA FUTURO ...................................................................................................................... 74

7.2. CONCLUSÃO PESSOAL ..................................................................................................................... 75

REFERÊNCIAS DOCUMENTAIS .............................................................................................................. 77

ANEXO A. CD-ROM .................................................................................................................................... 81

Page 13: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

9

Índice de Figuras

Figura 1 Middle size league robots da Universidade Tecnológica de Eindhoven. (ROBOCUP,

2014) 20

Figura 2 Arena do RoCKIn@Work, Roma 2014. ...................................................................... 21

Figura 3 Festival Nacional de Robótica 2013. (FESTIVAL NACIONAL DE ROBOTICA,

2014) 22

Figura 4 Robô autónomo Gemini pela Artec Systens. (THE OLD ROBOTS, 2014) ................ 23

Figura 5 Exemplo de robô com locomoção de rodas. (SOCIETY OF ROBOTS, 2014) ........... 24

Figura 6 Asimo da Honda. (ASIMO HONDA, 2014) ................................................................ 25

Figura 7 Curiosity Rover explorador da superfície do planeta Marte (NASA, 2014). ............... 26

Figura 8 Arquitetura do funcionamento do SLAM. (MOBILE ROBOTS, 2004) ...................... 29

Figura 9 Erro associado ao SLAM assinalado a vermelho na figura. ......................................... 29

Figura 10 Decomposição em células de tamanho fixo. (MOBILE ROBOTS, 2004) ................... 30

Figura 11 Exemplo de uma matriz pela transformação da distância. (MOBILE ROBOTS, 2004)

31

Figura 12 Janela de visualização para a transformação de distâncias. Adaptado de

(EUCLIDEAN, 2013) .............................................................................................................. 32

Figura 13 Plataforma KUKA youBot. .......................................................................................... 34

Figura 14 A roda do tipo Mecanum e os seus parâmetros (OMIDIRECTIONAL, 2007). ........... 35

Figura 15 Coordenação das rodas do robô. (OMIDIRECTIONAL, 2007) .................................. 36

Figura 16 Atuação das rodas Mecanum necessária para movimentos genéricos

(OMIDIRECTIONAL, 2007). .................................................................................................. 36

Figura 17 Diagrama de blocos do ciclo de repetição de simulação em V-REP (V-REP, 2014). . 38

Figura 18 Arquitetura de controlo do simulador V-REP. (V-REP, 2014) .................................... 39

Figura 19 Diagrama de blocos da arquitetura do sistema e sua integração no script do youBot.. 42

Figura 20 Diagrama do bloco cinemática. .................................................................................... 44

Figura 21 Gráfico obtido das velocidades pela cinemática do simulador. ................................... 45

Figura 22 Diagrama de blocos referente ao módulo de perceção e localização. .......................... 48

Figura 23 Dimensões do KUKA youBot. ..................................................................................... 48

Figura 24 Relação do ângulo ao obstáculo obtido pelo LASER e o robô. ................................... 49

Figura 25 Demonstração da matriz/mapa reduzido. ..................................................................... 50

Figura 26 Criação de margem de segurança de acordo com um determinado raio. ..................... 51

Figura 27 Diagrama do bloco planeamento e navegação. ............................................................ 52

Figura 28 Escala de cores de mapa de navegação criado no Excel. ............................................. 53

Figura 29 Esquema de decisão à navegação. ................................................................................ 54

Page 14: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

10

Figura 30 Imagem demonstrativa da diferença de ângulos para a navegação. ............................. 54

Figura 31 Gráfico para a velocidade rotacional do robô. .............................................................. 55

Figura 32 Gráfico para a velocidade transversal do youBot. ........................................................ 55

Figura 33 Gráfico para a velocidade longitudinal do robô. .......................................................... 55

Figura 34 Exemplo de suavização do impulso da velocidade imposta ao youBot. ...................... 56

Figura 35 Gráfico para a velocidade transversal do youBot. ........................................................ 57

Figura 36 Fluxograma do sistema e sua integração no script do YouBot .................................... 59

Figura 37 Conjunto de imagens ilustrativas de recolha do braço do youBot. (YOUBOT, 2013) 60

Figura 38 Representação vectorial da distância percorrida. ......................................................... 62

Figura 39 Fluxograma para determinar a velocidade em função das leituras do LASER. ........... 63

Figura 40 Gráfico obtido da velocidade transversal. .................................................................... 67

Figura 41 Gráfico obtido da velocidade longitudinal. .................................................................. 67

Figura 42 Cenário 3D em V-REP de uma possível prova BNT. .................................................. 68

Figura 43 Janela do V-REP para configuração do Gráfico. .......................................................... 70

Figura 44 Gráfico obtido para visualização do comportamento da navegação. ........................... 71

Page 15: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

11

Índice de Tabelas

Tabela 1 Calendarização do projecto. ......................................................................................... 16

Tabela 2 Comparação entre alguns dos Simuladores. ................................................................. 27

Page 16: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

12

Page 17: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

13

Acrónimos

APIs – Applications Programming Interface

BMT – Basic Manipulation test

BNT – Basic Navigation Test

BTT – Basic Transportation Test

CBT – Conveyor Belt Test

DEE – Departamento de Engenharia Eletrotécnica

DOF – Degrees Of Freedom

EEDT – Exact Euclidean Distance Transform

IA – Inteligência Artificial

ISEP – Instituto Superior de Engenharia do Porto

LASER – Light Amplification by Stimulated Emission of Radiation

LEEC – Licenciatura de Engenharia Eletrotécnica e Computadores

NASA – National Aeronautics and Space Administration

ODE – Open Dynamics Engine

PESTA – Projeto/Estágio

PPT – Precision Placement Test

ROS – Robot Operation System

SPR – Sociedade Portuguesa de Robótica

Page 18: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

14

UC – Unidade Curricular

V-REP – Virtual Robot Experimentation Platform

3D – Três Dimensões

Page 19: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

15

1. INTRODUÇÃO

Neste capítulo efetua-se uma introdução ao trabalho realizado na Unidade Curricular (UC)

de Projeto/Estágio (PESTA) do 3º ano da Licenciatura de Engenharia Eletrotécnica e

Computadores (LEEC), do Departamento de Engenharia Eletrotécnica (DEE), do Instituto

Superior de Engenharia do Porto (ISEP), referindo-se brevemente a sua contextualização,

os objetivos propostos para o trabalho, a calendarização que foi definida para a sua

realização e a organização do documento.

1.1. CONTEXTUALIZAÇÃO

Anualmente ocorrem várias competições de robóticas internacionais, como forma de

desenvolvimento e para atrair os jovens para esta área científica. Recentemente surgiu uma

nova liga na maior competição de robótica do mundo, chamada RoboCup@Work

(ROCKIN, 2014), que é destinada aos concorrentes que desejam competir no campo da

manipulação robótica móvel para ambiente industrial.

A competição é definida por várias tarefas, ou testes, nomeadamente:

Basic Manipulation Test (BMT);

Basic Transportation Test (BTT);

Conveyor Belt Test (CBT);

Precision Placement Test (PPT);

Page 20: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

16

Basic Navigation Test (BNT).

O presente trabalho irá debruçar-se sobre a competição BNT.

1.2. OBJETIVOS PROPOSTOS

O objetivo do projeto envolve a simulação na aplicação Virtual Robot Experimentation

Platform (V-REP) (V-REP, 2014) do comportamento de uma plataforma KUKA youBot

(plataforma utilizada por todas as equipas participantes) (KUKA, 2014). O objetivo do

BNT é verificar se os robôs podem navegar bem no seu ambiente, ou seja, de um modo

autónomo, robusto e seguro.

Para atingir os objetivos propostos, é necessário criar um programa sólido e robusto em

linguagem Lua (LUA, 2014) e testar este num simulador. Isto envolve o estudo da

cinemática do robô, da sua mecânica, de Simultaneous Localization And Mapping (SLAM)

e perceção a partir de sensores.

1.3. CALENDARIZAÇÃO

A calendarização programada, teve por base a participação de uma equipa do ISEP na

competição do RoboCup@Work, apresentada na Tabela 1. Esta inclui um conjunto de

tarefas, como por exemplo: o estudo da robótica e simulação, decisões de projeto, trabalho

a implementar e testes funcionais.

Tabela 1 Calendarização do projecto.

1.4. ORGANIZAÇÃO DO DOCUMENTO

Este documento é constituído por 7 capítulos e 1 anexo, organizados da forma que se

descreve de seguida:

Page 21: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

17

No Capítulo 1 é efetuada uma introdução ao trabalho realizado na UC de PESTA,

referindo-se brevemente a sua contextualização, os objetivos propostos para o trabalho, a

calendarização que foi definida para a sua realização e a organização do documento.

No Capítulo 2 aponta-se o estado da arte. Este capítulo é de extrema importância devido ao

seu grau de citações científicas, que poderá auxiliar trabalhos futuros no campo da

robótica, e também porque o autor teve a necessidade de explorar os temas abordados.

Seguidamente, no Capítulo 3, são referidas as ferramentas utilizadas no projeto. Após

análise do que existe no mercado e ensino, selecionaram-se as ferramentas para a execução

do presente projeto.

De seguida aborda-se a arquitetura do sistema no Capítulo 4. Aqui o leitor pode, de uma

forma fácil e direta, compreender a abordagem programática aplicada ao trabalho.

No Capítulo 5 descreve-se a programação desenvolvida e suas respetivas soluções.

Seguidamente, no Capítulo 6, descrevem-se os testes efetuados assim como os resultados

obtidos.

Finalmente, o Capítulo 7 é dedicado às principais conclusões extraídas deste trabalho e são

apresentadas diversas ideias de possíveis futuros desenvolvimentos, cuja implementação

poderá, na opinião do autor, contribuir para um melhor desempenho dos algoritmos

implementados e da solução proposta, como um todo.

No Anexo A encontra-se um CD-ROM com a diversa informação. A sua estrutura no

presente anexo vai sendo descrita ao longo do trabalho e novamente no Anexo A.

Page 22: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

18

Page 23: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

19

2. ESTADO DA ARTE

Este capítulo é um dos mais importantes do trabalho realizado para um iniciante em

robótica, uma vez que faz referência ao que já se conhece sobre o assunto pesquisado,

evitando que se perca tempo com investigações desnecessárias. Além disso, auxilia futuros

trabalhos dentro da competência do assunto tratado neste documento.

No estado da arte do presente documento, a respetiva explicação científica é abordada

através de 4 secções, nomeadamente: competições robóticas; robótica móvel; simulação

em robótica e automação; e planeamento e navegação.

2.1. COMPETIÇÕES ROBÓTICAS

Sendo o principal objetivo a promoção da ciência e da tecnologia junto dos jovens do

ensino básico, secundário e superior, bem como do público em geral, realizam-se

competições de robôs.

Existem muitas competições internacionais e nacionais, das quais se destacam a

competição RoboCup (ROBOCUP, 2014) e o Festival Nacional de Robótica (FESTIVAL

NACIONAL DE ROBOTICA, 2014).

Page 24: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

20

2.1.1. ROBOCUP

O RoboCup é uma competição a nível mundial que se realiza todos os anos. Visa o estudo

e desenvolvimento da inteligência artificial (IA) e da robótica, fornecendo desafios e

problemas onde várias tecnologias e metodologias se podem combinar para obter os

melhores resultados (ROBOCUP, 2014).

Abaixo na Figura 1, pode-se observar uma prova do campeonato de RoboCup de 2013.

Figura 1 Middle size league robots da Universidade Tecnológica de Eindhoven. (ROBOCUP,

2014)

Cada edição é constituída por duas partes essenciais: as competições e o simpósio. As

competições dividem-se em três grupos (RoboCupSoccer, RoboCupRescue e

RoboCupJunior), sendo cada um composto por várias ligas. No simpósio, que decorre após

as competições, são apresentados e discutidos trabalhos científicos da área.

As equipas participantes nas competições têm por obrigação apresentar as soluções

desenvolvidas e disponibilizar o seu trabalho, sendo esta uma forma de incentivar a

contínua evolução de uma equipa, assim como o aparecimento de raiz de novas equipas já

com boa qualidade (ROBOCUP, 2014).

Page 25: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

21

2.1.2. ROBOCUP@WORK

Esta é uma nova liga da competição RoboCup, no âmbito da manipulação robótica móvel

para ambiente industrial. Dentro desta competição existem diversas tarefas,

nomeadamente: BMT; BTT; CBT; Precision PPT) e BNT.

Abaixo pode-se observar o robô youBot da KUKA na arena, durante o encontro (Camp)

decorrido no RoCKIn@Work, Roma 2014.

Figura 2 Arena do RoCKIn@Work, Roma 2014.

Todas as provas acima mencionadas são realizadas dentro dum espaço confinado por

paredes entre 20 a 40 cm de altura de cor branca, e a arena deve ter dimensões

compreendidas entre 2 m × 4 m e 8 m × 10 m.

A arena pode conter uma ou mais áreas de serviço (ou locais), cada uma com um propósito

específico para determinada tarefa. Como exemplo, locais para carregar/descarregar

objetos.

Os locais estão devidamente identificados por marcadores, imagens a preto e branco da

biblioteca ARTToolKit (RULE BOOK, 2013) .

A prova BNT serve para verificar se os robôs conseguem navegar correctamente dentro da

arena, de forma orientada, autónoma e com segurança.

Page 26: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

22

Para a execução desta prova, é enviado para o robô uma linha de texto descritiva (string),

que especifica a localização, orientação e duração da pausa. O robô tem de se mover para

os locais especificados pela string, devidamente orientado e cingido ao tempo de pausa.

Como exemplo de uma string enviada para o robô, pode-se mencionar a seguinte:

<(S3,N,1),(S4,E,2)>

Nesta, o robô deve dirigir-se para a área de serviço 3, com orientação Norte e aguardar 1 s.

Seguidamente o robô dirige-se para a área de serviço 3, com orientação Este e aguardar 2 s.

2.1.3. FESTIVAL NACIONAL DE ROBÓTICA

Decorre todos os anos numa cidade portuguesa distinta, e inclui um encontro científico

onde investigadores nacionais e internacionais da área da robótica se reúnem para

apresentar os mais recentes resultados da sua atividade (FESTIVAL NACIONAL DE

ROBOTICA, 2014). Aqui também são realizadas competições e é aqui que são apuradas as

equipas nacionais que participam no RoboCup.

A Figura 3, representa uma das provas, da competição realizada em Lisboa 2013.

Figura 3 Festival Nacional de Robótica 2013. (FESTIVAL NACIONAL DE ROBOTICA, 2014)

A Sociedade Portuguesa de Robótica (SPR) é a promotora do festival. Todos os anos

entrega a organização do festival a uma comissão organizadora local.

Page 27: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

23

2.2. ROBÓTICA MÓVEL

Atualmente a robótica é uma ciência que já percorreu um longo caminho desde os seus

primórdios.

No passado, os robôs móveis (com locomoção própria) eram controladas por pesados e

dispendiosos computadores, que tinham que estar ligados por cabo ou por dispositivos sem

fios. Hoje em dia podem-se construir robôs móveis de pequenas dimensões, com pequenos

e numerosos atuadores e sensores de baixo custo, e com sistemas embebidos no chassis do

próprio robô (MOBILE ROBOTS, 2004).

A Figura 4, é um exemplo de um robô antigo, onde se pode verificar a complexidade do

sistema eletrónico, assim como as suas grandes dimensões.

Figura 4 Robô autónomo Gemini pela Artec Systens. (THE OLD ROBOTS, 2014)

Tem havido um grande aumento de interesse em robôs móveis, não apenas como

brinquedos mas como uma ferramenta excelente para a educação em engenharia.

Atualmente os robôs móveis são usados em quase todas as universidades, em cursos e pós-

Page 28: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

24

graduações em Ciências de Computação, Engenharia da Computação, Tecnologias de

Informação, Cibernética, Engenharia Eletrotécnica, Engenharia Mecânica e Mecatrônica.

“O mundo perfeito que muitas vezes é o domínio de sistemas de software puro não existe

aqui.”. Qualquer atuador só pode ser posicionado com um certo grau de precisão, e todos

os sensores têm erros de leitura intrínsecos e determinadas limitações físicas. “Portanto,

um programa de robô vai ser muito mais do que apenas uma solução lógica codificada em

software.” (MOBILE ROBOTS, 2004).Existe no mercado uma grande variedade de robôs

móveis. A locomoção é um fator decisivo na sua escolha, pois esta depende da aplicação e

utilização nos mais diversos terrenos e para negociar obstáculos que o robô deve contornar

e/ou ultrapassar.

Escolher qual é o melhor sistema de locomoção para um robô não envolve somente o tipo

de terreno em que este se irá movimentar. É importante ver qual sistema gasta menos

energia, o que suporta a carga desejada, qual possui mais precisão, etc.

2.2.1. LOCOMOÇÃO COM RODAS

A roda é um dos mecanismos mais antigos que se conhece. Sejam elas simples para

superfícies planas, ou de outros tipos para planos mais acidentados.

Os robôs com locomoção de rodas podem ter duas, três, quatro, ou mais, rodas. A Figura

seguinte é demonstrativa da montagem de uma roda num robô, onde se pode verificar o

servomotor elétrico.

Figura 5 Exemplo de robô com locomoção de rodas. (SOCIETY OF ROBOTS, 2014)

Page 29: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

25

Os robôs de rodas são o tipo mais comum. Normalmente duas rodas controlam a direção e

as outras duas são motrizes. Somente em casos especiais é que se encontram robôs com

controladores de direção nas quatro rodas, como por exemplo os robôs omnidirecionais.

2.2.2. LOCOMOÇÃO COM LAGARTAS

O movimento com uso de lagartas já é há muito empregue por tanques de guerra. Este

sistema provou ser eficaz em terrenos acidentados.

Nesse sistema, a ideia é ter uma sequência de peças de metal ou borracha por debaixo da

roda num processo rotativo contínuo.

Para que o robô faça uma curva para um dos lados, por exemplo, é preciso parar, reduzir a

velocidade ou girar no sentido contrário o motor que aciona a lagarta desse mesmo lado.

2.2.3. LOCOMOÇÃO COM PERNAS

Criar um robô que tenha movimentos idênticos aos dos humanos é um objetivo desejado

por muitos cientistas. Contudo o corpo humano é um sistema muito bem elaborado e

recriar esses movimentos na mecânica requer muita perícia e destreza (INSTITUTO

NEWTON BRAGA, 2014).

No entanto, os robôs com pernas nem sempre procuram a parecença com os seres

humanos. Isto pode-se verificar nos robôs com 4, 6 ou mais pernas.

Um bom exemplo desta locomoção é o robô Asimo, demonstrado na Figura 6, fabricado

pela Honda. A amplitude dos seus movimentos e a autonomia da bateria, fazem deste o

robô “quase perfeito”.

Figura 6 Asimo da Honda. (ASIMO HONDA, 2014)

Page 30: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

26

2.2.4. LOCOMOÇÃO HÍBRIDA

Como o próprio nome indica, a locomoção híbrida incorpora vários tipos de locomoção.

Podem-se combinar movimentos com rodas e lagartas, pernas com rodas, tudo dependendo

da criatividade do cientista/projetista.

Sem sombra de dúvida que é um grande desafio. Como exemplo, a NASA, com a

necessidade de explorar o planeta Marte, construiu um sistema com pernas e rodas e com

espigões para enfrentar as pedras e o terreno desconhecido deste planeta (NASA, 2014).

Na imagem seguinte pode-se ver uma ilustração do Rover Curiosity da NASA no planeta

Marte.

Figura 7 Curiosity Rover explorador da superfície do planeta Marte (NASA, 2014).

2.3. SIMULAÇÃO EM ROBÓTICA E AUTOMAÇÃO

A simulação é usada como um método mais rápido e mais simples para testar ideias,

teorias e neste caso, software e comportamentos dos robôs.

A simulação também tem as suas desvantagens. Isto ocorre porque as simulações apenas

simulam o que o utilizador configurar na simulação (por exemplo, atrito, massa e

gravidade).

Page 31: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

27

Se o comportamento do robô funcionar bem na simulação não significa que ele irá

funcionar bem num modelo real e em tempo real. Pode-se empreender muito tempo para

realizar uma simulação quase perfeita, mas o tempo e o trabalho dedicada a esta, pode não

compensar face a uma experiência com um robô verdadeiro.

É aconselhável antes de iniciar uma simulação, decidir o que se pode simplificar e o que

tem de ser necessariamente realista.

Existe no mercado atualmente uma grande diversidade de simuladores livres (open source)

e comerciais para a robótica, dos quais se destacam os seguintes:

Gazebo (GAZEBO, 2014);

Microsoft Robotics Developer Studio (MICROSOFT, 2014);

OpenSim (OPENSIM, 2014);

SimRobot (SIMROBOT, 2014);

V-REP (V-REP, 2014);

WeBots (WEBOTS, 2014);

Tabela 2 Comparação entre alguns dos Simuladores.

Gazebo

Microsoft

Robotics

Developer

Studio

OpenSim SimRobot V-REP WeBots

Licença Livre Comercial Livre Livre

Comercial

Educacional

Livre

Comercial

Plataforma Linux Windows Linux

Linux

Windows

OS/2

Linux

Windows

MacOS

Linux

Windows

MacOS

Embora sendo comercial, o V-REP da Coppelia Robotics, é um simulador com inúmeras

funções, recursos ou APIs. É usado para o desenvolvimento de algoritmos, simulações

industriais, e no ensino de robótica (V-REP, 2014).

Atualmente este dispõe de uma licença gratuita para a educação, com todas as

caraterísticas de uma versão comercial. Este simulador também inclui na sua biblioteca o

Page 32: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

28

robô que se pretende utilizar (youBot), e é disponibilizado para multiplataforma

(Windows, Linux, MacOS).

Após conversa com o docente e orientador deste projeto, observou-se que o V-REP PRO

EDU V3.1.0 (versão Educacional disponível à data do relatório) seria a escolha acertada

para a elaboração deste projeto.

2.4. PLANEAMENTO E NAVEGAÇÃO

Diversas abordagens têm sido propostas para resolver o problema da navegação na

robótica móvel.

Após a análise destas, verifica-se que entre elas existem muitas semelhanças sendo a

grande diferença a maneira como estas são decompostas, na resolução da sua arquitetura,

afim de melhorar possíveis fraquezas do algoritmo (MOBILE ROBOTS, 2004).

O primeiro passo que se deve realizar, para que a navegação seja efetuada da melhor forma

possível, é pela decomposição dos obstáculos num mapa discreto (determinístico). Com

este planeamento evitam-se os obstáculos na navegação e determina-se o menor

caminho/rota a percorrer até o destino/objetivo.

Dentro destes parâmetros destacam-se três estratégias para uma decomposição do espaço

ou meio envolvente:

Mapa de rotas - Identificação de uma série de rotas dentro do espaço livre;

Decomposição em células - Forma discriminativa entre células livres e células

ocupadas numa matriz;

Campo potencial - Imposição de uma função matemática no espaço.

Independentemente da estratégia usada, para obter resultados fidedignos, o robô não deve

apenas criar um mapa, mas deve fazê-lo enquanto se move e explora o espaço circundante.

Este conceito é conhecido por localização e mapeamento simultâneo ou SLAM.

A implementação do SLAM é difícil devido à interação entre a posição do robô e as suas

ações de mapeamento. Se a posição do robô é imprecisa, a posição resultante do obstáculo

no mapa, é correlacionada com essa imprecisão.

Page 33: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

29

A figura seguinte, demonstra uma implementação por blocos do SLAM, assim como se

pode observar na Figura 9 uma representação gráfica do mapa obtido por uma

implementação do SLAM e os seus respetivos erros.

Figura 8 Arquitetura do funcionamento do SLAM. (MOBILE ROBOTS, 2004)

Figura 9 Erro associado ao SLAM assinalado a vermelho na figura.

Page 34: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

30

2.4.1. DECOMPOSIÇÃO APROXIMADA EM CÉLULAS

A decomposição celular aproximada é uma das técnicas mais populares para o

planeamento de trajetórias na robótica móvel. Isto é em parte devido à popularidade de

representações ambientais, baseadas em sistemas de grelha e/ou matrizes (pixéis)

(MOBILE ROBOTS, 2004).

A decomposição em células de tamanho fixo é a técnica mais comum e mais usada

atualmente na robótica móvel para a representação de mapas e planeamento para a

navegação. O tamanho da célula não depende dos objetos no meio ambiente, e

eventualmente nas passagens mais estreitas pode-se perder informação, devido à

imprecisão da grelha.

Em termos práticos, raramente isto é um problema, devido ao tamanho de célula usada,

que geralmente é muito pequena (por exemplo, 5 cm de lado). A grande vantagem da

decomposição celular de tamanho fixo é a baixa capacidade computacional face à

decomposição celular de tamanho variável e por conseguinte a sua baixa complexidade do

planeamento no trajetória.

A figura seguinte demonstra a decomposição dos obstáculos em células de tamanho fixo.

Figura 10 Decomposição em células de tamanho fixo. (MOBILE ROBOTS, 2004)

A principal desvantagem desta abordagem reside no tamanho que o mapa ocupa na

memória do robô, que cresce em função do tamanho do ambiente.

O mapa é representado por uma matriz discreta, onde cada célula está ocupada (faz parte

de um obstáculo) ou livre (espaço vazio). Assim, de forma determinística, o valor da célula

pode ser 1 ou 0 consoante esta tenha respetivamente obstáculo ou não.

Page 35: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

31

O algoritmo da transformação da distância (também conhecido como frente de onda ou

métodos de incêndios florestais) é um algoritmo de propagação largamente usado na

decomposição celular e planeamento da trajetória/caminho exato.

Este método formula um planeamento baseado numa matriz que leva em conta a

proximidade de obstáculos e permite gerar interpolações contínuas de várias direções de

uma forma gradual em qualquer ponto na matriz.

Como exemplo, é a presentada a Figura 11, onde se pode verificar as células que contêm

obstáculos e as células livres com a respectiva distância ao objetivo.

Figura 11 Exemplo de uma matriz pela transformação da distância. (MOBILE ROBOTS, 2004)

Com este tipo de planeamento o que importa é a capacidade do robô em navegar a partir da

sua posição atual (uma célula livre) para uma eventual célula livre adjacente com o menor

valor de distância.

A navegação e a orientação do robô fica assim limitada a ângulos múltiplos de 45º, e a

velocidade do robô, pode ser em função da diferença do ângulo pretendido com o ângulo

atual da posição do robô (EUCLIDEAN, 2013).

Existem vários algoritmos de computação para calcular estas distâncias, nomeadamente:

City block;

Chessboard;

Euclidean.

A matriz de cálculo para cada um dos métodos acima referidos, pode ser observada na

Figura 12.

Page 36: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

32

Devido à natureza da sua precisão, usa-se neste trabalho a transformação de distâncias

pelo algoritmo Euclidean.

Figura 12 Janela de visualização para a transformação de distâncias. Adaptado de

(EUCLIDEAN, 2013)

Page 37: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

33

3. FERRAMENTAS

UTILIZADAS NO PROJETO

Para a elaboração deste trabalho, verificou-se a necessidade de utilizar determinadas

ferramentas. Entre estas encontra-se o robô youBot da KUKA (KUKA, 2014), o simulador

V-REP (V-REP, 2014) assim como o conceito e algoritmo de mapeamento que permite o

planeamento e respetiva navegação do robô.

3.1. PLATAFORMA OMNIDIRECIONAL KUKA YOUBOT

Como a intenção deste projeto é a participação numa competição de robótica, o

RoboCup@Work, e a organização deste estabelece parâmetros muito rígidos em relação ao

tipo de plataforma a ser utilizado pelos seus concorrentes (RULE BOOK, 2013), a escolha

do robô para este projeto recai na plataforma KUKA youBot, atualmente reconhecida e

aceite pela referida organização do evento, sendo também esta a plataforma usada por

todos os concorrentes.

O KUKA youBot é uma plataforma móvel omnidirecional com quatro rodas do tipo

Mecanum, ou Swedish (MECANUM WHEEL, 2010), de rolamentos com uma inclinação

angular γ de 45º. Isto significa que o robô pode movimentar-se em qualquer direção e

Page 38: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

34

sentido, graças à configuração única das suas rodas, com uma velocidade máxima de

0,8 ms-1

, de acordo com o fabricante (YOUBOT, 2013).

A base da plataforma tem também um braço com 5 articulações e uma garra para manusear

pequenos objetos até 0,5 kg.

Com uma base de dimensões de 0,38 m × 0,58 m × 0,14 m e pesando 20 kg (o mesmo

valor que consegue suportar ou transportar), fazem deste um robô versátil para o ensino da

robótica.

As suas rodas possuem um diâmetro de 47,5 mm e distam ao centro da plataforma 0,228 m

× 0,158 m, como se pode observar na Figura 13. Para impor velocidade nestas, o robô

dispõe de quatro motores elétricos de 24 V com um binário nominal de 82,7 mNm.

Figura 13 Plataforma KUKA youBot.

Page 39: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

35

3.2. CINEMÁTICA DA PLATAFORMA KUKA YOUBOT

O primeiro passo para um modelo cinemático do robô é expressar restrições sobre os

movimentos das rodas individuais. Assim, os movimentos destas podem ser combinados

para calcular o movimento do robô como um todo (MOBILE ROBOTS, 2004).

Assume-se que o plano da roda permanece sempre na vertical e que existe em todos os

casos um único ponto de contacto entre a roda e o plano do solo. Além disso, assume-se

que não há ajudas externas a esta. Ou seja, a roda sofre movimento apenas sob condições

de rolamento puro e rotação em torno do eixo vertical através do ponto de contacto.

A figura seguinte representa uma roda do tipo Mecanum, onde se pode verificar os

rolamentos activos assim como os vectores associados à velocidade da mesma.

Figura 14 A roda do tipo Mecanum e os seus parâmetros (OMIDIRECTIONAL, 2007).

Quando as rodas do tipo mecanum são acionadas, os rolamentos periféricos angulares

traduzem uma porção de força no sentido de rotação da roda para uma força normal à

direção da roda. Dependendo da direção e velocidade de cada roda individual, a

combinação resultante de todas essas forças produzem um vetor de força total em qualquer

direção desejada, permitindo, assim, à plataforma mover-se livremente na direção da força

de vetor resultante.

Na Figura 15 observa-se as 4 rodas do tipo mecanum montadas numa plataforma, onde se

pode verificar o grau do posicionamento dos rolamentos face ao centro geométrico da

plataforma.

Page 40: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

36

Figura 15 Coordenação das rodas do robô. (OMIDIRECTIONAL, 2007)

Se se considerar um plano XSOSYS enquadrado no chassis do robô, podem-se escrever as

equações de velocidade (OMNIDIRECTIONAL, 2007) conforme a equação (1):

. (1)

Onde R é o raio da roda, ωi é a velocidade angular da roda (i = 1 .. 4), l1, l2 são as

distâncias entre eixos de rodas e centro da plataforma (OMNIDIRECTIONAL, 2007).

Na figura seguinte é demonstrado a actuação das rodas necessárias para o movimento da

base.

Figura 16 Atuação das rodas Mecanum necessária para movimentos genéricos

(OMIDIRECTIONAL, 2007).

Page 41: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

37

Se a velocidade do robô é imposta, tem que se determinar a velocidade angular de cada

uma das rodas (cinemática inversa), conforme demonstrado na equação (2):

.

(2)

3.3. V-REP – VIRTUAL ROBOT EXPERIMENTATION PLATFORM

Para a realização de todas as simulações inerentes a este projeto foi adotada a aplicação V-

REP devido a ser aquela que dispunha de uma licença educacional completamente

funcional a título gratuito.

O V-REP é um programa de simulação robótica, projetado para ter uma arquitetura fácil,

versátil e intuitiva.

Não existe uma função principal (main), como é habitual em C, assim como em outras

linguagens de programação. Em vez disso, o V-REP dispõe de várias funções (scripts)

independentes ou associadas a objetos, cujas funções podem ser ativadas ou desativadas,

mediante a necessidade.

Uma nova scene V-REP pode conter vários objetos de scene, ou objetos elementares que

são montados numa hierarquia do tipo árvore, nomeadamente (os mais importantes para

este projeto):

Joints: São junções de dois ou mais objetos, com um a três graus de liberdade de

movimento (por exemplo, prismática, revolução e esférica).

Shapes: Formas e objetos em 3D, utilizadas para visualização de um corpo rígido. Outros

objetos ou módulos de cálculo, por vezes, dependem destas formas para a sua deteção de

colisão, cálculo de distância mínima, entre outras.

Proximity sensors: Os objetos sensores de proximidade determinam de forma exata a

distância deste a um objeto, dentro de um determinado volume de deteção.

Force sensors: São ligações rígidas entre formas, que podem exibir ou gravar forças e

binários aplicados entre estas.

Page 42: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

38

Graphs: São objetos para exibição de fluxo de dados de uma scene, os quais podem ser

apresentados em gráfico de tempo real, curva do tipo X/Y ou em curvas do tipo 3D.

Embora este simulador seja uma ferramenta muito útil, este requer um motor (algoritmo)

para correr a sua simulação. O V-REP dispõe de dois tipos: o Bullet e o ODE com um

intervalo de tempo ou iteração (timestep) que pode variar entre 10 ms a 200 ms (V-REP,

2014).

O ciclo de repetição deste simulador, pode ser analisado pelo diagrama de blocos

apresentado na Figura 17.

Este diagrama demonstra que o ciclo de relógio (timestep) não depende da extensão do

código que se irá usar nos scripts.

Figura 17 Diagrama de blocos do ciclo de repetição de simulação em V-REP (V-REP, 2014).

O V-REP dispõe de vários meios para controlar simulações ou até mesmo para

personalizar o próprio simulador. Este tem uma biblioteca de funções, as quais requerem

um aplicativo do tipo cliente para ser executado.

Além deste, dispõe de uma linguagem incorporada (LUA CONCEITOS, 2008) que dispõe

de vários comandos especiais em V-REP. Os scripts deste são o mecanismo de controlo

principal para uma simulação, e é com base nesta linguagem que se desenvolve a

programação neste projeto.

Page 43: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

39

Este simulador, para além de usar variáveis globais para permitir a partilha de informação

entre os diversos scripts, usa também uma tecnologia de comunicação do tipo tube.

Os tubes são linhas de comunicação bidirecional semelhantes a pipes. A denominação tube

foi selecionada com a finalidade de evitar confusão com pipe, uma vez que o tube não

pode ser usado para comunicar com o mundo exterior.

Este é um meio muito conveniente e fácil para conectar duas entidades e trocar

informação.

A arquitetura de controlo do simulador V-REP é representada abaixo na Figura 18, onde se

pode ver a interação dos diversos APIs com o núcleo do programa. Aqui torna-se evidente

que a linguagem usada pelo V-REP é a Lua e o C/C++.

Figura 18 Arquitetura de controlo do simulador V-REP. (V-REP, 2014)

Page 44: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

40

Page 45: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

41

4. ARQUITETURA DO

SISTEMA

Pretende-se com o desenvolvimento deste trabalho, que a implementação da sua

arquitetura fosse não só capaz de correr na simulação, mas que fosse também dinâmica de

forma ser implementada no robô.

A arquitetura do sistema é um conjunto de elementos arquiteturais (de dados,

processamento e conexão) que possuem alguma organização. Os respetivos elementos e a

sua organização são delimitados por condições de forma a satisfazer determinados

objetivos.

Este conceito ajuda a definir o sistema em blocos computacionais e os relacionamentos

entre estes. Visualmente, tem como principal finalidade a acessibilidade no entendimento

por parte do interessado, uma vez que irá filtrar e formatar a informação.

Como referido anteriormente, o robô em usado é o youBot e a empresa KUKA fornece este

modelo para o simulador V-REP, o qual se já se encontra dentro da biblioteca do

simulador, na secção de robôs móveis. Como este modelo dispõe de diversos scripts, de

forma a manter um código flexível e reutilizável implicou manter os mesmos.

Page 46: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

42

Para este efeito, desenvolveu-se uma arquitetura básica de funcionamento, com apenas três

blocos:

Cinemática;

Percepção e Localização;

Planeamento e Navegação.

Inclui-se também um bloco de Interface de utilizador e de Gráficos para que o utilizador,

na simulação, possa introduzir dados através de uma linha de comandos e observar o

comportamento do robô na simulação.

Como foi dito anteriormente, não se eliminou nenhum código existente deste modelo, mas

sim acrescentou-se esta arquitetura ao código existente, como se pode observar na

Figura 19.

O diagrama de blocos da Figura 19, encontra-se dividido em três secções. A secção a

cinzento claro é referente ao código do youBot, já existente no script, cinzento-escuro

encontram-se as secções menos relevantes para o funcionamento do youBot, e a preto as

secções fundamentais.

Figura 19 Diagrama de blocos da arquitetura do sistema e sua integração no script do youBot

Page 47: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

43

4.1. INTERFACE DO UTILIZADOR

Para a realização da simulação da BNT, o utilizador deverá inserir numa linha de comando

uma string formatada do tipo (<localização>,<orientação>,<pausa>), onde:

<localização>: designa um dos lugares específicos do ambiente (por exemplo, D0, D1,

D2, O1, S2, S3, T2, T4, T6);

<orientação>: é um dos (N, P, S, W);

<pausa>: é um número inteiro com um algarismo entre 1 e 3 que indica quanto tempo

deve o robô permanecer em pausa (em segundos) antes de iniciar a próxima tarefa.

Um exemplo de uma string contendo uma determinada tarefa para o robô será

<(S1,E,1),(D1,W,1),(S3,E,1),(D2,W,1)> (RULE BOOK, 2013).

Como não se pretende que a string seja sensível a maiúsculas/minúsculas, o algoritmo que

efetua a leitura destes caracteres, deve converter todo o texto para maiúsculas, com a

finalidade de evitar erros de leitura da introdução.

Com a introdução desta string, o robô deverá saber para onde se dirigir no mapa, com que

orientação deve permanecer na localização, assim como o tempo de espera até iniciar uma

nova navegação para um novo objetivo.

4.2. CINEMÁTICA

Este bloco é o responsável pela determinação da velocidade do robô no plano

global/inercial. É de extrema importância que os valores obtidos aqui sejam os mais

corretos possíveis, na medida em que todos os cálculos restantes se apoiam neste resultado.

Desta forma, obtêm-se os valores das velocidades de cada roda através dos sensores

odométricos do bloco da cinemática. Como pode ser analisado na Figura 20, estão

estruturados os sub-blocos que compõem o bloco da cinemática, nomeadamente:

Sensores odométricos das rodas;

Cinemática do robô;

Erro e correção da cinemática;

Sensor de força – giroscópio;

Velocidade do robô no referencial global/inercial.

Page 48: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

44

Figura 20 Diagrama do bloco cinemática.

4.2.1. SENSORES ODOMÉTRICOS DAS RODAS

Neste campo é realizada a leitura dos encoders de cada uma das rodas. Os valores obtidos

encontram-se em rad/s, pelo que posteriormente será necessário converter estes para m/s.

4.2.2. CINEMÁTICA DO ROBÔ

Com as velocidades adquiridas pelos sensores odométricos das rodas, é agora necessário

determinar a velocidade no plano do robô segundo a equação (2), adaptada da equação (1),

de acordo com as expressões seguintes.

(3)

(4)

(5)

4.2.3. ERRO E CORREÇÃO DA CINEMÁTICA

Quer neste trabalho, tratando-se de uma simulação, assim como numa aplicação real, a

cinemática determinada não é precisa e tem erros. Após efetuar uma simulação no V-REP,

obteve-se o seguinte gráfico da Figura 21.

Page 49: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

45

Figura 21 Gráfico obtido das velocidades pela cinemática do simulador.

Neste gráfico, a azul pode-se observar a velocidade transversal real do robô na simulação,

e a verde o valor obtido, em função da velocidade longitudinal, pela determinação da

cinemática.

Após a obtenção destes dados, que podem ser verificados na íntegra no Anexo A,

determinou-se, por linearização, a equação da velocidade transversal, em função das

velocidades transversal, longitudinal e rotacional determinadas pela cinemática.

A reflexão consiste em obter uma equação da velocidade, em função das velocidades

determinadas pela cinemática das rodas do robô, como se pode verificar na equação (6) e

equação (7).

(6)

(7)

-0,3000

-0,2000

-0,1000

0,0000

0,1000

0,2000

0,3000

0,00 2,00 4,00 6,00 8,00 10,00 12,00 14,00 16,00 18,00 20,00

y_odo x_real(x_odo)

x_real(x_odo+y_odo) x_real(x_odo+z_zodo)

x_real(x_odo+y_odo+z_odo)

Page 50: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

46

Fazendo uso de uma ferramenta matemática computacional (neste caso o wxMáxima),

obteve-se a seguinte função matemática para o cálculo da velocidade transversal:

fx_x:843.13*x^4+2.3259*x^3-161.78*x^2-

0.079*x+100.17;

fx_xy:-1576.6*(x+y)^6-

80.75*(x+y)^5+635.01*(x+y)^4+21.431*(x+y)^3-

123.54*(x+y)^2-0.6938*(x+y)+99.973;

fx_xz:-20.072*(x+z)^6-

1.6276*(x+z)^5+29.215*(x+z)^4+1.3755*(x+z)^3-

26.078*(x+z)^2-0.2226*(x+z)+100.06;

fx_y:fx_xy-fx_x;

fx_z:fx_xz-fx_x;

fx:ratsimp(fx_x+fx_y+fx_z);

fx:-

(200720*z^6+(1204320*x+16276)*z^5+(3010800*x^2+81

380*x-292150)*z^4+(4014400*x^3+162760*x^2-

1168600*x-13755)*z^3+(3010800*x^4+162760*x^3-

1752900*x^2-

41265*x+260780)*z^2+(1204320*x^5+81380*x^4-

1168600*x^3-

41265*x^2+521560*x+2226)*z+15766000*y^6+(94596000

*x+807500)*y^5+(236490000*x^2+4037500*x-

6350100)*y^4+(315320000*x^3+8075000*x^2-

25400400*x-

214310)*y^3+(236490000*x^4+8075000*x^3-

38100600*x^2-

642930*x+1235400)*y^2+(94596000*x^5+4037500*x^4-

25400400*x^3-

642930*x^2+2470800*x+6938)*y+15966720*x^6+823776*

x^5+1789050*x^4-204806*x^3-121620*x^2+8374*x-

998630)/(10000)

Da mesma forma, foi determinada a equação para a velocidade longitudinal, em função das

velocidades transversal, longitudinal e rotacional:

fy_y:-21442*y^6+6734.4*y^5+2407.5*y^4-522.25*y^3-

163.99*y^2+10.09*y+100.18;

fy_xy:-

1829.7*(x+y)^6+140.28*(x+y)^5+711.98*(x+y)^4-

45.902*(x+y)^3-

128.44*(x+y)^2+4.5564*(x+y)+100.01;

fy_yz:6.898*(y+z)^4-2.9098*(y+z)^3-

16.86*(y+z)^2+1.7004*(y+z)+99.834;

fy_x:fy_xy-fy_y;

fy_z:fy_yz-fy_y;

Page 51: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

47

fy:ratsimp(fy_x+fy_y+fy_z);

fy:(34490*z^4+(137960*y-14549)*z^3+(206940*y^2-

43647*y-84300)*z^2+(137960*y^3-43647*y^2-

168600*y+8502)*z+98061500*y^6+(-54891000*x-

32970600)*y^5+(-137227500*x^2+3507000*x-

8443110)*y^4+(-

182970000*x^3+7014000*x^2+14239600*x+2367191)*y^3

+(-137227500*x^4+7014000*x^3+21359400*x^2-

688530*x+93450)*y^2+(-

54891000*x^5+3507000*x^4+14239600*x^3-688530*x^2-

1284400*x-19166)*y-

9148500*x^6+701400*x^5+3559900*x^4-229510*x^3-

642200*x^2+22782*x+498320)/(5000)

4.2.4. SENSOR DE FORÇA - GIROSCÓPIO

Embora a velocidade rotacional do robô possa ser determinada pela cinemática acima

referida (ver equação (5)), a inclusão de um giroscópio ajuda a determinar com maior

exatidão a velocidade angular em torno do eixo do z do robô em rads-1

.

Comparando os valores de ambas as velocidades, suprimiu-se a velocidade rotacional

determinada pela cinemática, devido à velocidade obtida pelo sensor do giroscópio ser

mais precisa.

4.2.5. VELOCIDADE DO ROBÔ NO REFERENCIAL GLOBAL/INERCIAL

Como foi dito anteriormente, a velocidade obtida através do cálculo da cinemática é

relativa ao plano do robô. Para a conversão desta para o referencial inercial, é necessário

converter a velocidade transversal e longitudinal segundo a seguinte equação (MOBILE

ROBOTS, 2004):

(8)

Não é necessário converter a velocidade rotacional uma vez que esta é a mesma para o

plano do robô assim como no referencial global.

4.3. PERCEÇÃO E LOCALIZAÇÃO

Após a obtenção das velocidades do robô no referencial inercial, é necessário determinar a

localização do mesmo neste referencial, assim como determinar os obstáculos que aqui se

encontram, como representado na Figura 22.

Page 52: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

48

Figura 22 Diagrama de blocos referente ao módulo de perceção e localização.

Como a localização do robô é um ponto (correspondente ao seu centro geométrico), neste

ponto também é importante identificar no mapa uma área de segurança em relação aos

obstáculos encontrados. Esta área de segurança é, de acordo com o raio do robô (r),

demonstrada na Figura 23 (YOUBOT, 2013).

Figura 23 Dimensões do KUKA youBot.

Page 53: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

49

4.3.1. POSIÇÃO DO ROBÔ NO REFERENCIAL GLOBAL/INERCIAL

Para a obtenção desta, é necessário efetuar uma integração das velocidades do robô

(determinadas no bloco da cinemática) de acordo com a seguinte equação (POSITION,

2012).

(9)

4.3.2. SENSOR LASER HOKUYO URG-04LX-UG01

Como a KUKA comercializa um modelo do youBot com um sensor LASER Hokuyo

URG-04LX-UG01 montado, optou-se por escolher este modelo da Hokuyo para realizar a

simulação. Como tal, no V-REP, foi acoplado no robô o referido sensor (HOKUYO,

2014).

Este envia um vetor de dados com o ângulo e distância do obstáculo encontrado em relação

ao referencial do LASER. Para a utilização deste no referencial do robô é necessário a

conversão destes valores, de acordo com a Equação (10), determinada analiticamente de

acordo com a Figura 24.

Figura 24 Relação do ângulo ao obstáculo obtido pelo LASER e o robô.

Page 54: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

50

(10)

4.3.3. CRIAÇÃO DE MAPA DE OBSTÁCULOS

Após a obtenção da posição dos obstáculos pelo sensor LASER Hokuyo, insere-se essa

informação numa matriz dividida em células, onde a informação da posição do

ponto/obstáculo é adicionada consoante as suas coordenadas nessa matriz.

4.3.4. DIMENSÕES REDUZIDAS DO MAPA DE OBSTÁCULOS

Com a finalidade de não sobrecarregar o processamento do sistema em células de

matrizes/mapas que não sofreram qualquer tipo de alteração, determina-se uma dimensão

reduzida do mapa, como mostra a figura seguinte.

Figura 25 Demonstração da matriz/mapa reduzido.

4.3.5. CRIAÇÃO DE MAPA DE OBSTÁCULOS COM MARGEM DE SEGURANÇA

Como foi dito inicialmente, para uma navegação segura do robô é adicionada uma margem

de segurança ao mapa de obstáculos, de forma a que, ao calcular a navegação tendo em

consideração o seu centro geométrico, o robô não colida com os obstáculos.

Page 55: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

51

A Figura 26 demonstra a representação da margem de segurança face a um obstáculo

encontrado.

Figura 26 Criação de margem de segurança de acordo com um determinado raio.

O pseudo código para a criação da circunferência de segurança é o seguinte (CIRCLE

ALGORITHM, 2003):

dA=12;

dB=20-8*R;

while (x<y)

plot(x,y);

if(d<0)

d=d+dA; dB=dB+8;

else

y=y-1;

d=d+dB;

dB=dB+16;

end if

x=x+1;

dA=dA+8;

end while

Com este código não se perde demasiado tempo de processamento, a preencher o interior

do círculo. Para definir uma área de segurança em torno de um obstáculo este algoritmo é o

suficiente.

4.4. PLANEAMENTO E NAVEGAÇÃO

Este é o bloco responsável pela navegação do robô. Para que o robô a possa fazer é

necessário efetuar e determinar um planeamento com segurança, e que corresponda ao

trajeto o mais curto possível entre a posição inicial do robô e o seu objetivo (VARIOS,

2014).

Como pode ser analisado na Figura 27, estão aqui estruturados os sub-blocos que

compõem o bloco do planeamento e navegação, nomeadamente:

Criação de mapa de navegação;

Page 56: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

52

Orientação e decisão do sentido de rotação;

Definição da velocidade do robô;

Suavização do impulso da velocidade a impor.

Figura 27 Diagrama do bloco planeamento e navegação.

4.4.1. CRIAÇÃO DE MAPA DE NAVEGAÇÃO

Sabendo a posição atual do robô no referencial global e conhecendo o mapa de obstáculos,

é determinado um mapa/matriz do mesmo tamanho das matrizes anteriores, em que o

conteúdo desta nova matriz contém a distância de cada célula até ao destino, de forma a

contornar os obstáculos com a respetiva margem de segurança.

Esta matriz é determinada de acordo com o seguinte pseudo código do algoritmo da

transformação da distância de Jarvis (EUCLIDEAN, 2013):

Input I – a binary map

i, j – coordinates of goal

Output d a matrix with the distances until the goal

Initialize d according to eq. 1 repeat

for each line from the top of the map do

for each cell from left to right do

apply scan window 1

update d according to eq. 2

Page 57: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

53

end for

end for

for each cell from the bottom of the map do

for each line from right to left do

apply scan window 2

update d according to eq. 2 end for

end for

until no change

Com esta transformação, a matriz fica reduzida a um mapa (Figura 28), onde cada posição

tem a respetiva distância da sua célula até à célula de destino. Neste mapa pode ser

graficamente visualizado, uma escala de cores, onde as células são tanto mais escuras

quanto maior a distância ao objectivo. Para além disso, os obstáculos ou área de segurança,

encontram-se representados a preto.

Figura 28 Escala de cores de mapa de navegação criado no Excel.

Page 58: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

54

4.4.2. ORIENTAÇÃO E DECISÃO DO SENTIDO DE ROTAÇÃO

Conhecendo o mapa de navegação, determinado no ponto anterior, analisam-se as células

adjacentes da matriz e é determinada a orientação que o robô deve tomar de acordo com a

escolha da célula com o menor valor das células adjacentes àquela em que o robô se

encontra, como é ilustrado na figura seguinte.

Figura 29 Esquema de decisão à navegação.

Como a velocidade é um fator decisivo numa competição, é determinado qual o sentido de

rotação de forma que a diferença angular a percorrer entre a orientação do robô e a célula

selecionada seja a menor.

4.4.3. DEFINIÇÃO DA VELOCIDADE DO ROBÔ

Como o robô dispõe de três graus de liberdade (Degrees of Freedom - DOF)

(KINEMATIC MODELING, 1986), a velocidade rotacional, transversal e longitudinal é

determinada em função da diferença angular entre a posição atual do robô e a orientação

pretendida. Para uma melhor compreensão, a definição da diferença angular é demonstrada

na figura seguinte.

Figura 30 Imagem demonstrativa da diferença de ângulos para a navegação.

Page 59: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

55

Para a obtenção da velocidade do robô, são apresentados abaixo três gráficos onde se pode

observar a velocidade rotacional, transversal e longitudinal, respectivamente, em função da

diferença angular acima referida.

Figura 31 Gráfico para a velocidade rotacional do robô.

Figura 32 Gráfico para a velocidade transversal do youBot.

Figura 33 Gráfico para a velocidade longitudinal do robô.

Page 60: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

56

4.4.4. SUAVIZAÇÃO DO IMPULSO DA VELOCIDADE A IMPOR

Como a velocidade imposta pelo algoritmo acima mencionado é brusca, este campo é

responsável pela suavização deste impulso. Desta forma não existem acelerações

instantâneas, mas sim graduais.

A equação matemática utilizada é a Equação 11, onde:

vf - é a velocidade final;

vi - velocidade inicial;

vd - velocidade desejada.

(11)

Figura 34 Exemplo de suavização do impulso da velocidade imposta ao youBot.

Na equação (11) o fator 1.4 foi determinado de forma a que o declive resultante, não seja

superior ao declive formado pela aceleração do youBot. Este cálculo pode ser observado

no ficheiro de Excel que se encontra no Anexo A.

No Anexo A pode-se observar que as velocidades impostas ao robô não são instantâneas.

Estas, de acordo o o motor dinâmico de simulação, possuem um declive devido a fatores

como por exemplo, a inercia.

Esta experiência pode ser observada no referido ficheiro de Excel, na página

“teste_degrau”.

Page 61: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

57

5. PROGRAMAÇÃO

REALIZADA

Este capítulo, pela natureza do código, seria extenso. Como alternativa, a programação

pode ser observada no ficheiro bnt_scene.ttt que se encontra no Anexo A.

O algoritmo encontra-se devidamente comentado no script do youBot, como mostra a

seguinte figura.

Figura 35 Gráfico para a velocidade transversal do youBot.

Page 62: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

58

Basta clicar com o ponteiro do rato duas vezes sobre o ícone do script (delimitado pela

circunferência de contorno vermelho na Figura 35), que se irá abrir uma nova janela com

todo o código associado ao robô.

No entanto, este Capítulo trata de alguns aspetos construtivos que, na opinião do autor, são

importantes.

5.1. CICLO DE REPETIÇÃO DO ALGORITMO

Como já foi referido no capítulo anterior relativo à arquitetura do sistema, a programação

foi efetuada no script do youBot no simulador V-REP. A linguagem utilizada é a Lua

(LUA CONCEITOS, 2008).

A linguagem Lua é muito semelhante a Python, Ruby, entre outras. Devido à sua eficiência

e simplicidade esta foi adotada para a programação e desenvolvimento de jogos.

A programação foi dividida em blocos, de forma muito semelhante ao descrito no capítulo

anterior. No entanto, acrescem condições para a realização eficaz da simulação. Esta

organização rege-se de acordo com o fluxograma apresentado na Figura 35.

As funções mais usadas, assim como a inicialização de variáveis, são colocadas na parte

superior do código, que é executado apenas uma única vez.

O restante código é processado no simulador com uma frequência predefinida de 20 Hz

(timestep = 50 ms) enquanto a simulação se encontra a decorrer. Este valor pode ser

alterado pelo utilizador, de acordo com o manual do programa V-REP (V-REP, 2014).

Com a finalidade de não desperdiçar tempo útil do processamento, o bloco da “Perceção e

localização”, assim como os blocos do “Planeamento e navegação” e “Gráfico”, apenas são

processados no caso de haver um objetivo ou tarefa para o robô desempenhar.

Page 63: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

59

Figura 36 Fluxograma do sistema e sua integração no script do YouBot

5.2. POSIÇÃO DO BRAÇO DO ROBÔ PARA NAVEGAÇÃO

É de referir que para a navegação se realizar com segurança, o braço do robô deve estar

devidamente recolhido como mostra a Figura 37.

Para este efeito, realiza-se esta operação em dois passos:

1. Primeiro coloca-se o braço na posição vertical, para que não colida com obstáculos;

Page 64: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

60

2. Em seguida fecha-se a garra e recolhe-se o braço.

A Figura 37 demonstra visualmente todos os passos que esta operação deve seguir para

recolher o referido braço.

Figura 37 Conjunto de imagens ilustrativas de recolha do braço do youBot. (YOUBOT, 2013)

Page 65: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

61

6. TESTES EFETUADOS E

RESULTADOS OBTIDOS

Ao longo de todo o trabalho, foram realizados vários testes de simulação, principalmente

no foro da cinemática do robô, e também foram realizados vários testes a respeito da

localização e de mapeamento.

6.1. VELOCIDADE E POSIÇÃO

Inicialmente pensou-se em determinar a velocidade do youBot pela leitura dos dados

obtidos pelo Hokuyo, medindo a distância deste a um obstáculo e comparando esta com a

distância medida na leitura seguinte ao mesmo obstáculo.

A selecção do obstáculo por parte do algoritmo seria em função da orientação do robô. No

caso de não haver nenhum obstáculo na orientação percorrida, dado que o LASER

processa um varrimento da direita para a esquerda, o ponto selecionado seria o

imediatamente à esquerda da direcção em que o robô percorre.

Este procedimento pode ser visto de uma forma analítica na Figura 38, onde o resultado

pretendido seria a distância ou o módulo do vetor dRd.

Page 66: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

62

Figura 38 Representação vectorial da distância percorrida.

Page 67: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

63

Figura 39 Fluxograma para determinar a velocidade em função das leituras do LASER.

Page 68: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

64

A figura acima, é demonstrativa do algoritmo implementado para a determinação da

velocidade do robô, e por conseguinte da sua posição.

Após a realização de testes no simulador, verificou-se a existência de uma grande

discrepância na posição do robô obtida pelo método acima referido, e a posição obtida pelo

cálculo da cinemática direta. Decidiu-se então que seria melhor calcular a posição do

youBot através da cinemática, face ao tempo disponível para a conclusão deste trabalho.

Ao realizar o cálculo da cinemática das rodas, como já mencionado, esta não é precisa e

tem erros face à realidade. Não obstante, e durante a realização de testes no simulador V-

REP, observou-se que também o modelo do youBot é impreciso, na medida em que com o

robô parado, este possui movimento no simulador.

Para correção das velocidades determinadas pela cinemática, como foi referido no Capítulo

5, acrescentou-se o código abaixo ao script do robô, e registaram-se os dados, que podem

ser analisados no Anexo A, no ficheiro Excel bnt_cinematica.xlsx.

if simGetSimulationTime()>=0 and

simGetSimulationTime()< 1 then

forwBackVel=4

leftRightVel=4

rotVel=4

end

if simGetSimulationTime()>=1 and

simGetSimulationTime()< 2 then

forwBackVel=3.5

leftRightVel=3.5

rotVel=3.5

end

if simGetSimulationTime()>=2 and

simGetSimulationTime()< 3 then

forwBackVel=3

leftRightVel=3

rotVel=3

end

if simGetSimulationTime()>=3 and

simGetSimulationTime()< 4 then

forwBackVel=2.5

leftRightVel=2.5

rotVel=2.5

end

if simGetSimulationTime()>=4 and

simGetSimulationTime()< 5 then

forwBackVel=2

leftRightVel=2

rotVel=2

end

Page 69: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

65

if simGetSimulationTime()>=5 and

simGetSimulationTime()< 6 then

forwBackVel=1.5

leftRightVel=1.5

rotVel=1.5

end

if simGetSimulationTime()>=6 and

simGetSimulationTime()< 7 then

forwBackVel=1

leftRightVel=1

rotVel=1

end

if simGetSimulationTime()>=7 and

simGetSimulationTime()< 8 then

forwBackVel=0.5

leftRightVel=0.5

rotVel=0.5

end

if simGetSimulationTime()>=8 and

simGetSimulationTime()< 9 then

forwBackVel=0

leftRightVel=0

rotVel=0

end

if simGetSimulationTime()>=9 and

simGetSimulationTime()< 10 then

forwBackVel=-0.5

leftRightVel=-0.5

rotVel=-0.5

end

if simGetSimulationTime()>=10 and

simGetSimulationTime()< 11 then

forwBackVel=-1

leftRightVel=-1

rotVel=-1

end

if simGetSimulationTime()>=11 and

simGetSimulationTime()< 12 then

forwBackVel=-1.5

leftRightVel=-1.5

rotVel=-1.5

end

if simGetSimulationTime()>=12 and

simGetSimulationTime()< 13 then

forwBackVel=-2

leftRightVel=-2

rotVel=-2

end

if simGetSimulationTime()>=13 and

simGetSimulationTime()< 14 then

forwBackVel=-2.5

leftRightVel=-2.5

rotVel=-2.5

end

if simGetSimulationTime()>=14 and

simGetSimulationTime()< 15 then

Page 70: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

66

forwBackVel=-3

leftRightVel=-3

rotVel=-3

end

if simGetSimulationTime()>=15 and

simGetSimulationTime()< 16 then

forwBackVel=-3.5

leftRightVel=-3.5

rotVel=-3.5

end

if simGetSimulationTime()>=16 and

simGetSimulationTime()<17 then

forwBackVel=-4

leftRightVel=-4

rotVel=-4

end

if simGetSimulationTime()>=17 and

simGetSimulationTime()< 18 then

--forwBackVel=4

leftRightVel=4

rotVel=4

end

if simGetSimulationTime()>=18 and

simGetSimulationTime()< 19 then

forwBackVel=-4

leftRightVel=-4

rotVel=-4

end

if simGetSimulationTime()>=19 and

simGetSimulationTime()< 20 then

forwBackVel=4

leftRightVel=4

rotVel=4

end

if simGetSimulationTime()>=20 then

forwBackVel=0

leftRightVel=0

rotVel=0

end

Para exportar os dados obtidos (a velocidade real do robô no simulador e a velocidade

determinada pela cinemática), usou-se o seguinte algoritmo para escrever estes na janela de

mensagens de estados:

realvel={}

realang={}

realvel,realang=simGetObjectVelocity(youBot)

simAddStatusbarMessage(simGetSimulationTime().."\

t"..realvel[1].."\t"..wheelOdoi[1].."\t"..realvel

[2].."\t"..wheelOdoi[2])

Com os dados recolhidos durante 20 s, e após o cálculo da média e linearização das

funções, obtiveram-se os gráficos das velocidades, representados nas Figuras 40 e 41.

Page 71: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

67

A série de dados representada a vermelho (x_real e y_real), é a velocidade real do robô na

simulação. A verde apresenta-se a velocidade determinada pela cinemática, e a azul a

velocidade após aplicar o algoritmo de correção da velocidade calculada pela cinemática.

Figura 40 Gráfico obtido da velocidade transversal.

Figura 41 Gráfico obtido da velocidade longitudinal.

Com o algoritmo de correção das velocidades, conseguiu-se obter uma melhoria de cerca

de 95%, em relação às velocidades determinadas pela cinemática.

6.2. NAVEGAÇÃO AUTÓNOMA DO ROBÔ

Para a realização da experiência da prova BNT, montou-se o cenário, nomeadamente as

paredes a circundar o espaço (arena) e manteve-se uma abertura para que o robô possa

entrar e sair da arena.

-0,30

-0,20

-0,10

0,00

0,10

0,20

0,30

0,00 2,00 4,00 6,00 8,00 10,00 12,00 14,00 16,00 18,00 20,00

x_cor x_real x_odo

-0,30

-0,20

-0,10

0,00

0,10

0,20

0,30

0,00 2,00 4,00 6,00 8,00 10,00 12,00 14,00 16,00 18,00 20,00

y_cor y_real y_odo

Page 72: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

68

Definiram-se as áreas de serviço S1, S2, S3 e S4. Como a origem das coordenadas é

definido pelo centro geométrico da plataforma do youBot no início da navegação, as áreas

de serviço têm as seguintes coordenadas:

S1 - (0; 0);

S2 - (0; 1);

S3 - (2; 3.5);

S4 - (-1.5; 2.5);

Para a atribuição e correlação destas coordenadas em função da string da tarefa enviada

para o robô, foi criado o seguinte algoritmo para o script do youBot:

function bnt_stringToPosition(string)

if string=="S1" then

bnt_strPos={0,0}

end

if string=="S2" then

bnt_strPos={0,1}

end

if string=="S3" then

bnt_strPos={2,3.5}

end

if string=="S4" then

bnt_strPos={-1.5,2.5}

end

return bnt_strPos

end

Na figura abaixo, pode-se observar a disposição das paredes e respetivas áreas de serviço

no local do cenário montado.

Figura 42 Cenário 3D em V-REP de uma possível prova BNT.

Page 73: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

69

Para visualizar a deteção de obstáculos, margem de segurança para a navegação, assim

como as coordenadas do robô na arena, foi criado um gráfico no V-REP, de acordo com o

seguinte algoritmo inserido no script do youBot.

simResetGraph(bnt_graphHandle)

bnt_botGraphPos={}

bnt_botGraphPos[1]=bnt_botPos[1]+(bnt_botWheelAxi

s[1]*math.cos(bnt_botPos[3])-

bnt_botWheelAxis[2]*math.sin(bnt_botPos[3]))

bnt_botGraphPos[2]=bnt_botPos[2]+(bnt_botWheelAxi

s[1]*math.sin(bnt_botPos[3])+bnt_botWheelAxis[2]*

math.cos(bnt_botPos[3]))

bnt_botGraphPos[3]=bnt_botPos[1]+(-

bnt_botWheelAxis[1]*math.cos(bnt_botPos[3])-

bnt_botWheelAxis[2]*math.sin(bnt_botPos[3]))

bnt_botGraphPos[4]=bnt_botPos[2]+(-

bnt_botWheelAxis[1]*math.sin(bnt_botPos[3])+bnt_b

otWheelAxis[2]*math.cos(bnt_botPos[3]))

bnt_botGraphPos[5]=bnt_botPos[1]+(-

bnt_botWheelAxis[1]*math.cos(bnt_botPos[3])+bnt_b

otWheelAxis[2]*math.sin(bnt_botPos[3]))

bnt_botGraphPos[6]=bnt_botPos[2]+(-

bnt_botWheelAxis[1]*math.sin(bnt_botPos[3])-

bnt_botWheelAxis[2]*math.cos(bnt_botPos[3]))

bnt_botGraphPos[7]=bnt_botPos[1]+(bnt_botWheelAxi

s[1]*math.cos(bnt_botPos[3])+bnt_botWheelAxis[2]*

math.sin(bnt_botPos[3]))

bnt_botGraphPos[8]=bnt_botPos[2]+(bnt_botWheelAxi

s[1]*math.sin(bnt_botPos[3])-

bnt_botWheelAxis[2]*math.cos(bnt_botPos[3]))

bnt_botGraphPos[9]=bnt_botPos[1]+(bnt_botWheelAxi

s[1]*math.cos(bnt_botPos[3])-

bnt_botWheelAxis[2]*math.sin(bnt_botPos[3]))

bnt_botGraphPos[10]=bnt_botPos[2]+(bnt_botWheelAx

is[1]*math.sin(bnt_botPos[3])+bnt_botWheelAxis[2]

*math.cos(bnt_botPos[3]))

for i=1, #bnt_botGraphPos, 2 do

simSetGraphUserData(bnt_graphHandle,"YBx",bnt_b

otGraphPos[i])

simSetGraphUserData(bnt_graphHandle,"YBy",bnt_b

otGraphPos[i+1])

simHandleGraph(bnt_graphHandle,0.0)

end

if bnt_nGoalMap>0 and bnt_armFlag==0 then

simSetGraphUserData(bnt_graphHandle,"GMx",bnt_map

IndexToValue(bnt_iGoalMap[1],bnt_mapCellSize,bnt_

nMapMiddle[1]))

simSetGraphUserData(bnt_graphHandle,"GMy",bnt_map

IndexToValue(bnt_iGoalMap[2],bnt_mapCellSize,bnt_

nMapMiddle[2]))

simHandleGraph(bnt_graphHandle,0.0)

for x=bnt_mapRight,bnt_mapLeft,1 do

for y=bnt_mapBotton,bnt_mapTop,1 do

if bnt_obsMap[x][y]==1 then

Page 74: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

70

xx=bnt_mapIndexToValue(x,bnt_mapCellSize,bnt_nM

apMiddle[1])

yy=bnt_mapIndexToValue(y,bnt_mapCellSize,bnt_nM

apMiddle[2])

simSetGraphUserData(bnt_graphHandle,"OMx",xx)

simSetGraphUserData(bnt_graphHandle,"OMy",yy)

simHandleGraph(bnt_graphHandle,0.0)

else

if bnt_secMap[x][y]==1 then

xx=bnt_mapIndexToValue(x,bnt_mapCellSize,bnt_nM

apMiddle[1])

yy=bnt_mapIndexToValue(y,bnt_mapCellSize,bnt_nM

apMiddle[2])

simSetGraphUserData(bnt_graphHandle,"SMx",xx)

simSetGraphUserData(bnt_graphHandle,"SMy",yy)

simHandleGraph(bnt_graphHandle,0.0)

end

end

end

end

end

Com a inclusão do código acima descrito, e uma devida configuração do elemento gráfico

na scene, que se pode ver na Figura 43, obteve-se o gráfico apresentado na Figura 44.

Figura 43 Janela do V-REP para configuração do Gráfico.

Page 75: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

71

No gráfico da Figura 44, as células de cor preta são obstáculos detetados pelo sensor

LASER Hokuyo. A cinzento encontra-se a área de segurança para a navegação, e o

retângulo com o contorno a vermelho corresponde aos limites do robô neste mapa. O ponto

de cor verde indica a localização do próximo objetivo definido na string, para o qual o

robô se deve dirigir.

Figura 44 Gráfico obtido para visualização do comportamento da navegação.

Após a introdução de várias strings, com a finalidade de testar o comportamento da

navegação autónoma do robô, observou-se que esta é efetuada dentro dos parâmetros

esperados.

No exemplo da Figura 44, o mapa encontra-se dividido em células quadradas com um

tamanho de 10 cm × 10 cm. Pode-se obter uma maior resolução deste mapa, diminuindo o

tamanho das células, mas isto iria obrigar a uma computação maior, o que tornaria a

simulação mais lenta e, eventualmente, o programa V-REP poderia falhar.

Este teste pode ser observado no vídeo bnt_video.avi que se encontra no CD-ROM

disponibilizado no Anexo A.

Page 76: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

72

Page 77: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

73

7. CONCLUSÕES

Tem havido um grande aumento de interesse em robôs móveis. Não apenas como

brinquedos mas como uma ferramenta para a educação em engenharia. Atualmente os

robôs móveis são usados em quase todas as universidades, em cursos e pós-graduações em

Ciências de Computação, Engenharia da Computação, Tecnologias de Informação,

Cibernética, Engenharia Eletrotécnica, Engenharia Mecânica e Mecatrônica.

Recentemente surgiu uma nova liga na maior competição do mundo de robótica, chamada

RoboCup@Work, que é destinada aos concorrentes que desejam competir no campo da

manipulação robótica móvel para ambiente industrial.

Pretendeu-se com o desenvolvimento deste trabalho, que a implementação da sua

arquitetura fosse não só capaz de correr na simulação, mas que fosse também dinâmica, de

forma a ser implementada na plataforma KUKA youBot. Para além destes aspetos,

implementou-se a referida prova BNT em simulação

Com a implementação do SLAM, cuja principal dificuldade é a interação entre a posição

do robô e as suas ações de mapeamento, realizou-se a programação do youBot no

simulador V-REP.

Page 78: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

74

Efetuaram-se diversos testes funcionais à simulação, nomeadamente à cinemática e à

navegação do robô.

Após a realização dos testes descritos no capítulo anterior, e analisando os resultados

obtidos, concluiu-se que o comportamento do robô KUKA youBot no simulador V-REP

está de acordo com o esperado inicialmente. No entanto, foram também detetadas algumas

situações passíveis de melhoria, que se passam a descrever.

7.1. IDEIAS PARA FUTURO

Ao nível do cálculo da cinemática da plataforma, embora não sendo precisa, verificou-se

que com o algoritmo de correção desta, consegue-se uma melhor aproximação à realidade,

no V-REP. Não obstante, e após uma análise ao trabalho, futuramente poder-se-á

aprimorar, com um cálculo probabilístico, a atual cinemática, recorrendo também à leitura

dos obstáculos devolvidas pelo Sensor LASER Hokuyo e por um acelerómetro. Desta

forma determina-se com maior precisão a velocidade do robô, e por conseguinte a sua

posição no referencial global/inercial.

Observou-se durante este trabalho que a determinação com precisão da posição do robô é

fundamental para a realização do mapeamento e, por conseguinte, para o planeamento da

navegação. Embora a construção do mapa de obstáculos tenha preenchido o requisito

desejado, e o robô tenha conseguido atingir os objetivos dentro do esperado, verificou-se

que durante as experiências realizadas, as posições fixas no mapa vão-se alterando de

acordo com os erros da odometria e erros inerentes à leitura do Hokuyo. No futuro esta

situação pode ser corrigida, ao invés de usar mapas em grelha discretos e determinísticos,

com o uso de mapa em grelha probabilísticos. Assim, por exemplo, no valor de cada célula

em vez de ser 0 ou 1 passar-se-ia a ter um valor probabilístico de 0 a 100, consoante o

número de leituras feitas ao respetivo obstáculo.

Observou-se também que a navegação em múltiplos de 45º é limitativa e obriga a uma

maior exigência do processador para efetuar as computações necessárias de célula em

célula. Esta situação pode ser melhorada, aplicando o algoritmo Exact Euclidean Distance

Transform (EEDT), descrito na bibliografia (EUCLIDEAN, 2013).O núcleo desta

abordagem é que para cada célula obtém-se o melhor sub-objetivo visível para a meta

(próximo aos vértices dos obstáculos), com a finalidade de obter rotas mais suaves, sem

processamento desnecessário.

Page 79: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

75

Como observação final, a programação foi desenvolvida para fazer uso da API interna do

simulador. Ao invés desta, ao usar o recurso externo por Robot Operation System (ROS),

obter-se-ia uma aplicação mais aberta e funcional, para ser futuramente testada num robô

verdadeiro.

Para além deste fato, já existem para esta aplicação pacotes que incluem planeamento e

navegação, que também merecem ser estudados, e o conhecimento prévio destes seria uma

mais-valia para a realização deste projeto.

7.2. CONCLUSÃO PESSOAL

A realização deste trabalho possibilitou o aumento do conhecimento, no âmbito da

robótica, pela sua forte componente teórico-prática.

Apesar de, como objetivo principal, este ser o projeto de finalização de licenciatura,

demonstrou ser uma mais-valia poder fazer parte de um projeto de investigação, deveras

inovador. Serviu para dar motivação, para melhorar este projeto, assim como para a

participação em projetos académicos e profissionais, futuros.

A possibilidade de poder fazer parte do evento RoCKIn Camp 2014, originou a apreensão

de novos conhecimentos, nomeadamente, diferentes linguagens de programação. Para além

disso, poder observar a aplicabilidade, in loco, da teoria, permite detetar e observar que

existem muitos erros e dificuldades, para além da simulação.

Page 80: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

76

Page 81: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

77

Referências Documentais

(ASIMO HONDA, 2014) Asimo Honda, disponível em: http://asimo.honda.com/; último

acesso em 2014-02-10.

(AUTONOMOUS ROBOTS, 1995) J. Craig, Jonh; Silma, inc.; Introduction to Robotics

Mechanics and Control, Second Edition.

(AUTONOMOUS ROBOTS, 2009) Fahimi, Farbod; Autonomous Robots - Modeling,

Path Planning, and Control; ISBN: 978-0-387-09537-0.

(CIRCLE ALGORITHM, 2003) Gustavson, Stefan; An efficient circle drawing algorithm,

disponível em: http://webstaff.itn.liu.se/~stegu76/circle/; último acesso em 2014-02-10.

(CONTROL OMNIDIRECTIONAL, 2004) Song, Jae-Bok; Byun, Kyung-Seok; Korea

University, Mokpo National University; Design and Control of an Omnidirectional Mobile

Robot with Steerable Omnidirectional Wheels, disponível em:

http://onlinelibrary.wiley.com/doi/10.1002/rob.20009/abstract/; último acesso em 2014-02-

10.

(EUCLIDEAN, 2013) Elizondo-Leal1, Juan Carlos; Parra-González, Ezra Federico;

Ramírez-Torres, José Gabriel; The Exact Euclidean Distance Transform: A New

Algorithm for Universal Path Planning, disponível em:

http://www.intechopen.com/journals/international_journal_of_advanced_robotic_systems/t

he-exact-euclidean-distance-transform-a-new-algorithm-for-universal-path-planning;

último acesso em 2014-02-10.

(FESTIVAL NACIONAL DE ROBOTICA, 2014) Festival Nacional de Robótica,

disponível em: http://esecddinis.pt/robotica2013/; último acesso em 2014-02-10.

(GAZEBO, 2014) Gazebo, disponível em: http://gazebosim.org/; último acesso em 2014-

02-10.

(HOKUYO, 2014) Hokuyo, disponível em: https://www.hokuyo-aut.jp/; último acesso em

2014-02-10.

(INSTITUTO NEWTON BRAGA, 2014) Instituto Newton Braga, disponível em:

http://www.newtoncbraga.com.br/; último acesso em 2014-02-10.

(KINEMATIC MODELING, 1986) Fred Muir, Patrick; P.Neuman, Charles; Department

of Electrical and Computer Engineering And Robotics Intitute, Carnegie Mellon

University, Pittsburgh PA 15213; Kinematic Modeling of Wheeled Mobile Robots.

(KUKA, 2014), KUKA, disponível em: http://www.youbot-store.com/; último acesso em

2014-02-10.

(LUA CONCEITOS, 2008) Lua Conceitos; Conceitos Básicos e API C, disponível em:

http://www.lua.inf.puc-rio.br/; último acesso em 2014-02-10.

(LUA, 2014) Lua, disponível em: http://www.lua.org/; último acesso em 2014-02-10.

Page 82: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

78

(MECANUM WHEEL, 2010) Han, Kyung-Lyong; Hyosin, Kim; S. Lee, Jin; The

Department of Electronic and Electrical Engineering; POSTECH; The Sources of Position

Errors of Omni-directional Mobile Robot with Mecanum Wheel, disponível em:

http://www.google.pt/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjA

A&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5629466%2F5641665%2F0564

2009.pdf%3Farnumber%3D5642009&ei=SOP4UrH0DI2rhAfS0IDQBA&usg=AFQjCNFa

7wMZ_51_V_6S0hPR1dGfljpI9Q&sig2=uVKE5N12xrpKGXiZQlDQmw; último acesso

em 2014-02-10.

(MICROSOFT, 2014) Microsoft Robotics Developer Studio, disponível em:

http://msdn.microsoft.com/robotics; último acesso em 2014-02-10.

(MOBILE ROBOTS, 2004) Siegwart, Roland; R. Nourbakhsh, Illah , Introduction to

Autonomous Mobile Robots, ISBN 0-262-19502-X.

(MODELING CONTROL, 1988) Fred Muir, Patrick, Ph.D. Dissertation, Department of

Electrical and Computer Engineering And Robotics Intitute, Carnegie Mellon University,

Pittsburgh PA 15213; Modeling and Controlo f Wheeled Mobile Robots.

(NASA, 2014) NASA, disponível em: http://

http://marsrovers.jpl.nasa.gov/home/index.html; último acesso em 2014-02-10.

(OMIDIRECTIONAL, 2007) Doroftei, Ioan; Grosu, Victor; Spinu, Veaceslav; Gh.

Asachi” Technical University of Iasi; Omnidirectional Mobile Robot – Design and

Implementation, disponível em:

http://w .google.pt url sa t rct q esrc s source eb cd ved I A

url http A .intechopen.com do nload pdf 4 5 ei vT4Ur

t mAhAforo g usg A cTs A mvi igrP Rzg sig dM q

RtlOuU Gp h- _U bvm bv. ,d. G4 ; último acesso em 2014-02-10.

(OMNI MECANUM, 2013) Omni-Mecanum-Wheeled, disponível em:

http://Robothttp://www.scirp.org/journal/PaperInformation.aspx?paperID=31739#.UvkIh1

7S93Y; último acesso em 2014-02-10.

(OPENSIM, 2014) OpemSim, disponível em: http://opensimulator.sourceforge.net/; último

acesso em 2014-02-10.

PO ITIO , eifert, urt; amacho Oscar; Implementing Positioning Algorithms

Using Accelerometers, disponível em

http .freescale.com files sensors doc app_note A .pdf ; último acesso em 2014-

02-10.

(ROBOCUP, 2014) RoboCup, disponível em: http://www.robocup.org/; último acesso em

2014-02-10.

(ROCKIN, 2014) Rockin, disponível em: http://www.rockinrobotchallenge.eu/; último

acesso em 2014-02-10.

(ROS, 2014) Robot Operation System, disponível em: http://www.ros.org/; último acesso

em 2014-02-10.

Page 83: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

79

RU OO , Robo up Rule oo , ersion . ; une , , disponível em

http .robocupat or .org do nload ruleboo - - - .pdf ; último acesso em

2014-02-10.

(SIMROBOT, 2014) SimRobot, disponível em: http://www.informatik.uni-

bremen.de/simrobot/index_e.htm; último acesso em 2014-02-10.

(SOCIETY OF ROBOTS, 2014) Society of Robots, disponível em:

http://www.societyofrobots.com/; último acesso em 2014-02-10.

(THE OLD ROBOTS, 2014) The Old Robots Robots, disponível em:

http://www.theoldrobots.com/; último acesso em 2014-02-10.

(URANUS ROBOT, 1990) Blackwell, Mike; Mobile Robot Lab, The Robotics Institute

Carnegie Mellon University, Pittsburg, PA, 15213; The Uranus Mobile Robot.

(VARIOS, 2014) Vários documentos de Robótica, Davison, Andrew; Robotics Course,

Imperial College London; disponível em:

http://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/; último acesso em 2014-02-10.

(V-REP, 2014) V-REP, disponível em: http://www.coppeliarobotics.com/; último acesso

em 2014-02-10.

(WEBOTS, 2014) WeBots, disponível em: http://www.cyberbotics.com/overview/; último

acesso em 2014-02-10.

(YOUBOT, 2013) KUKA youBot User Manual; Version 1.02; Locomotec, disponível em:

http://www.youbot-store.com/media/pdf/ku a-youbot_usermanual.pdf ; último acesso em

2014-02-10.

Page 84: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

80

Page 85: SIMULAÇÃO EM V-REP DA BNT DA COMPETIÇÃO R CUP@WORKave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1040552_v1.pdf · 5 Abstract As a form of development and to attract

81

Anexo A. CD-ROM

O CD-ROM fornecido em anexo, contém os seguintes ficheiros:

bnt_scene.ttt – Ficheiro do tipo scene para ser executado com o simulador V-REP, que

contém todo o código (scripts) e construção em três dimensões referida ao longo deste

relatório;

bnt_cinematica.xlsx – Documento do Microsoft Excel, com os dados de velocidade

obtidos pela cinemática do robô, assim como os devidos cálculos, médias e

linearizações para a obtenção do algoritmo de correção da velocidade transversal e

longitudinal do youBot.

bnt_video.avi –Filme (1:47 s) de demonstração da simulação do youBot, realizado a

partir do ficheiro bnt_scene.ttt. Neste exemplo o comando introduzido na consola é

<(S3,N,1),(S4,E,2),(S2,W,1),(S1,S,0)>