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

81
SIMULAÇÃO EM V-REP DA PROVA BMT DA COMPETIÇÃO ROBOCUP@WORK Pedro Miguel Montenegro Rodrigues Departamento de Engenharia Electrotécnica Instituto Superior de Engenharia do Porto 2014

Upload: hatuong

Post on 11-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

SIMULAÇÃO EM V-REP DA

PROVA BMT DA COMPETIÇÃO

ROBOCUP@WORK

Pedro Miguel Montenegro Rodrigues

Departamento de Engenharia Electrotécnica

Instituto Superior de Engenharia do Porto

2014

Page 2: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando
Page 3: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

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

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

de Computadores

Candidato: Pedro Miguel Montenegro Rodrigues, [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 BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando
Page 5: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

i

Agradecimentos

Gostaria de agradecer em primeiro lugar ao meu orientador, o Prof. Manuel Fernando dos

Santos Silva por todo o apoio durante a realização deste projecto e por me ter concedido a

honra de participar com ele no RoCKIn Camp em Roma representando o ISEP.

Aos meus pais, agradeço-lhes por serem os pilares da minha vida e da minha educação, por

investirem nesta minha formação académica e pela confiança que depositaram em mim ao

longo deste tempo todo, nunca me deixando desistir, fazendo-me acreditar que sou capaz

de enfrentar qualquer obstáculo, seja na vida pessoal ou na vida académica.

Agradeço à minha namorada Vera Conde, acima de tudo por toda a paciência que teve que

ter comigo, não só durante a realização deste projecto, mas durante estes anos de curso,

estando sempre ao meu lado, todos os dias, dando-me apoio e ajuda nos momentos mais

complicados, por todas as palavra de conforto e motivação que me deu quando eu mais

precisava, por estar sempre pronta a ajudar-me de alguma maneira. Por tudo isto e muito

mais, é uma das pessoas a quem mais devo o sucesso desta licenciatura.

Aos pais da minha namorada, Fernando e Helena Conde, e à irmã Mariana Conde, por me

tratarem sempre como um filho e como um irmão, tornando a casa deles a minha segunda

casa, o meu principal local de trabalho, agradeço-lhes também todo o apoio e confiança

que depositaram em mim.

Ao meu colega de projecto Rui Alen, por me ter ajudado sempre que o procurei e por ter

sido um óptimo companheiro de equipa na viagem ao RoCKIn Camp em Roma.

Por último, mas não em último, a todos os meus colegas de curso que me acompanharam

estes anos todos, tanto na vida académica como fora dela.

Page 6: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

ii

Page 7: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

iii

Resumo

As competições de robótica estão a crescer de ano para ano, tanto a nível de participantes

como a nível de ligas que as integram. Este projecto surge no interesse da equipa de

robótica do Instituto Superior de Engenharia do Porto (ISEP) participar numa nova liga

dessas competições, a RoboCup@Work. Esta liga pertence a uma das mais prestigiadas

competições de robótica, a RoboCup, e é focada na capacidade dos robôs desempenharem

funções de auxílio aos humanos na indústria. Como de momento o ISEP não possui as

verbas necessárias para adquirir a plataforma, surgiu a ideia da realização deste projecto.

Este projecto tem como objectivo a simulação de uma das provas inseridas no

RoboCup@Work, mais precisamente a prova Basic Manipulation Test (BMT), utilizando

para a sua realização a plataforma móvel KUKA youBot.

Este trabalho descreve todo o projecto e implementação dos elementos necessários para a

simulação dessa plataforma móvel nesta prova. Esta prova tem como objectivo demonstrar

as capacidades básicas de manipulação dos robôs, como agarrar, virar, ou colocar um

objecto. O ambiente de simulação utilizado foi o Virtual Robot Experimentation Platform

(V-REP) que possui uma versão educativa gratuita e nela contém um modelo da

plataforma a ser utilizada neste trabalho. Vários outros aspectos tiveram que ter sido alvos

de estudo e implementação, e serão relatados neste trabalho, tais como, a cinemática da

plataforma, a cinemática do manipulador e o planeamento de trajectórias, focando-se

principalmente no algoritmo escolhido para este trabalho, o algoritmo de pesquisa A*. Este

algoritmo permitirá que a plataforma se desloque desde uma posição inicial até uma final,

onde fará a manipulação, desviando-se de eventuais obstáculos que surjam no caminho.

Após todo o estudo das cinemáticas e do algoritmo A*, procedeu-se à implementação do

código de programação no simulador. Todo o código foi escrito em linguagem LUA, que é

a linguagem padrão do simulador e revelou-se ser uma linguagem bastante leve, rápida e

eficaz.

Por último foram realizados uma série de testes para se certificar que tudo corria conforme

o esperado e para corrigir eventuais erros; os erros encontrados relevantes foram com o

algoritmo A*, a sua implementação tornou a simulação bastante lenta, tendo sido

Page 8: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

iv

necessário tornar o ambiente mais leve, reduzindo o número de obstáculos. Conclui-se que

esta correcção melhorou bastante o desempenho do algoritmo, sendo o robô capaz de ir do

ponto inicial ao final sem embater com os objectos.

Palavras-Chave

KUKA youBot, robótica, BMT, RoboCup@Work, manipulação, cinemática, A*, V-REP

Page 9: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

v

Abstract

Robotic competitions are growing from year to year, in terms of participants and the

number of leagues that comprise them. This project arises from the interest of the Institute

of Engineering of Porto (ISEP) robotics team to participate in a new competition, the

RoboCup@Work. This league belongs to one of the most prestigious competitions in

robotics, the RoboCup, and is focused on the ability of robots to perform human functions

in the industry. For now, ISEP does not have the funds necessary to acquire the platform,

so the idea of conducting this project emerged. This project aims at simulating one of the

tests presented in the RoboCup@Work, more precisely the Basic Manipulation Test

(BMT) using a KUKA youBot mobile platform.

This report describes the entire project and implementation of the necessary elements for

the simulation of this mobile platform in this test. This test aims to demonstrate the basic

manipulation capabilities of robots, such as grasping, turning, or placing an object. The

simulation environment used was Virtual Robot Experimentation Platform (V -REP), wich

has a free educational version and contains a model of the platform to be used in this work.

Several other aspects were the target of study and implementation, and will be reported in

this work, such as the kinematics of the platform, the manipulator kinematics and

trajectory planning, focusing primarily on the algorithm chosen for this work, the A* path

finding. This algorithm will allow the platform to move from an initial position to a final

one where it will do the handling, avoiding any obstacles that arise along the path. After all

the study of kinematics and the A* algorithm – it was proceeded to the implementation of

the program code in the simulator. All this code was written in the LUA language, that is

the simulator default language and it proved to be a quick fairly mild language and

effective.

A series of tests were performed to make sure everything run as expected and to correct

any errors. The most significant errors were with the A* algorithm - since its

implementation leads to a very slow simulation, it was necessary to lighten the

environment, reducing the number of obstacles. It was concluded that this correction

Page 10: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

vi

greatly improved the performance of the algorithm, the robot being able to go from the

starting point to the final one without hitting against objects.

Keywords

KUKA youBot, robotics, BMT, RoboCup@Work, manipulation, kinematics, A*, V-REP

Page 11: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

vii

Índice

AGRADECIMENTOS ..................................................................................................................................... I

RESUMO ....................................................................................................................................................... III

ABSTRACT ..................................................................................................................................................... V

ÍNDICE ........................................................................................................................................................ VII

ÍNDICE DE FIGURAS ................................................................................................................................. IX

ÍNDICE DE TABELAS ................................................................................................................................ XI

ACRÓNIMOS ............................................................................................................................................. XIII

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

1.1. CONTEXTUALIZAÇÃO ....................................................................................................................... 1

1.2. OBJECTIVOS ...................................................................................................................................... 2

1.3. CALENDARIZAÇÃO ........................................................................................................................... 2

1.4. ORGANIZAÇÃO DO RELATÓRIO ......................................................................................................... 3

2. ESTADO DA ARTE ............................................................................................................................... 5

2.1. ROBÓTICA......................................................................................................................................... 5

2.2. CONCEITOS BÁSICOS DOS ROBÔS MANIPULADORES .......................................................................... 8

2.3. ROBÓTICA MÓVEL .......................................................................................................................... 14

2.4. PLANEAMENTO DE TRAJECTÓRIAS .................................................................................................. 17

2.5. ALGORITMOS DE PESQUISA ............................................................................................................. 20

2.6. COMPETIÇÕES DE ROBÓTICA ........................................................................................................... 21

2.7. SIMULADORES ................................................................................................................................ 27

3. IMPLEMENTAÇÃO DO PROJECTO .............................................................................................. 31

3.1. SIMULADOR .................................................................................................................................... 31

3.2. DIAGRAMA DE BLOCOS DO SISTEMA ............................................................................................... 34

3.3. PLATAFORMA MÓVEL..................................................................................................................... 35

3.4. ALGORITMO DE PLANEAMENTO DE TRAJECTÓRIA ........................................................................... 41

3.5. BRAÇO ............................................................................................................................................ 44

4. TESTES EFECTUADOS E RESULTADOS OBTIDOS .................................................................. 47

4.1. SIMULADOR .................................................................................................................................... 47

4.2. TRAJECTÓRIA ................................................................................................................................. 48

Page 12: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

viii

4.3. MANIPULAÇÃO DO OBJECTO ............................................................................................................ 51

5. CONCLUSÕES ..................................................................................................................................... 55

5.1. IDEIAS FUTURAS.............................................................................................................................. 57

5.2. CONCLUSÃO PESSOAL ..................................................................................................................... 57

REFERÊNCIAS DOCUMENTAIS .............................................................................................................. 59

ANEXO A. CD COM A SIMULAÇÃO ....................................................................................................... 61

Page 13: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

ix

Índice de Figuras

Figura 1 Primeiro robô industrial - Unimate ...................................................................................... 7

Figura 2 Robô industrial com punho a vácuo..................................................................................... 8

Figura 3 Robôs de soldadura numa linha de montagem automóvel ................................................... 8

Figura 4 Relação entre braço humano e robótico ............................................................................... 9

Figura 5 Braço robótico e seus elementos .......................................................................................... 9

Figura 6 Tipos de juntas ................................................................................................................... 10

Figura 7 Volume de trabalho do KUKA youBot ............................................................................. 11

Figura 8 a)Garra do manipulador youBot; b) Manipulador com ferramenta na sua extremidade ... 11

Figura 9 Relação entre a cinemática directa e inversa ..................................................................... 12

Figura 10 Duas possíveis soluções da cinemática inversa para o mesmo braço .............................. 13

Figura 11 Manipulador com 2 graus de liberdade ............................................................................ 13

Figura 12 Clean Bot da Eventronic, limpa tubulações. .................................................................... 14

Figura 13 Roda Sueca ...................................................................................................................... 16

Figura 14 Plataforma omnidireccional do KUKA youBot ............................................................... 17

Figura 15 Método Road Map ........................................................................................................... 18

Figura 16 Método dos Visibility Graphs .......................................................................................... 18

Figura 17 Diagrama de Voronoi ....................................................................................................... 19

