Você está na página 1de 112

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Desenvolvimento de um Controlador
Dinmico para Robs Humanoides
NAO
Rui Edgar Vieira Monteiro
Mestrado de Engenharia Eletrotcnica e Computadores
Orientador: Antnio Manuel Correia Pereira (PhD)
Co-orientador: Lus Paulo Reis (PhD)
Julho de 2012
c Rui Monteiro, 2012
Resumo
Nos ltimos anos vrios investigadores tm-se focado no desenvolvimento e controlo de robs
humanoides capazes de adquirir comportamentos e caratersticas humanas com o objetivo de per-
mitir a interao com os humanos e trabalhar em cooperao com os mesmos ou at mesmo
subtitu-los em tarefas rduas, repetitivas ou perigosas. A queda de um rob pode provocar no s
danos ao mesmo, o que implicar custos em reparao, como tambm riscos sade humana pelo
que a garantia de estabilidade uma questo inevitvel em termos de custos e segurana.
Este documento apresenta a implementao de um controlador dinmico para robs, capaz de
posicionar o centro de massa do rob numa determinada posio pretendida. O controlador pode
funcionar como um mdulo de estabilidade, caso o objetivo seja o posicionamento do centro de
massa no centroide do polgono de suporte do rob, ou como mtodo de avaliao de equilbrio
esttico. Neste sentido sero apresentados os clculos da cinemtica direta e inversa do modelo
do rob humanoide utilizado e foi desenvolvido um comportamento preciso de preparao de um
remate atravs da colocao do p de suporte do rob numa posio e orientao calculados de
acordo com a posio do rob, da bola e o destino da bola, e atravs da transferncia do centro
de massa do rob para essa posio, constituindo o remate mais forte na liga de simulao 3D da
RoboCup at data.
Ao contrrio dos remates dinmicos e omnidirecionais que tm sido desenvolvidos nos ltimos
anos, este novo remate consiste num movimento constante resultante de um elevado processo de
otimizao, o qual necessita de um posicionamento preciso do p de suporte do rob. Atravs da
colocao dinmica do p de suporte possvel aliar a potncia do chuto desenvolvido robustez
e preciso do movimento de preparao de remate desenvolvido, garantindo uma capacidade de
direcionamento do remate e uma maior abrangncia na rea admissvel de execuo do mesmo.
i
ii
Abstract
In the last years several investigators have focused on the development and control of huma-
noid robots able to acquire human behaviours and features in order to be able to interact with
humans and work together with them or even replace them in their arduous, repetitive or dange-
rous tasks. The fall of a robot can lead to damages, which entail costs for repair, or even human
health risks so ensuring stability is a main concern in terms of cost and safety.
This document presents the implementation of a dynamic controller for robots, able to position
the robots center of mass in a certain location. The controller may function as a stability module,
if the objective is to position the center of mass at the centroid of the robots support polygon or
work as a method of evaluation of static balance.
In this work both forward and inverse kinematics of the humanoid robot model were presented
and it was also developed a precise behaviour of preparing a kick by placing the support foot of
the robot in a precise position and orientation calculated in accordance with the robots position,
the ball and the target, and by transferring the robots center of mass to the desired position. This
is the greatest kick in the RoboCups 3D Simulation League so far.
Unlike omnidirectional and dynamic kicks that have been recently developed, this new kick
consists in a unique movement which results from a high optimization process and requires a
precise positioning of the robots support foot. By placing the support foot dynamically, is possible
to combine the developed kick power with the robustness and accuracy provided by the prepare
kick movement developed, ensuring a targeting capability and a larger coverage area of a possible
kick.
iii
iv
We should not let our fears hold us back from pursuing our hopes.
John F. Kennedy
v
vi
Contedo
1 Introduo 1
1.1 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Estrutura do Relatrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 RoboCup 5
2.1 RoboCupJunior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 RoboCupRescue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 RoboCup@Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 RoboCupSoccer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4.1 Small Size Robot League (SSL) . . . . . . . . . . . . . . . . . . . . . . 7
2.4.2 Middle Size Robot League (MSL) . . . . . . . . . . . . . . . . . . . . . 8
2.4.3 Humanoid League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.4 Standard Platform League (SPL) . . . . . . . . . . . . . . . . . . . . . . 9
2.4.5 Simulation League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 FC Portugal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.1 FC Portugal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5.2 CAMBADA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.3 5DPO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5.4 Portuguese Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Robs Humanoides 15
3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Histria dos robs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Projetos associados robtica humanoide . . . . . . . . . . . . . . . . . . . . . 19
3.3.1 Universidade de Waseda . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.2 Universidade de Tquio . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.3 Boston Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.4 Honda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.5 HRP / AIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.6 Toyota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.7 Aldebaran Robotics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Aldebaran NAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
vii
viii CONTEDO
4 Ambientes de simulao e agente FC Portugal 25
4.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Vantagens da simulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 SimSpark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.1 Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.2 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3.3 Agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Alternativas ao simulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.5 Ambiente e objetos do campo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5.1 Dimenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5.2 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.6 Agente FC Portugal 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.6.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.6.2 Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.7 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Anlise de estabilidade 35
5.1 Congurao de locomoo de robs . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Polgono de suporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.3 Centro de Massa (CoM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4 Centro de Presso (CoP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.5 Zero Moment Point (ZMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.6 Locomoo esttica e dinmica . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6 Anlise cinemtica 41
6.1 Movimentos rgidos e transformaes homogneas . . . . . . . . . . . . . . . . 42
6.1.1 Representao de posies . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.1.2 Representao de rotaes . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.1.3 Transformaes homogneas . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2 Cinemtica direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.3 Cinemtica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3.1 Braos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3.2 Pernas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4 Singularidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.5 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7 Controlador do Centro de Massa 55
7.1 Controlo de malha aberta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.1.1 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.1.2 Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.2 Controlo de malha fechada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.2.1 Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.2.2 Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.2.3 Controlo PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.3 O controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.3.1 Braos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.3.2 Pernas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.4 Polgono de suporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
CONTEDO ix
7.5 Centroide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.6 RoboViz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.6.1 O protocolo de desenho . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.6.2 Funes implementadas . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.7 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8 Preparao de remate 73
8.1 Anlise do mundo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.2 Planeamento do movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.2.1 Planeamento de trajetria . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.2.2 Transferncia para suporte nico . . . . . . . . . . . . . . . . . . . . . . 77
8.2.3 Colocao do p de suporte . . . . . . . . . . . . . . . . . . . . . . . . 78
8.2.4 Abaixamento do corpo do rob . . . . . . . . . . . . . . . . . . . . . . . 78
8.2.5 Transferncia do centro de massa do rob . . . . . . . . . . . . . . . . . 79
8.2.6 Colocao em pose de remate . . . . . . . . . . . . . . . . . . . . . . . 80
8.3 Testes e resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.4 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9 Concluses e trabalho futuro 87
9.1 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.2 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
x CONTEDO
Lista de Figuras
2.1 Ligas RoboCupJunior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 RoboCupRescue Simulation league . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 RoboCup@Home league . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Small Size Robot League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Middle Size Robot League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Humanoid League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Standard Platform League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.8 Simulation League . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 Modelo baseado no rob de Leonardo Da Vinci . . . . . . . . . . . . . . . . . . 17
3.2 Os automata de Jacques Vaucanson . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Steam Man e Electric Man . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 O rob humanoide Elektro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 Waseda Wabian 2-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Rob PetMan da Boston Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.7 Evoluo dos robs humanoides Honda . . . . . . . . . . . . . . . . . . . . . . 21
3.8 Rob HRP-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.9 Toyota Motor Corporation partner robot . . . . . . . . . . . . . . . . . . . . . . 22
3.10 Aldebaran NAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1 Diagrama de comunicao entre o servidor e o agente . . . . . . . . . . . . . . . 27
4.2 Arquitetura do servidor SimSpark . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Monitor genrico do SimSpark . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 NAO real vs modelo simulado . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5 Disposio e orientao das juntas do NAO . . . . . . . . . . . . . . . . . . . . 30
4.6 Dimenses do campo simulado . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.7 Arquitetura do agente da equipa FC Portugal 3D . . . . . . . . . . . . . . . . . . 33
5.1 Planos anatmicos de um humanoide . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Congurao bpede, quadrpede e hexpode . . . . . . . . . . . . . . . . . . . 36
5.3 Derivao do polgono de suporte no plano transverso . . . . . . . . . . . . . . . 37
5.4 Projeo do centro de massa e polgono de suporte . . . . . . . . . . . . . . . . 38
5.5 Clculo do centro de presso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.6 Equilbrio esttico e dinmico . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.1 Junta rotativa e junta prismtica . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Representao de um ponto p em dois referenciais distintos . . . . . . . . . . . . 42
6.3 Rotao ao longo do eixo y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.4 Atribuio de eixos segundo a conveno DH . . . . . . . . . . . . . . . . . . . 47
xi
xii LISTA DE FIGURAS
6.5 Brao do NAO e esquemtico das suas articulaes . . . . . . . . . . . . . . . . 48
6.6 Deduo da cinemtica inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.7 Articulaes das pernas do NAO . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.8 Referenciais utilizados no clculo da cinemtica inversa das pernas do NAO . . . 50
7.1 Arquitetura tpica de controlador em malha aberta . . . . . . . . . . . . . . . . . 55
7.2 Arquitetura tpica de controlador em malha fechada . . . . . . . . . . . . . . . . 57
7.3 Controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.4 Resposta de controlador de juntas PID . . . . . . . . . . . . . . . . . . . . . . . 59
7.5 Projeo do brao do rob segundo o eixo y . . . . . . . . . . . . . . . . . . . . 60
7.6 Resposta do CoM do rob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.7 Fases da locomoo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.8 Controlo do centro de massa do rob atravs das juntas pitch e roll da anca e dos
ps em fase de duplo suporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.9 Posio do centro de massa do rob controlado em fase de duplo suporte . . . . . 63
7.10 Controlo do centro de massa do rob atravs das juntas pitch e roll da anca e dos
ps em fase de suporte nico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.11 Posio do centro de massa do rob controlado atravs das juntas da bacia e do p
em fase de suporte nico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.12 Sequncia de controlo do centro de massa do rob controlado atravs das juntas
da bacia e do p em fase de suporte nico . . . . . . . . . . . . . . . . . . . . . 64
7.13 Controlo do centro de massa do rob atravs das juntas pitch e roll da anca em
fase de suporte nico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.14 Posio do centro de massa do rob controlado atravs das juntas da bacia em fase
de suporte nico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.15 Sequncia de controlo do centro de massa do rob controlado atravs das juntas
da bacia em fase de suporte nico . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.16 Comparao da resposta dos controladores . . . . . . . . . . . . . . . . . . . . . 66
7.17 Clculo do polgono convexo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.18 Atualizao do polgono convexo . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.19 Polgono de 6 vrtices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.20 Comparao entre o RoboViz e o monitor genrico do SimSpark . . . . . . . . . 70
7.21 Demonstrao da funcionalidade de desenho do RoboViz . . . . . . . . . . . . . 70
8.1 Clculo da posio do p de suporte do rob . . . . . . . . . . . . . . . . . . . . 75
8.2 Curvas de Bzier de 1
o
, 2
o
, 3
o
e 4
o
grau . . . . . . . . . . . . . . . . . . . . . . 76
8.3 Duas curvas cbicas de Bzier com diferentes pontos de controlo. . . . . . . . . 77
8.4 Sequncia de transferncia do rob para suporte nico . . . . . . . . . . . . . . . 77
8.5 Volume de trabalho da perna do rob . . . . . . . . . . . . . . . . . . . . . . . . 78
8.6 Abaixamento do corpo do rob . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.7 Sequncia de abaixamento e colocao do p de suporte . . . . . . . . . . . . . . 79
8.8 Transferncia do centro de massa do rob . . . . . . . . . . . . . . . . . . . . . 79
8.9 Sequncia de transferncia do centro de massa do rob . . . . . . . . . . . . . . 79
8.10 Pose nal aps a transferncia do centro de massa do rob e pose de remate . . . 80
8.11 Sequncia de colocao em pose de remate e consequente remate . . . . . . . . . 80
8.12 Representao da distncia do remate em relao posio do rob orientado com
o alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.13 Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 0
o
entre a sua orientao e o alvo . . . . . . . 82
LISTA DE FIGURAS xiii
8.14 Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 10
o
entre a sua orientao e o alvo . . . . . . 83
8.15 Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 20
o
entre a sua orientao e o alvo . . . . . . 83
8.16 Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 30
o
entre a sua orientao e o alvo . . . . . . 84
8.17 Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 40
o
entre a sua orientao e o alvo . . . . . . 84
8.18 Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 50
o
entre a sua orientao e o alvo . . . . . . 85
xiv LISTA DE FIGURAS
Lista de Tabelas
3.1 Relao entre massa, altura, IMC e preo dos robs humanoides funcionais . . . 19
6.1 Parmetros associados cinemtica direta da cabea segundo a conveno DH . . 46
6.2 Parmetros associados cinemtica direta do brao esquerdo segundo a conveno
DH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Parmetros associados cinemtica direta do brao direito segundo a conveno DH 46
6.4 Parmetros associados cinemtica direta da perna esquerda segundo a conveno
DH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.5 Parmetros associados cinemtica direta da perna direita segundo a conveno DH 46
xv
xvi LISTA DE TABELAS
Abreviaturas e Smbolos
AIST Advanced Industrial Science and Technology
API Application Programming Interface
CoM Center of Mass
CoP Center of Pressure
CSV Comma Separated Values
DARPA Defense Advanced Research Projects Agency
DH Denavit Hartenberg
FEUP Faculdade de Engenharia da Universidade do Porto
FIFA Fdration Internationale de Football Association
HRP Humanoid Robotics Project
IEETA Instituto de Engenharia Eletrnica e Telemtica de Aveiro
IMC ndice de Massa Corporal
INESC Instituto de Engenharia de Sistemas e Computadores
IP Internet Protocol
LIACC Laboratrio de Inteligncia Articial e de Cincias de Computadores
Lisp List Processing
MSL Middle Size League
MSRS Microsoft Robotics Studio
ODE Open Dynamics Engine
SPADES System for Parallel Agent Discrete Event Simulation
SPL Standard Platform League
SSL Small Size League
UA Universidade de Aveiro
UDP User Datagram Protocol
UP Universidade do Porto
XML Extensible Markup Language
ZMP Zero Moment Point
xvii
xviii ABREVIATURAS E SMBOLOS
Captulo 1
Introduo
Os robs que conhecemos nos dias de hoje tm origem em mquinas ancestrais chamadas
automata cuja origem etimolgica provm da mesma palavra grega que nos d a palavra auto-
mtico. Estes modelos iniciais no eram verdadeiros robs pois no possuam inteligncia e no
podiam ser instrudos a desempenhar tarefas diferentes daquelas para as quais haviam sido proje-
tados. Os avanos da tecnologia eltrica e eletrnica no sculo XX possibilitaram aos engenheiros
a construo de mquinas mais sosticadas.
1.1 Motivao
Os robs tm evidenciado inmeros progressos, fruto da imaginao e da natureza inventiva
do Homem. No futuro, robs e humanos iro partilhar espaos comuns e trabalhar de forma
cooperativa, pelo que a adoo de um corpo humanoide e a garantia da segurana do ser humano
tornam-se elementos fundamentais para facilitar a adaptao dos humanos a estes novos parceiros.
A constante evoluo da tecnologia permite que sejam atribudas vrias utilidades aos robs.
Desde a indstria educao, ou apenas para ns ldicos, so vrias as nalidades para as quais
os robs so projetados. Contudo, o conhecimento cientco atual pouco se reete nas questes
realmente importantes, como a segurana e a sade do ser humano. Este trabalho surge da ne-
cessidade da constante evoluo do controlo dos robs humanoides, com especial nfase no rob
humanoide Aldebaran NAO, com vista participao no campeonato mundial de futebol robtico
RoboCup, uma prova onde vrios investigadores esto envolvidos no desenvolvimento e melhoria
das capacidades dos robs humanoides. Este trabalho est integrado nos objetivos da equipa FC
Portugal 3D e capaz de fornecer uma vantagem equipa em termos de jogo conferindo uma
maior garantia de estabilidade e robustez na execuo de comportamentos dos robs.
1
2 Introduo
1.2 Objetivo
O objetivo desta dissertao o desenvolvimento de um controlador dinmico para robs hu-
manoides NAO capaz de responder a perturbaes externas que permita o posicionamento preciso
do centro de massa do rob. Este controlador ser implementado em linguagem C++, integrado
no cdigo do agente humanoide da equipa FC Portugal e testado no SimSpark, o ambiente de
simulao ocial da liga de simulao 3D da RoboCup.
1.3 Estrutura do Relatrio
Este documento est organizado em nove captulos cujo contedo reete todo o trabalho de-
senvolvido. Nesta seco est presente uma breve descrio de cada um dos captulos:
Captulo 1 - Alm da presente seco informativa da estrutura do documento possvel
encontrar referncias motivao e objetivos que sustentaram a realizao desta dissertao.
Captulo 2 - efetuada uma descrio da iniciativa RoboCup, os seus objetivos, as ligas
que a constituem e as equipas portuguesas presentes na mesma.
Captulo 3 - apresentada uma descrio geral dos robs humanoides, introduzindo os
mesmos numa perspetiva histrica, e dos projetos mais relevantes associados ao desenvol-
vimento da robtica humanoide.
Captulo 4 - analisada a utilizao dos ambientes de simulao e os simuladores atual-
mente utilizados no domnio da robtica humanoide com especial nfase no SimSpark, o
simulador ocial da liga de simulao 3D da RoboCup, e ainda efetuada uma descrio
do agente da equipa FC Portugal.
Captulo 5 - So introduzidos os planos anatmicos de anlise de um humanoide e efe-
tuada uma anlise aos mtodos de avaliao e anlise de estabilidade e a sua relao com a
locomoo.
Captulo 6 - So apresentados os mtodos de estudo dos problemas de cinemtica, como
representao de pontos, rotaes, transformaes homogneas e a conveno Denavit-
Hartenberg para o clculo da cinemtica direta, e os clculos da cinemtica inversa do rob.
Captulo 7 - introduzido o conceito de controladores, descrita a implementao de um
mdulo de comunicao com o monitor RoboViz e a implementao do controlador do
posicionamento do centro de massa desenvolvido.
Captulo 8 - descrito a implementao do movimento de preparao de remate desenvol-
vido.
1.3 Estrutura do Relatrio 3
Captulo 9 - So apresentadas as principais concluses alcanadas na realizao do pro-
jeto sendo tambm indicados os trabalhos futuros que possam dar continuidade ao trabalho
desenvolvido.
4 Introduo
Captulo 2
RoboCup
A RoboCup uma iniciativa cientca internacional que teve incio em 1997 com o intuito de
promover o desenvolvimento do estado da arte dos robs inteligentes. Esta iniciativa surge como
forma de promover a investigao nas reas de robtica e inteligncia articial oferecendo um
desao apelativo. O objetivo nal desta iniciativa denido como[1]:
"By mid-21st century, a team of fully autonomous humanoid robot soccer players
shall win the soccer game, comply with the ofcial rule of the FIFA, against the
winner of the most recent World Cup."[2]
Apesar deste objetivo nal permanecer, a iniciativa RoboCup expandiu-se em vrios domnios de
aplicao baseados nas necessidades da sociedade atual.
2.1 RoboCupJunior
O RoboCupJunior um projeto educacional para estudantes com idade inferior a 20 anos.
Trata-se de um novo mtodo para se compreender a cincia e a tecnologia de forma inovadora onde
permitida a realizao de vrias experincias ligadas eletrnica, hardware e software. O projeto
oferece ainda uma oportunidade para a aprendizagem de metodologias de trabalho em equipa pela
partilha de ideias com os amigos. O objetivo deste projeto o desenvolvimento de materiais
de estudo e mtodos de ensino inovadores incentivando a aprendizagem e desenvolvimento de
competncias na rea da robtica e inteligncia articial[4]. A RoboCupJunior possui as seguintes
ligas:
Dance Challenge;
Soccer Challenge;
Rescue Challenge.
5
6 RoboCup
Figura 2.1: RoboCupJunior Dance, Soccer e Rescue Challenge[3]
2.2 RoboCupRescue
Figura 2.2: RoboCupRescue Simulation league[5]
Uma das grandes aplicaes das tecnologias da RoboCup a operao de busca e salvamento
em situaes de desastre massivo. A RoboCup iniciou o projeto RoboCupRescue especicamente
para promover a pesquisa nesta rea de importncia vital para a sociedade. O objetivo fundamen-
tal deste projeto o desenvolvimento de metodologias de combate a problemas sociais graves,
a divulgao deste novo ramo de investigao na rea da inteligncia articial e ainda promo-
ver a investigao colaborativa internacional[6]. Este projeto possui as ligas de robs reais e de
simulao.
2.3 RoboCup@Home 7
Figura 2.3: RoboCup@Home league[7]
2.3 RoboCup@Home
A RoboCup@Home uma nova liga dentro das competies RoboCup que se foca em aplica-
es do mundo real e na interao Homem-Mquina com robs autnomos. O objetivo desta liga
fomentar o desenvolvimento de aplicaes robticas que possam ajudar os humanos nas suas
vidas.
2.4 RoboCupSoccer
A RoboCupSoccer escolheu o futebol como tema central de pesquisa, esperando que as inova-
es resultantes sejam aplicadas em problemas importantes para a sociedade e indstria. A criao
de uma equipa de robs totalmente autnomos que atuem de forma cooperativa e exibam compor-
tamentos e estratgias avanadas que permitam obter bons resultados nesta competio exige a
investigao em vrias reas da robtica e a melhoria das tecnologias existentes.
2.4.1 Small Size Robot League (SSL)
A Small Size League foca-se no problema da cooperao inteligente multiagente e no controlo
num ambiente altamente dinmico com um sistema centralizado/distribudo hbrido.
Os jogos desta liga so efetuados entre duas equipas de 5 robs cada. Cada rob dever
cumprir os requisitos denidos pelas regras F180:
"The robot must t within a 180mm diameter circle and must be no higher than 15cm
unless they use on-board vision. The robots play soccer on a green-carpeted eld that
is 4.9m long by 3.4m wide with an orange golf ball. Robots come in two avors,
those with local on-board vision sensors and those with global vision."[7]
8 RoboCup
Figura 2.4: Small Size Robot League[7]
O tipo de robs mais comuns so os que utilizam viso global. Estes usam uma cmara area
e um computador externo para identicar e localizar os robs medida que estes se deslocam no
campo.
Um computador externo utilizado para comunicar os comandos de arbitragem e, no caso de
utilizarem viso area, a informao da posio aos robs. Tipicamente este computador executa
grande parte, se no todo, o processamento necessrio para a coordenao e controlo dos robs.
A comunicao efetuada sem os e utiliza tipicamente equipamento transmissor/receptor FM
comercial.
2.4.2 Middle Size Robot League (MSL)
Figura 2.5: Middle Size Robot League[3]
Na Middle Size League, duas equipas de 6 robs jogam futebol num campo de 18x12 metros.
Cada rob est equipado com sensores e um computador de bordo para analisar a situao de jogo
e praticar futebol com sucesso.
2.4 RoboCupSoccer 9
A cooperao em equipa pode ser estabelecida atravs de comunicao sem os tal como a
receo de comandos de arbitragem. No entanto, nenhuma interveno externa por humanos
permitida exceo das substituies.
Nos ltimos anos a investigao nesta competio tem registado bons progressos que se focam
na total autonomia e cooperao nas reas de planeamento e perceo dos robs.[8]
2.4.3 Humanoid League
Figura 2.6: Humanoid League[7]
Na Humanoid League, robs autnomos com aparncia e sensorizao semelhante humana
competem entre si. Ao contrrio dos robs humanoides fora da Humanoid League, a tarefa da
perceo e modelao do mundo no simplicada pela utilizao de sensores de distncia no
humanos.
So inmeros os desaos tcnicos levados a cabo para alm da competio de futebol. Lo-
comoo dinmica, corrida, remate, perceo visual da bola, de outros jogadores e do campo,
auto-localizao e jogar em equipa esto entre os vrios tpicos que so alvos de investigao
nesta liga. Muitos dos melhores robs autnomos humanoides do mundo competem nesta liga.
2.4.4 Standard Platform League (SPL)
Na Standard Platform League, todas as equipas utilizam robs idnticos. Assim, as equipas
concentram-se exclusivamente no desenvolvimento de software e utilizam os robs da atualidade.
As equipas so constitudas por quatro jogadores no total, sendo que um deles desempenha o
papel de guarda-redes e os trs restantes jogadores so jogadores de campo [9]. Os robs operam
de forma totalmente autnoma sem nenhuma interveno externa quer por parte de humanos ou
computadores. Em 2008 foi efetuada a transio entre o quadrpede Sony Aibo para o humanoide
Aldebaran NAO que continua a ser o rob ocial desta liga at data [10].
10 RoboCup
Figura 2.7: Standard Platform League[7]
2.4.5 Simulation League
Figura 2.8: Simulation League[7]
ASimulation League foca-se essencialmente na inteligncia articial e na estratgia de equipa.
Na liga de simulao 2D, duas equipas de 11 elementos de software autnomos (agentes), jogam
futebol num campo virtual bidimensional representado por um servidor central, SoccerServer.
Este servidor tem todas as informaes do jogo, nomeadamente, a posio de todos os jogadores
e da bola e as variveis fsicas. O jogo baseia-se na comunicao entre o servidor e cada um dos
agentes. Por um lado, cada agente recebe os sinais dos seus sensores virtuais (visual, acstico e
fsico) e poder, por outro lado, desempenhar comandos bsicos como correr, virar e rematar para
interagir com o mundo.
O maior desao nesta liga concluir a partir das informaes que os agentes possuem do
mundo a melhor ao a tomar. Uma vez que o jogo se encontra dividido em 6000 ciclos, esta
tarefa deve ser concluda no intervalo de tempo de 100 ms, que corresponde durao de cada
ciclo.
2.5 FC Portugal 11
A liga de simulao 3D aumenta o realismo do ambiente de simulao utilizado atravs da
adio de uma dimenso extra e um conjunto de fsicas mais complexas. No incio, o nico mo-
delo de rob disponvel era um agente esfrico. Em 2006, um simples modelo do rob Fujitsu
HOAP-2 foi disponibilizado sendo a primeira vez que um modelo humanoide foi utilizado na liga
de simulao. Esta mudana alterou o objetivo da liga de simulao 3D do desenvolvimento de
comportamentos estratgicos no jogo de futebol para o controlo de baixo nvel de robs humanoi-
des e a criao de comportamentos bsicos como caminhar, rematar, virar, levantar, entre outros.
Em 2008, a introduo do modelo do rob NAO simulao deu uma outra perspetiva liga.
O rob NAO da Aldebaran tem sido o rob ocial para a Standard Platform League desde 2008, e
usando o mesmo modelo para as competies de simulao representa uma grande oportunidade
para os investigadores que pretendem desenvolver e testar os seus algoritmos e ideias antes de
tentar implementar as mesmas no rob real. O interesse na liga de simulao 3D tem crescido
rapidamente e a investigao est lentamente a voltar ao desenvolvimento e implementao de
comportamentos multiagente de alto nvel baseados nas arquiteturas slidas de comportamentos
de baixo nvel para as equipas de robs humanoides realistas.
2.5 FC Portugal
2.5.1 FC Portugal
Criada em fevereiro de 2000, a equipa FC Portugal consiste num projeto de investigao co-
laborativo entre o Laboratrio de Inteligncia Articial e de Cincias de Computadores (LIACC)
da Universidade do Porto (UP) e o Instituto de Engenharia Eletrnica e Telemtica de Aveiro
(IEETA) da Universidade de Aveiro (UA) [11] [12] [13] [14].
Ainvestigao da equipa focada principalmente na criao de novas metodologias de coorde-
nao, tais como, tticas, formaes, posicionamento estratgico e alterao dinmica de funes.
A equipa tem apostado no desenvolvimento de solues [13] [14] para posicionamento estratgico
dos jogadores e na troca de posies entre jogadores para as ligas de simulao, permitindo um
maior foco no desenvolvimento de algoritmos de controlo e mtodos de coordenao de agentes
de software.
A equipa j participou em diversas competies da RoboCup, incluindo simulao 2D, simu-
lao 3D, competio de treinadores, simulao de salvamento e realidade mista, nas quais obteve
bons resultados ao longo dos anos [15]:
Campe mundial na liga de simulao 2D em 2000
Campe europeia na liga de simulao 2D em 2000 e 2001
Campe mundial na liga de treinadores em 2002
Campe europeia na liga de simulao de resgate e salvamento em 2006
Campe mundial na liga de simulaao 3D em 2006
12 RoboCup
Campe europeia na liga de simulao 3D em 2006, 2007 e 2012
Outras duas equipas, a atuar em competies diferentes, fazem parceria com a equipa FC
Portugal: CAMBADA (liga de robs mdios) e 5DPO (liga de robs pequenos e liga de robs
mdios). Todos os investigadores de cada equipa contribuem entre si para o desenvolvimento e
crescimento das equipas.
2.5.2 CAMBADA
O projeto CAMBADA, acrnimo de Cooperative Autonomous Mobile roBots with Advanced
Distributed Architecture, comeou ocialmente em Outubro de 2003 e constitui a equipa de fu-
tebol robtico do IEETA/UA [16] [11] [12] [17]. Esta equipa formada por investigadores que
desenvolvem hardware e software para a participao da equipa na liga de robs mdios onde
parte da investigao efetuada nas reas de coordenao, jogadas estudadas e posicionamento
em campo [18] [19]. A equipa tem obtido excelentes resultados no festival nacional de robtica,
tendo sido campe entre 2007 e 2012, e RoboCup, onde em 2008 conquistou o ttulo de campe
mundial.
2.5.3 5DPO
A 5DPO [11] [12] [20] uma equipa formada por estudantes, professores e investigadores
da FEUP
1
, Departamento de Engenharia Eletrotcnica e de Computadores, em parceira com o
Instituto de Engenharia de Sistemas e Computadores do Porto (INESC-P) [20]. Esta foi criada
em 1997 para competir na liga de robs pequenos e comeou nos robs mdios em 2000. O
desenvolvimento da equipa comeou em 1998 competindo na liga de robs pequenos e expandiu-
se para a liga de robs mdios em 2001, com o nome 5DPO-2000, e mais tarde para a liga de robs
humanoides, com o nome 5DPO-Human. No conjunto obteve vrios segundos e terceiros lugares
em competies nacionais e internacionais mas os pontos altos foram as vitrias no campeonato
europeu, na liga de robs pequenos, em 2001, 2006 e 2007 [21].
As principais reas de investigao da equipa so [20]:
Auto-localizao baseada em sistema de viso;
Sensores e fuso de dados;
Controlo em tempo-real;
Deciso e Cooperao.
2.5.4 Portuguese Team
A equipa Portuguese Team [11] [12] [22] foi criada em 2011 e composta por membros de trs
grandes equipas portuguesas (FC Portugal, CAMBADA e 5DPO. Baseada na experincia prvia
1
Faculdade de Engenharia da Universidade do Porto
2.6 Concluso 13
dos seus membros, a Portuguese Team desenvolveu um agente ao desenvolvido pela equipa FC
Portugal, da liga de simulao 3D, e utiliza uma arquitetura distribuda semelhante utilizada
pelos robs da equipa CAMBADA. A equipa foi criada com o intuito de participar na liga de
robs com plataforma normalizada (liga SPL) e sua investigao foca-se esencialmente na criao
de novas metodologias de coordenao como tticas, formaes, alterao dinmica de funes e
posicionamente estratgico [22].
2.6 Concluso
Neste captulo foi apresentada uma introduo inciativa RoboCup e aos seus objetivos, na
qual os trabalhos desenvolvidos nesta dissertao se inserem. A RoboCup possui diversas ligas
com o propsito de promover a investigao na rea da robtica e da inteligncia articial quer por
parte dos estudantes mais novos quer por parte dos investigadores. Foram ainda introduzidas as
equipas portuguesas ligadas a esta iniciativa e as reas de investigao s quais esto associadas. A
prestao das equipas portuguesas tem sido extremamente positiva tendo as mesmas obtido vrios
trofus nas vrias ligas da iniciativa.
14 RoboCup
Captulo 3
Robs Humanoides
Este captulo apresenta uma descrio geral dos robs humanoides, introduz os mesmos numa
perspetiva histrica e descreve os projetos e robs humanoides mais relevantes.
3.1 Introduo
Um rob humanoide um rob cuja aparncia global se baseia na de um corpo humano,
permitindo a interao com ferramentas ou ambientes especcos para humanos. Genericamente
os robs humanoides possuem cabea, tronco, duas pernas e dois braos apesar de que alguns
possam modelar apenas algumas partes do corpo humano. Os robs cuja aparncia esteticamente
semelhante dos humanos so designados por androides. O rob humanoide um rob autnomo
que se adapta s alteraes do mundo por forma a atingir o seu objetivo. Algumas das capacidades
de um rob humanoide podem incluir:
Auto-manuteno;
Aprendizagem autnoma;
Evitar situaes potencialmente perigosas para as pessoas, bens ou para si mesmo;
Interao segura com os humanos e o mundo.
3.2 Histria dos robs
Contexto Cultural
O sonho dos investigadores de robtica tem sido alimentado pela co cientca. Mqui-
nas semelhantes a humanos ou humanos semelhantes a mquinas so usados muitas vezes como
metforas para os perigos da tecnologia e da hubris humana. A palavra "robot"foi utilizada pela
primeira vez pelo escritor Karel Capek em 1920 na pea "Rossums Universal Robots" estando
15
16 Robs Humanoides
fortemente associada a um androide ou a um clone. A palavra Checa robota signica escravido
e a palavra robotnik signica agricultor ou escravo. Nesta pea, um cientista desenvolveu um
conjunto de mquinas semelhantes aos humanos com caratersticas superiores s da raa humana.
As mquinas comeam a dominar a raa humana e ameaam a sua extino mas esta salva no
ltimo momento.
O escritor de co cientca Isaac Asimov, em 1941, utilizou pela primeira vez a palavra ro-
btica referindo-se tecnologia utilizada pelos robs e previu uma poderosa indstria de robtica.
No conto Runaround, publicado em 1942, Asimov deu a sua maior contribuio para o mundo da
robtica escrevendo as trs leis fundamentais da robtica, s quais veio posteriormente a juntar a
lei zero. So elas:
Lei 0 Um rob no pode fazer mal humanidade e nem, por inao, permitir que ela
sofra algum mal;
Lei 1 Um rob no pode ferir um ser humano ou, por omisso, permitir que um ser
humano sofra algum mal;
Lei 2 Um rob deve obedecer s ordens que lhe sejam dadas por seres humanos, exceto
nos casos em que tais ordens entrem em conito com a Primeira Lei;
Lei 3 Um rob deve proteger a sua prpria existncia desde que tal proteo no entre
em conito com a Primeira e/ou a Segunda Lei.
Isaac Asimov conseguiu transmitir a ideia de que um rob no teria de ser exatamente como
um humano nem teriam de ser maus ou perigosos. A co cientca deu um grande incentivo
aos investigadores atuais em relao ao desenvolvimento da robtica, ainda assim grande parte
do pblico geral v os robs como uma ameaa para os humanos ou possui expetativas irrealistas
dos mesmos. Este contexto cultural importante. O homem deve aceitar e possuir expectativas
realistas em relao aos humanoides para que estes possam vir a ser utilizados na vida diria e
ainda para que estes possam trabalhar de forma colaborativa com os humanos.
Contexto Tecnolgico
No passado existiram vrias fases distintas nas quais engenheiros e cientistas tentaram cons-
truir mquinas semelhantes a humanos ou animais. Cada fase corresponde a avanos signicativos
nas tecnologias dessa poca. Na Grcia antiga existia um grande fascnio pelos automata, que
eram mquinas que desempenhavam uma determinada funo de forma automtica e que muitas
vezes imitavam aes humanas ou animais. Entre o sculo 3 A.C. e o sculo 13 D.C. estes meca-
nismos eram populares nos meios imperiais na China. Em 1495 Leonardo Da Vinci desenvolveu
um dispositivo mecnico semelhante a um cavaleiro armado. Os mecanismos no interior do rob
de Leonardo permitiam a este que se movesse como se de uma pessoa real se tratasse.
No sculo XVIII assistiu-se a um perodo muito produtivo no desenvolvimento de autmatos
capazes de executar movimentos semelhantes aos dos seres humanos, no entanto foi apenas no s-
culo XIX que muito deste desenvolvimento se materializou. Durante esta era, um dos inventores
3.2 Histria dos robs 17
Figura 3.1: Modelo baseado no rob de Leonardo Da Vinci[23]
mais inuentes foi Jacques de Vaucanson (1709-1782), que, em 1738, apresentou Academia de
Cincias trs dos seus trabalhos. Estes trabalhos apresentados eram compostos por um tocador de
auta, um pato e um tocador de tambor. Ambos os msicos tocavam os instrumentos de forma se-
melhante ao ser humano, o pato era reconhecido por ser o primeiro automatismo capaz de simular
a digesto da sua comida.
Figura 3.2: Os automata de Jacques Vaucanson[24]
A histria dos humanoides no sculo XIX ca essencialmente marcada pelo aparecimento
do Steam Man e do Electric Man. O Steam Man surge do trabalho de Zadoc P. Dederick e de
Isaac Grass, que em 1868 desenvolveram e construram um homem mecnico movido a vapor que
puxava uma carroa. O Electric Man surgiu em 1885 pelas mos de Frank Reade Junior, e trata-se
da verso eltrica do Steam Man com algumas modicaes.
18 Robs Humanoides
Figura 3.3: Steam Man[25] e Electric Man[26]
O primeiro rob humanoide da era moderna surgiu em 1938 e chamava-se Elektro. Este rob
foi desenvolvido pela sociedade Westinghouse e simulava o andar, falar e fumar.
Figura 3.4: O rob humanoide Elektro na exposio de Nova York em 1939[27]
No entanto, verdadeiros robs s conseguiram aparecer aps as dcadas de 1950 e 1960 com
a inveno dos transstores e circuitos integrados. Em 1961 o brao robtico UniMate foi intro-
duzido nas linhas de produo da General Motors por forma a desempenhar as tarefas rduas e
repetitivas [28]. O desenvolvimento de robs humanoides modernos teve incio no nal da dcada
de 1960, guiados pelos avanos signicativos dos sensores, atuadores e computadores que tambm
permitiram a sosticao da automao na indstria e a complexidade dos produtos eletrnicos.
Na construo de robs autnomos importante considerar uma panplia de fatores cruciais
ao seu desempenho, nomeadamente:
Autonomia / ecincia energtica;
Poder de processamento;
Dimenses fsicas;
Complexidade de hardware;
3.3 Projetos associados robtica humanoide 19
Programabilidade;
Estabilidade;
Preciso sensorial;
Custos.
De acordo com Gouaillier [29], a relao entre a altura e a massa de um rob fornece partida
uma boa estimativa do seu desempenho energtico. Com efeito, um rob mais leve consegue
produzir o mesmo movimento que um rob mais pesado, consumindo menos energia; os motores
podem ser mais pequenos, e as perdas sob a forma de calor sero muito menos signicativas.
Robs pequenos, alm de uma melhor dinmica, so tipicamente menos perigosos para o ser
humano, e naturalmente mais baratos. A tabela 3.1 estabelece uma comparao entre alguns robs
humanoides funcionais, em funo das suas massas, alturas, IMCs
1
e preos.
Tabela 3.1: Relao entre massa, altura, IMC e preo dos robs humanoides funcionais
Rob Massa (Kg) Altura (m) IMC Preo
KHR-2HV 1.3 0.34 10.9 1 K$
HOAP 7.0 0.50 28.0 50 K$
NAO 4.5 0.57 13.5 10 K e
QRIO 6.5 0.58 19.0 N/A
ASIMO 54.0 1.30 32.0 N/A
REEM-A 40.0 1.40 20.4 N/A
HRP-2 58.0 1.54 24.5 400 K$
3.3 Projetos associados robtica humanoide
Nas ltimas duas dcadas, o campo da robtica humanoide tem evidenciado melhorias signi-
cativas. Esta evoluo foi fruto do desenvolvimento de atuadores, computadores e outras tecno-
logias que permitem realizar a viso da construo de uma mquina com capacidade semelhante
dos humanos. Desde 1960 a indstria da robtica tem vindo a crescer e existem cada vez mais
investigadores nesta rea existindo vrios projetos de investigao associados ao desenvolvimento
de robs humanoides.
3.3.1 Universidade de Waseda
Em1973, o professor Kato iniciou a investigao moderna emrobs comlocomoo bpede na
universidade de Waseda com o desenvolvimento do Wabot-1, o primeiro rob humanoide escala
humana. Vrios robs foram subsequentemente desenvolvidos em Waseda sendo o ltimo deno-
minado Wabian-2. Este rob foi utilizado para testar conceitos inovadores de hardware incluindo
dedos passivos e ps com estrutura arqueada semelhante dos humanos.
1
ndice de Massa Corporal
20 Robs Humanoides
Figura 3.5: Waseda Wabian 2-R[23]
3.3.2 Universidade de Tquio
Em 1980, Miura e Shimoyama desenvolveram vrios pequenos robs bpedes como o Biper-3.
Mais recentemente os robs H6 e H7 foram desenvolvidos pelo grupo de investigao Inoue em
colaborao com a Kawada Industries. Estes robs possuem junes ativas nos dedos dos ps,
permitindo-lhes caminhar mais rapidamente e subir escadas mais altas daquilo que seria possvel
com ps de um nico segmento.
3.3.3 Boston Dynamics
Figura 3.6: Rob PetMan da Boston Dynamics[30]
3.3 Projetos associados robtica humanoide 21
A Boston Dynamics apresentou recentemente um rob bpede capaz de caminhar a 7,08 km/h.
O Projeto nanciado pela DARPA e existem poucas informaes quer sobre o hardware utilizado
quer sobre o sistema de controlo utilizado. A empresa arma que o rob baseado na tecnologia
do Big Dog, um quadrpede desenvolvido pela empresa que utiliza atuadores hidrulicos e est
equipado com um motor de combusto interna.
3.3.4 Honda
Figura 3.7: Evoluo dos robs humanoides Honda[31]
A Honda obteve avanos signicativos na tecnologia de locomoo bpede durante um pro-
grama de investigao e desenvolvimento iniciado em 1986 sendo desenvolvidos os prottipos E1
at ao E6. A abordagem da Honda na construo de robs bpedes foi bem sucedida e serviu de
inspirao para os trabalhos desenvolvidos nesta rea. O rob Asimo, introduzido em 2000, o
modelo mais avanado da Honda. Desde a sua introduo o rob tem registado vrias melhorias
sendo que a verso de 2011 capaz de correr de forma uida a uma velocidade de 9 km/h.
3.3.5 HRP / AIST
O instituto de investigao Advanced Industrial Science and Technology (AIST) do Japo de-
senvolveu alguns robs juntamente com a Kawada Industries e algumas universidades japonesas.
O desenvolvimento comeou com o "Humanoid Robotics Project"(HRP) nanciado pelo ministro
da economia Japonesa em 1997. O projeto comeou com um rob P3 comprado Honda no qual
desenvolveram caratersticas nicas sendo posteriormente denominado HRP-1. O ltimo rob, o
HRP-4 foi desenvolvido com o intuito de ser utilizado como auxlio na vida diria das pessoas,
possuindo um corpo leve e esguio e um preo mais baixo que os seus precedentes.
22 Robs Humanoides
Figura 3.8: Rob HRP-4[32]
3.3.6 Toyota
Figura 3.9: Toyota Motor Corporation partner robot[33]
A Toyota apresentou vrios "partner robots"que podem realizar vrias tarefas como caminhar
ou tocar instrumentos musicais. Um rob que teve um dos desenvolvimentos mais notveis
o Toyota Running Robot do qual existem poucas informaes mas que consegue correr a uma
velocidade de 7 km/h atravs das suas junes ativas nos dedos dos ps.
3.3.7 Aldebaran Robotics
A Aldebaran Robotics uma empresa francesa fundada em 2005 que se apercebeu que a era
dos robs pessoais se est a aproximar. A empresa dedica-se a desenvolver, produzir e comercia-
lizar robs autnomos, o rob NAO.
3.4 Aldebaran NAO 23
Figura 3.10: Aldebaran NAO[34]
3.4 Aldebaran NAO
O NAO um rob humanoide autnomo, programvel e de tamanho mdio desenvolvido pela
empresa francesa Aldebaran Robotics tendo como principal motivao ao seu desenvolvimento
a necessidade de fornecer ao mercado da investigao e ensino um rob humanoide a um preo
mais reduzido que os robs at data existentes. Este rob foi projetado por forma a responder
de forma rpida a um variado conjunto de estmulos, oferecendo igualmente um vasto conjunto de
tarefas que este poderia executar, desde andar at apanhar objetos, ou mesmo recuperar autnoma
e automaticamente de quedas.
Em 2008 o NAOsubstituiu o Sony Aibo na Standard Platform League. Omais recente modelo,
o NAO H25 possui as seguintes caratersticas[35]:
Dimenses 573275311 mm;
Massa 5,2 Kg;
Autonomia 60 a 90 min;
Graus de liberdade 25;
Processador ATOM Z530 1.6 GHz;
Viso 2 cmaras SOC 1288968;
Conexo Wi e Ethernet;
Unidade de Inrcia 2 giroscpios de 1 eixo e um acelermetro de 3 eixos.
24 Robs Humanoides
3.5 Concluso
Neste captulo foi apresentada a noo de robs humanoides e foi descrita a histria do seu
desenvolvimento. A palavra rob surgiu apenas em 1920 pelas mos do escritor de co cient-
ca Karel Capek. No entanto, apenas aps a dcada de 1950, com o aparecimento dos transstores
e circuitos integrados que o desenvolvimento de robs e fundamentalmente do campo da rob-
tica foi possvel, o qual tem vindo a crescer nos ltimos anos dada a sua importncia. Devido
sua capacidade de interao com ambientes humanos, inmeros projetos de desenvolvimento de
robs humanoides surgiram com o intuito de os mesmos trabalharem de forma cooperativa com
os humanos e at mesmo de os substituir em ambientes perigosos. Vrios projetos como o rob
Asimo da Honda tm impulsionado este campo de investigao, no entanto a abordagem da Al-
debaran Robotics, atravs da construo de um rob humanoide mais acessvel, permitu o acesso
investigao de robtica humanoide por parte de vrios institutos de desenvolvimento e ensino.
A existncia de inmeros ambientes de simulao com modelos precisos do rob fomentou ainda
mais o interesse e desenvolvimento nesta rea.
Captulo 4
Ambientes de simulao e agente FC
Portugal
4.1 Introduo
O objetivo fundamental da utilizao de ambientes de simulao o desenvolvimento de um
agente virtual capaz de pensar e agir de acordo com a sua perceo do mundo. Desta forma, o
conhecimento adquirido poder ser transferido para o rob real. No razovel o teste e desen-
volvimento de qualquer algoritmo diretamente num rob real visto que a aprendizagem necessita
de vrias iteraes, os prejuzos adjacentes a quedas de robs podem ser elevados e a depurao
do cdigo realizada mais facilmente em ambientes de simulao. Os ambientes de simulao
devem ser robustos e precisos, emulando o mundo real e o rob da melhor forma possvel, permi-
tindo desta forma uma melhor portabilidade entre o cdigo do rob simulado e do rob real. No
entanto, os simuladores fsicos contm algumas simplicaes na modelao do mundo real pelo
que o resultado numa simulao e no mundo real poder diferir. Este problema denominado
reality gap no campo da robtica evolutiva[36].
4.2 Vantagens da simulao
As plataformas robticas, quer sejam os mais simples braos articulados ou os mais complexos
robs humanoides, so usualmente muito caras. A utilizao de ambientes de simulao para
investigao, desenvolvimento e teste na robtica possui vrias vantagens face utilizao de
robs reais[37]. As principais vantagens da utilizao de ambientes de simulao so:
Mais barato que robs reais;
Facilidade de desenvolvimento e teste de novos modelos de robs;
Facilidade de teste de novos algoritmos;
25
26 Ambientes de simulao e agente FC Portugal
Diminuio de tempo de desenvolvimento e teste;
Facilita o estudo de mtodos de coordenao multiagente;
Todos os testes podem ser feitos sem danicar o rob real;
Para otimizao e testes repetitivos, a utilizao de um modelo virtual reduz substancial-
mente o tempo entre cada iterao.
A maior desvantagem na utilizao destes ambientes prende-se com o reality gap, pelo que
os agentes de software desenvolvidos em simulao necessitam de pequenos ajustes para serem
utilizados em ambiente real. O volume de alteraes necessrias proporcional preciso da
simulao.
4.3 SimSpark
O SimSpark o simulador ocial da liga de simulao 3D da RoboCup. Este consiste numa
plataforma de simulao genrica para simulaes fsicas multiagente. O simulador foi desenvol-
vido sobre uma framework de aplicao exvel (Zeitgeist) para ser um simulador genrico, capaz
de simular qualquer coisa, desde o lanamento de um projtil a um grande jogo de futebol. A
simulao consiste em trs partes importantes: o servidor, o monitor e os agentes.
4.3.1 Servidor
O servidor do SimSpark efetua a gesto da simulao, modicando o estado de simulao
num ciclo innito de execuo. Toda a simulao efetuada pelo servidor que recebe as aes
dos agentes e lhes fornece o estado e as informaes dos seus sensores. O SimSpark utiliza o
motor fsico Open Dynamics Engine (ODE) para simular toda a dinmica dos corpos e objetos.
Uma outra responsabilidade do servidor manter o registo dos agentes conectados e a cada ciclo
de simulao ele envia para os agentes a informao dos seus sensores, e recebe sequncias de
aes dos agentes para alterar os seus atuadores. O SimSpark implementa um modelo simples
de simulao baseado em eventos que executa imediatamente cada ao recebida pelos agentes.
Ele no tenta compensar latncia na rede ou alteraes nos recursos de computao durante a
simulao. A gura 4.1 representa a possibilidade de dessincronizao entre o agente e o servidor:
uma ao recebida num ciclo n apenas executada no ciclo n+1[38].
A implementao do servidor segue a seguinte arquitetura, ilustrada na gura 4.2:
Open Dynamics Engine (ODE) - Corresponde ao motor da fsica do jogo. Permite simular
a dinmica do sistema e as propriedades fsicas dos objetos simulados fornecendo tipos
de juntas avanados e integrao e clculo de deteo de colises e frico. A ODE
particularmente til para simular objetos em ambientes de realidade virtual;
4.3 SimSpark 27
Figura 4.1: Diagrama de comunicao entre o servidor e o agente[38]
Zeitgeist - a framework utilizada para o tratamento de objetos de dados e componen-
tes funcionais de um sistema de forma uniforme e que segue estritamente o paradigma de
programao orientada a objetos utilizando C++;
Motor de simulao - Representa o ncleo do simulador. Recebe mensagens comaes dos
agentes, executa as operaes de simulao e envia uma mensagem de resposta ao agente
com as informaes do ambiente;
System for Parallel Agent Discrete Event Simulation(SPADES) - Fornece uma camada
middleware que pode estar presente entre o agente e o motor de simulao para gerir a
distribuio da simulao entre mquinas e sucientemente robusto para variaes na rede
e sobrecargas nas mquinas. O SPADES no requer que os agentes sejam escritos numa
linguagem especca.
Os agentes podem interagir diretamente com o motor de simulao ou atravs da camada de
middleware providenciada pelo SPADES. O motor de simulao funciona como servidor, tratando
as mensagens dos agentes e respondendo com outras mensagens. No caso da simulao de fu-
tebol humanoide, em cada ciclo de simulao o agente envia a mensagem ao servidor contendo
informao sobre os atuadores como as juntas. A mensagem do servidor para o agente contm
informao temporal e informao especca do domnio da aplicao. Esta informao inclui o
estado do jogo, dos sensores do rob nomeadamente as juntas, giroscpios, sensores dos ps e
informao da viso. As mensagens so construdas utilizando um formato semelhante a Lisp.
28 Ambientes de simulao e agente FC Portugal
Figura 4.2: Arquitetura do servidor SimSpark[39]
4.3.2 Monitor
O monitor do SimSpark o elemento responsvel pela renderizao da simulao. Ele liga-
se a uma instncia do servidor da qual recebe continuamente um uxo de dados que descreve o
estado da simulao. No caso particular da simulao humanoide, este disponibiliza informao
adicional como o nome das equipas, o tempo de jogo, o estado do jogo e o resultado. O monitor
pode ser congurado para ler cheiros de registo de jogos anteriores de modo a repetir um jogo
previamente gravado. O formato do cheiro de log idntico ao protocolo utilizado na rede entre
o servidor e o monitor.
Figura 4.3: Monitor genrico do SimSpark
4.3 SimSpark 29
Figura 4.4: NAO real vs modelo simulado[40]
4.3.3 Agente
O SimSpark utiliza um modelo virtual do rob NAO da Aldebaran com 57 cm de altura e 4,5
Kg de massa. A sua estrutura bpede com 22 graus de liberdade permite uma multiplicidade de
movimentos do mesmo, aliado a uma grande mobilidade. Tal como se pode observar na gura 4.4
o modelo simulado bastante semelhante ao rob real. O modelo simulado est equipado com um
poderoso conjunto de sensores e atuadores que fornecem um vasto conjunto de informao para o
desenvolvimento do agente:
O rob NAO possui um giroscpio e um acelermetro para manter registo dos seus movi-
mentos radiais e axiais no espao tridimensional;
Para detetar contacto com o cho ou outros objetos na simulao, um sensor de fora em
cada p indica a presso atual neste;
Para obter informao visual sobre diferentes objetos no seu ambiente o rob NAO possui
um sensor de viso no centro da sua cabea;
Para efeitos de comunicao, o rob est equipado com um atuador de fala e o correspon-
dente sensor;
O sensor de estado de jogo utilizado para informar sobre o tempo de jogo e sobre o estado
do jogo;
A posio de cada junta representada por um sensor e manipulada pelo respetivo atuador.
A lista de todas as juntas e a sua disposio e orientao est esquematizada na gura 4.5.
30 Ambientes de simulao e agente FC Portugal
Figura 4.5: Disposio e orientao das juntas do NAO[41]
4.4 Alternativas ao simulador
Existem vrios simuladores disponveis que podem ser utilizados para o desenvolvimento e
teste de comportamentos em robs humanoides. Entre eles existem alguns simuladores com cara-
tersticas semelhantes ao SimSpark tais como:
Microsoft Robotics Studio (MSRS) - Aplicao freeware baseada em ambiente Windows
para criar aplicaes robticas para propsitos acadmicos e comerciais. Uma grande vari-
edade de plataformas hardware so suportadas;
Webots - Ferramenta de simulao desenvolvida pela Cyberbotics. Permite ao utilizador
modelar, programar e simular robs mveis. As bibliotecas de robs includas permitem
ao utilizador transferir os programas de controlo a vrios robs reais disponveis comercial-
mente;
Player/Stage/Gazebo - Projeto open-source que corre em ambientes UNIX. Player um
servidor de rede para o controlo de robs. Ele fornece uma interface limpa e simples dos
sensores e atuadores do rob atravs de uma rede IP. Stage e Gazebo fornecem ambientes
de simulao 2D e 3D respetivamente, e so capazes de simular uma populao de robs
a interagir com o ambiente. Alm disso, o Gazebo permite a simulao das propriedades
fsicas dos objetos simulados.
4.5 Ambiente e objetos do campo 31
4.5 Ambiente e objetos do campo
4.5.1 Dimenses
As dimenses do campo simulado so de 30 por 20 metros. Um campo da FIFA tem aproxi-
madamente 110 por 70 metros, fazendo com que as dimenses do campo simulado sejam 35% do
campo real. A rea central tem um raio de 2 metros, cada baliza tem 2, 1 por 0, 6 metros e uma
altura de 0, 8 metros, a grande rea tem 3, 9 por 1, 8 metros e por m a bola tem 0, 04 metros de
raio e um peso de 26 gramas [42].
Em cada canto existe uma bandeira distinta para que os agentes possam localizar-se no campo.
A posio de cada bandeira est acessvel ao agente, o qual as distingue atravs do seu cdigo
como mostrado na gura 4.6.
Figura 4.6: Dimenses do campo simulado [42]
4.5.2 Regras
As regras de jogo sero processadas por dois tipos de rbitros [43], um rbitro automtico e
um humano.
O rbitro automtico est responsvel por gerir o tempo de cada parte do jogo, guardar a
identicao do ltimo jogador a tocar na bola, detetar e atualizar os golos e detetar a sada da
bola da rea limite do jogo. O rbitro humano responsvel apenas por iniciar a partida.
32 Ambientes de simulao e agente FC Portugal
4.6 Agente FC Portugal 3D
4.6.1 Arquitetura
O agente da equipa FC Portugal 3D [44] est dividido em vrios pacotes, cada um com uma
funo especca. A maior parte do cdigo foi desenvolvido na linguagem C++ e segue totalmente
o paradigma orientado a objetos. A descrio desses pacotes [45] [44]:
WorldState: O pacote WorldState contm as classes para gerir a informao do ambiente.
Este ambiente inclui objetos presentes no campo, estado do jogo, e caratersticas do campo;
Physics: Pacote que contm classes responsveis pelos dados do agente. Inclui a estru-
tura do rob, a interface de cinemtica, controlo de baixo nvel das juntas e mdulos de
planeamento de trajetria;
Geometry: Contm classes para ajudar nas necessidades de geometria, entre as quais o
processamento de vetores, matrizes, polgonos, linhas, retngulos e crculos;
Skills: neste pacote que so denidas as classes relacionadas com habilidades do rob,
tais como andar, chutar, levantar, rodar, etc;
Utils: Contm classes que, no estando relacionadas diretamente com o agente, devem exis-
tir para este funcionar, tais como comunicao entre agentes, comunicao entre o agente e
o simulador e processamento de APIs;
Logger: Usado essencialmente para guardar todo o tipo de informao em cheiro. Ape-
sar de podermos guardar informao arbitrria, contm mtodos especcos para guardar
informao relativa a posies e sensores;
Optimization: Contm classes usadas no processo de otimizao;
Strategy: Contm classes com as funes de alto nvel do agente.
A gura 4.7 mostra a estrutura da arquitetura do agente.
4.6 Agente FC Portugal 3D 33
Figura 4.7: Arquitetura do agente da equipa FC Portugal 3D
4.6.2 Modelo
A construo do modelo do agente tem como base a leitura de um cheiro XML que contm
a estrutura do rob. Neste cheiro so denidos os membros do corpo, articulaes e sensores e
o seu posicionamento no corpo. A seguir mostrado um excerto de um cheiro de congurao
usado:
Listagem 4.1: Excerto de um cheiro XML usado na congurao do modelo do rob NAO.
<r obot t ype =" humanoi d " r s g f i l e =" nao / nao . r s g ">
<bodypa r t name=" t o r s o " mass=" 1. 2171 " / >
<bodypa r t name=" l h i p 1 " mass=" 0. 09 " / >
<bodypa r t name=" r hi p1 " mass=" 0. 09 " / >
. . .
< j o i n t name=" l l e g 2 " per =" l l j 2 " e f f =" l l e 2 "
a x i s =" 0 , 1 , 0 " min="25" max=" 45 ">
<anchor p a r t =" l h i p 1 " x=" 0" y=" 0" z=" 0" / >
<anchor p a r t =" l h i p 2 " x=" 0" y=" 0" z=" 0" / >
< / j o i n t >
< j o i n t name=" r l e g 2 " per =" r l j 2 " e f f =" r l e 2 "
a x i s =" 0 , 1 , 0 " min="45" max=" 25 ">
<anchor p a r t =" r hi p1 " x=" 0" y=" 0" z=" 0" / >
<anchor p a r t =" r hi p2 " x=" 0" y=" 0" z=" 0" / >
< / j o i n t >
. . .
< / r obot >
34 Ambientes de simulao e agente FC Portugal
Uma vez que a informao sobre da estrutura do rob guardada num cheiro XML, o cdigo
do agente da equipa torna-se mais permitindo, com o mesmo cdigo, denir e controlar outro tipo
de robs. Vrias propriedades e ferramentas tm base na informao presente neste cheiro, como
o caso das matrizes de transformao utilizadas na cinemtica.
4.7 Concluso
Neste captulo foram introduzidos vrios ambientes de simulao. As principais vantagens da
utilizao dos ambientes de simulao centram-se na reduo de custos e na facilidade de teste e
desenvolvimento de novos comportamentos e algoritmos. No entanto, necessrio que o ambiente
de simulao possua ummodelo do rob real o mais preciso possvel para que os resultados obtidos
sejam vlidos. Foi ainda apresentada uma descrio da arquitetura do agente utilizado pela equipa
FC Portugal no qual ser desenvolvido o controlador de posicionamento do centro de massa por
forma a assegurar a estabilidade do rob.
Captulo 5
Anlise de estabilidade
Um humanoide descrito como sendo um rob cuja construo e movimentos se aproximam
das caratersticas apresentados por um ser humano. Neste sentido, a locomoo humanoide e a
anlise da sua estabilidade constituem um elemento essencial ao desenvolvimento do rob. Esta
anlise tipicamente denida de acordo com trs planos:
Sagital - Dene as caratersticas de locomoo no eixo x do rob, i.e. andar para a frente e
para trs;
Frontal - Dene as caratersticas de locomoo no eixo y do rob, i.e. andar para o lado;
Transverso - Dene as caratersticas de locomoo em torno do eixo z, i.e. rodar sobre si.
O plano sagital, o plano que atravessa longitudinalmente o corpo dividindo-o nas partes
esquerda e direita. Oplano frontal divide o corpo nas partes anterior e posterior. Oplano transverso
o plano ortogonal aos dois planos anteriores. Este plano divide o corpo nas partes superior e
inferior. A gura 5.1 esquematiza os planos e lados referidos.
35
36 Anlise de estabilidade
Figura 5.1: Planos anatmicos de um humanoide[46]
5.1 Congurao de locomoo de robs
A locomoo bpede garante uma maior agilidade dos robs em evitar obstculos e permite
uma maior facilidade na interao rob humano e na utilizao dos robs em ambientes humanos
tendo como compromisso a ecincia e a complexidade do mtodo de locomoo. Quanto menor
o nmero de pernas, mais complexo se torna o desenvolvimento da locomoo devido aos proble-
mas que surgem com a estabilidade. por esta razo que tipicamente animais hexpodes sabem
caminhar nascena enquanto que os humanos apenas conseguem caminhar a partir dos 11 meses
de idade.
Figura 5.2: Congurao bpede, quadrpede e hexpode[47]
5.2 Polgono de suporte 37
5.2 Polgono de suporte
O polgono de suporte corresponde superfcie de contacto entre o p e o cho quando apenas
um p est no cho. Quando ambos os ps esto no cho, o polgono de suporte designado
pelo polgono convexo que contm ambos os ps. Este polgono pode ser encontrado desenhando
linhas retas que unem as partes exteriores de cada superfcie de contacto. A gura 5.3 representa
no plano transversal a derivao acima descrita.
Figura 5.3: Derivao do polgono de suporte no plano transverso [48]
5.3 Centro de Massa (CoM)
Em fsica, o centro de massa corresponde mdia pesada da localizao de todas as massas
num ou mais corpos. Inmeros clculos em mecnica so simplicados quando as quantidades
so referidas posio do centro de massa. O centro de massa CoM de um sistema de partculas
com massa total M vem denido em relao s suas posies r
i
e massas m
i
como:
CoM =
1
M

m
i
r
i
(5.1)
possvel calcular vrias propriedades interessantes a partir do centro de massa do corpo tal
como o momento total de um sistema de partculas que dado por:
p = Mv
cm
, (5.2)
onde M indica a massa total e v
cm
a velocidade do centro de massa. A velocidade do centro de
massa pode ser calculada atravs da derivada temporal da posio do centro de massa.
O centro de massa do corpo um critrio de estabilidade largamente utilizado para o controlo
do equilbrio esttico. Um rob considerado estaticamente estvel quando a projeo no solo
do seu centro de massa segundo a fora da gravidade est contida no interior do seu polgono de
suporte 5.4.
38 Anlise de estabilidade
Figura 5.4: Projeo do centro de massa e polgono de suporte[49]
5.4 Centro de Presso (CoP)
O centro de presso o ponto no plano de suporte do corpo onde atua a soma total das foras
de contacto, causando uma fora mas no um momento. Quando o rob est em p, a parte do
corpo em que so exercidas as foras de contacto so os ps, onde as componentes das foras de
contacto normais da superfcie do p de suporte so chamadas foras de presso. Um exemplo
da localizao do centro de presso no plano sagital est presente na gura 5.5. Nesta podemos
ver que a fora resultante igual soma das foras de presso F
p1
e F
p2
que atuam no centro de
presso.
Figura 5.5: Clculo do centro de presso[48]
A formulao geral do centro de presso dada por:
CoP =
z M
gr
F
gr
.z
, (5.3)
5.5 Zero Moment Point (ZMP) 39
onde M
gr
e F
gr
representam respetivamente os momentos e foras de reao do solo em relao
ao centro de presso e z o versor segundo a direo z, perpendicular ao plano do solo.
5.5 Zero Moment Point (ZMP)
Enquanto o Centro de Presso est relacionado com as foras de contacto, o ZMP est relaci-
onado com as foras que atuam no rob causadas pela gravidade e pelos seus atuadores. O ZMP
o ponto na superfcie onde a soma de todos os momentos relacionados com as foras geradas
pela gravidade e pelos atuadores so iguais a zero, momentos esses que atuam de forma tangencial
superfcie de contacto. Se a superfcie de contacto for horizontal, apenas so considerados os
momentos resultantes de movimento de pitch
1
e roll
2
, uma vez que a componente yaw
3
compla-
nar ao plano de suporte. Desde que as foras de contacto apaream numa nica superfcie planar,
o ZMP e o CoP coincidem[50]. Este resultado acontece devido ao facto da componente vertical
da fora resultante causada pela gravidade e os atuadores atuarem no ZMP. Assim, o ZMP deve
coincidir com o CoP para que o rob esteja em equilbrio. De uma outra forma a fora de presso
resultante e a resultante da componente vertical das foras gravitacionais e do atuador aplicariam
momento ao p que por sua vez iria rodar. O ZMP dado pela equao
ZMP =
z M
gi
F
gi
.z
, (5.4)
onde M
gi
e F
gi
representam respetivamente os momentos e foras devido gravidade e inrcia e z
o versor segundo a direo z, perpendicular ao plano do solo.
5.6 Locomoo esttica e dinmica
Figura 5.6: Equilbrio esttico e dinmico[47]
A diferena entre a estabilidade das diferentes conguraes apresentadas em 5.1 pode ser
explicada com os conceitos de equilbrio esttico e dinmico. A locomoo esttica assume que
o rob est sempre numa posio estaticamente equilibrada pelo que, mesmo que esta pare em
1
Rotao em torno do eixo y
2
Rotao em torno do eixo x
3
Rotao em torno do eixo z
40 Anlise de estabilidade
qualquer momento, o rob permanecer numa posio estvel. A velocidade de locomoo est-
tica baixa, o que signica que a dinmica do sistema pode ser ignorada. Quando isto feito, a
projeo do centro de massa no plano horizontal igual ao centro de presso, e para que o rob se
mantenha estaticamente equilibrado, o centro de massa e o centro de presso devem estar contidos
no polgono de suporte. A locomoo dinmica usualmente mais rpida em relao esttica.
Nesta, o centro de massa pode estar fora do polgono de suporte durante um tempo limitado, o que
signica que o rob estaria estaticamente desequilibrado durante a fase de suporte nico.
5.7 Concluso
Neste captulo foram introduzidos os mtodos mais utilizados de anlise de estabilidade e foi
apresentado o conceito de locomoo esttica e dinmica. O mtodo de anlise da posio do
centro de massa um mtodo bastante til na anlise de estabilidade para mtodos de locomoo
esttica garantindo assim que o rob est estaticamente equilibrado. Por outro lado, os mtodos
de anlise do CoP e do ZMP permitem uma anlise da estabilidade do rob durante a locomoo
dinmica do rob. Estes mtodos, juntamente com a anlise da cinemtica do rob, so peas
fundamentais para o desenvolvimento do controlador do centro de massa do rob.
Captulo 6
Anlise cinemtica
A cinemtica o ramo da fsica que estuda o movimento dos corpos. Os manipuladores ro-
bticos so compostos por segmentos ligados por juntas formando uma cadeia cinemtica. As
juntas so tipicamente rotativas, permitindo uma rotao relativa entre dois segmentos, ou pris-
mticas, quando permitem um movimento linear entre dois segmentos. Estas juntas encontram-se
representadas na gura 6.1.
A utilizao de transformaes geomtricas, tambm chamadas de transformaes rgidas,
para descrever o movimento dos corpos de um sistema mecnico simplica a derivao das duas
equaes de movimento, e fundamental para a anlise dinmica do sistema.
Figura 6.1: Junta rotativa e junta prismtica[51]
41
42 Anlise cinemtica
6.1 Movimentos rgidos e transformaes homogneas
Para o desenvolvimento das equaes cinemticas de um rob h necessidade de estabelecer
vrios sistemas de coordenadas para representar as posies e orientaes dos seus corpos rgidos
constituintes. Tambm necessrio conhecer as transformaes de coordenadas entre esses sis-
temas, de modo a possibilitar que vetores representativos de posies, velocidades e aceleraes,
dados num determinado sistema de coordenadas, possam ser representados noutros sistemas de
coordenadas. Neste sentido sero consideradas as operaes de rotao e de translao de um
sistema em relao a um outro sistema e apresentada a noo de transformao homognea, muito
usuais na rea da robtica.
6.1.1 Representao de posies
Figura 6.2: Representao de um ponto p em dois referenciais distintos[52]
A gura 6.2 apresenta dois referenciais o
0
x
0
y
0
e o
1
x
1
y
1
, em que este ltimo est rodado de 45
o
em relao ao primeiro. Pode-se vericar que o ponto p pode ser expresso em coordenadas rela-
tivas a ambos os referenciais pelo que para a distino dos mesmos ser adotado um sobrescrito.
Assim, as coordenadas de p em relao a ambos os referenciais poderiam ser representadas por:
p
0
=
_
5
6
_
, p
1
=
_
2, 8
4, 2
_
(6.1)
Dado que a origem de um referencial de coordenadas apenas um ponto no espao, pode-se
atribuir coordenadas que reetem a posio de um referencial de coordenadas em relao ao outro.
6.1 Movimentos rgidos e transformaes homogneas 43
Na gura 6.2 poderamos ter:
o
0
1
=
_
10
5
_
, o
1
0
=
_
10, 6
3, 5
_
(6.2)
Este mtodo permite a translao de coordenadas entre referenciais. No entanto, necessrio
ter em conta a orientao dos referenciais para que um ponto possa ser corretamente denido em
relao a diferentes referenciais.
6.1.2 Representao de rotaes
Figura 6.3: Rotao do referencial em y
0
de um ngulo [52]
Uma matriz de rotao uma transformao linear que quando multiplicada por um qualquer
vetor provoca uma rotao desse vetor segundo um eixo mantendo a sua norma (comprimento).
Quando aplicada num referencial, permite-nos representar a orientao do mesmo em relao a
outro referencial. Assim, possvel, recorrendo a uma matriz deste tipo, representar a orientao
de umcorpo rgido emrelao a umreferencial. Uma matriz que efetua a rotao de umreferencial
o
1
x
1
y
1
z
1
para um referencial o
0
x
0
y
0
z
0
denida em 6.3 onde cada coluna representa a projeo
de cada um dos eixos do referencial o
1
x
1
y
1
z
1
em o
0
x
0
y
0
z
0
.
R
0
1
=
_

_
x
1
.x
0
y
1
.x
0
z
1
.x
0
x
1
.y
0
y
1
.y
0
z
1
.y
0
x
1
.z
0
y
1
.z
0
z
1
.z
0
_

_ (6.3)
As matrizes de rotao so matrizes quadradas onde as colunas e linhas tmnorma unitria. Ocon-
junto destas matrizes de tamanho nn forma o grupo conhecido como Grupo Especial Ortogonal
SO(n), e goza das seguintes propriedades:
R
T
= R
1
;
44 Anlise cinemtica
As linhas e colunas de R so mutuamente ortogonais;
Cada linha e coluna de R um vetor unitrio;
det R = 1.
6.1.3 Transformaes homogneas
As transformaes homogneas combinam as operaes de rotao e translao e so utiliza-
das para derivar as equaes de cinemtica direta de um manipulador ou de uma cadeia cinemtica.
H =
_
R d
0 1
_
, R SO(3), d
3
(6.4)
O conjunto de matrizes da forma denida em 6.4, em que R e d correspondem a uma matriz
de rotao e translao, representam uma transformao homognea. Estas podem ser usadas na
transformao entre eixos de coordenadas que diram em translao e rotao. A composio de
transformaes pode ser efetuada por
H
2
0
= H
0
1
H (6.5)
no caso em que a segunda transformao, H, efetuada relativa ao eixo de coordenadas e
H
2
0
= HH
0
1
(6.6)
no caso em que a segunda transformao, H, efetuada relativa a um eixo de coordenadas xo.
6.2 Cinemtica direta
O objetivo da cinemtica direta determinar a posio e orientao do punho do rob dados os
valores das variveis das juntas do mesmo. Anteriormente foi descrito que uma cadeia cinemtica
composta por um conjunto de segmentos ligados por juntas. Estas podem ser muito simples,
como uma junta prismtica ou uma junta rotacional, ou um pouco mais complexas, como uma
junta esfrica. A diferena entre estas prende-se com os graus de liberdade que cada uma possui.
Neste trabalho assume-se que todas as juntas possuem apenas um grau de liberdade sem perda de
generalidade, visto que uma junta complexa pode ser decomposta numa sucesso de juntas com
um grau de liberdade conectadas por segmentos de comprimento nulo. Para a modelizao do
rob so convencionadas as seguintes regras:
Um rob possui n articulaes e n+1 segmentos;
Uma articulao i une os segmentos i 1 e i;
Atuar na articulao i faz o segmento i mover-se;
6.2 Cinemtica direta 45
O segmento 0 a base, e no se move;
A cada articulao i est associado um referencial o
i
x
i
y
i
z
i
.
A conveno Denavit-Hartenberg (DH)
Em 1955, Jacques Denavit e Richard Hartenberg introduziram uma conveno para a denio
das matrizes de juntas e segmentos por forma a normalizar os eixos de coordenadas para ligaes
espaciais. Esta conveno proporciona um procedimento sistemtico para executar a anlise da
cinemtica direta, simplicando a mesma de forma considervel. Nesta, cada transformao ho-
mognea H
i
representada como o produto de quatro transformaes bsicas:
H
i
= Rot
z,
i
Trans
z,d
i
Trans
x,a
i
Rot
x,
i
(6.7)
=
_

_
cos

i
sin

i
0 0
sin
i
cos
i
0 0
0 0 1 0
0 0 0 1
_

_
_

_
1 0 0 0
0 1 0 0
0 0 1 d
i
0 0 0 1
_

_
_

_
1 0 0 a
i
0 1 0 0
0 0 1 0
0 0 0 1
_

_
_

_
1 0 0 0
0 cos

i
sin
i
0
0 sin

i
cos

i
0
0 0 0 1
_

_
=
_

_
cos

i
sin

i
cos

i
sin

i
sin

i
a
i
cos
i
sin

i
cos

i
cos

i
cos

i
sin

i
a
i
sin
i
0 sin

i
cos

i
d
i
0 0 0 1
_

_
onde os parmetros
i
, a
i
, d
i
,
i
esto associados ao segmento e junta i e representam:

i
: ngulo entre o eixo x atual e o seguinte;

i
: ngulo entre o eixo z atual e o seguinte;
d
i
: distncia entre o eixo x atual e o seguinte;
a
i
: distncia entre o eixo z atual e o seguinte.
Este mtodo dene referenciais associados a cada articulao seguindo dois princpios bsicos, tal
como representado na gura 6.4:
1. O eixo Z
n
est na direo do eixo da articulao a
n
.
2. O eixo x
n
perpendicular ao plano denido pelos eixo Z
n
e Z
n1
.
Uma vez que o NAO um rob humanoide, a anlise da cinemtica deste pode ser decomposta
nas suas vrias cadeias distintas, cabea e os seus quatro membros, unidas por um corpo xo, o
torso. Aps ter sido efetuada a anlise cinemtica do rob NAO foram obtidas as tabelas de
parmetros DH 6.1, 6.2, 6.3, 6.4 e 6.5.
46 Anlise cinemtica
Tabela 6.1: Parmetros associados cinemtica direta da cabea segundo a conveno DH
Joint Name a d
HeadYaw 0.0 0.0 0.0 0.0
HeadPitch /2 0.0 /2 0.0
Tabela 6.2: Parmetros associados cinemtica direta do brao esquerdo segundo a conveno
DH
Joint Name a d
LShoulderPitch /2 0.0 0.0 0.0
LShoulderRoll /2 0.0 /2 0.0
LElbowYaw /2 0.0 0.0 UpperArmLength
LElbowRoll /2 0.0 0.0 0.0
LWristYaw /2 0.0 0.0 LowerArmLength
Tabela 6.3: Parmetros associados cinemtica direta do brao direito segundo a conveno DH
Joint Name a d
RShoulderPitch /2 0.0 0.0 0.0
RShoulderRoll /2 0.0 /2 0.0
RElbowYaw /2 0.0 0.0 UpperArmLength
RElbowRoll /2 0.0 0.0 0.0
RWristYaw /2 0.0 0.0 LowerArmLength
Tabela 6.4: Parmetros associados cinemtica direta da perna esquerda segundo a conveno DH
Joint Name a d
LHipYawPitch 3/4 0.0 /2 0.0
LHipRoll /2 0.0 /4 0.0
LHipPitch /2 0.0 0.0 0.0
LKneePitch 0.0 TighLength 0.0 0.0
LAnklePitch 0.0 TibiaLength 0.0 0.0
LAnkleRoll /2 0.0 0.0 0.0
Tabela 6.5: Parmetros associados cinemtica direta da perna direita segundo a conveno DH
Joint Name a d
RHipYawPitch /4 0.0 /2 0.0
RHipRoll /2 0.0 /4 0.0
RHipPitch /2 0.0 0.0 0.0
RKneePitch 0.0 TighLength 0.0 0.0
RAnklePitch 0.0 TibiaLength 0.0 0.0
RAnkleRoll /2 0.0 0.0 0.0
6.3 Cinemtica inversa 47
Figura 6.4: Atribuio de eixos segundo a conveno DH[53]
6.3 Cinemtica inversa
Enquanto a cinemtica direta permite conhecer as coordenadas das articulaes no espao car-
tesiano de acordo com os respetivos ngulos e comprimentos dos seus segmentos associados, a
cinemtica inversa permite-nos calcular os valores das coordenadas articulares com base na posi-
o da ponta do objeto. Algumas caratersticas associadas mecnica do nosso objeto, tais como
o nmero de articulaes, graus de liberdade e limites de rotao e translao de cada articulao,
podem tornar o clculo complexo e muitas vezes complicado de se obter uma nica soluo. De
facto, mltiplas combinaes de ngulos podem permitir ao rob atingir a mesma posio e ori-
entao da extremidade. A determinao da congurao correta das articulaes passa portanto
pela resoluo de um sistema altamente no linear, baseado nas restries e limitaes fsicas do
rob. O processo de resoluo de um problema tradicional de cinemtica inversa parte das coor-
denadas dos pontos inicial e nal, dos comprimentos de todos os segmentos envolvidos, e do tipo
de articulaes, sendo o conhecimento destas variveis necessrio e suciente para a descoberta
de pelo menos uma soluo. No entanto, dois fenmenos podem conduzir existncia de innitas
solues:
Redundncia, quando o nmero de articulaes excede o nmero de graus de liberdade. A
complexidade da cinemtica inversa tanto maior quanto maior for o nmero de articula-
es. Seis o nmero mnimo de articulaes necessrio para atingir seis graus de liberdade
e, portanto, possibilitar ao rob atingir, dentro do volume de trabalho, qualquer posio e
orientao do segmento da extremidade;
Singularidade, quando vrias combinaes de uma ou mais articulaes sobrepostas colo-
cam a articulao seguinte na mesma posio. Uma singularidade pode ser identicada
atravs da anlise do Jacobiano do manipulador, e da determinao do conjunto de valores
das articulaes que anula o seu determinante.
48 Anlise cinemtica
6.3.1 Braos
Figura 6.5: Brao do NAO e esquemtico das suas articulaes[54]
Os ombros do NAO correspondem s articulaes que se encontram imediatamente acopladas
ao torso, que possui um referencial xo, e so modelizados pelas duas articulaes rotativas cor-
respondentes aos ngulos
1
e
2
da gura 6.5. Uma vez que os referenciais do torso e do ombro
possuem a mesma orientao, a transformao das coordenadas de um ponto entre os referenciais
pode ser efetuada por uma simples translao.
Denindo inicialmente a articulao
3
a 0, possvel calcular
1
atravs da altura do ponto
desejado H
Z
e da distncia do ombro sua projeo distance no plano xy do referencial do ombro
do rob atravs de:

1
= arcsin(H
Z
/distance) (6.8)
O ngulo
4
, denido como o ngulo Yaw do cotovelo, pode ser obtido atravs da lei dos
cossenos denida como:
a
2
= b
2
+c
2
2.b.c. cos

A (6.9)
Aplicando a equao 6.9 ao tringulo formado pelo ombro, brao e cotovelo representado na
gura 6.6,
4
dado por:

4
=
_
_
_
arccos
_
distance
2
armLength
2
f orearmLength
2
2. f orearmLength.armLength
_
se brao esquerdo
arccos
_
distance
2
armLength
2
f orearmLength
2
2. f orearmLength.armLength
_
se brao direito
(6.10)
Por m, o ngulo
2
pode ser obtido pela soma do ngulo
2
1
formado entre o segmento head
direction e distance da gura 6.6 e o ngulo
2
2
formado entre este e o segmento armLength. O
6.3 Cinemtica inversa 49
Figura 6.6: Deduo da cinemtica inversa
primeiro ngulo pode ser calculado por:

2
1
=
_
arctan(H
y
/H
x
) se brao esquerdo
arctan(H
y
/H
x
) se brao direito
(6.11)
O segundo ngulo obtido atravs da aplicao da lei dos cossenos, representada pela equao
6.9, ao tringulo formado pelo ombro, brao e cotovelo representado na gura 6.6:

2
2
= arccos
_
f orearmLength
2
armLength
2
distance
2
2.distance.armLength
_
(6.12)
6.3.2 Pernas
O clculo da cinemtica inversa das pernas do rob NAO so uma componente central para o
controlo do rob dado que qualquer mdulo de locomoo e posicionamento dinmico necessita
do mesmo. A cinemtica inversa uma ferramenta muito til para a criao de movimentos,
trajetrias e a colocao do tornozelo do rob em pontos precisos. No entanto, o clculo da
cinemtica inversa analiticamente no simples uma vez que as juntas yaw da bacia esto rodadas
de 45
o
. O ponto desejado do p dado atravs de uma matriz que representa uma transformao
homognea com a posio e orientao do p em relao bacia do rob [11] [12].
Dado que a articulao situada na anca do rob se encontra rodada de 45
o
em torno do eixo x
necessrio calcular a posio em relao a este referencial, AncaOrtogonal, obtendo-se assim a
transformao homognea:
H
AncaOrtogonal
Pe
= Rot
x
(

4
).H
Anca
Pe
(6.13)
50 Anlise cinemtica
Figura 6.7: Articulaes das pernas do NAO
Figura 6.8: Referenciais utilizados no clculo da cinemtica inversa das pernas do NAO
6.3 Cinemtica inversa 51
Como possvel observar na gura 6.8, o joelho e os membros da perna formam um tringulo
onde todos os lados so conhecidos. Um dos lados, l
trans
, dado pelo mdulo do vetor de trans-
lao da matriz H
AncaOrtogonal
Pe
, os outros dois, (l
coxa
e l
tibia
), so parmetros fsicos do rob NAO.
Usando o teorema dos cossenos possvel determinar os ngulos do tringulo. O ngulo entre
l
coxa
e l
tibia
dado pela equao:
c
2
= a
2
+b 22.a.b. cos (6.14)
= arccos
l
2
coxa
+l
2
tibia
+l
2
trans
2.l
coxa
.l
tibia
(6.15)
Uma vez que o ngulo do joelho
joelho
zero quando a perna est esticada, este denido
atravs de:

joelho
= (6.16)
O ngulo oposto a l
coxa
tambm tem que ser calculado visto corresponder ao ngulo pitch do
p:

ppitch1
= arccos
l
2
tibia
+l
2
trans
l
2
coxa
2.l
tibia
.l
trans
(6.17)
Se combinarmos o tringulo e a articulao do p veremos que formamuma espcie de unidade
pan-tilt
1
. O ngulo pitch e roll dessa articulao pode ser calculado usando atan2:

ppitch2
= atan2(x,
_
y
2
+z
2
) (6.18)

peRoll
= atan2(y, z) (6.19)
onde x, y, z so as componentes do vetor translao da matriz H
AncaOrtogonal
Pe
. O ngulo pitch do p
dado pela soma das suas duas partes constituntes:

pePitch
=
ppitch1
+
ppitch2
(6.20)
Com os ngulos do joelho e do p calculados podemos calcular os ngulos correspondentes
articulao situada na anca. Para calcular estes ngulos adicionamos um referencial auxiliar
(chamado de Coxa na gura 6.8) e extramos esses ngulos diretamente da matriz de transformao
1
Sistema usado, por exemplo, pelas cmaras de vigilncia.
52 Anlise cinemtica
homognea H
Coxa
AncaOrtogonal
, que pode ser calculada por:
H
Coxa
AncaOrtogonal
= (H
Pe
Coxa
)
1
.H
Pe
AncaOrtogonal
(6.21)
onde
H
Pe
AncaOrtogonal
= (H
AncaOrtogonal
Pe
)
1
(6.22)
e a matriz H
Pe
Coxa
pode ser calculada seguindo a cadeia do p at coxa:
H
Pe
Coxa
= Rot
x
(
peRoll
).Rot
y
(
pePitch
).Trans
z
(l
tibia
).Rot
y
(
joelho
).Trans
z
(l
coxa
) (6.23)
Para entendermos o clculo dos ngulos da articulao da anca a matriz H
Coxa
AncaOrtogonal
repre-
sentada em funo da rotao em torno dos diferentes eixos (a matriz est numa notao abreviada,
exemplo, c
x
signica cos
x
).
H
Coxa
AncaOrtogonal
= Rot
z
(
z
).Rot
x
(
x
).Rot
y
(
y
) =
_

_
c
y
c
z
s
x
s
y
s
z
c
x
s
z
c
z
s
y
+c
y
s
x
s
z
c
z
s
x
s
y
+c
y
s
z
c
x
c
z
c
y
c
z
s
x
+s
y
s
z
c
x
s
y
s
x
c
x
c
y
_

_ (6.24)
de onde conclumos que:

x
= arcsin(r
21
)
2
(6.25)
O ngulo
z
retiramos de :
r
01
r
11
=tan
z
(6.26)

ancaYaw
=
z
= atan2(r
01
, r
11
) (6.27)
e seguindo o mesmo raciocnio:

ancaPitch
=
y
= atan2(r
20
, r
22
) (6.28)
S nos falta compensar a rotao de 45 graus referente ao referencial AncaOrtogonal:

ancaRoll
=
x

4
= arcsin(r
21
)

4
(6.29)
6.4 Singularidades
Qualquer que seja a posio dos braos do rob existe uma e uma s combinao das quatro
articulaes, exceo de dois casos[54]. De facto,
2
= 90
o
faz com que o cotovelo atinja
sempre a mesma posio, independentemente do valor aplicado em
1
. Quando
4
= 0
o
, uma sin-
gularidade surge por se estar a atingir um ponto limite do volume de trabalho. A matriz Jacobiana
2
O primeiro ndice representa a linha, e o segundo a coluna da matriz. Os ndices comeam em zero.
6.4 Singularidades 53
consiste numa representao matricial de 6 linhas e N colunas, em que N o nmero articula-
es de um dado manipulador. Esta matriz composta pelas derivadas parciais das equaes de
cinemtica, em ordem varivel a que corresponde cada articulao, e descreve a relao entre as
velocidades linear e angular da extremidade e as velocidades lineares e angulares de cada uma das
articulaes, e que so conhecidas. Destas seis linhas, as trs primeiras reetem a relao entre as
velocidades lineares nos trs eixos, enquanto as restantes reetem a relao entre as velocidades
angulares. Entre os vrios aspetos em que esta matriz til, ela permite ainda determinar com-
binaes de articulaes que, quando aplicadas no manipulador, originam singularidades (como
os dois casos acima descritos). Na matriz Jacobiana, uma singularidade detetada quando uma
combinao particular de valores reduz a caraterstica da matriz, e estes pontos so caraterizados
por geralmente neles existir uma innidade de solues.
A equao 6.30, abaixo determinada, consiste no Jacobiano do brao da gura 6.5. Nessa
mesma gura, a representao direita explicita a congurao obtida quando aplicado o valor
de 0
o
a cada articulao, sendo a base da matriz abaixo calculada. Foi tambm tida em conside-
rao a representao dos referenciais associados a cada articulao segundo o mtodo D-H. Por
outro lado, a matriz Jacobiana de manipuladores com menos de 6 articulaes no quadrada, tor-
nando impossvel determinar as combinaes singulares atravs do clculo do seu determinante.
_
J
V
J

_
=
_
J
v1
J
v2
J
v3
J
v4
J
1
J
2
J
3
J
4
_
(6.30)
Genericamente, uma singularidade pode ser vericada atravs do Jacobiano, quando uma dada
combinao de valores implica a existncia de colunas dependentes, tornando o sistema indeter-
minado. Para qualquer manipulador, independentemente do nmero e tipo de articulaes que o
constituem, possvel encontrar tais combinaes recorrendo matriz pseudo inversa do Jacobi-
ano (J
+
= J
T
(JJ
T
)
1
)), e vericando para que condies o determinante de JJ
T
se anula [52].
O clculo do Jacobiano foi assim feito recorrendo ferramenta MatLab. Dado o tamanho
das matrizes calculadas ser demasiado grande, assim como as equaes para o determinante de
JJ
T
, resultado da presena de quatro articulaes rotativas, estes resultados no foram inclu-
dos nesta seco. Todavia, substituindo na equao det(JJ
T
) o valor
4
= 0
o
, este determinante
anula-se, conrmando a existncia de uma singularidade neste ponto. Da mesma forma, substituir

2
= 90
o
anula igualmente este determinante e corresponde, portanto, segunda singularidade
deste manipulador. Efetivamente, colocar
2
= 90
o
corresponde abertura dos braos para os
lados, paralelamente ao cho, alinhando as articulaes associadas a
1
e
2
, e originando a perda
de independncia de colunas do Jacobiano deste manipulador e, portanto, a diminuio da sua
caraterstica. Assim, foram adicionadas as condies 6.31 e 6.32 com o objetivo de eliminar a
instabilidade dos ngulos
1
e
3
. Note-se que, embora
2
=90
o
origine igualmente uma singu-
laridade, esta no foi considerada, uma vez que esta articulao do rob est sicamente limitada,
54 Anlise cinemtica
sendo impossvel atingir este valor.

1
=
_
_
_

1
se |
2
90
o
| > 5
o
0
o
se |
2
90
o
| 5
o
(6.31)

3
=
_
_
_

1
se |
4
| > 5
o
0
o
se |
4
| 5
o
(6.32)
6.5 Concluso
Neste captulo foi apresentada a anlise da cinemtica direta e inversa do rob que permitem
calcular a posio das extremidades do rob de acordo com os ngulos das juntas do rob e o
inverso, respetivamente. Esta anlise essencial para qualquer mdulo que implique a movimen-
tao de um rob, tal como acontece com o controlador do centro de massa desenvolvido.
Captulo 7
Controlador do Centro de Massa
A teoria de controlo um ramo da engenharia com o objetivo de controlar um sistema din-
mico atravs das suas entradas. A aplicao destes controladores estende-se a imensas reas, entre
as quais a robtica, onde so muito utilizados no controlo dos servo motores e em mdulos de
estabilidade. Em engenharia, um sistema de controlo tem pelo menos dois mdulos principais,
o prprio controlador e o sistema a ser controlado[55]. Para que o rob se mantenha estvel
imprescindvel um mdulo de estabilidade que utilize um controlador dinmico para atingir os
objetivos de controlo especicados. O controlador desenvolvido, cujo objetivo manter o rob
estvel em meios de locomoo esttica, utiliza o posicionamento do centro de massa para garantir
que o rob se mantm estvel durante movimentos precisos.
7.1 Controlo de malha aberta
Ummtodo de controlo emmalha aberta no possui nenhuma noo do estado do sistema, pelo
que no sabe se a sada do sistema est ou no de acordo com a pretendida. Assim, utilizando este
tipo de controladores no existe forma de corrigir uma diferena entre o valor de sada esperado
e o real (chamado de erro), uma vez que nenhuma informao est disponvel em relao a esta
diferena. A gura 7.1 mostra a arquitetura genrica de um controlador em malha aberta para um
valor discreto no tempo n onde x[n] representa a entrada, u[n] representa a sada do controlador e
y[n] representa a sada do sistema controlado.
Figura 7.1: Arquitetura tpica de controlador em malha aberta[51]
55
56 Controlador do Centro de Massa
Para uma utilizao correta deste tipo de controlador necessrio um conhecimento muito
preciso do sistema a controlar. O controlo em malha aberta tipicamente utilizado em sistemas
cuja relao entrada-sada pode ser modelada por uma equao matemtica. Se o comportamento
do sistema previsvel, o controlo em malha-aberta suciente para controlar o sistema. Por
outro lado, o sistema pode necessitar de ser realimentado. Sendo K
c
o ganho proporcional do
controlador e K
p
o ganho proporcional do sistema, a sada do sistema ser dada por:
y[n] = K
p
u[n] = K
c
(K
p
x[n]) (7.1)
Assumindo que o sistema corresponde a um sistema linear, que poder no ser o caso, qual-
quer perturbao externa produzir um erro no sistema e o controlador no estar consciente da
perturbao pelo que no corrigir o erro. Se o modelo matemtico da planta no preciso, as
consequncias podem ser catastrcas, dependendo da necessidade do sistema. Para sistemas no
lineares, este problema torna-se ainda mais complexo uma vez que os sistemas no lineares so
difceis de modelizar e as equaes no lineares so difceis de resolver.
7.1.1 Vantagens
As principais vantagens do controlo em malha aberta so:
Simples de compreender;
Simples de implementar;
Implementao e manuteno de baixo custo.
7.1.2 Desvantagens
As principais desvantagens do controlo em malha aberta so:
necessrio um modelo preciso do sistema;
O sistema no pode ser realimentado;
sensvel a perturbaes externas.
7.2 Controlo de malha fechada
Como alternativa para o controlo em malha aberta pode ser utilizado um controlo em malha
fechada. Tipicamente no possvel obter um modelo preciso do sistema a controlar. Nesse casso
melhor utilizar um controlador capaz de se adaptar entrada do sistema, tendo em considerao
no s a sada desejada, mas tambm a sada efetiva do sistema. Quando a sada do sistema
realimentada, fazendo parte das suas entradas, temos o chamado controlo em malha fechada. A
gura 7.2 representa a arquitetura genrica de um sistema de controlo em malha fechada.
7.2 Controlo de malha fechada 57
Figura 7.2: Arquitetura tpica de controlador em malha fechada[51]
Para um valor discreto no tempo n, x[n] representa a entrada, u[n] representa a sada do con-
trolador e y[n] representa a sada do sistema controlado. Adicionalmente, f [n] representa a infor-
mao de realimentao disponibilizada por um sensor.
Assumindo um controlo de realimentao negativa, a informao ser subtrada da sada dese-
jada para gerar o chamado erro, que representado na gura por e[n]. Este erro, que representa a
diferena entre a sada desejada e a sada efetiva, ser a nova entrada do controlador. Sejam K
c
, K
p
e K
f
os ganhos proporcionais do controlador, sistema e sensor respetivamente, a sada do sistema
ser dada em funo do seguinte sistema de equaes [56]:
_

_
y[n] = K
p
u[n]
u[n] = K
c
(x[n] f [n])
f [n] = K
f
y[n]
(7.2)
Resolvendo este sistema de equaes o sistema dado por:
y[n] =
K
p
K
c
1+K
p
K
c
K
f
x[n] (7.3)
Dividindo o numerador e o denominador da equao por K
p
K
c
temos:
y[n] =
1
1
K
p
K
c
+K
f
x[n] (7.4)
Assumindo que o ganho do controlador, K
c
, sucientemente grande para descartar o primeiro
termo do denominador, uma simplicao da equao ser:
y[n]
1
K
f
x[n] (7.5)
A equao 7.5 signica que, se o ganho do controlador for sucientemente grande, a sada
torna-se menos sensvel a perturbaes externas. Visto que os sistemas reais so sempre afetados
58 Controlador do Centro de Massa
por algum rudo, com principal destaque na robtica, este tipo de controlador tem vrias vantagens
em relao ao controlador em malha aberta descrito na seco anterior.
7.2.1 Vantagens
As principais vantagens de um controlo em malha fechada so:
O sistema realimentado para correo de erros;
Menos sensvel a perturbaes externas;
No existe necessidade de um modelo preciso do sistema.
7.2.2 Desvantagens
As principais desvantagens de um controlo em malha fechada so:
A arquitetura mais complexa do que em malha aberta;
Necessita de sensorizao do sistema;
A sua estrutura inerentemente reativa no adequada para atuar em antecipao.
7.2.3 Controlo PID
Figura 7.3: Controlador PID[51]
PID signica Proporcional-Integral-Derivativo e uma implementao particular de um con-
trolador em malha fechada, vastamente utilizado em processos industriais e na robtica [57] [58]
[59] [55]. Tambm conhecido como o controlador de trs termos uma vez que utiliza trs ganhos
para gerar a sada. A sada do controlador como sinal contnuo descrita por:
u(t) = K
P
e(t) +K
I
_
t
0
e()d +K
D
de(t)
dt
(7.6)
7.2 Controlo de malha fechada 59
O equivalente discreto da equao dado pelo seguinte sistema de equaes:
_

_
u[n] = K
P
P[n] +K
I
I[n] +K
D
D[n]
P[n] = e[n]
I[n] = I[n1] +Te[n]
I[n] =
e[n]e[n1]
T
(7.7)
Onde T o intervalo entre amostragens discretas. A arquitetura genrica a mesma da gura
7.2. O que faz este controlo especial a sua congurao interna do bloco controlador. A gura
7.3 representa uma viso detalhada do bloco do controlador no caso de um controlador PID.
O controlador pode aparecer em diferentes variantes: controlador Proporcional (P) (o mais
simples, utiliza apenas o termo proporcional), Proporcional-Integral (PI), Proporcional-Derivativo
(PD) e nalmente controladores PID (todos os termos so usados).
Tomando por exemplo uma junta de um humanoide, se se quiser mover a junta em 1 radiano, a
resposta da junta no ser imediata, mas haver algum tempo de subida. O objetivo do controlador
aumentar a subida o mais rpido possvel sem produzir instabilidade. A gura 7.4 representa
quatro situaes da junta controlada.
Figura 7.4: Resposta de controlador de juntas PID (a)controlador P (b)controlador PD
(c)controlador PI (d)controlador PID[51]
A gura 7.4 mostra algumas consequncias dos diferentes termos. Um ganho proporcional
60 Controlador do Centro de Massa
elevado pode produzir uma sobre-elongao. O termo integral reduz o erro em regime estacio-
nrio mas, tal como o termo proporcional, reduz o tempo de subida e pode produzir uma sobre-
elongao, pelo que pode ser necessrio diminuir o ganho proporcional para somar o termo in-
tegral. O termo derivativo reduz a sobre-elongao e tem um pequeno efeito no erro em regime
estacionrio. Existem vrias aproximaes para denir os ganhos do controlador PID embora a
mais popular seja o mtodo de Ziegler-Nichols [60].
7.3 O controlador
O controlador desenvolvido permite a utilizao de vrias arquiteturas para o controlo da pro-
jeo do centro de massa no solo atravs do controlo do tipo PID. Todos os mtodos de controlo
desenvolvidos foram ajustados de acordo com o mtodo heurstico de Ziegler Nichols.
7.3.1 Braos
Figura 7.5: Projeo do brao do rob segundo o eixo y
Dado que os braos do rob durante uma partida de futebol so raramente utilizados, inicial-
mente foi desenvolvido um controlador que utiliza os braos para colocar o centro de massa do
corpo numa determinada posio denida, visto que o volume de trabalho dos braos do rob
corresponde a uma semiesfera que assenta no plano frontal do rob. O controlador utilizado, do
tipo PID, recebe o erro da posio do centro de massa em coordenadas (x,y) referentes ao torso do
rob e calcula a posio desejada para a colocao dos braos do rob em (x,y). Dado que para
efeitos de estabilidade, a posio do brao dever ser o mais prxima possvel do plano de suporte,
a coordenada z dos braos calculada atravs do comprimento do brao l
arn
e pela posio (x,y)
deste, por:
z =
_
l
2
arm
+x
2
+y
2
(7.8)
7.3 O controlador 61
As coordenadas obtidas aps a equao 7.8 so aplicadas ao mdulo de cinemtica inversa desen-
volvido para os braos que posteriormente ajusta a posio dos mesmos de acordo com a posio
do centro de massa do rob.
Aplicando a pose representada na gura 7.5 a posio do centro de massa do rob teve a
resposta apresentada na gura 7.6.
Figura 7.6: Resposta do CoM do rob em relao projeo do brao do rob segundo o eixo y
Este mtodo revelou ser pouco ecaz no controlo da posio do centro de massa do rob uma
vez que a massa dos braos demasiado pequena em relao massa total do rob pelo que a
manipulabilidade do centro de massa de acordo com este mtodo muito baixa. Na gura 7.6
pode vericar-se que um brao consegue apenas alterar a posio do centro de massa do rob em
cerca de 9mm, quer na sua projeo no eixo x, quer na sua projeo no eixo y.
7.3.2 Pernas
Para controlarmos a posio do centro de massa do rob h que ter em conta a fase de loco-
moo em que o mesmo se encontra. A gura 7.7 representa as fases de locomoo humanoide.
Figura 7.7: Fases da locomoo
62 Controlador do Centro de Massa
Tal como se pode observar na gura 7.7, as fases a e c correspondem s fases de duplo suporte,
em que ambos os ps se encontram em contacto com o solo, e as fases b e d correspondem s fases
de suporte nico nas quais apenas um dos ps se encontra em contacto com o solo.
7.3.2.1 Suporte duplo
Na fase de suporte duplo so utilizadas as juntas pitch e roll do p e da anca. Deste modo,
aplicando um ngulo igual entre cada par de juntas anca e p com sinal oposto, o corpo do rob
transladado mantendo-se paralelo ao cho. Desta modo possvel controlar a posio em x do
rob atravs do ngulo aplicado s juntas pitch do p e da bacia do rob, e possvel controlar a
posio y do rob atravs do ngulo aplicado s juntas roll do p e da bacia do rob. Este mtodo
de controlo est esquematizado na gura 7.8.
Figura 7.8: Controlo do centro de massa do rob atravs das juntas pitch e roll da anca e dos ps
em fase de duplo suporte
A gura 7.9 apresenta a resposta do controlador aps a aplicao de uma entrada em onda
quadrada que varia entre a posio (0,0) e (-0.05 , -0.02), em metros, e com um perodo de 6
segundos. Atravs da anlise da mesma, possvel vericar que o sistema apresenta uma resposta
subamortecida, com um tempo de subida e de assentamento um pouco elevados. Esta caraterstica
demonstra que o controlador preciso e ideal para situaes que requerem um posicionamento
exato do centro de massa do rob.
7.3 O controlador 63
Figura 7.9: Posio do centro de massa do rob controlado em fase de duplo suporte
7.3.2.2 Suporte nico
Na fase de suporte nico podem ser utilizadas apenas as juntas da bacia para controlar o centro
de massa do rob, o que provoca uma alterao na orientao do torso do rob, ou podem ser
utilizadas as juntas dos ps do rob juntamente com a bacia de modo a que a orientao do torso
se mantenha igual.
Figura 7.10: Controlo do centro de massa do rob atravs das juntas pitch e roll da anca e dos ps
em fase de suporte nico
Como se pode observar na gura 7.10, atravs da aplicao de um ngulo determinado pelo
controlador PID ao p e anca do rob, com este ltimo tendo sinal oposto ao primeiro, possvel
deslocar o centro de massa do rob mantendo a orientao do tronco.
A gura 7.11 apresenta a resposta do controlador aps a aplicao de uma entrada em onda
quadrada que varia entre a posio (0,0) e (-0.05 , -0.02), em metros, e com um perodo de 6
64 Controlador do Centro de Massa
segundos. Atravs da anlise da mesma, possvel vericar que o sistema apresenta uma resposta
subamortecida, com um tempo de subida e de assentamento um pouco elevados. Esta caraterstica,
tal como esperado semelhante da gura 7.9, demonstra que o controlador preciso e ideal para
situaes que requerem um posicionamento exato do centro de massa do rob.
Figura 7.11: Posio do centro de massa do rob controlado atravs das juntas da bacia e do p
em fase de suporte nico
A sequncia de controlo do centro de massa do controlador anteriormente referido est repre-
sentada na gura 7.12.
Figura 7.12: Sequncia de controlo do centro de massa do rob controlado atravs das juntas da
bacia e do p em fase de suporte nico
Como se pode observar na gura 7.13, atravs da aplicao de um ngulo determinado pelo
controlador PID anca do rob possvel deslocar o centro de massa do rob. Desta forma, as
restantes articulaes do rob esto disponveis para a execuo de qualquer tarefa que o rob
necessite.
A gura 7.14 apresenta a resposta do controlador aps a aplicao de uma entrada em onda
quadrada que varia entre a posio (0,0) e (-0.05 , -0.02), em metros, e com um perodo de 6
segundos. Atravs da anlise da mesma, possvel vericar que o sistema apresenta uma resposta
subamortecida, com um tempo de subida e de assentamento baixos. Esta caraterstica demonstra
que o controlador possui uma resposta rpida e precisa, ideal para situaes que requerem um
posicionamento rpido do centro de massa do rob como em situaes de equilbrio.
7.3 O controlador 65
Figura 7.13: Controlo do centro de massa do rob atravs das juntas pitch e roll da anca em fase
de suporte nico
Figura 7.14: Posio do centro de massa do rob controlado atravs das juntas da bacia em fase
de suporte nico
A sequncia de controlo do centro de massa do controlador anteriormente referido est repre-
sentada na gura 7.15.
Atravs da sobreposio da resposta do controlador que utiliza as juntas da bacia e do p, da
gura 7.11, e da resposta do controlador que utiliza apenas as juntas da bacia, presente na gura
7.14, obteve-se o grco presente na gura 7.16. Neste possvel denotar que atravs da utilizao
do segundo controlador possvel obter-se uma resposta mais rpida que o primeiro, apresentando
contudo uma sobre-elongao de cerca de 5%. Assim, o controlador que utiliza as juntas da bacia e
do p dever ser utilizado emsituaes na qual a orientao do tronco dever permanecer constante
durante o controlo ou em aplicaes onde no seja permitida sobre-elongaes, como no caso do
posicionamento preciso do centro de massa do rob prximo dos extremos do polgono de suporte
do mesmo. A utilizao de apenas as juntas da bacia por parte do controlador dever ser utilizada
66 Controlador do Centro de Massa
Figura 7.15: Sequncia de controlo do centro de massa do rob controlado atravs das juntas da
bacia em fase de suporte nico
em situaes de estabilizao do rob devido sua resposta rpida, possibilidade de existncia
de sobre-elongao e sua abordagem minimalista que permite a utilizao das restantes juntas
do rob para a execuo de um determinado comportamento.
Figura 7.16: Comparao da resposta entre o controlador que utiliza as juntas da bacia e do
p(azul) e o controlador que utiliza apenas as juntas da bacia(verde)
7.4 Polgono de suporte
Atravs da anlise da cinemtica direta presente no captulo 6, possvel calcular a posio
dos ps do rob em relao ao torso. Atravs do clculo do polgono de suporte, e analisando a
posio da projeo do centro de massa do rob no solo, possvel saber se o rob est estati-
camente estvel ou no. Por forma a tornar o mtodo robusto e adaptvel, o polgono de suporte
foi calculado atravs da utilizao do algoritmo de Melkman que capaz de calcular o polgono
convexo de uma cadeia poligonal simples em tempo linear. A ideia chave deste algoritmo man-
ter uma verso atualizada do polgono convexo, e para cada novo ponto encontrado na entrada da
cadeia poligonal testado se o polgono convexo necessita de ser atualizado.
A sada a cada passo do algoritmo um polgono convexo com orientao anti-horria, cujo
primeiro e ltimo elemento so o mesmo ponto, que corresponde ao ltimo ponto a ser adicionado
7.4 Polgono de suporte 67
ao polgono. Assim, o algoritmo comea pelo envio dos primeiros trs pontos com a devida
orientao.
A cada passo do algoritmo testamos se o novo ponto est fora do polgono convexo. Caso
esteja, o polgono convexo tem de ser atualizado com o novo ponto, caso contrrio, o novo ponto
descartado e a sada permanece a mesma.
Figura 7.17: Clculo do polgono convexo
A gura 7.17 mostra um exemplo da sada do mtodo, mostrando os dois primeiros pontos
bemcomo vrias possibilidades para a localizao do novo ponto (P
n+1
). Uma vez que o algoritmo
deve funcionar em tempo linear, o teste para determinar se o novo ponto est dentro do polgono
dever ser efetuado em tempo constante. Assim, Melkman apresentou um mtodo de determinar
em tempo constante se um ponto est dentro do polgono convexo atual:
Se o novo ponto se encontra direita do segmento orientado P
2
P
1
e esquerda do segmento
P
n1
P
n
, ento certo de que o ponto est dentro do polgono convexo, uma vez que a linha
ou polgono que vai de P
n
para P
n+1
(que faz parte do polgono) teria de intersetar o polgono
convexo para que o ponto P
n+1
estivesse de fora. Se ele intersetar o polgono convexo, ento ele
intersetar o prprio polgono de entrada. Contudo, uma vez que o polgono de entrada simples,
ento sabemos que no existem intersees nos seus cantos.
Assim, testando a orientao para estes dois tripletes de pontos, possvel determinar se o
novo ponto dever ser descartado ou no. Se estiver dentro, descartado. Se estiver fora, ento
teremos de o juntar a ambas as extremidades do polgono de sada, e ser agora necessrio reajustar
o polgono de sada removendo qualquer vrtice que tenha cado cncavo aps a insero deste
novo ponto.
Todas estas novas atualizaes envolvem apenas testes de orientao de tripletes de pontos,
uma vez que o polgono de sada estar em sentido anti-horrio, o que signica que uma curva
esquerda signique um vrtice convexo, e uma curva direita representa um vrtice cncavo.
68 Controlador do Centro de Massa
Figura 7.18: Atualizao do polgono convexo
A gura 7.18 mostra um exemplo deste processo de atualizao. Apesar do facto de um passo
(aps O(n) inseres) possa envolver O(n) remoes, o algoritmo funciona em tempo linear. Cada
ponto do polgono de entrada pode ser inserido no mximo uma vez na sada, e pode ser removido,
no mximo uma vez. Assim, temos no mximo 4N operaes, uma vez que as inseres e
remoes podem ser efetuadas em ambas as extremidades. Dado que o teste que verica se um
ponto dever ser descartado ou no funciona em tempo constante, o algoritmo funciona em tempo
real.
Para analisar a estabilidade do rob adiciona-se o ponto correspondente projeo do centro
de massa no solo, ao polgono de suporte e procede-se ao processo de clculo do polgono convexo
anteriormente descrito. Caso o ponto que representa a projeo do centro de massa do rob no
solo seja descartado, signica que este se encontra no interior do polgono de suporte e que o rob
se encontra estvel. Caso contrrio o rob no se encontra estaticamente estvel.
7.5 Centroide
Para o controlo estvel de um rob, a posio ideal para denir como setpoint para a posio
pretendida do centro de massa do rob dada pelo centroide do polgono de suporte do mesmo.
Para o clculo do centroide de um polgono necessrio primeiro calcular a rea do mesmo.
Considerando um polgono constitudo por um conjunto de segmentos retos entre N vrti-
ces (x
i
, y
i
), com i = 0 at N 1. O ltimo vrtice (x
N
, y
N
) assumido como sendo tambm o
primeiro,i.e., o polgono fechado. A sua rea dada por:
A =
1
2
N1

i=0
(x
i
y
i+1
x
i+1
y
i
) (7.9)
O sinal da expresso acima pode ser utilizado para determinar a ordem dos vrtices do pol-
gono. Se o sinal for positivo os vrtices do polgono esto por ordem anti-horria, caso contrrio
esto ordenados de forma horria.
O centroide tambm conhecido como o centro de gravidade ou o centro de massa. A posio
do centroide pode ser calculada atravs das seguintes equaes:
7.6 RoboViz 69
Figura 7.19: Polgono de 6 vrtices
c
x
=
1
6A
N1

i=0
(x
i
+x
i+1
)(x
i
y
i+1
x
i+1
y
i
) (7.10)
c
y
=
1
6A
N1

i=0
(y
i
+y
i+1
)(x
i
y
i+1
x
i+1
y
i
) (7.11)
7.6 RoboViz
Para permitir a visualizao em tempo real das informaes do agente e do controlador desen-
volvido foi implementada uma interface de comunicao entre o mesmo e o RoboViz. O RoboViz
uma aplicao desenhada para avaliar e desenvolver comportamentos de agentes em ambientes
multiagente, mais concretamente na liga de simulao 3D da RoboCup. A aplicao trata-se de um
monitor que processa a informao do estado do mundo e do agente num cenrio tridimensional.
Ao contrrio do monitor genrico do SimSpark, o RoboViz fornece funcionalidades de depurao
e desenho aos agentes atravs de comunicao em rede. A ferramenta facilita a visualizao em
tempo real dos agentes que se encontram a correr no simulador SimSpark e fornece uma anlise de
visualizao de alto nvel que no possvel com o monitor genrico do SimSpark. Este conjunto
de funcionalidades pode ser observado na gura 7.21.
O RoboViz apresenta ainda uma melhoria signicativa na qualidade dos grcos apresentados
em relao ao monitor, tal como se pode vericar na gura 7.20.
70 Controlador do Centro de Massa
Figura 7.20: Comparao entre o RoboViz ( esquerda) e o monitor genrico do SimSpark (
direita)[61]
7.6.1 O protocolo de desenho
Figura 7.21: Demonstrao da funcionalidade de desenho do RoboViz[61]
Os clientes interagem com o RoboViz atravs da emisso de comandos. Para efeitos de de-
senho, um exemplo de um comando pode ser desenhar uma linha ou uma esfera. Cada comando
formatado de acordo com uma forma especca adequada para ser enviada atravs de pacotes
UDP atravs de uma rede.
Para que a funcionalidade de desenho remoto seja simples e exvel, tudo decomposto num
pequeno conjunto de formas. Formas mais complexas devem ser construdas utilizando combina-
es destas formas. A descrio de uma forma possui um conjunto de propriedades como posio,
cor e escala. Cada forma tambm faz parte de um conjunto de formas identicado por um nome
nico. Desta forma possvel ltrar no RoboViz os conjuntos de formas que o mesmo deve ren-
derizar em tempo real.
7.7 Concluso 71
Os tipos de formas adicionados ao RoboViz podem pertencer a dois tipos: estticos e anima-
dos. Formas estticas so aquelas que persistem aps terem sido adicionadas e no precisam ser
atualizadas. Por exemplo, uma grelha no topo do campo ou eixos de coordenadas 3D no reque-
rem que as suas formas mudem com o tempo. Formas animadas so aquelas que precisam de ter
as suas propriedades atualizadas, como um vetor representando a orientao de um rob.
O sistema de coordenadas utilizado pelo RoboViz o mesmo que o sistema de coordenadas
utilizado pelo SimSpark. Para estes o terreno de jogo encontra-se no plano xy sendo que a direo
z perpendicular a este plano em direo ao cu.
7.6.2 Funes implementadas
Para permitir uma fcil representao do estado do rob foram desenvolvidas vrias funes
que servem de interface com o RoboViz como:
displaySupportPolygon - Desenha o polgono de suporte do rob;
displayRelativeSupportPolygon - Desenha o polgono de suporte do rob em coordenadas
relativas cabea do rob;
displayPoint - Desenha um ponto;
displayLine - Desenha uma linha;
displayAxis - Desenha o referencial de um BodyObject do agente como uma parte do corpo
ou uma junta;
displayRelativeAxis - Desenha o referencial de um BodyObject do agente como uma parte
do corpo ou uma junta em coordenadas relativas cabea do corpo;
displayBody - Desenha todos os elementos corporais do rob, o polgono de suporte, o seu
centro de massa e a sua projeo no solo;
displayRelativeBody - Desenha todos os elementos corporais do rob, o polgono de su-
porte, o seu centro de massa e a sua projeo no solo. Todos os elementos referidos so
desenhados em coordenadas relativas cabea do rob.
7.7 Concluso
Neste captulo foi apresentado o controlador desenvolvido. Este baseado num controlo em
malha fechada do tipo PID que permite controlar a posio do centro de massa atravs da atuao
de um determinado conjunto de juntas. De acordo com o conjunto de juntas utilizados foram
denidos dois mtodos de controlo para a fase de suporte nico e um mtodo de controlo para
a fase de suporte duplo do rob. A alterao de mtodos permite adequar as caratersticas de
controlo situao em que o robo se encontra. Por forma a garantir a estabilidade do rob foi
72 Controlador do Centro de Massa
elaborado um mtodo de clculo do polgono de suporte atravs da utilizao do algoritmo de
Melkman que permite uma utilizao genrica do controlador desenvolvido em diferentes tipos
de conguraes dos ps do rob, permitindo uma adaptao mais fcil do controlador a um rob
real, e foi calculado o centroide deste polgono, para denir como ponto desejado para a posio
do centro de massa. Durante o desenvolvimento do controlador foi necessrio desenvolver uma
interface do rob com o monitor RoboViz que permite visualizar em tempo real informaes
sobre o estado do rob e do mundo. O controlador desenvolvido tornou-se bastante til quer no
equilbrio do rob quer no desenvolvimento de novos comportamentos baseados na transferncia
do centro de massa do rob.
Captulo 8
Preparao de remate
O remate a ao por excelncia do futebol, e que na maioria das vezes, decide o resultado
de um jogo. O remate um gesto tcnico de grande complexidade motora que necessita de estar
bem ajustado s variveis do jogo, devendo realizar-se no local e momento adequados, alm de
exigir um nvel elevado de fora explosiva. Este deve ser executado com potncia e preciso e
necessita de uma grande perfeio na sua execuo. O rematador deve ser rpido em julgar a
situao prpria para o remate, quer na deciso, quer na execuo, a qual deve ser to explosiva
quanto instantnea.
Num jogo de futebol entre robs necessrio ter em conta todo o conjunto destes fatores
complexos. Para o mesmo ser bem sucedido necessrio criar um conjunto de comportamentos
rpidos, robustos e exveis, capazes de providenciar uma elevada capacidade de remate, e ter em
conta todos os aspectos de alto nvel que validem a possibilidade de execuo e a sua utilidade em
tempo real.
A potncia de um remate um dos fatores preponderantes do seu desempenho, no entanto, a
sua viabilidade, robustez e possibilidade de execuo so pontos essenciais para a sua utilizao.
Assim, torna-se necessrio garantir com um elevado grau de conana que o comportamento de
remate vivel antes de o mesmo ser executado.
Os primeiros movimentos de chuto consistiam no uso de keyframes (quadros-chave) para a tra-
jetria do p. Este conceito dene o movimento como uma srie esttica dos valores dos ngulos
das articulaes. Os valores so consecutivamente interpolados para executar o movimento. As
principais desvantagens desta abordagem so a inexibilidade e a adio de uma fase de prepara-
o no movimento, na qual o rob se posiciona para executar o movimento.
Logo de seguida surgiram ideias da utilizao de um chuto omnidirecional fazendo com que o
chuto se torne mais exvel e eliminando assim fases de preparao rudimentares que inicialmente
existiam, as quais consistiamempequenos movimentos e rotaes do jogador para que este se situe
na posio e orientao pretendidas.
73
74 Preparao de remate
O novo chuto desenvolvido consiste na utilizaao de um comportamento hbrido que alia a
performance de um movimento repetitivo altamente otimizado com a preciso, exibilidade e
robustez do novo movimento de preparao de remate desenvolvido.
8.1 Anlise do mundo
Por forma a possibilitar a preparao de um remate e permitir um grau elevado de dinamismo e
exibilidade do mesmo necessrio efetuar uma anlise do mundo por forma a calcular a posio
exata da colocao do p para a execuo do movimento nico de remate. Para esta anlise
necessrio considerar trs objetos do mundo:
Jogador;
Bola;
Alvo.
Atravs deste conjunto de objetos possvel calcular a posio e orientao do p em relao
ao jogador, a partir de um conjunto de parmetros denidos atravs da otimizao da melhor
posio de incio de remate e que relacionam os trs objetos referidos. Estes parmetros so:
dist - Distncia da posio do p bola;
- ngulo formado entre o alvo e a posio do p;
- Orientao do p em relao ao alvo.
Inicialmente as coordenadas do alvo e da bola so corrigidas de acordo com a orientao do
rob para que as mesmas venham referidas em relao ao seu referencial. A gura 8.1 esquematiza
o clculo da posio onde o rob deve colocar o p de suporte.
Neste clculo aplicada uma rotao ao vetor que vai desde o alvo at bola, representado
a azul, de e normalizado o seu comprimento para dist. Assim, obtm-se o ponto em que o
rob deve colocar o p atravs da soma do vetor que vai desde o rob at bola com o vetor que
vai desde a bola ao ponto de suporte, representados a vermelho. O ngulo de orientao do p em
relao pose incial do rob dado pela soma do ngulo formado entre a bola e o alvo, com o
ngulo fornecido como parmetro.
8.2 Planeamento do movimento 75
Figura 8.1: Clculo da posio do p de suporte do rob
8.2 Planeamento do movimento
O movimento implementado pode ser decomposto em cinco fases sendo elas, a passagem de
duplo suporte para suporte nico, o posicionamento do p de suporte, o abaixamento do corpo, a
transferncia do centro de massa e o erguer do corpo para a pose de remate. Entre estas, a fase
de posicionamento do p de suporte e de abaixamento do corpo so executadas em paralelo. Para
descrever cada uma destas fases ser necessrio introduzir o conceito de planeamento de trajetria.
8.2.1 Planeamento de trajetria
O mdulo de planeamento de trajetria tem como funo determinar um caminho entre dois
pontos no espao, usando um determinado nmero de pontos intermdios, de modo a determinar
a trajetria que o p deve seguir para conseguir chutar a bola[11][12].
Existem vrios algoritmos capazes de produzir um caminho planar ou tridimensional, usando
parmetros para calcular o caminho mais curto e/ou evitar obstculos, mas o seu grau de com-
plexidade aumenta exponencialmente com o nmero de graus de liberdade do rob, tornando-se
assim algoritmos com elevada exigncia de processamento.
Neste mdulo determinanada uma funo que nos devolve uma curva representativa da tra-
jetria que o p deve seguir. Para o efeito sero utilizadas curvas de Bzier para determinar essa
funo.
Curvas de Bzier so assim chamadas devido ao seu inventor, Dr. Pierre Bzier. Bzier traba-
lhou como engenheiro na empresa de carros Renault e props-se, no incio do anos 60, a desenvol-
ver uma formulao de uma curva que lhe ajudasse no desenho de formas [62], tendo-a utilizado
posteriormente para o design de automveis. Esta foi desenvolvida como resultado do Algoritmo
de De Casteljau em 1957 e formalizada na dcada de 60.
76 Preparao de remate
A curva de Bzier uma curva polinomial expressa como a interpolao linear entre alguns
pontos representativos, chamados de pontos de controle. uma curva utilizada em diversas apli-
caes grcas e formatos de imagem vetorial como o SVG. Esse tipo de curva tambm bas-
tante utilizada em modelagem tridimensional e animaes. Esta interpolao pode ser de grau 1
(linear), de grau 2 (quadrtica), de grau 3 (cbica) ou de grau maior que 3 [63]. Atravs da equa-
o 8.1 [64] [65] [62] podemos determinar uma curva de Bzier de grau n que permite determinar
uma trajetria com elevado grau de complexidade.
b(t) =
n

i=0
_
n
i
_
t
i
(1t)
ni
P
i
, t [0, 1] (8.1)
onde n o grau da curva e P
i
so os pontos de controlo.
Na gura 8.2 pode ver-se exemplos de curvas de Bzier de diferentes graus.
Figura 8.2: Curvas de Bzier de 1
o
, 2
o
, 3
o
e 4
o
grau [62].
Outra vantagem do uso de curvas de Bzier consiste no facto de serem acessveis a todo o
tipo de utilizadores, evitando assim toda a complexidade matemtica na base do clculo. Algumas
caratersticas so [66]:
Intuitiva Todos os passos e algoritmos tm uma interpretao geomtrica e intuitiva;
Flexvel O sistema permite algum tipo de controlo para edio da forma da curva;
Abordagem unicada A maneira de representar, criar e editar diferentes tipos de curvas
(por exemplo, retas, seces cnicas e curvas cbicas) deve ser a mesma, isto , no exige
tcnicas diferentes para manipulao de diferentes curvas;
Invariante A curva representada no sofrer alteraes na sua geometria sob transforma-
es geomtricas, tais como translaes e rotaes;
Eciente e numericamente estvel O clculo da curva rpido e preciso (eciente).
Alm disso, uma grande quantidade de clculos no distorce a forma da curva (numerica-
mente estvel).
8.2 Planeamento do movimento 77
8.2.1.1 Construo
Para a construo de uma curva de Bzier de grau n, necessrio denir n +1 pontos de
controlo, P
0
, P
1
, P
2
, . . . , P
n1
, P
n
. Cada um destes pontos afeta a curva como podemos ver na -
gura 8.3. Aps determinar o grau da curva (n) e os pontos de controlo, utiliza-se a equao 8.1
para determinar b(t), que corresponde localizao do ponto no instante t.
Figura 8.3: Duas curvas cbicas de Bzier com diferentes pontos de controlo.
Relativamente ao problema, pretende-se uma curva de Bzier de grau 3, ou curva cbica de
Bzier, com n +1 pontos de controlo, P
0
, P
1
, P
2
e P
3
, e aps aplicar a equao 8.1 obtm-se
uma curva de Bzier paramtrica de grau 3 (cbica) que fornece a localizao de um ponto num
determinado instante. Essa curva dada por:
b(t) = (1t)
3
P
0
+3(1t)
2
tP
1
+3(1t)t
2
P
2
+t
3
P
3
, t [0, 1] (8.2)
8.2.2 Transferncia para suporte nico
O movimento de preparao de remate tem incio partindo do pressuposto que o rob se en-
contra numa posio estvel em fase de suporte duplo. Esta garantia pode ser obtida atravs da
anlise da posio de centro de massa em relao ao polgono de suporte, tal como explicitado no
captulo 7. Por forma a efetuar um passo, necessrio colocar o rob suportado apenas por um p,
sendo que para isso a primeira fase da preparao do remate consiste na transferncia do centro
de massa do rob para a superfcie de contacto entre o p com que o rob ir rematar e o solo,
seguida do levantamento do p contrrio.
A gura 8.4 representa a transferncia do rob para suporte nico.
Figura 8.4: Sequncia de transferncia do rob para suporte nico
78 Preparao de remate
8.2.3 Colocao do p de suporte
Dado que o volume de trabalho da perna do rob, representado na gura 8.5 pelo semicrculo a
vermelho, no contm o ponto nal do p de suporte desejado, representado a azul, o rob dever
colocar o p no ponto cuja projeo em z intersete o semicrculo representativo do volume de
trabalho. Deste modo, atravs do abaixamento do p contrrio, o rob colocar o p de suporte na
posio pretendida. Assim, o p de suporte segue uma curva Bezier de grau 3 que levar o p at
esta posio numa trajetria circular.
Figura 8.5: Volume de trabalho da perna do rob
8.2.4 Abaixamento do corpo do rob
Para colocar o p na posio pretendida o rob dever baixar o corpo de acordo com a elevao
do p denida na subseco anterior e representada na gura 8.6. O p dever seguir uma trajetria
linear descendente que termina quando o rob regressar posio de duplo suporte.
Figura 8.6: Abaixamento do corpo do rob
8.2 Planeamento do movimento 79
A gura 8.7 representa a execuo em paralelo do abaixamento do corpo do rob e da coloca-
o do p de suporte.
Figura 8.7: Sequncia de abaixamento e colocao do p de suporte
8.2.5 Transferncia do centro de massa do rob
Aps o abaixamento do rob necessrio efetuar a transferncia do centro de massa do rob
de um p para o outro para que seja possvel que o rob consiga suportar o seu peso neste p.
Dado que a posio da bacia do rob se mantm dentro do volume de trabalho de ambas as per-
nas, possvel efetuar uma translao linear da mesma para o p de suporte desejado, tal como
representado na gura 8.8.
Figura 8.8: Transferncia do centro de massa do rob
A gura 8.9 representa a transferncia do centro de massa do rob.
Figura 8.9: Sequncia de transferncia do centro de massa do rob
80 Preparao de remate
8.2.6 Colocao em pose de remate
Aps a transferncia do centro de massa para o p desejado possvel colocar o rob na pose
desejada de remate, tal como ilustrado na gura 8.10.
Figura 8.10: Pose nal aps a transferncia do centro de massa do rob e pose de remate
A gura 8.11 representa a colocao em pose de remate seguida do remate.
Figura 8.11: Sequncia de colocao em pose de remate e consequente remate
8.3 Testes e resultados
Para vercar a rea de viabilidade de remate foi efetuado um conjunto de testes ao movimento
de preparao do remate. Os testes consistiram no posicionamento do rob num determinado con-
junto de posies e orientaes predeterminadas em relao bola e na vericao dos resultados
8.3 Testes e resultados 81
do chuto em termos de distncia percorrida e a direo que a mesma seguiu. Apesar dos resulta-
dos obtidos serem sujeitos a alteraes de acordo com os parmetros denidos na seco 8.1, uma
vez que estes podem ser alterados atravs de processos de otimizao, a capacidade de efetuar
o remate no to susceptvel a estas alteraes. A rea anterior bola foi decomposta numa
matriz de resoluo de 5 cm, na qual o rob foi posicionado. Esta decomposio foi efetuada
para uma variao de x entre (0,25 e 0) e uma variao em y entre (-0,25 e 0,25) em metros. Em
cada ponto da matriz foram testados os ngulos de -50
o
a 50
o
com intervalos de 10
o
e para efeitos
de conrmao de resultados foram efetuadas duas amostras por teste. No total foram efetuados
mais de 1300 testes que conrmaram as condies que garantem a capacidade do rob executar o
movimento de remate com o p direito. Os resultados do teste foram guardados num cheiro csv,
por simplicidade de criao e de acesso aos seus valores.
Atravs da ferramenta MatLab procedeu-se anlise dos resultados obtidos. Para isso foram
lidos os resultados e foi efetuada uma transformao dos mesmos numa imagem em escala de
cinza que nos permite obter uma funo que relaciona a distncia percorrida pela bola em relao
pose inicial do rob. A gura 8.12 representa o resultado obtido aps a aplicao da referida
transformao ao conjunto de posies em que o rob se encontra alinhado com o alvo, sendo que
no grco o branco representa uma distncia nula e o preto representa uma distncia percorrida
pela bola de 18 metros.
Figura 8.12: Representao da distncia do remate em relao posio do rob orientado com o
alvo
Como se pode observar na gura 8.12, o desempenho do remate do rob afetado pela posio
de onde parte o movimento. Denindo-se como 7 metros a distncia mnima para considerar que
o rob capaz de efetuar um remate, atravs da aplicao de uma binarizao da imagem referida
com o threshold adequado, obteve-se assim a rea de capacidade de remate dada pelo movimento
para o p direito. Para a obteno da rea de capacidade de remate com ambos os ps fez-se
a unio entre a imagem representativa dos resultados para uma dada orientao, com a imagem
espelhada representativa dos resultados para a orientao oposta.
Deste resultado obteve-se o seguinte conjunto de zonas admissveis de remate de acordo com
o ngulo entre o alvo e a orientao do jogador:
82 Preparao de remate
Orientao 0
o
A gura 8.13 representa a rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 0
o
entre a sua orientao e o alvo. Quando o rob se encontra
orientado com o alvo, a rea admissvel vasta e possui um conjunto de resultados muito bons,
com um mximo de 16,16 m registado na posio (-25, 5)cm. As duas pequenas reas de inadmis-
sibilidade de remate registadas na parte inferior do grco devem-se sobreposio dos ps para
o remate o que o torna impossvel de ser concretizado. Esta orientao extremamente favorvel
ao remate e possui uma vasta rea em que o mesmo passvel de ser executado.
Figura 8.13: Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 0
o
entre a sua orientao e o alvo
Orientao 10
o
A gura 8.14 representa a rea admissvel de remate em relao posio do rob quando este
se encontra com um ngulo de 10
o
entre a sua orientao e o alvo. Quando o rob se encontra com
uma orientao de 10
o
em relao ao alvo, a rea admissvel continua extensa em tudo semelhante
anterior. Esta orientao bastante favorvel ao remate e possui uma vasta rea em que o mesmo
passvel de ser executado. Para esta orientao, a preparaao de remate possui um conjunto de
resultados muito bons com um mximo de 16,69 m registado na posio (-25, 0) cm.
8.3 Testes e resultados 83
Figura 8.14: Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 10
o
entre a sua orientao e o alvo
Orientao 20
o
A gura 8.15 representa a rea admissvel de remate em relao posio do rob quando este
se encontra com um ngulo de 20
o
entre a sua orientao e o alvo. Quando o rob se encontra
com uma orientao de 20
o
em relao ao alvo, a rea admissvel a maior do conjunto de testes
efetuados com mais de 80cm
2
. Esta orientao a mais favorvel para a execuo do remate e
possui um conjunto de resultados excelentes com um mximo de 17,03 m registado na posio
(-20, 5) cm.
Figura 8.15: Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 20
o
entre a sua orientao e o alvo
Orientao 30
o
A gura 8.16 representa a rea admissvel de remate em relao posio do rob quando este
se encontra com um ngulo de 30
o
entre a sua orientao e o alvo. Quando o rob se encontra
com uma orientao de 30
o
em relao ao alvo a sua rea admissvel um pouco pior face aos
84 Preparao de remate
resultados anteriores. Apesar de tudo esta orientao possui um conjunto de resultados mdios
com um mximo de 12,96 m registado na posio (-20, 0 )cm.
Figura 8.16: Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 30
o
entre a sua orientao e o alvo
Orientao 40
o
A gura 8.17 representa a rea admissvel de remate em relao posio do rob quando este
se encontra com um ngulo de 40
o
entre a sua orientao e o alvo. Quando o rob se encontra com
uma orientao de 40
o
em relao ao alvo a sua rea admissvel um pouco pior em comparao
com os resultados anteriores sendo bastante reduzida. Apesar de tudo esta orientao possui um
conjunto de resultados mdios com um mximo de 12,74 m registado na posio (-20, 0) cm.
Figura 8.17: Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 40
o
entre a sua orientao e o alvo
Orientao 50
o
A gura 8.18 representa a rea admissvel de remate em relao posio do rob quando este
se encontra com um ngulo de 50
o
entre a sua orientao e o alvo. Quando o rob se encontra
8.4 Concluso 85
com uma orientao de 50
o
em relao ao alvo a sua rea admissvel de preparao de remate
extremamente reduzida. Ainda assim, dadas as condies extremamente desfavorveis em termos
de orientao do rob, esta congurao possui um conjunto de resultados aceitveis com um
mximo de 13,06 m registado na posio (-25, 10) cm.
Figura 8.18: Representao da rea admissvel de remate em relao posio do rob quando
este se encontra com um ngulo de 50
o
entre a sua orientao e o alvo
8.4 Concluso
Neste captulo foi apresentado o desenvolvimento do comportamento de preparao de re-
mate. Este comportamento permite um grau elevado de dinamismo e exibilidade de acordo com
a posio e orientao do rob em relao ao alvo, dotando o movimento de remate nico de
uma preparao omnidirecional. Os resultados obtidos atravs do conjunto de testes efetuados
foram bastante satisfatrios e esto sujeitos a melhorias atravs da otimizao dos parmetros que
denem o comportamento.
86 Preparao de remate
Captulo 9
Concluses e trabalho futuro
Este captulo sumariza as principais concluses obtidas, e apresenta um conjunto de melhorias
do sistema projetado. Por m, feito um levantamento de trabalhos futuros passveis de ser
realizados no mbito de dissertaes ou outros projetos relacionados com o trabalho desenvolvido.
9.1 Concluses
Neste trabalho foi desenvolvido um mdulo de estabilidade para permitir a avaliao do estado
de equilbrio de um rob humanoide NAO e ainda o controlo da posio do centro de massa do
mesmo. Este comportamento permite uma melhoria signicativa no desempenho do rob, nomea-
damente na avaliao do estado de equilbrio do rob nas fases de transio entre comportamentos
e como ferramenta de avaliao e otimizao de comportamentos.
Dada a modularidade do controlador desenvolvido, este est apto a ser facilmente incorporado
na arquitetura de comportamentos da equipa FC Portugal.
O controlador desenvolvido permite a adequao do tipo de controlo a utilizar, atravs da
atuao das juntas da bacia ou atravs da atuao destas juntas juntamente com as juntas dos
ps, por forma a permitir escolher um controlador com respostas mais velozes ou controladores
que garantam uma inalterao da orientao do tronco do rob. Este controlador foi devidamente
testado e foi comprovado que a utilizao de umcontrolador do tipo PIDpara o controlo da posio
do centro de massa permite uma resposta rpida e precisa.
Devido diculdade de anlise em tempo real do estado do agente fornecido pelas ferramentas
utilizadas pela equipa revelou-se necessrio a utilizao do monitor RoboViz e da criao de uma
interface entre este e o agente da equipa. Esta interface revelou ser uma ajuda preciosa no desen-
volvimento do controlador atravs do desenho das caratersticas do rob e dos clculos efetuados
pelo mesmo, tais como o polgono de suporte e o centro de massa.
Aps o desenvolvimento do controlador referido decidiu-se utilizar o trabalho efetuado para o
desenvolvimento de um comportamento de preparao de remate. O movimento de preparao de
87
88 Concluses e trabalho futuro
remate desenvolvido consiste num movimento em que o rob se encontra sempre numa posio
estaticamente equilibrada atravs do qual possvel posicionar o p do rob numa posio e ori-
entao extremamente precisas, permitindo dotar um movimento sequencial predenido atravs
de keyframes num remate com uma preparao que lhe garante um grau de omnidirecionalidade.
Para a anlise de resultados e a vericao de condio de remate foi efetuado um conjunto de
testes intensivo que permitiu obter um grau de conana elevado para os resultados do mesmo.
9.2 Trabalhos futuros
A estabilidade de robs humanoides tem sido um campo de investigao importante na rea
da robtica e assim continuar a ser no futuro dada a sua importncia e complexidade inerentes.
Apesar da obteno de um conjunto de resultados interessantes e satisfatrios, existem um con-
junto de melhorias e experincias que podem ser efetuadas para a complementao do mesmo, tais
como:
Utilizao de outros mtodos de anlise de estabilidade como CoP e ZMP;
Utilizao e anlise de diferentes arquiteturas de controladores como controladores difusos
ou redes neuronais;
Otimizao dos parmetros do comportamento de preparao de remate para diversos con-
juntos de remates. Desta forma seria possvel selecionar um tipo de remate como remate
rasteiro ou remate em altura com base num conjunto de parmetros que permitam o desem-
penho e robustez dos mesmos;
Aumento do nmero de testes do controlador do centro de massa e dos movimento de pre-
parao do remate para garantir de forma mais precisa as regies de utilizao dos mesmos;
Desenvolvimento de um mtodo de locomoo omnidirecional baseado no comportamento
de locomoo denido. Dado que o movimento consiste na realizao de um passo seria
interessante criar um mtodo de locomoo baseado neste, garantindo um mtodo de loco-
moo extremamente robusto dado que o mesmo seria estaticamente equilibrado;
Incorporar o comportamento num movimento de passo, isto , executar o movimento em
andamento sem que o andamento seja interrompido. Aps o desenvolvimento do mtodo
de locomoo, bastaria colocar o p no ponto predeterminado na ltima passada, garantir o
equilbrio do rob atravs do controlador de centro de massa desenvolvido e por mexecutar
o movimento de remate.
Bibliograa
[1] RoboCup, RoboCup Mexico 2012. Disponvel em http://www.robocup2012.org,
acedido a ltima vez em Fevereiro de 2012.
[2] H. Kitano, RoboCup Humanoid Challenge : That s One Small Step for A Robot , One
Giant Leap for Mankind, Power, no. October, 1998.
[3] RoboCup, RoboCup 2011 - Istanbul. Disponvel em http://www.robocup2011.
org/en/, acedido a ltima vez em Maio de 2012.
[4] E. Sklar, A. Eguchi, and J. Johnson, RoboCupJunior : Learning with Educational Robotics,
History, pp. 238253.
[5] RoboCup, RoboCup Rescue. Disponvel em http://www.robocuprescue.org, ace-
dido a ltima vez em Junho de 2012.
[6] S. Tadokoro, H. Kitano, T. Takahashi, I. Noda, H. Matsubara, A. Shin, J. O. H. Tetsuo, I. Ta-
keuchi, H. Takahashi, F. Matsuno, M. Hatayamm, J. Nobe, and S. Shimada, The RoboCup-
Rescue Project : A Robotic Approach to the Disaster Mitigation Problem, Simulation, 2000.
[7] RoboCup, RoboCup 2011. Disponvel em http://www.robocup2011.org, acedido
a ltima vez em Fevereiro de 2012.
[8] RoboCup, Middle Size Robocup. Disponvel em http://www.robocup.org/
robocup-soccer/middle-size/, acedido a ltima vez em Fevereiro de 2012.
[9] R. T. Committee, RoboCup Standard Platform League (Nao) Rule Book. 2012.
[10] RoboCup, Standard Platform League History. Disponvel em http://www.tzi.de/
spl/bin/view/Website/History, acedido a ltima vez em Maio de 2012.
[11] R. P. G. Ferreira, Desenvolvimento de um chuto omnidirecional para um rob humanoide,
Tese Mestrado, Faculdade de Engenharia da Universidade do Porto, 2012.
[12] R. Ferreira, L. P. Reis, and A. P. Moreira, Development of an omnidirectional kick for a
humanoid robot, CISTI 2012, Atas da Conferencia Ibrica de Sistemas e Tecnologias de
Informao, pp.235-240 Madrid, Espanha, 2012.
[13] L. P. Reis and N. Lau, Fc portugal team description: Robocup 2000 simulation league
champion, in RoboCup 2000: Robot Soccer World Cup IV (P. Stone, T. Balch, and G. Kra-
etzschmar, eds.), vol. 2019 of Lecture Notes in Computer Science, pp. 2940, Universidade
do Minho, 2001.
[14] L. P. Reis, N. Lau, and L. Mota, Fc portugal 2d simulation: Team description paper, in
RoboCup 2010: Robot Soccer World Cup XIV, 2010.
89
90 BIBLIOGRAFIA
[15] L. P. Reis, N. Lau, A. J. Neves, and A. P. Moreira, Fc portugal spl: A new portuguese mixed
team for the standard platform league with scientic contributions of fc portugal, cambada
and 5dpo teams, pp. 1 3, 2009.
[16] C. Team, Cambada robotic soccer. Disponvel em http://www.ieeta.pt/atri/
cambada/index.htm, acedido pela ltima vez em Janeiro de 2012.
[17] A. J. R. Neves, J. L. Azevedo, B. Cunha, J. Cunha, R. Dias, P. Fonseca, N. Lau, J. Silva,
T. Angelo, C. Cruz, G. Corrente, L. S. Lopes, P. Pedreiras, A. Pereira, A. Pinho, J. Rodrigues,
F. Santos, and J. Vieira, Cambada2011: Team description paper, 2011.
[18] N. Lau, L. S. Lopes, G. Corrente, and N. Filipe, Multi-robot team coordination through
roles, positionings and coordinated procedures, in 2009 IEEE/RSJ international conference
on Intelligent robots and systems, IROS 09, pp. 5841 5848, IEEE Press, 2009.
[19] N. Lau, L. S. Lopes, N. Filipe, and G. Corrente, Roles, positionings and set plays to coordi-
nate a robocup msl team, in 14th Portuguese Conference on Articial Intelligence: Progress
in Articial Intelligence, EPIA 09, pp. 323 337, 2009.
[20] D. Team, 5dpo. Disponvel em http://paginas.fe.up.pt/~robosoc/en/doku.
php, acedido pela ltima vez em Janeiro de 2012.
[21] T. P. Nascimento, M. A. Pinto, H. M. Sobreira, F. Guedes, A. Castro, P. Malheiros, A. Pinto,
H. P. Alves, M. Ferreira, P. Costa, P. G. Costa, A. Souza, L. Almeida, L. P. Reis, and A. P.
Moreira, 5dpo2011: Team description paper, 2011.
[22] A. Neves, N. Lau, L. Reis, A. Moreira, A. Trifan, B. Pimentel, C. Sobrinho, and E. Domin-
gues, Spl portuguese team: Team description paper for robocup 2011, 2011.
[23] Takanishi Laboratory, Biped Humanoid Robot Wabian-2R. Disponvel emhttp://www.
takanishi.mech.waseda.ac.jp/top/research/wabian/index.htm, acedido a
ltima vez em Fevereiro de 2012.
[24] F. Junod, Jaques Vaucanson. Disponvel em http://www.francoisjunod.com/
automates/eightennth/vaucanson_uk.htm, acedido a ltima vez em Junho de
2012.
[25] P. Guinan, The Steam Man. Disponvel em http://www.bigredhair.com/
steamman/, acedido a ltima vez em Junho de 2012.
[26] P. Guinan, The Electric Man. Disponvel em http://www.bigredhair.com/
electricman/, acedido a ltima vez em Junho de 2012.
[27] W. News, 1939 New York Worlds Fair. Disponvel em http://wn.com/Category:
1939_New_York_Worlds_Fair, acedido a ltima vez em Junho de 2012.
[28] J. Isom, A Brief History of Robotics. Disponvel em http://robotics.megagiant.
com/history.html, acedido a ltima vez em Fevereiro de 2012.
[29] V. David Gouaillier, Mechatronic design of nao humanoid, Robotics and Automation,
2009. ICRA 09. IEEE International Conference, 2009.
[30] Boston Dynamics, PetMan. Disponvel em http://www.bostondynamics.com/
robot_petman.html, acedido a ltima vez em Fevereiro de 2012.
BIBLIOGRAFIA 91
[31] Honda Motor, Asimo History. Disponvel em http://world.honda.com/ASIMO/
history/, acedido a ltima vez em Fevereiro de 2012.
[32] Kawada Industries, HRP-4. Disponvel em http://www.kawada.co.jp/mechs/
hrp-4/index.html, acedido a ltima vez em Fevereiro de 2012.
[33] T. B. Globe, The Big Picture - Robots. Disponvel em http://www.boston.com/
bigpicture/2009/03/robots.html, acedido a ltima vez em Junho de 2012.
[34] Aldebaran Robotics, Aldebaran Robotics Gallery. Disponvel em http://www.
aldebaran-robotics.com/en/Discover-NAO/images-gallery.html, acedido
a ltima vez em Fevereiro de 2012.
[35] Aldebaran Robotics, Naos Specications. Disponvel em http://developer.
aldebaran-robotics.com/nao/, acedido a ltima vez em Fevereiro de 2012.
[36] N. Sha and L. Paulo Reis, Two Humanoid Simulators, 2011.
[37] H. Lund and O. Miglino, From simulated to real robots, 1996.
[38] M. Y. F. M. e. H. Joschka Boedecker, Klaus Dorer, SimSpark Users Manual, 2010.
[39] H. Picado, Desenvolvimento de Comportamentos para um Rob Humanoide Simulado D,
2008.
[40] Simspark, Models. Disponvel em http://simspark.sourceforge.net/wiki/
index.php/Models, acedido a ltima vez em Fevereiro de 2012.
[41] A. Robotics, Nao Datasheet, 2008.
[42] J. Boedecker, K. Dorer, M. Rollmann, Y. Xu, F. Xue, M. Buchta, and H. Vatankhah, SimSpark
- Soccer Simulation. Disponvel em http://simspark.sourceforge.net/wiki/
index.php/Soccer_Simulation, acedido a ltima vez em Junho de 2012.
[43] R. Community, Robocup soccer server 3d users manual, January 2010.
[44] H. Marques, N. Lau, and L. P. Reis, Fc portugal 3d simulation team: Architecture, low-level
skills and team behaviour optimized for the new robocup 3d simulator, Scientic Meeting of
the Portuguese Robotics Open 2004, vol. 14, pp. 31 37, April 2004.
[45] H. Picado, Fcportugal3d - a team of robocup 3d simulation league, p. 9, January 2009.
[46] H. W. e. a. Gray, Grays Anatomy The Anatomical Basis of Clinical Practice. Churchill
Livingstone Elsevier, 2008.
[47] R. Arkin, Introduction to Autonomous Mobile Robots. The MIT Press, 2004.
[48] J. Helbo, Modelling and Control of a Biped Robot, 2007.
[49] S. Cotton, Modlisation, dynamique et estimation du centre de masse de robots humanoi-
des, 2010.
[50] T. F. Yik, Locomotion of bipedal humanoid robots: Planning and learning to walk, Tese
PhD, 2007.
92 BIBLIOGRAFIA
[51] MathWorks, MathWorks. Disponvel em http://www.mathworks.com, acedido a l-
tima vez em Maio de 2012.
[52] M. W. Spong and H. Carter, Robot Modeling and Control. John Wiley and Sons, Inc., 2006.
[53] O. R. Project, Open Robot Project. Disponvel em http://orobot.net/wiki/
index.php, acedido a ltima vez em Maio de 2012.
[54] E. Mota, Movimentao e desenvolvimento de um Rob NAO, Tese de Mestrado, Facul-
dade de Engenharia da Universidade do Porto, 2011.
[55] H. Ozbay, Introduction to Feedback Control Theory. CRC Press, 1999.
[56] J. Silva, Sensor fusion and behaviours for the CAMBADA robotic soccer team. Universidade
de Aveiro, 2008.
[57] V. Santos and F. Silva, Journal of vibration and control, in Design and low-level control of
a humanoid robot using a distributed architecture approach, ch. 12, p. 14311456, 2006.
[58] K. H. Ang, G. Chong, and Y. Li, Ieee transactions on control systems technology, in PID
control system analysis, design and technology, ch. 13, p. 559576, 2005.
[59] A. Isidori, Nonlinear Control Systems (Communications and Control Engineering). Springer,
1995.
[60] J. Ziegler and N. Nichols, Transactions of asme, in Optimum settings for automatic con-
trollers, ch. 64, p. 759768, 1942.
[61] J. Stoecker, The roboviz project. Disponvel em https://sites.google.com/
site/umroboviz, acedido a ltima vez em Maio de 2012.
[62] T. Sederberg, Byu bzier curves. chapter 2.. Disponvel em http://www.tsplines.
com/resources/class_notes/Bezier_curves.pdf, acedido pela ltima vez em
Janeiro de 2012.
[63] J. C. Bartels, R. H.; Beatty and B. A. Barsky, Bzier curves, Ch. 10 in An Introduction to
Splines for Use in Computer Graphics and Geometric Modelling, pp. 211 245, 1998.
[64] J. Muller, T. Laue, and T. Rofer, Kicking a ball- modeling complex dynamic motions for
humanoid robots, RoboCup 2010: Robot Soccer World Cup XIV, volume 6556 of Lecture
Notes in Articial Intelligence, pp. 119 120, Springer 2011.
[65] E. W. Weisstein, "bzier curve."from mathworlda wolfram web resource.. Disponvel em
http://mathworld.wolfram.com/BezierCurve.html, acedido pela ltima vez em
Janeiro de 2012.
[66] C. Shene, Introduction to computing with geometry notes. unit 5: Bzier curves.. Dispon-
vel emhttp://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/, acedido pela
ltima vez em Janeiro de 2012.

Você também pode gostar