Figura 18 Árvore em crescimento do algoritmo RRT ...................................................................... 19

Figura 19 Exemplo de um potencial ................................................................................................ 20

Figura 20 Robôs a jogarem futebol .................................................................................................. 23

Figura 21 Robô utilizado na prova de busca e salvamento .............................................................. 23

Figura 22 Robô a manusear um utensilio doméstico ....................................................................... 24

Figura 23 Liga júnior ....................................................................................................................... 24

Figura 24 Exemplo de arena do Robocup@Work ........................................................................... 25

Figura 25 Objectos de manipulação ................................................................................................. 26

Figura 26 Interface com o utilizador do simulador V-REP[] ........................................................... 32

Figura 27 Child script associado ao youBot .................................................................................... 32

Figura 28 Dummy ............................................................................................................................ 33

Figura 29 Diagrama de blocos do sistema ....................................................................................... 34

Figura 30 Dimensões da plataforma e das rodas .............................................................................. 35

Page 14: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

x

Figura 31 KUKA youBot ................................................................................................................. 36

Figura 32 Parâmetros da roda sueca [6] ........................................................................................... 36

Figura 33 Robô móvel alinhado com o referencial global {Xi,Yi} ................................................... 37

Figura 34 Alguns movimentos de uma plataforma omnidireccional ............................................... 38

Figura 35 Referencial do robô .......................................................................................................... 40

Figura 36 Fluxograma do algoritmo de planeamento de trajectória ................................................. 42

Figura 37 Braço manipulador do KUKA youBot............................................................................. 44

Figura 38 Dimensões e limites das juntas do braço ......................................................................... 45

Figura 39 Esfera representativa do centro da garra .......................................................................... 46

Figura 40 Exemplo de simulação em t = 0 seg ................................................................................. 48

Figura 41 Posição da plataforma na simulação em t = 5.05 seg ....................................................... 48

Figura 42 Robô na posição inicial (xi = -1, yi = -2) .......................................................................... 50

Figura 43 Robô a desviar-se dos obstáculos..................................................................................... 50

Figura 44 Robô passa pelo meio dos dois obstáculos ...................................................................... 50

Figura 45 Robô posicionado no destino (xf = +0.6, yf = +1.02) ........................................................ 51

Figura 46 Posição do objecto em relação à garra ............................................................................. 52

Figura 47 Robô agarra o objecto ...................................................................................................... 53

Figura 48 Transporte do objecto ...................................................................................................... 53

Figura 49 Rotação do objecto ........................................................................................................... 53

Page 15: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

xi

Índice de Tabelas

Tabela 1 Calendarização do projecto ........................................... Erro! Marcador não definido.

Page 16: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

xii

Tabela 1 Calendarização do projecto

Page 17: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

xiii

Acrónimos

AI

API

BMT

CCD

CPU

DEE

DOF

ISEP

LEEC

MRDS

ODE

PC

PESTA

PUC-Rio

RFID

RoCKIn

ROS

RRT

Artificial Intelligence

Application Programming Interface

Basic Manipulation Test

Charge-Coupled Device

Central Processing Unit

Departamento de Engenharia Electrotécnica

Degrees Of Freedom

Instituto Superior Engenharia do Porto

Licenciatura Engenharia Electrotécnica de Computadores

Mineral Resources Data System

Open Dynamics Engine

Personal Computer

Projecto Estágio

Pontifícia Universidade Católica do Rio de Janeiro

Radio-Frequency IDentification

Robot Competitions Kick Innovation in Cognitive Systems and Robotics

Robot Operating System

Rapidly Random Tree

Page 18: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

xiv

USB

V-REP

Universal Serial Bus

Virtual Experimentation Platform

Page 19: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

xv

Page 20: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

xvi

Page 21: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

1

1. INTRODUÇÃO

Neste capítulo efectua-se uma introdução ao trabalho realizado na unidade curricular de

Projecto/Estágio (PESTA) do 3º ano da Licenciatura em Engenharia Electrotécnica e de

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

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

os objectivos 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

Com o passar dos anos é notório o crescimento das competições de robótica a nível

mundial. Este crescimento fez com que se tornassem cada vez mais exigentes e mais

competitivas entre os participantes. Por isso, este trabalho surgiu da ideia da equipa de

robótica do ISEP vir a participar em mais uma competição de robótica, a RoboCup@Work.

No entanto ainda não existem as verbas necessárias para a aquisição do robô mais utilizado

pelas equipas nesta competição, o KUKA youBot. Por este motivo, surgiu a ideia de se

testar e simular o comportamento deste robô numa das provas dessa competição com o

intuito de quando existirem as verbas necessárias para a aquisição do youBot já se possuir

uma análise comportamental da plataforma e uma previsão do seu desempenho nas provas

existentes na competição.

Page 22: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

2

1.2. OBJECTIVOS

O objectivo deste projecto passa por simular o comportamento de uma plataforma youBot

(plataforma utilizada por todas as equipas participantes na competição RoboCup@Work)

num teste de manipulação de objectos (BMT), recorrendo para este efeito ao simulador V-

REP. Com esta simulação pretende-se testar e avaliar o desempenho desta plataforma na

manipulação de objectos (agarrar, transportar, girar). A realização deste objectivo implica

também que o robô se mova de um ponto inicial até um ponto final onde irá fazer a

manipulação; para isso foi implementado um algoritmo de planeamento de trajectória. A

manipulação da plataforma e o movimento do manipulador implicou um estudo das

respectivas cinemáticas, tanto para o manipulador como para o movimento da base.

1.3. CALENDARIZAÇÃO

Segue-se na Tabela 1 a calendarização que foi prevista para este trabalho, nestes últimos 3

meses e meio foi feio um esforço para se conseguir cumprir ao máximo esta

calendarização, tendo sido cumprida.

Tabela 1 Calendarização do projecto

Actividade Novembro Dezembro Janeiro Fevereiro

Planificação do projecto

Estudo do simulador

Estudo da plataforma e cinemáticas

Implementação da cinemática no

simulador

Estudo do planeamento da

trajectória

Implementação da trajectória no

simulador

Estudo da manipulação do objecto

Participação no RoCKIn Camp

Implementação da manipulação do

objecto no simulado

Elaboração do relatório

Page 23: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

3

1.4. ORGANIZAÇÃO DO RELATÓRIO

Este documento encontra-se organizado em cinco capítulos e um anexo.

No Capítulo 1 é feita uma introdução ao trabalho, referindo-se brevemente a sua

contextualização, os objectivos, a calendarização que foi definida para a sua realização e a

organização de todo documento.

No Capitulo 2 é abordado o estado da arte, são analisados e desenvolvidos teoricamente

todos os métodos escolhidos para o trabalho, comparando-os com outros métodos passíveis

de escolha.

O Capítulo 3 descreve a implementação de todo o trabalho no simulador, utilizando e

aprofundando as escolhas feitas no capítulo anterior. Seguidamente, o Capítulo 4

demonstra todos os testes realizados, os erros ocorridos durante as simulações e as

correcções dos mesmos.

Por último, o Capítulo 5 é a conclusão, onde é feita uma avaliação ao trabalho,

perspectivas de melhoramentos possíveis ao trabalho e uma conclusão pessoal da

importância da realização deste projecto.

Page 24: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

4

Page 25: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

5

2. ESTADO DA ARTE

Ao longo deste capítulo são abordados os conceitos teóricos para a elaboração do trabalho

em questão. Começa-se por introduzir temas como a robótica e a robótica industrial, sendo

feita a análise do que é um robô manipulador, seguidamente será introduzida a robótica

móvel e todos os seus conceitos mais importantes, será feita a comparação de diferentes

métodos de planeamento de trajectórias e métodos de pesquisa e por último dos

simuladores de robótica existentes.

2.1. ROBÓTICA

O termo robótica refere-se ao estudo e à utilização de robôs, tendo a robótica como

principal objectivo a automatização de tarefas que podem ser executadas pelo homem. O

termo robótica foi popularizado pelo escritor de ficção científica Isaac Asimov, na sua obra

de ficção "I, Robot" (Eu, Robô), de 1950 [1]. Neste mesmo livro, Asimov enunciou leis

que, segundo ele, regeriam os robôs no futuro: estas são as chamadas Três Leis da

Robótica. Estas leis permitem controlar e estabelecer limites comportamentais dos robôs,

pois segundo o próprio Asimov, era possível a coexistência de robôs e humanos,

impedindo assim que os robôs se revoltem contra a humanidade ou que a tentem controlar;

estas leis são as seguintes:

Page 26: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

6

1. Um robô não pode magoar um ser humano ou deixar que algum ser humano se

magoe.

2. Um robô tem de obedecer a ordens dadas por um ser humano, excepto quando estas

ordens entram em conflito com a primeira Lei.

3. Um robô tem de proteger a sua própria existência desde que não entre em conflito

com a primeira e segunda Lei.

Mais tarde foi introduzida a Lei zero: um robô não pode fazer mal à humanidade e nem,

por inacção, permitir que ela sofra algum mal.

A palavra robô deriva da língua Checa (da palavra Robota) que significa “trabalhador

forçado” ou “escravo/servo”. Foi pela primeira vez utilizada em 1921 por Karel Capek, um

escritor Checo, que descreve os robôs como máquinas que se assemelham a pessoas mas

que trabalham duas vezes mais e não apresentam sentimentos humanos.

Pode-se dizer então que um robô é uma máquina que é capaz de acções independentes,

realizar determinadas tarefas, sem ser continuamente supervisionado por um operador

humano.

2.1.1. ROBÓTICA INDUSTRIAL

No século XVIII desenvolveram-se os primeiros teares mecânicos para a indústria têxtil e

com o progresso tecnológico alastrou a aplicação da robótica em diferentes áreas

industriais [2]. No entanto os robôs, conforme conhecemos nos dias de hoje, surgiram na

década de 60 resultado dos avanços conquistados na área da electrónica e computação. O

primeiro robô industrial foi o Unimate (Figura 1), desenvolvido por George Devol e Joe

Engleberger para a General Motors em 1961. Realizava tarefas perigosas para os

operadores como remoção de peças da fundição e soldadura de peças em carroçarias.

Page 27: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

7

Figura 1 Primeiro robô industrial - Unimate

A indústria tem uma necessidade cada vez maior de aumentar a sua produtividade e ao

mesmo tempo, de fornecer produtos com uma qualidade uniforme. Isto tem levado os

industriais a virarem-se para a automação baseada em computador. Actualmente, a maioria

das tarefas automatizadas de fabrico são levadas a cabo por máquinas dedicadas que são

projectadas para executar apenas um conjunto específico de funções no processo

produtivo. A inflexibilidade e geralmente o alto custo destas máquinas, tem conduzido a

um interesse crescente na utilização de robôs capazes de executar uma grande variedade de

operações, proporcionando uma maior flexibilidade ao ambiente produtivo, a custos mais

baixos. Geralmente os robôs industriais assemelham-se a um braço humano comandado

por computador. Este braço mecânico é aproveitado para manipular diversos tipos de

ferramentas segundo trajectórias diversas e assim executar operações de fabrico. Em vez

das referidas ferramentas, podem-se adaptar aos robôs industriais uma ou mais “mãos”

rudimentares, designadas por garras, para permitir a movimentação e até a montagem de

peças. Os robôs industriais podem executar um grande número de operações num ambiente

fabril dos dias de hoje de uma forma muitas vezes mais rápida, mais precisa e mais

uniforme do que os seres humanos.

As aplicações de robôs industriais podem dividir-se basicamente em dois grandes grupos:

Manipulação de materiais e montagem – neste grupo o robô tem acoplado ao seu

punho, uma garra mecânica, um dispositivo com ventosas actuadas por vácuo

(Figura 2), ou um dispositivo especialmente concebido para pegar e manipular

determinadas peças.

Page 28: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

8

Figura 2 Robô industrial com punho a vácuo

Operações de processo – neste grupo o robô manipula uma ferramenta para efectuar

operações de um dado processo de fabrico, como por exemplo soldadura numa

linha de montagem automóvel (Figura 3).

Figura 3 Robôs de soldadura numa linha de montagem automóvel

2.2. CONCEITOS BÁSICOS DOS ROBÔS MANIPULADORES

Os elementos básicos constituintes de um robô manipulador são o seu braço mecânico,

juntas e elos, ponta ou garra (End-effetor), mas também existem conceitos como graus de

liberdade do braço, volume de trabalho, cinemática. Estes elementos e conceitos são

brevemente descritos nas subsecções seguintes.

Page 29: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

9

2.2.1. BRAÇO MECÂNICO

Um braço mecânico ou robótico é um braço que normalmente se assemelha a um braço

humano; daí surge o facto de se associar a alguns elementos do braço robótico nomes

como pulso, cotovelo, antebraço, etc. (Figura 4).

Figura 4 Relação entre braço humano e robótico

Visualizando apenas o braço robótico (Figura 5), vê-se que ele consiste numa série de

corpos rígidos, denominados elos (links), interligados por juntas (joints), e que permitem

um movimento relativo entre esses elos num certo raio de acção, movimentando objectos

entre dois pontos após a recepção de ordens de um controlador e informações de sensores.

Figura 5 Braço robótico e seus elementos

2.2.2. JUNTAS

As juntas determinam os possíveis movimentos do manipulador e juntamente com as

características físicas dos elos (formas e tamanhos), determinam a anatomia do braço. As

juntas podem ser principalmente de três tipos:

Page 30: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

10

Rotacionais (R) – onde o movimento relativo dos elos é rotacional.

Lineares ou Prismáticas (L ou P) – onde o movimento relativo dos elos é

linear ou prismático.

Esférica (S) – este tipo é basicamente a combinação de três juntas

rotacionais com o mesmo ponto de rotação.

A Figura 6 ilustra estes três tipos de juntas.

Figura 6 Tipos de juntas

2.2.3. GRAUS DE LIBERDADE

Os graus de liberdade (Degrees of Freedom-DOF) determinam os movimentos do braço

robótico no espaço bidimensional ou tridimensional. Cada junta define um ou mais graus

de liberdade e, assim sendo, o número de graus de liberdade do robô está relacionado com

o número de juntas.

Quando o movimento ocorre num único eixo, diz-se que a junta tem um grau de liberdade;

caso o movimento se dê em mais de um eixo, a junta tem dois, ou mais, graus de liberdade.

Por norma, isto significa que quanto maior for a quantidade de graus de liberdade, mais

complicados são os cálculos da cinemática, dinâmica e, consequentemente, o controlo do

manipulador.

2.2.4. VOLUME DE TRABALHO

O volume ou espaço de trabalho (workspace) define a região do espaço dentro da qual o

manipulador pode posicionar o órgão terminal (garra ou ferramenta), conforme se pode

observar na Figura 7. Esta região é dada pela configuração física do braço robótico, pelos

Page 31: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

11

limites dos movimentos das juntas e pelo tamanho dos componentes do corpo, braço e

pulso.

Figura 7 Volume de trabalho do KUKA youBot

2.2.5. ACTUADOR FINAL

Normalmente o actuador final encontra-se na extremidade do braço manipulador. As garras

(gripper) são elementos específicos que permitem agarrar e manipular objectos de

diferentes tamanhos, formas e materiais, dependendo da aplicação pretendida.

Alternativamente os robôs podem ser equipados com uma ferramenta (tool), como se pode

verificar na Figura 8.

Figura 8 a)Garra do manipulador youBot; b) Manipulador com ferramenta na sua extremidade

Page 32: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

12

2.2.6. CINEMÁTICA DOS MANIPULADORES

A cinemática de um manipulador é o estudo dos seus movimentos, sem a preocupação das

causas que os originam.

A posição do órgão terminal de um manipulador depende, a cada instante, dos valores dos

deslocamentos angulares das juntas rotativas e deslocamentos lineares das juntas

prismáticas. Existem dois tipos possíveis de representar a cinemática de um manipulador: a

cinemática directa e a cinemática inversa.

A cinemática directa consiste em determinar a posição e orientação da garra ou actuador

final conhecendo a posição de cada junta. A forma mais popular de cálculo da cinemática

directa é pela aplicação da convenção de Denavit-Hartenberg [3][4], mas também pode ser

calculada recorrendo a resoluções trigonométricas. A cinemática inversa, como é de prever

permite o cálculo dos valores das juntas, através do conhecimento da posição e orientação

da garra; a Figura 9 representa a relação destas duas cinemáticas.

Figura 9 Relação entre a cinemática directa e inversa

No entanto a resolução da cinemática inversa não é tão linear como a da cinemática

directa, sendo geralmente bastante mais complexa; esta complexidade aumenta com o

aumento do número de DOF do manipulador. Isto deve-se ao facto de que a resolução da

cinemática inversa leva geralmente a mais do que uma solução para o mesmo conjunto de

coordenadas do atuador final. No caso de robôs com dois dof rotacionais, estas soluções

são braço, normalmente designadas por upper elbow e lower elbow (Figura 10).

Cinemática

Directa

Posição do

actuador

final

Ângulos

das

Juntas

Cinemática

Inversa

Page 33: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

13

Figura 10 Duas possíveis soluções da cinemática inversa para o mesmo braço

2.2.7. EQUAÇÕES DA CINEMÁTICA

Analisando um manipulador com dois DOF, conforme a Figura 11, recorrendo-se à

resolução trigonométrica, as equações da cinemática directa são dadas por:

(1)

Figura 11 Manipulador com 2 graus de liberdade

As equações da cinemática inversa para o mesmo manipulador são dadas por:

(2)

Page 34: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

14

2.3. ROBÓTICA MÓVEL

De todos os tipos de robôs existentes, o trabalho desenvolvido neste projecto foca-se

essencialmente nos robôs móveis. Os robôs móveis são tipicamente dispositivos de

transporte automático, ou seja, são plataformas mecânicas dotadas de um sistema de

locomoção capazes de navegar através de um determinado ambiente de trabalho, dotados

de certo nível de autonomia para sua locomoção, portando cargas. As suas aplicações

podem ser muito variadas e estão sempre relacionadas com tarefas que normalmente são

arriscadas ou nocivas para a saúde humana (Figura 12), em áreas como a agricultura, no

transporte de cargas perigosas ou em tarefas de exploração solitárias ou cooperativas junto

a outros veículos não tripulados. Exemplos clássicos são a recolha e transporte de

materiais, as tarefas de manutenção de reactores nucleares, a manipulação de materiais

explosivos, a exploração subterrânea etc.

Figura 12 Clean Bot da Eventronic, limpa tubulações.

Quando se fala em autonomia, esta não se relaciona apenas com questões energéticas, mas

também se refere à capacidade de perceber, modelar, planear e actuar para alcançar

determinados objectivos, sem a intervenção (ou com uma intervenção muito pequena) do

operador humano, já que o robô se pode locomover em ambientes estruturados ou não

estruturados, total ou parcialmente conhecidos. O papel do robô em determinada tarefa,

deve ser desempenhado pelo próprio sistema de controlo do veículo, que o deve suprir com

a inteligência necessária para fazê-lo mover-se correctamente [5].

Page 35: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

15

2.3.1. TIPOS DE LOCOMOÇÃO EM ROBÔS MÓVEIS

O sistema de locomoção é uma das principais características distintivas de um robô móvel,

estando condicionado ao seu ambiente de trabalho. De acordo com o ambiente, o sistema

de locomoção do robô pode ser de vários tipos:

Com patas;

Com rodas;

Com lagartas.

Como o mais usual e o mais adequado a este trabalho são os robôs móveis com rodas, no

ponto seguinte vai-se apenas fazer uma análise dos tipos de rodas existentes.

2.3.2. TIPOS DE RODAS

As rodas, devido à sua elevada eficiência e fácil implementação, são o mecanismo de

locomoção mais utilizado tanto na robótica móvel como nos veículos em geral.

Por regra geral assume-se que, durante o movimento, o plano da roda se mantém vertical e

que as rodas giram ao redor dos seus eixos (horizontais). A sua orientação em relação à

estrutura pode ser fixa ou variável. Existem basicamente duas classes de rodas: as

convencionais e a sueca (swedish wheel). Em ambas, supõe-se que o contacto entre a roda

e o terreno se reduz a um único ponto do plano. Para uma roda convencional, supõe-se que

o contacto entre a roda e o terreno satisfaz a condição de rotação pura, sem deslizamento.

Isso significa que a velocidade do ponto de contacto é igual a zero (tanto para a

componente paralela, quanto para a perpendicular ao plano da roda).

Dentro das duas classes anteriores, as rodas podem ser de quatro tipos:

Roda fixa - o eixo da roda é fixado na estrutura do robô. Em geral este tipo está

associado ao sistema de tração do robô.

Roda orientável centralizada - é aquela em que o movimento do plano da roda com

respeito à estrutura é uma rotação ao redor de um eixo vertical que passa através do

centro da roda. Em geral é usada como roda de direcção ou de tração-direcção.

Page 36: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

16

Roda orientável não-centralizada (roda louca) - também é conhecida como roda

castor (castor wheel). É uma roda orientável com relação à estrutura tal que a

rotação do plano da roda ocorre ao redor de um eixo vertical que não passa através

do centro da roda. A sua principal função é dar estabilidade à estrutura mecânica do

robô como roda de direcção.

Roda sueca - supõe-se igual a zero apenas uma componente de velocidade do ponto

de contacto da roda com o terreno ao longo do movimento. Os rolamentos

montados na sua superfície permitem que a roda se desloque numa direcção

perpendicular ao seu plano.

A roda sueca é a roda utilizada no robô youBot (Figura 13) adoptado neste trabalho; assim

sendo, deixa-se de parte as restantes e analisa-se apenas esta no ponto seguinte.

2.3.3. RODA SUECA

Este tipo de rodas não tem eixo vertical de rotação, mas apesar disso são capazes de se

mover de forma omnidireccional tal como as rodas castor; isto é possível adicionando um

grau de liberdade à roda fixa. As rodas suecas são rodas fixas, mas a diferença está no

facto de possuírem rolamentos ao longo do perímetro da roda. Estes rolamentos

tipicamente têm um eixo de rotação de 45° em relação ao plano da roda e a 45° do eixo

principal da roda. A disposição destes rolamentos permite que a roda se movimente em

qualquer direcção ou seja, quando montadas numa plataforma permite que esta tenha um

movimento omnidireccional [6].

Figura 13 Roda Sueca

A vantagem dos robôs omnidireccionais deve-se ao facto de estes robôs terem máxima

manobrabilidade no plano, o que significa que se podem mover em qualquer direcção sem

Page 37: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

17

terem necessidade de se reorientar. A base de uma plataforma omnidireccional KUKA

youBot pode ser vista na Figura 14.

Figura 14 Plataforma omnidireccional do KUKA youBot

2.4. PLANEAMENTO DE TRAJECTÓRIAS

Trajectória é o nome dado ao percurso realizado por um determinado corpo no espaço,

com base num sistema de coordenadas pré-definido. De nada serve possuir-se um robô

móvel se este não “sabe” qual a trajectória que terá de efectuar para desempenhar a sua

função. Seguidamente explicam-se alguns dos métodos mais conhecidos para o

planeamento de trajectórias utlizados na robótica móvel; para uma abordagem mais

alargada destes e outros métodos de planeamento de trajectórias pode ser consultada a

referência [6].

2.4.1. ROAD MAP

O método road map (Figura 15) é uma rede de duas dimensões composta por linhas rectas

que ligam um ponto inicial e final sem intersectarem os obstáculos. Este algoritmo

determina um conjunto de pontos que ao serem conectados por linhas rectas produzem um

conjunto de polígonos que envolvem cada obstáculo.

Page 38: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

18

Figura 15 Método Road Map

2.4.2. VISIBILITY GRAPHS

Os visibility graphs (Figura 16) são uma rede de grafos que formam caminhos entre os

vértices dos polígonos, tendo sido um dos primeiros métodos de planeamento de

trajectórias utilizado. No grafo G = (V,E), os vértices V são os vértices dos obstáculos e E

são as linhas que ligam cada vértice aos vértices visíveis. Este método só pode ser aplicado

em ambientes com obstáculos poligonais. O custo computacional deste método cresce à

medida que o número de obstáculos vai aumentando.

Figura 16 Método dos Visibility Graphs

2.4.3. VORONOI DIAGRAMS

Os diagramas de Voronoi são uma rede de grafos que formam polígonos em torno dos

obstáculos (Figura 17). Para serem obtidos os polígonos dos diagramas de Voronoi, é

necessário construir um conjunto de linhas que liguem os centros dos obstáculos, e

posteriormente desenhar um conjunto de linhas perpendiculares às primeiras. As linhas

perpendiculares são de seguida ajustadas para respeitar o número mínimo de vértices.

Page 39: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

19

Figura 17 Diagrama de Voronoi

2.4.4. RAPIDLY EXPLORING DENSE TREES

O Rapidly Exploring Dense Trees (RRT) é um algoritmo projectado para procurar de

forma eficiente espaços convexos, altamente dimensionais através da construção aleatória

de uma árvore de preenchimento de espaço. A árvore é construída de forma incremental a

partir de amostras recolhidas aleatoriamente a partir do espaço de busca e está

inerentemente pressionada para crescer para grandes áreas ainda não analisadas do espaço.

Na Figura 18 é possível verificar que a RRT nas primeiras iterações alcança rapidamente

zonas não exploradas, no entanto a RRT é densa no limite, com probabilidade igual a um,

o que significa que chega arbitrariamente a qualquer ponto do espaço.

Figura 18 Árvore em crescimento do algoritmo RRT

2.4.5. POTENTIAL FIELD

O método Potential Field, associa um campo potencial artificial ao espaço de estados do

sistema. O ponto de destino é envolvido por um campo potencial atractivo, enquanto o

ponto inicial é envolvido por um campo potencial repulsivo. A ideia principal deste

método prende-se com a movimentação do robô como se fosse uma partícula sob a

Page 40: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

20

influência de um campo potencial artificial, que será atraído pelo ponto de destino,

enquanto vai sendo repelido pelos obstáculos (Figura 19).

Figura 19 Exemplo de um potencial

2.5. ALGORITMOS DE PESQUISA

Os algoritmos de pesquisa são utilizados para determinar o caminho mais curto entre dois

pontos sem que haja colisão com obstáculos. Ao contrário dos algoritmos de planeamento

de trajectória que, normalmente, determinam o caminho entre dois pontos, mas nem

sempre o mais curto, os algoritmos de pesquisa fazem buscas mais exaustivas,

normalmente utilizando heurísticas, conseguindo determinar sempre o caminho mais curto

entre dois pontos. Em seguida são comparados dois destes algoritmos, sendo que o A* será

o escolhido para este trabalho por razões que serão explicadas no próximo capítulo.

2.5.1. ALGORITMO DIJKSTRA’S

O algoritmo Dijkstra's, criado por Edsger Dijkstra em 1956, é um algoritmo de pesquisa

que entra em conta com a distância percorrida. O algoritmo vai explorar sempre o nó que

está mais perto do ponto inicial em cada iteração. A partir do nó inicial, o nó seguinte será

o que está a uma distância mais curta, e assim sucessivamente até encontrar o destino.

Page 41: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

21

2.5.2. ALGORITMO A*

O algoritmo de pesquisa A* (lê-se A Estrela) [7], apresentado por Hart, Nilsson e Raphael

em 1968, é dos métodos mais utilizados na robótica móvel. É uma extensão ao método

Dijkstra, sendo um algoritmo que usa heurísticas para alcançar a sua meta.

Este método avalia o nó que deve ser expandido, combinando o custo de chegar desde o nó

inicial até ao nó n (g(n)), e o custo da deslocação desse nó até ao nó de destino (h(n)).

(3)

Como g(n) é o custo da deslocação desde o nó inicial até ao nó n, e h(n) é o custo estimado

desde o nó n até ao nó de destino, é possível afirmar que f(n) é o custo estimado da melhor

solução para a deslocação até ao nó de destino, passando pelo nó n.

2.6. COMPETIÇÕES DE ROBÓTICA

Actualmente existem várias competições de robótica no mundo, sendo que as competições

de robótica visam principalmente estimular a pesquisa e o desenvolvimento na área de

robótica como um todo, servindo muitas vezes como uma forma de colocar em prática os

conhecimentos teóricos aprendidos por estudantes de áreas da engenharia e a troca de

informações entre alunos e profissionais da área. Em 2013 surgiu um novo projecto focado

na robótica e particularmente nas competições de robótica, o projecto RoCKIn.

2.6.1. PROJECTO ROCKIN

No decorrer deste trabalho tive o privilégio de fazer parte do projecto Robot Competitions

Kick Innovation in Cognitive Systems and Robotics (RoCKIn) [8], integrando uma equipa

que foi representar o ISEP no RoCKIn Camp 2014 em Roma, constituída pelo meu

orientador Manuel F. Silva e por outro colega de curso, com um trabalho semelhante ao

meu na área da robótica, o Rui Alen.

O RoCKIn é um projecto financiado pela União Europeia que será executado ao longo de

três anos (tendo já sido iniciado em 2013), consistindo de competições de robôs, palestras,

eventos educativos e oficinas de transferência de tecnologia. O objectivo é incentivar a

construção de robôs mais inteligentes e confiáveis. Com base na RoboCup@Work e

Page 42: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

22

RoboCup@Home, neste projecto serão abordados dois desafios diferentes, o

RoCKIn@Home e o RoCKIn@Work; tanto um como o outro são desafios de competições

utilizadas na RoboCup, sendo que a vertente @Work é mais recente.

O RoCKIn@Home concentra-se em serviços domésticos para robôs: robôs que

melhoraram habilidades cognitivas e são capazes de executar tarefas socialmente úteis, tais

como o apoio à deficiência e aos idosos. Nos estágios iniciais da competição de robôs

individuais serão superadas tarefas individuais básicas, como navegação através dos

quartos de uma casa, manipulação de objectos ou reconhecer rostos, que, depois de

coordenadas, servirão para lidar com tarefas de manutenção da casa ao mesmo tempo,

alguns deles em interacção natural com os seres humanos. Este é o futuro dos cuidados e

através desta competição, o RoCKIn espera contribuir para a melhoria de uma qualidade de

vida para os povos da Europa.

Por outro lado o RoCKIn@Work é centrado em aplicações para robôs inovadores na

indústria: robôs que são mais capazes de trabalhar de forma interactiva com os seres

humanos. Os cenários de teste vão envolver (e combinam) aspectos de manipulação,

montagem, logística e cooperação por vários robôs em rede com sensores estáticos e outros

dispositivos. Neste cenário, o RoCKIn acredita que a promoção destes desenvolvimentos é

essencial para garantir a continuidade da competitividade comercial da indústria na

Europa.

2.6.2. ROBOCUP

A RoboCup [9] é uma competição de robótica iniciada em 1997 com o objectivo de

promover a investigação nas áreas da robótica e da inteligência artificial (Artificial

Inteligence - AI), oferecendo um desafio formidável e publicamente atraente. Uma das

maneiras mais eficazes para promover a ciência e investigação em engenharia é definir

uma meta desafiadora de longo prazo. Quando a realização de tal meta tem impacto social

significativo, ele é chamado um projecto de grande desafio. Construir um robô que joga

futebol não vai por si só, gerar impacto social e económico significativo, mas a realização

irá certamente ser considerado uma grande conquista para o campo. Chama-se a este tipo

de projecto, um projecto de referência, e o RoboCup é um projecto de referência, pois o

facto de se criar um robô que joga futebol abre novos horizontes para um futuro mais

evoluído, e leva a que se criem novas metas e desafios mais atraentes para o mundo da

robótica.

Page 43: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

23

A competição tem actualmente quatro grandes domínios da robótica cada um com um

número de ligas e sub-ligas:

RoboCup Soccer - nesta competição, os robôs completamente autónomos jogam

futebol entre eles (Figura 20).

Figura 20 Robôs a jogarem futebol

RoboCup Rescue - Na liga rescue pretende-se desenvolver robôs capazes de efectuar

missões de busca e salvamento (Figura 21).

Figura 21 Robô utilizado na prova de busca e salvamento

RoboCup@Home – Cada vez com mais adesão, esta liga pretende desenvolver robôs

para assistirem os humanos nas suas tarefas domésticas (Figura 22).

Page 44: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

24

Figura 22 Robô a manusear um utensilio doméstico

RoboCupJunior – Esta liga é uma iniciativa educativa orientada a projectos que

patrocinam eventos de robótica locais, regionais e internacionais para jovens estudantes

(Figura 23). É orientada para alunos de escolas primárias e secundárias, e até mesmo

para alunos graduados que não possuam os recursos para se envolverem nas ligas de

“alto nível”.

Figura 23 Liga júnior

Recentemente surgiu uma nova liga que tem o nome RoboCup@Work e é uma nova linha

no RoboCup que tem como alvo o uso de robôs em cenários relacionados com a indústria.

Esta nova prova destina-se a promover a investigação e desenvolvimento que permita o

uso de robôs móveis, equipados com manipuladores para aplicações industriais, onde os

robôs possam cooperar com trabalhadores humanos para tarefas complexas que vão desde

o fabrico, automação, movimentação e até logística geral.

Page 45: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

25

2.6.3. ROBOCUP@WORK

A liga RoboCup@Work aborda novos desafios, e procura resolver muitos dos desafios

científicos padrão para robótica. A lista seguinte menciona apenas alguns deles:

Percepção em ambientes estáticos e dinâmicos sob diferentes condições ambientais;

Controlo de movimento de manipuladores móveis;

Interacção homem-robô e robô-robô;

Concepção, construção e operação de robôs robustos a um custo acessível;

Simulação, avaliação e aferição de sistemas de robôs avançados.

2.6.4. ARENA DE COMPETIÇÃO

Quando se participa nestas ligas é necessário ter, em primeiro lugar, a definição das regras

dessa competição. Em particular, segundo as regras [10], a arena de competição (Figura

24) da RoboCup@Work é uma área rectangular com não menos de 2 m × 4 m e não mais

de 4 m × 6 m, cercada por muros. A altura das paredes é não inferior a 20 cm e não mais

do que 40 cm. Uma ou mais portas podem ser previstas, onde os robôs podem entrar ou

sair da arena.

Figura 24 Exemplo de arena do Robocup@Work

As arenas podem conter uma ou mais áreas de serviço, que têm efeitos específicos para um

teste particular. Os exemplos incluem as áreas de carga e descarga, correias

transportadoras, áreas de armazenamento, etc.

Page 46: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

26

2.6.5. OBJECTOS DE MANIPULAÇÃO

Na Figura 25 podem-se observar três objectos de manipulação utlizados nesta liga e

escolhidos de dentro de uma grande variedade de objectos relevantes em aplicações

industriais, como ferramentas e materiais possivelmente operacionais necessárias para os

processos de fabrico. A intenção é começar com um simples conjunto de objectos de

diferentes formas e cores e alargar o espectro todos os anos, em pelo menos um aspecto. O

conjunto inicial de objectos inclui cubos, hexágonos, cilindros, esferas (bolas) e anéis. O

peso de cada objecto não pode ser superior a 250 g. Cada objecto tem de ser formado de tal

modo que possa ser agarrado com uma pinça de abertura paralela com um intervalo de

abertura não mais largo do que 7 cm.

Figura 25 Objectos de manipulação

2.6.6. ROBÔS UTILIZADOS

Os robôs utilizados nesta liga precisam cumprir com certas restrições de tamanho. Um

robô como o usado na competição, incluindo todas as partes ligadas a ele, deve ser capaz

de mover-se por si só numa configuração de modo a se encaixar num paralelepípedo de

dimensões de 80 cm × 50 cm × 80 cm (comprimento × largura × altura). Os organizadores

podem mencionar outros constrangimentos, como limites de peso.

As seguintes suposições são feitas sobre o tipo de robôs utilizados na competição:

Pelo menos um dos robôs usados por uma equipa é móvel e move-se sobre rodas.

Nenhumas considerações específicas são feitas sobre o projecto cinemático, mas os

Page 47: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

27

robôs móveis devem ser capazes de seguir em frente, em superfícies firmes e

basicamente planas.

Os robôs têm pelo menos um manipulador e devem ser capazes de agarrar objectos,

que são manipuláveis por uma pinça paralela com uma largura de mandíbula de

pelo menos 5 cm e que não pesem mais de 250 g.

Os robôs utilizam sensores para obter informações sobre a sua localização no

ambiente e os objectos relevantes para a tarefa. Os principais tipos de sensores que

podem ser utilizados pelos robôs incluem:

o Laser Rangefinders (das marcas Hokuyo [11] ou Sick [12]);

o Câmaras (charge-coupled devices - CCD) a cores (cf. qualquer tipo de

câmara Universal Serial Bus (USB));

o Câmaras 3D (como a câmara Kinect[13]).

Os robôs podem resolver as tarefas de forma segura e robusta usando (todos ou um

subconjunto de) estes sensores. Competições futuras podem prever a utilização de sensores

de rádio frequência (Radio-frequency identification - RFID) na concepção de cenários.

2.7. SIMULADORES

Hoje em dia existem dezenas de programas de simulação de robótica. Estes programas

ajudam não só quem pretende iniciar-se na robótica ou nas competições mas também para

quem pretende aperfeiçoar os seus robôs. Estes simuladores são cada vez mais completos,

com diversos recursos, e a maior parte já possui bibliotecas com a maioria dos robôs mais

utilizados no mercado e em competições, evitando assim testes nos robôs reais,

economizando tempo e dinheiro. De seguida são descritos alguns dos mais conhecidos

simuladores existentes, evidenciando as suas principais características.

Gazebo [14] - é um simulador multi-robô para ambientes tridimensionais interiores

e exteriores. Isto possibilita simulações com um bom grau de fidelidade comparado

com outros simuladores. No entanto, este factor gera maior complexidade na

simulação, o que é computacionalmente mais caro e impossibilita a simulação com

um número tão grande de robôs, a não ser que eles sejam extremamente simples e

Page 48: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

28

sem muitas funcionalidades. O Gazebo foi um dos simuladores com que tive

oportunidade de trabalhar na minha participação no RoCKInCamp 2014, e permite

programação em Robot Operating System (ROS) o que é uma enorme vantagem,

pois é o chamado código aberto, mas como já foi referido é um simulador bastante

pesado para máquinas ditas, normais.

Webots [15] - O Webots, assim como o Gazebo, é um simulador robótico

profissional usado largamente para propósitos comerciais e educacionais. Os

programas para controlo de robôs que se comunicam com o Webots podem ser

escritos numa variedade de linguagens de programação, como C, C++, Java e

MATLAB. O Webots funciona nos sistemas operativos mais comuns da

actualidade incluindo o Windows, Mac OS X e Linux. A maior desvantagem do

Webots é o facto de este ser um software pago de alto custo (o preço de uma

licença educativa ronda os 260€). Ele é vendido, hoje em dia, em duas versões,

sendo uma educacional dedicada ao ensino de robótica em salas de aula e uma

versão profissional mais completa dedicada ao desenvolvimento com intuito

comercial.

Microsoft Robotics Developer Studio [16] - mais conhecido como MRDS, é um

ambiente para controlo e simulação de robôs totalmente baseado na plataforma

Windows. Inclui uma ferramenta de programação visual usada para criar e depurar

aplicações para robôs, interfaces baseadas em Windows e web, simulação em três

dimensões e acesso simples a sensores e atuadores. Estas são características em

geral comuns a todas as ferramentas de desenvolvimento de robôs existentes. O

facto de não possuir código aberto impossibilita a modificação de código, que é

muitas vezes necessário para adaptações de projecto.

V-REP [17] - é apelidado como o canivete suíço entre os simuladores de robôs;

possivelmente é um dos simuladores com mais funções, recursos e Application

Programming Interface (API) mais elaborado. A linguagem de programação

padrão é em LUA, tornando o V-REP uma aplicação extremamente versátil,

deixando a liberdade ao utilizador de combinar as funcionalidades de baixo / alto

nível para obter novas funcionalidades de alto nível.

Algumas das suas principais características são:

Page 49: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

29

o Seis Linguagens de programação (C/C++, Python, Java, Lua, Matlab e

Urbi);

o Mais de 400 diferentes funções de API;

o 100 Serviços ROS, 30 tipos de publicação ROS, 25 tipos de assinatura

ROS, extensível;

o Diversos sensores (visão, proximidade, etc);

o Três motores de física (Open Dynamics Engine - ODE, Bullet, Vortex);

o Cálculo completo de cinemática.

Este simulador, apesar de ser um dos mais completos, é também um dos mais leves

e com um ambiente gráfico bastante agradável, o que torna tanto a programação

como a visualização simples mas eficiente.

Page 50: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando
Page 51: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

31

3. IMPLEMENTAÇÃO DO

PROJECTO

Neste capítulo dão-se a conhecer as escolhas adoptadas para este projecto e o trabalho

desenvolvido para a realização do mesmo. Será feita uma análise a cada uma das escolhas,

tanto a nível teórico como analítico (naquelas em que foi necessário o uso de cálculos).

3.1. SIMULADOR

De todas as escolhas feitas para este trabalho, a escolha do simulador foi a mais directa,

pois fazia parte da proposta do projecto trabalhar com este simulador; além disso, este

simulador possui o modelo da plataforma utilizada neste trabalho, o KUKA youBot.

Trabalhando com o V-REP, tem-se logo a noção que é um óptimo simulador de robótica,

isto porque de todos os programas analisados neste trabalho, fica-se com a ideia que é o

mais completo. Para que se tenha uma pequena ideia de como funcionar com o simulador,

são apresentadas, de seguida, algumas das características mais importantes da interface

com o utilizador.

Page 52: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

32

Pode-se ver através da Figura 26 o ambiente deste simulador. Como se pode verificar trata-

se de uma interface bastante completa.

Figura 26 Interface com o utilizador do simulador V-REP[18]

A programação dos modelos é feita dentro dos chamados child scripts, que podem ser

vistos no elemento Scene hierarchy da Figura 26. Os child scripts possuem o código que

permite controlar uma determinada função dos modelos simulados. São reconhecidos pelo

seu ícone parecido com uma folha de texto (Figura 27). Para editá-los basta fazer duplo

click no ícone e depois é só preencher a janela que surge com o código que se pretende.

Figura 27 Child script associado ao youBot

Os child scripts são executados em cascata: cada um é executado (chamado ou tratado) por

um script pai ou seja, o script pai do child script é o primeiro script a ser executado - a

partir daí todos os scripts dentro dele são executados. Se um child script não tem pai, então

o script responsável por executá-lo é o script principal (main script). Em cada simulação

apenas pode existir um script principal; este não convém que seja alterado pois, por

omissão, já vem com as funções definidas para o bom funcionamento das simulações. Para

Page 53: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

33

os child scripts não existe limite de número por simulação e estes podem ser alterados, pois

é através deles que se controlam os modelos.

O V-REP já vem com centenas de funções pré-definidas [19] para o utilizador tirar um

melhor partido do seu projecto, poupando tempo e códigos demasiado extensos. Estas

funções fazem parte da API regular do simulador e são facilmente reconhecidas pelo seu

prefixo "sim" ou "_sim". Algumas destas funções foram adoptadas neste trabalho pois,

como já foi dito, são bastante úteis para não se sobrecarregar as simulações com código

excessivo, tornando-as lentas. Alguns exemplos das funções utilizadas foram:

simGetObjectPosition() – esta função foi utilizada para se saber a posição

do youBot; em caso de sucesso ela retorna as posições x, y, z, caso contrário retorna

nil (nulo).

simGetObjectHandle() – esta função atribui a uma variável o objecto com

que se está a lidar.

Uma outra funcionalidade do simulador que se revelou bastante útil são os objectos dummy

(Figura 28). Estes objectos são pontos com orientação (x, y, z), sendo normalmente

utilizados como pontos de referência. Podem ser utilizados sozinhos ou acoplados a algum

objecto.

Figura 28 Dummy

Tornaram-se bastante úteis neste trabalho pelo facto de que serviram como vários pontos

de referência. É através deles que se obtêm as coordenadas do youBot, do ponto de

chegada na trajectória, do manipulador e do objecto a manipular. Isto evita ter que se

enviar através de strings, por exemplo, as coordenadas para onde o robô terá que se

deslocar.

Todas as funções utilizadas ao longo deste trabalho, bem como o restante código da

simulação desenvolvido neste trabalho estão devidamente comentados no CD em anexo.

Page 54: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

34

3.1.1. LINGUAGEM DEPROGRAMAÇÃO UTILIZADA NO SIMULADOR

A linguagem de programação LUA [20] foi a escolhida para a simulação, sendo esta a

linguagem de programação padrão do simulador. A maior parte da documentação técnica

sobre Lua está em inglês, sendo o principal documento em português o manual de

referência [21]. A linguagem de programação LUA foi criada em 1993 no Tecgraf, um

laboratório de investigação e desenvolvimento da Pontifícia Universidade Católica do Rio

de Janeiro (PUC-Rio) no Brasil. É uma linguagem de script dinâmica, semelhante a outras

linguagens de script como Python, Ruby e Hypertext Preprocessor (PHP), destacando-se

pela sua simplicidade, portabilidade e rapidez. As funções do V-REP mencionadas

anteriormente (sufixo “sim”) são reconhecidas por esta linguagem.

3.2. DIAGRAMA DE BLOCOS DO SISTEMA

Através do diagrama de blocos da Figura 29, tem-se uma ideia de como se irá processar a

simulação, pode-se ver que o maior “trabalho” cabe ao algoritmo A*, pois recebe posições

de três elementos diferentes, resultando assim depois de processado o algoritmo numa

trajectória, tendo esta trajectória definida, resta aplicar o movimento ao robô através da

cinemática. Por último será feita a manipulação do objecto.

Posição

youBot

Algoritmo

A*

Posição

Destino

Posição

Obstáculos

Trajectória

resultante

Cinemática do

movimento Manipulação

Figura 29 Diagrama de blocos do sistema

Page 55: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

35

3.3. PLATAFORMA MÓVEL

A plataforma móvel escolhida para a realização deste trabalho foi o KUKA youBot. Esta

escolha prende-se com o facto de esta plataforma ser uma das que preenche os requisitos

impostos pelas regras da RoboCup@Work: a plataforma possui dimensões iguais a 53,1cm

× 38,0cm × 14,0cm (Figura 30) e o peso é de 20 kg sem baterias (quando possui as baterias

o peso ronda os 24 kg).

Figura 30 Dimensões da plataforma e das rodas

Onde:

A = 7,487 cm

B = 10 cm

C = 4,71 cm

D = 30,046 cm

E = 0,28 cm (máximo diâmetro do rolamento)

O KUKA youBot [22] (Figura 31) é uma plataforma móvel que foi desenvolvida

principalmente para o ensino e investigação. As quatro rodas suecas que possui conferem-

lhe um movimento omnidireccional, a sua velocidade mínima é de 0,01 m/s e a máxima de

aproximadamente 0,8 m/s, possui uma placa de Personal Computer (PC) embutida e nela

vem instalado o sistema operativo Linux. Possui um braço manipulador com 5 graus de

liberdade e o seu órgão terminal consiste numa garra com dois dedos (ver Figura 8). Por

Page 56: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

36

último, vem com um conjunto de duas baterias recarregáveis de 12 V, 5 Ah, que quando

totalmente carregadas dão para uma autonomia de aproximadamente 90 min.

Figura 31 KUKA youBot

3.3.1. RODAS

As rodas suecas já foram introduzidas na Secção 2.3, restando agora fazer a análise

matemática das mesmas para se perceber como influenciam o movimento da plataforma.

Para isso, o estudo a ser feito será o da cinemática; o facto de serem rodas não

convencionais e que permitem um movimento “diferente” nos robôs móveis, faz com que

tenham vindo a ser cada vez mais utilizadas o que leva a que actualmente já existam vários

artigos sobre este tipo de rodas para diferentes plataformas [23][24].

Figura 32 Parâmetros da roda sueca [6]

Em termos cinemáticos, uma roda sueca é descrita normalmente como uma roda fixa, com

a diferença que é adicionado um termo γ - este termo representa o ângulo entre o plano da

roda e o eixo de rotação dos rolamentos. Considerando a Figura 32 e a equação (4), β

representa o ângulo entre o plano da roda e o chassis da plataforma, φ representa a

velocidade de rotação da roda e, por último, r representa o raio da roda.

Page 57: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

37

A restrição do movimento de cada roda é dada pela equação (4):

(4)

R(θ) (definida na equação (5)) é uma matriz de rotação 3×3 da plataforma, e através desta

é possível calcular a rotação do referencial local da plataforma {Xr,Yr} em relação ao

referencial global. A Figura 33 representa um robô móvel alinhado com o referencial

global, ou seja, com um R(θ) = R(π/2).

Figura 33 Robô móvel alinhado com o referencial global {Xi,Yi}

(5)

A equação (6) representa uma matriz 3×1, e nela estão os valores das velocidades da

plataforma em relação ao referencial global.

(6)

Compreendendo estes conceitos passou-se para o cálculo da cinemática do movimento da

plataforma.

Page 58: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

38

3.3.2. CINEMÁTICA DIRECTA E INVERSA DA PLATAFORMA YOUBOT

Quando as rodas suecas são accionadas pelos motores da plataforma, o ângulo dos

rolamentos impõem uma velocidade no sentido de rotação da roda e uma outra

perpendicular a este sentido. A resultante destas velocidades permite que a plataforma se

mova livremente em qualquer direcção sem necessidade de reajustar as rodas (Figura 34).

Figura 34 Alguns movimentos de uma plataforma omnidireccional

Considerando então as quarto rodas suecas do youBot, e os seus respectivos ângulos, α, γ e

β, construiu-se uma matriz com a equação 4 para obtenção da cinemática directa do

movimento, como se mostra de seguida:

(7)

(8)

Page 59: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

39

Resolvendo esta equação, obtém-se então a cinemática directa da plataforma; a solução da

cinemática directa indica a velocidade de translação (vx,vy) e a velocidade de rotação (ωz)

da plataforma no referencial global.

(9)

sendo R o raio da roda, ωi a velocidade angular de cada roda (i = 1,2,3,4) e l1,l2 as

distâncias entre o eixo da roda e o centro da plataforma.

Por outro lado, sabendo a velocidade de translação e rotação pretendida para a plataforma

pode-se determinar a cinemática inversa, isto é, pode-se saber a velocidade de rotação de

cada roda, conforme se comprova na equação (10):

(10)

3.3.3. IMPLEMENTAÇÃO NA SIMULAÇÃO DA CINEMÁTICA

Compreendendo o que foi explicado na subsecção anterior, a implementação da cinemática

para o movimento do youBot revelou-se simples.

Page 60: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

40

Cada roda tem um papel importante no movimento da base; o sinal da velocidade (positivo

ou negativo) em relação ao referencial da plataforma (ver Figura 35), vai ser atribuído a

cada uma das rodas. Considerou-se que o robô se desloca sempre à mesma velocidade e

cada roda tem uma velocidade angular máxima de 1,57 rad/s ou 90º/s. Por omissão o

simulador trabalha em radianos, e é em radianos que será atribuído o valor a cada roda.

Figura 35 Referencial do robô

Depois de se conhecer a velocidade de cada roda, é necessário saber qual o sentido que será

atribuído a cada uma para o robô se mover na direcção pretendida (para a frente, trás, esquerda ou

direita). O referencial do robô, conforme demonstra a Figura 35, está rodado em relação ao

referencial do simulador 45º, o que implica que na equação (7) se faça R(θ) = R(π/2). Então, se se

quiser saber como o sentido da velocidade de rotação de cada roda influencia o movimento da

plataforma, recorre-se à equação (8); nesta equação, se se atribuir (por exemplo) uma velocidade

negativa a cada uma das rodas, obtém-se uma velocidade positiva em relação ao eixo y, logo o robô

segue em frente.

-Na simulação, a velocidade de cada roda é atribuída à sua respectiva junta, sendo

utilizada para o efeito a função simSetJointTargetVelocity(number

objectHandle,number targetVelocity): esta função recebe dois parâmetros, o

primeiro (number objectHandle) é a roda com que irá trabalhar e o segundo

(number targetVelocity) é a velocidade imposta a essa roda.

Page 61: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

41

3.4. ALGORITMO DE PLANEAMENTO DE TRAJECTÓRIA

Após a análise da plataforma, resta saber como é que o robô seguirá a trajectória para ir do

ponto inicial até um ponto final onde irá fazer a manipulação do objecto. O algoritmo

escolhido para este efeito foi o algoritmo A*. Apesar de não ser um algoritmo de fácil

implementação, a escolha prendeu-se com o facto de que é um dos mais utilizados na área

da robótica móvel, com resultados bastante satisfatórios.

Na implementação do algoritmo A* existem vários aspectos a ter em consideração, que

podem afectar significativamente o seu desempenho:

A velocidade da unidade central de processamento (Central Processing Unit –

CPU);

A limitação da memória;

O tipo de estrutura de dados a usar para as listas aberta e fechada e qual a heurística

a utilizar.

Este algoritmo irá retornar sempre aquele que será o caminho chamado “menos caro” entre

a posição inicial e final. Alguns dos outros algoritmos existentes poderão encontrar um

caminho mais rápido, mas que não é necessariamente o melhor caminho entre as duas

posições.

Este algoritmo faz uso de uma heurística para procurar os nós considerados mais

susceptíveis de conduzir ao destino em primeiro lugar, o que permite muitas vezes

encontrar o melhor caminho e tornar o algoritmo muito mais rápido.

Para a sua implementação cria duas listas de nós, uma lista fechada contendo todos os nós

explorados, e uma lista aberta contendo todos os nós que estão a ser explorados de

momento. Cada nó terá três valores associados, F, G e H (F = G + H). Cada nó também

precisa de estar ciente do seu “pai”, para que se possa estabelecer a forma como se chega a

esse nó.

Page 62: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

42

Para uma melhor análise deste algoritmo é fornecido em seguida um fluxograma (ver

Figura 36).

Inicio

Existem nós na lista aberta?

Não existe caminho possível

Colocar o nó com menor F na lista

fechada

Nó é igual ao nó de destino?

Devolver caminho

Analisar cada um dos nós vizinhos

Já se encontra na lista fechada?

Calcular custo para chegar ao nó

vizinho

Não

Vizinho está na lista aberta?

Adicionar nó na lista aberta

G da lista aberta > G actual ?

Actualizar nó da lista aberta com novo G e calcular

novo F

Não

Não

Não

Sim

Mais vizinhos?

Sim

Sim

Sim

Não

Não

Sim

Figura 36 Fluxograma do algoritmo de planeamento de trajectória

Page 63: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

43

3.4.1. FUNÇÃO DE AVALIAÇÃO

A escolha de uma métrica apropriada é fundamental para determinar o desempenho que o

algoritmo A* pode alcançar. Para este trabalho, para o cálculo da métrica escolheu-se a

distância de Manhattan, estando a sua equação está em (10). Esta distância permite analisar

apenas quatro movimentos da base (frente, trás, esquerda ou direita). Assim, mesmo não

considerando as distâncias diagonais, conseguem-se obter bons resultados, e também se

consegue que a implementação do código seja mais rápida, pois não precisa de percorrer

mais de quatro nós e o código de todo o algoritmo torna-se mais leve.

(10)

3.4.2. IMPLEMENTAÇÃO DO ALGORITMO

Para a implementação deste algoritmo foi necessária a criação de duas funções, a primeira

recebe como parâmetros a posição (xi, yi) inicial do robô obtida pelo dummy acoplado ao

centro de massa, e a posição (xf,yf) do destino, obtida pela criação e colocação de um

dummy na posição que se pretendeu para destino. Nesta função são criadas duas listas, uma

será a lista aberta e a outra a lista fechada; na lista aberta vão estar os nós que serão

analisados e na lista fechada serão introduzidos os melhores nós para a criação da

trajectória. Para além destas também foi criada uma lista com as coordenadas (xoi,yoi) dos

obstáculos.

A primeira coisa a fazer foi inserir na lista aberta o primeiro nó - este primeiro nó é a

posição onde o robô se encontra no ponto de partida. Seguidamente este primeiro nó é

inserido na lista fechada - esta lista fechada vai receber os nós com os valores de F mais

baixos da lista aberta. Como inicialmente a lista aberta apenas possui o nó de partida, este é

o único que possui o valor de F mais baixo, daí ser o primeiro a ser introduzido.

-O segundo passo desta função é percorrer a lista fechada e a lista de obstáculos para

verificar se as posições vizinhas da posição actual do robô se encontram nestas listas, caso

estejam, não serão considerados nós de possíveis movimentos, logo, não serão introduzidos

na lista fechada.

Page 64: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

44

O próximo passo foi verificar se o custo G para os nós vizinhos da posição actual é menor

que o custo G dos que estão na lista aberta; caso não seja, serão introduzidos na lista aberta

com um novo valor de F. Procura-se novamente o F com menor custo da lista aberta e

volta-se a repetir todo o processo. Esta função termina quando na lista fechada for inserido

o nó de destino - quando isto acontecer a função vai retornar a lista fechada.

A segunda função vai receber como parâmetro os elementos da lista fechada, estes

elementos estão por ordem contrária ao caminho que o robô terá que tomar, ou seja, terá de

ser reconstruido o caminho desde a posição final até à posição actual do robô. Para o robô

poder seguir o seu caminho teve que se inverter a ordem recebida por esta lista, criando-se

então uma nova lista com o caminho que o robô terá de seguir. Por último o robô vai

percorrer esta lista originando assim o seu movimento desde o ponto inicial até ao ponto

final, onde irá fazer a manipulação dos objectos.

3.5. BRAÇO

O braço KUKA youBot (Figura 37) possui cinco juntas rotacionais, o que se traduz num

braço com 5 graus de liberdade, e o órgão terminal possui uma garra com dois dedos, que

pode ser removida ou trocada por outra, dependendo da aplicação.

Figura 37 Braço manipulador do KUKA youBot

Page 65: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

45

Com um alcance máximo de 0,64 m, tem um peso de 6,3 kg e consegue manipular objectos

até 500 g. A velocidade mínima de cada junta é de 0,03 rad/s e a máxima de 1,5 rad/s, e

cada dedo da garra pode mover-se até 1 cm - isto resulta numa abertura total de 2 cm; no

entanto, é possível adaptar-se a posição dos dedos e conseguir uma abertura de, no

máximo, até 5 cm. A Figura 38 ilustra as dimensões do braço bem como os limites

máximos e mínimos de cada junta.

Figura 38 Dimensões e limites das juntas do braço

O volume de trabalho deste braço pode ser visto na Figura 7.

3.5.1. IMPLEMENTAÇÃO DA MANIPULAÇÃO

Para a manipulação dos objectos recorre-se à cinemática inversa do manipulador, pois é

necessário saber quais os ângulos das juntas adequados para se conseguir posicionar o

actuador final na posição pretendida para manipular o objecto. Como já foi dito

anteriormente, a resolução da cinemática inversa não é propriamente fácil, principalmente

quando se trata de um manipulador como o do youBot, com cinco graus de liberdade.

Infelizmente, com o decorrer deste projecto, não foi possível obter-se o tempo necessário

para calcular a cinemática inversa e aplicar esses cálculos ao manipulador. A cinemática

inversa seria calculada partindo da cinemática directa (utilizando a convenção de Denavit-

Hartenberg) e depois dessa cinemática directa calculada, e de se ter obtido a matriz de

transformação final, teria que se inverter a matriz de cada uma das juntas e multiplicá-la

por essa matriz final. Por fim teria que ser feito uma série de iterações para se obter cada

uma das equações dos cinco ângulos das juntas. Um exemplo deste método aplicado a um

manipulador semelhante ao do youBot com cinco graus de liberdade pode ser visto em

Page 66: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

46

[25]. Como se pode depreender é uma resolução bastante trabalhosa para o pouquíssimo

tempo que restava para a conclusão deste trabalho.

A solução que se encontrou para ultrapassar esta situação passou por obter a posição (x, y,

z) do actuador final, sendo esta posição obtida pelo dummy acoplado a uma esfera que

representa o centro da garra (Figura 39). A posição do objecto a manipular através do

simulador é obtida através de um dummy acoplado ao seu centro. Sabendo estas duas

posições calcula-se a diferença entre as elas, esta diferença vai ser guardada numa variável

chamada “delta”; essa variável vai ser depois somada à posição inicial em que se encontra

o actuador, obtendo-se assim o quanto o actuador vai ter que se mover. Por último move-se

o braço definindo a nova posição através da função simSetObjectPosition().

Figura 39 Esfera representativa do centro da garra

Para mostrar a capacidade de o manipulador conseguir rodar os objectos foi utilizado a

função simSetJointPosition(),que quando chamada aplica uma rotação de 90º na

quinta junta do manipulador (a do actuador) antes de ser largado o objecto, demonstrando

que o manipulador é capaz de rodar o objecto.

Para o fecho da garra e para a sua posterior abertura, é utilizada a função

simSetIntegerSignal(), que quando chamada envia um sinal “0” para a garra,

fazendo com que esta se feche quando se pretender agarrar o objecto , e envia um sinal

“1” quando for para a abrir.

Page 67: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

47

4. TESTES EFECTUADOS E

RESULTADOS OBTIDOS

Neste capítulo apresentam-se os testes efectuados na simulação e os respectivos resultados

obtidos, detectando eventuais erros e problemas encontrados durante a simulação.

4.1. SIMULADOR

Logo no início do trabalho, quando ainda se estavam a testar as funcionalidades do

simulador, detectou-se um erro de odometria na posição do robô. Quando se adicionou

pela primeira vez o modelo do youBot no ambiente do simulador, observou-se que dando

inicio à simulação (sem nenhum alteração de código no modelo do robô, nem dada

nenhuma instrução para o movimento), o robô ao invés de ficar estático, movia-se muito

lentamente.

Para demonstrar o que acaba de ser referido, a Figura 40 ilustra uma simulação simples,

apenas com o modelo youBot que vem com o simulador adicionado ao ambiente e sem

nenhuma alteração de código. A sua posição inicial foi salientada e é de xi = 0,000, yi =

0,0000 e zi = 0,0957, neste momento ainda não se tinha dado início à simulação. Após ser

dado início à simulação, não foi dada nenhuma instrução para ele se mover, no entanto,

Page 68: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

48

passados 5,05 seg. de simulação, ele tinha-se movido sozinho, conforme se pode verificar

pelas novas posições na Figura 41.

Figura 40 Exemplo de simulação em t = 0 seg

Figura 41 Posição da plataforma na simulação em t = 5.05 seg

Esta situação por si só não influencia em quase nada o comportamento do robô para este

trabalho, pois trata-se de um desvio mínimo apesar de contínuo no tempo; no entanto, na

secção seguinte será explicada uma maneira encontrada de minimizar esta situação.

4.2. TRAJECTÓRIA

Os principais erros ocorreram após a escrita do código deste algoritmo. Para se contrariar o

desvio descrito na secção anterior e para o algoritmo efectuar a busca do caminho de uma

maneira mais rápida, ou seja, sem trabalhar com posições com tantas casas decimais

conforme é o caso, utiliza-se uma função que arredonda o valor das posições recebidas,

nomeadamente a função math.ceil(x), que retorna o menor inteiro maior ou igual a x.

Esta função trouxe esta vantagem, mas por outro lado implicou que o robô não parasse na

posição desejada, ou seja, o robô partindo da posição inicial (xi = 1 e yi = 2) terá de ir

até à posição que foi definida como destino (xf= +0,5 e yf = +1,5). O que acontece é que

com a aplicação da função math.ceil(), o robô arredonda sempre a sua posição, ou

Page 69: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

49

seja, chegando às coordenadas x = +0,6 e y = +1,02, com o arredondamento considera que

já está na posição do destino e pára. Esta paragem apesar de não ser no ponto exacto de

destino, foi considerada válida pois deve-se ao arredondamento.

Por último optou-se por não se sobrecarregar demasiado o ambiente com obstáculos para

não tornar a simulação mais lenta conforme se pode verificar na Figura 40, em que é

perceptível o ambiente.

Com isto tudo, o robô percorreu toda a trajectória desde a posição inicial até à final sem

problemas conforme demonstram as Figuras 42 a 45.

Page 70: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

50

Figura 42 Robô na posição inicial (xi = -1, yi = -2)

Figura 43 Robô a desviar-se dos obstáculos

Figura 44 Robô passa pelo meio dos dois obstáculos

Page 71: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

51

Figura 45 Robô posicionado no destino (xf = +0.6, yf = +1.02)

4.3. MANIPULAÇÃO DO OBJECTO

Como já referido, não foi possível ter muito tempo para trabalhar nesta parte da

manipulação dos objectos. No entanto com o pouco tempo que se trabalhou nesta parte,

conseguiram-se resultados satisfatórios. O simulador não possui os objectos de

manipulação utilizados no RoboCup@Work, pelo que, o objecto a ser manipulado foi um

cubo que vem com o modelo do youBot no simulador. Para dar início à parte da

manipulação, de forma a não atrasar esta parte do trabalho, optou-se por calcular o tempo

que o robô demorava a chegar ao destino onde será feita a manipulação (concluindo-se que

demorava aproximadamente 25seg.). Com a função getSimulationTime(), vai-se

buscar esse tempo ao simulador e dá-se inicio ao procedimento de manipulação nesse

instante.

Quando o robô dá início à manipulação, o centro da garra encontra-se aproximadamente na

posição x = +0,6, y = +0,9 e z = +0,2, e o objecto a manipular encontra-se nas posições x =

+0,6, y = +0,9 e z = +0,1. Como se pode verificar, apenas o valor da coordenada z é

diferente. Esta coordenada indica a altura em relação ao solo, e com estas coordenadas

sabe-se que o objecto a manipular encontra-se alinhado com a garra, situando-se apenas

um pouco mais a baixo (Figura 46).

Page 72: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

52

Figura 46 Posição do objecto em relação à garra

Quando a garra agarra o objecto, vai transportá-lo até uma posição de referência obtida por

um dummy colocado um pouco acima da mesa, para evitar que a garra colida com esta.

Nessa posição o manipulador irá rodar o actuador final e proceder à abertura da garra para

largar o objecto. Como já foi referido algumas vezes, não houve muito tempo para esta

implementar e testar devidamente o funcionamento desta. No entanto, apesar disso

conseguiu-se manipular o objecto sem erros. As Figuras 47 a 49 demonstram o processo de

manipulação do objecto em questão.

Page 73: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

53

Figura 47 Robô agarra o objecto

Figura 48 Transporte do objecto

Figura 49 Rotação do objecto

Page 74: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando
Page 75: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

55

5. CONCLUSÕES

Com o crescimento das competições de robótica, ficou claro com a elaboração deste

projecto que estas são cada vez mais exigentes, impondo regras e desafios cada vez mais

complexos. Neste momento existe uma área da robótica em crescente expansão e

desenvolvimento, a robótica industrial. Este contínuo desenvolvimento fez com que

surgissem novas ligas nas competições de robótica, nomeadamente a liga

RoboCup@Work, que promove o desenvolvimento de robôs capazes de auxiliar os

humanos na indústria, ou até mesmo substituí-los em tarefas mais perigosas. Foi com o

aparecimento destas novas ligas nas competições que surgiu o interesse na realização deste

projecto. Este projecto teve como objectivo simular a capacidade de uma plataforma

móvel, o KUKA youBot, manipular objectos - esta manipulação consiste em agarrar,

transportar ou rodar objectos.

Com o decorrer deste projecto foram apresentados conceitos que se revelaram de extrema

importância. O termo robótica apesar de já ter mais de 70 anos, continua a ser uma das

áreas de maior evolução na engenharia, principalmente ao nível industrial, em que o

aumento de competitividade na indústria tem levado a que cada vez mais os processos

sejam automatizados, evitando erros humanos, derivados do cansaço, da monotonia dos

Page 76: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

56

serviços, etc. Então, para isso, tem-se evoluído cada vez mais ao nível dos robôs

industriais.

A maior parte destes robôs possuem manipuladores com semelhanças a um braço humano,

com juntas e elos que fazem lembrar o pulso e o antebraço, entre outros. Este género de

manipuladores, como são semelhantes aos braços humanos, permitem que seja mais fácil a

manipulação de objectos tal como os humanos, pois nas suas extremidades possuem garras

com dedos ou ferramentas. No entanto, estão limitados ao seu volume de trabalho.

Actualmente alguns destes manipuladores em vez de estarem fixos numa linha de

montagem, são montados em plataformas móveis, como é o caso do KUKA youBot. Com

os estudos da cinemática, para o tipo de rodas utilizadas e para os manipuladores e com

cada vez mais o uso de algoritmos de planeamento de trajectórias, conseguem-se robôs

completamente autónomos, capazes de se deslocarem entre dois ou mais locais, evitando a

colisão com obstáculos estáticos e até com obstáculos em movimento. Assim sendo, pode-

se afirmar que as competições de robótica têm tido um papel fundamental na evolução

deste tipo de robôs, pois são o ponto de partida para muitos jovens implementarem ideias

novas, ou melhorar conceitos já existentes, no crescimento da robótica.

A realização deste projecto, teve em conta bastantes conceitos importantes, que permitiram

o bom funcionamento do robô no simulador. Foram aplicados os conceitos da cinemática

directa ao movimento da plataforma, foram também estudados diferentes planeamento de

trajectória, tendo o sido adoptado o algoritmo A*. Este algoritmo é um dos mais utilizados

na robótica móvel, pois através dele consegue-se sempre obter o caminho mais curto entre

dois pontos. A implementação deste algoritmo neste projecto revelou resultados bastante

satisfatórios. Na parte da manipulação do objecto, apesar de terem sido estudados todos os

conceitos para a aplicação da cinemática ao manipulador, o tempo não foi o suficiente para

implementar uma solução mais “científica”. Optou-se por utilizar as ferramentas do

simulador e conseguiu-se, apesar disto, manipular o objecto em questão, o que foi

considerado uma vitória em tão curto espaço de tempo. Sendo assim, considera-se que

tendo terminado dentro do prazo estipulado, e tendo aprendido tantos conceitos e técnicas

novas, este projecto foi bem-sucedido, cumprindo todos os requisitos básicos pedidos na

sua proposta.

Page 77: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

57

5.1. IDEIAS FUTURAS

Como é óbvio, apesar de se considerar que este projecto foi bem-sucedido, fica sempre a

sensação de que se poderia ter feito algo mais. Inicialmente, na altura em que se fez a

planificação do projecto, considerou-se a hipótese da utilização de sensores, mais

precisamente o Hokuyo URG-04LX Laser Rangefinder. Futuramente este poderia ser

introduzido, pois é um dos sensores permitidos nas regras da competição

RoboCup@Work. Com este tipo de sensores pode-se fazer o mapeamento do ambiente

cirando, por exemplo, simulações mais realistas e precisas, pois assim o robô com esse tipo

de sensores e um bom algoritmo de planeamento de trajectória consegue performances

mais exactas.

Uma outra hipótese que poderá ser implementada de futuro, são sensores de visão. Se estes

sensores forem acoplados ao actuador final do manipulador, conseguem obter as

coordenadas dos objectos, sendo feita uma manipulação mais precisa dos objectos,

podendo também ser acrescentados algoritmos planeamento de trajectórias para o

manipulador, para que este possa realizar manipulações desviando-se de obstáculos.

5.2. CONCLUSÃO PESSOAL

A realização deste projecto foi uma mais-valia para mim em termos académicos e pessoais,

proporcionando-me a aprendizagem de novos temas e por ter tido a capacidade de os

aprender e implementar durante este tempo. Desde o início que me deparei com

instrumentos de trabalho completamente novos e temas que nunca tinha estudado

anteriormente. A realização da simulação no software V-REP foi completamente nova para

mim, pois nunca tinha trabalhado com este simulador. Inicialmente pareceu-me bastante

confuso, pois é um simulador com centenas de funções e opções, mas com um intenso

estudo através do manual e lendo os tutoriais fornecidos no site, aprendi a trabalhar com

ele ao ponto de conseguir fazer a simulação sem problemas. Também estudei uma nova

linguagem de programação, a linguagem LUA; como nunca tinha estudado esta linguagem

também foi uma mais-valia, pois foi de fácil aprendizagem, permitindo-me programar

correctamente a simulação.

Por último, resta salientar a minha participação no RoCKIn Camp 2014 em Roma. Foi uma

semana em que tive o privilégio de poder trabalhar com o robô real deste projecto, o

Page 78: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

58

KUKA youBot, e que me permitiu também a aprendizagem de outro tipo de linguagem, o

ROS. Esta é uma linguagem bastante recente, pelo que ter aprendido um pouco sobre ela

logo nos inícios foi um pilar para continuar a acompanhar os seus desenvolvimentos e

aprender com eles. Permitiu-me também conhecer e trabalhar com outros tipos de

simuladores, o Gazebo e o MoveIT, bastante mais complexos que o simulador utilizado

neste projecto. Apesar de ter sido apenas uma semana e ter aprendido tudo

superficialmente, foi uma experiência bastante enriquecedora.

Page 79: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

59

Referências Documentais

[1] História da Robótica: http://roboticagrupo4.blogspot.pt/2009/05/HISTORIA-DA-

ROBOTICA.HTML ; último acesso em 2014-02-12.

[2] Estudo sobre a Inteligência Artificial:

http://www.citi.pt/educacao_final/trab_final_inteligencia_artificial/historia_da_robot

ica.html ; último acesso em 2014-02-12.

[3] Forward kinematics: The Denavit-Hartenberg convention -

https://www.cs.duke.edu/brd/Teaching/Bio/asmb/current/Papers/chap3-forward-

kinematics.pdf ; ; último acesso em 2014-02-12.

[4] Cinemática directa de robôs manipuladores:

http://sites.poli.usp.br/p/eduardo.cabral/Cinem%C3%A1tica%20Direta.pdf ; último

acesso em 2014-02-12.

[5] SECCHI,Humberto— Uma Introdução aos Robôs Móveis

[6] SIEGWART, Roland—Introduction to Autonomous Mobile Robots

[7] A* Pathfinding for Beginners -

http://www.policyalmanac.org/games/aStarTutorial.htm ; último acesso em 2014-02-

12.

[8] RocKin Project - http://www.rockinrobotchallenge.eu/ ; último acesso em 2014-02-

12.

[9] ROBOCUP - http://www.robocup.org/ ; último acesso em 2014-02-12.

[10] 2013,Robocup@Work Rule Book - http://www.robocupatwork.org/rules.html ;

último acesso em 2014-02-12.

[11] Scanning Laser Range URG-04LX Specifications: http://www.hokuyo-

aut.jp/02sensor/07scanner/download/products/urg-04lx/data/URG-

04LX_spec_en.pdf ; último acesso em 2014-02-12.

[12] Technical Information: http://www.hizook.com/files/publications/SICK_LMS200-

291_Tech_Info.pdf ; último acesso em 2014-02-12.

[13] Kinect for Windows Sensor Components and Specifications:

http://msdn.microsoft.com/en-us/library/jj131033.aspx ; último acesso em 2014-02-

12.

[14] Gazebo Simulator: http://gazebosim.org/ ; último acesso em 2014-02-12.

[15] Webbots simulador: http://www.cyberbotics.com/ ; último acesso em 2014-02-12.

Page 80: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

60

[16] Microsoft Robotics Developer Studio 4: https://www.microsoft.com/en-

us/download/details.aspx?id=29081

[17] V-REP Simulator: http://www.coppeliarobotics.com/

[18] V-REP User interface:

http://www.coppeliarobotics.com/helpFiles/en/userInterface.htm

[19] Regular API function list (alphabetical order):

http://www.coppeliarobotics.com/helpFiles/en/apiFunctionListAlphabetical.htm

[20] The Programming Language Lua: http://www.lua.org/

[21] Manual de Referência de Lua 5.1: http://www.lua.org/manual/5.1/pt/

[22] KUKA youBot store: http://www.youbot-store.com/

[23] Lih-Chang Lin, Hao-Yin Shih- Modeling and Adaptive Control of an Omni-

Mecanum-Wheeled Robot

[24] Lih-Chang Lin, Ren-Haur Juang, Sheng-You Chen- Modeling and daptive Fuzzy

Control for an Omni-directional Wheeled Robot

[25] John J. Craig - Introduction to Robotics Mechanics and Control,Third Edition

Page 81: SIMULAÇÃO EM V-REP DA BMT DA COMPETIÇÃO R …ave.dee.isep.ipp.pt/~mss/isepatwork/Files/Projects/Projeto_1060859... · tratarem sempre como um filho e como um irmão, tornando

61

Anexo A. CD com a simulação