Você está na página 1de 68

23/09/2010

IA368N Parte Experimental

Conceitos sobre programao em robtica

Arquiteturas para controle de robs

Interfaces de programao

Plataforma REALabs

1
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Programao em Robtica

Restries de tempo real;

Operaes assncronas (move, rotate, ...);

Restries de recursos (CPU, armazenamento, ...);

Interrupes (situaes adversas, p.ex, bumper acionado);

Execuo autnoma (no supervisionada).

2
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

1
23/09/2010

Restries de Tempo Real


Problema de escalonamento de tarefas (usualmente por prioridade)
Vrios resultados tericos (algoritmos, teoremas, etc.);

Uso de resultados tericos depende de conhecimento sobre as tarefas (tempos


mdio e mximo de execuo, recursos consumidos, etc.) ;

Dificuldades de aplicar os resultados tericos:


Tarefas dependentes dos dados de entrada (p.ex., processamento de imagens,
mapeamento do ambiente, ...);
Interrupes;
Natureza preemptiva do ncleo (deadlock, inverso de prioridade, ...).

Atendimento de restries de tempo real pode ser verificada por simulao;

Requer programao multithreaded (e talvez integrao ao ncleo do SO).

3
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Operaes Assncronas

Como saber se uma operao assncrona terminou?

1. Notificao assncrona: uma funo associada a um evento


(subscrio) e invocada quando o evento ocorrer (notificao) similar
ao mecanismo de sinais no UNIX.

2. Polling: uma funo invocada para verificar se um evento ocorreu


(ex, isMoveDone() da interface ARIA).

Obs:
eventos so associados ao trmino das operaes assncronas;
polling mais simples mas consome CPU.

4
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

2
23/09/2010

Restries de Recursos

1. Computadores embarcados possuem baixo poder de


processamento (limitaes de tamanho e consumo de
energia);

2. Os programas que rodam embarcados devem considerar


estas limitaes;

3. Solues de contorno:
processadores adjuntos embarcados (ex, notebook): peso
extra, comunicao c/ processador embarcado, restries
prprias;
servidores estacionrios.

5
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Interrupes
A programao extremamente dificultada na presena de
interrupes (estamos habituados ao modelo serial);

Tratamento da interrupo pode ser mais complexo que o curso normal


do programa (p.ex., recuperao de coliso);

Teste do software torna-se complexo (a interrupo pode ocorrer em


qualquer ponto do programa !);

Recuperao ps-interrupo tarefa complexa (como garantir estado


consistente?);

Soluo alternativa: polling de eventos em pontos determinados do


programa (ex., isBumberPressed() no ARIA)

6
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

3
23/09/2010

Execuo Autnoma

Autonomia requer capacidade de percepo e ao rpidas e precisas;

extremamente difcil emular a percepo, raciocnio e ao humanos;

Sistemas robticos autnomos podem possuir ganchos para controle


humano (teleoperao, reincio, mudana de objetivos, etc.);

Computao autonmica uma rea recente que pode beneficiar o


desenvolvimento de sistemas robticos (sistemas self-*).

7
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Ambientes de Desenvolvimento
Pacotes de software (APIs, simuladores, device-drivers, ...);

Arquitetura de software:
centralizada;
distribuda (cliente/servidor, orientada a mensagens, orientada
a servio, publicador/subscritor, ...).

Linguagens de programao;

Ferramentas integradas de produo de software (CASEs, IDEs, ...)

Uma plataforma de desenvolvimento oferece solues para os itens


acima.

8
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

4
23/09/2010

Pacotes de Software

Programa do Usurio
PCI
Camera
Sensoriamento
USB
Laser & Aquisio
de Dados
Serial
Sonar
Planejador

Odometria
Gerao de
Comandos p/
Motores Movimentao
Desejada
Motores
Serial
Canbus
Boyoon Jung (Player Tutorial)

9
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Interfaces de Programao (APIs)

API Programa do
PCI (ARIA, Player, ) Usurio
Camera
Sensoriamento
USB
Laser & Aquisio
de Dados
Serial
Sonar
Planejador

Odometria
Gerao de
Comandos p/
Motores Movimentao
Desejada
Motores

10
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

5
23/09/2010

Simuladores

API Programa do
GUI Camera (ARIA, Player, ) Usurio

Sensoriamento
Laser
& Aquisio
de Dados
Mapa do Sonar
Ambiente
Planejador
Odometria
Gerao de
Motores Comandos p/
Motores Movimentao
Desejada
Modelo do Rob

11
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Simuladores 3D e 2D

Gazebo Stage

12
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

6
23/09/2010

Rob Pioneer P3-DX

Base:
2 rodas (trao diferencial) + caster
8 ou 16 sonares (15cm a 5m)
Velocidade mxima de 1.2m/s
Microcontrolador 16-bit Hitashi H8S
Interface de controle: serial RS232

Acessrios:
Computador de bordo Pentium 3 (Pentium M)
Sistema de viso mono ou estreo com PTZ
Navegao a laser
Bssola e GPS
Brao Robtico
Dock charger
Bumpers
Gripper
13
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares 13
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robs Utilizados no Curso


Cmera com PTZ

Laser Scanner
Antena WiFi

8 + 8 Sonares
CPU Pentium M

Garra c/ Elevao Bumper Traseiro

14
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

7
23/09/2010

Robs Utilizados no Curso

CPU Externa
8 + 8 Sonares
Net Camera Fixa

CPU Pentium III


8 + 8 Sonares
2 Net Cmeras com PTZ
Bumpers frontais e traseiros

15
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robs Utilizados no Curso

16
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

8
23/09/2010

Arquiteturas p/ Controle de Robs


Arquitetura Centralizada

Programa Programa
do Usurio do Usurio

API do Rob Processador


de Bordo

Device Drivers

Sistema Operacional

17
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Centralizada

Vantagens:
Baixo atraso entre percepo e atuao.
Operao totalmente autnoma (no requer conexo permanente
uma rede).
Comunicao e sincronizao rpidas entre programas do usurio
(memria compartilhada, semforos, etc.).

Desvantagens:
Uso de uma nica (e usualmente limitada) CPU.
Difcil de prover proteo do rob contra programas incorretos ou
maliciosos.
Soluo monoltica.

18
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

9
23/09/2010

Arquiteturas p/ Controle de Robs


Arquitetura Cliente/Servidor

API RPC (Servidor) API RPC (Cliente)


RPC
Servidor Programa Programa
(p.ex., do Usurio do Usurio
ipthru) (cliente) (cliente)

API do Rob
Processador do Cliente

Device Drivers

Rob Real ou Simulador


19
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Cliente/Servidor

Vantagens:
Uso de vrios processadores e ambientes de execuo.
Requer pouca capacidade de processamento no rob.
Diferentes APIs do lado cliente.
Proteo do rob a cargo do servidor.

Desvantagens:
Atraso entre percepo e atuao.
Requer protocolo RPC que causa um alto acoplamento entre
clientes e servidores.
Rob deve estar conectado todo o tempo rede.
Requer controle de acesso (autenticao/autorizao).

20
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

10
23/09/2010

Arquitetura Cliente/Servidor: Exemplo

Acesso remoto aos robs XR4000 e Nomad 200

Servidor: CORBA (MICO/C++) com thread de proteo ao rob.


Cliente: CORBA (executando como Applet Java).
API do cliente: IDL (Interface Definition Language).
Protocolo de RPC: IIOP (Internet Inter-ORB Protocol).

Problemas:
CORBA no lado cliente.
Uso de applets Java.
Uso de IP pblico no rob (NAT no suporta IIOP).
Interoperabilidade entre ORBs.
Segurana no suportada.

21
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Cliente/Servidor: Exemplo


Interface CORBA IDL do servidor de navegao:

interface BasicMode
{

//Methods
void RB_StartPositionMonitor();
void RB_StopPositionMonitor();
void RB_MoveRobot(in long x,in long y,in long angle);
void RB_MoveToTarget(in long x,in long y);
boolean RB_CheckIfDone();
void RB_ResetRobotPosition();
void RB_Abort();
};

22
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

11
23/09/2010

Arquiteturas p/ Controle de Robs


Arquitetura Baseada em Componentes

Stub p/ C1
Stub p/ C2
Programa
do Usurio
Programa
(cliente)
do Usurio
Componente Componente (cliente)
de Software de Software
(C1) (C2)

continer Processador do Cliente

API do Rob
Processador
Device Drivers de Bordo

23
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquiteturas p/ Controle de Robs


Processador do Cliente
Arquitetura Baseada em Componentes
Stub p/ C1

Processador Stub p/ C2 Programa


do Usurio
Servidor Programa (cliente)
do Usurio
continer (cliente)
Componente Componente
de Software de Software Processador de Bordo
(C1) (C2)

Componente Servidor
de Software
(C3)
API do Rob
API
Device Drivers

24
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

12
23/09/2010

Arquitetura Baseada em Componentes


Critrio Objetos Distribudos Componentes
Constituio Unidade de instanciao Unidade de composio
Padres RPC (ex., IIOP) Componente (ex. EJB)
Interao Implcita na implementao Explcita nas deps. de contexto
Especializao Via herana em tempo de Via configurao em tempo de
projeto e implementao instalao e execuo
Acoplamento Alto (um com muitos) Baixo (um com poucos)
Granularidade Baixa (pouco cdigo) Alta (muito cdigo)
Composio Ad hoc (embutido no cdigo) Via padro de composio
Amb. de Execuo Genrico (processo) Especfico (continer)
Coeso Baixa (dependente de Alta (funcionalidades auto-
hierarquia de classes) contidas no componente)
Evoluo Redefinio da interface Adio de novas interfaces
25
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Baseada em Componentes


Vantagens:
Reuso com alta granularidade (especificao, projeto e implementao).
Composio padronizada.
Requisitos no funcionais supridos pelo continer.
Gerao de cdigo a partir da especificao (graas a um modelo preciso
de componentes).

Desvantagens:
Complexidade do continer.
Interao baseada em RPC.
Modelos comerciais vinculados a uma tecnologia (Java, .NET).

26
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

13
23/09/2010

Arquitetura Baseada em
Componentes: Exemplo

Operao remota do rob XR4000 e Nomad 200

Utiliza um modelo de componentes baseado em CORBA (CCM-tel).


Componentes e contineres especificados em UML.
Gerao de cdigo Java/CORBA a partir de XMI via transformaes
XSLT (XML Stylesheet Language Transformation).
Componentes reutilizveis suportam teleoperao, navegao, fluxo
vdeo, etc.
Componentes utilizados tambm no lado cliente.

Problemas:
CORBA no lado cliente.
Uso de applets Java.
Uso de IP pblico no rob (NAT no suporta IIOP).
Continer no suporta segurana.
27
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Baseada em Componentes: Exemplo


Especificao do componente de navegao em XML

<?xml version="1.0" ?>

<ports>
<!-- FACET -->
<facet
name = "F_BasicCommands"
repid = "IDL:F_BasicCommands:1.0">

<operation name = "RB_StartPositionMonitor">


<syntax>void RB_StartPositionMonitor();</syntax>

<precondition>
---- Normal situation
1. Component publishing position events instantiated.
2. Component consuming position events instantiated and connected to the publisher component.
</precondition>

<postcondition>
1. On board position monitor starts to send (via socket) position coordinates to the publisher component,
that generates position events (X,Y) and pushes them to the connected consumers.
</postcondition>

</operation>
......
28
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

14
23/09/2010

Arquitetura p/ Controle de Robs


Arquitetura Orientada a Servio

SOAP/HTTP
Servios (Locomoo, Stubs p/ Servios
Telemetria, Aes, ...)

Programa Programa
API do Rob do Usurio do Usurio
(cliente) (cliente)
Device Drivers
Processador do Cliente

Rob Real ou Simulador

29
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquiteturas p/ Controle de Robs


Processador Servidor
Arquitetura Orientada a Servio
Servios (Locomoo,
Telemetria, Aes, ...)

RPC

Servidor SOAP/HTTP

API do Rob
Stubs p/ Servios

Device Drivers
Programa Programa
do Usurio do Usurio
(cliente) (cliente)
Rob Real ou Simulador
Processador do Cliente
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares 30

15
23/09/2010

Arquitetura Orientada a Servio

Vantagens:
Possibilidade de composio de servios.
Servios de suporte (WS-*): segurana, polticas, transao, etc.
Disponibilidade do protocolo SOAP (inclusive em navegadores via AJAX).
Protocolos baseados em XML.
Mltiplos estilos de interao (mensagem, RPC)

Desvantagens:
Protocolos pesados para clientes de baixo poder computacional ou
servidores embarcados.
Requer processador servidor (ou processador embarcado de alta
capacidade).
SOAP gera elevado trfico pela rede.

31
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Orientada a Servio:


Exemplo
Acesso remoto ao rob Pioneer P3-DX

Servidores: Web Service no processador servidor (Axis sobre Tomcat)


e Ipthru nativo no rob.
Cliente: Web Service (AXIS/Java).
API do cliente: interface WSDL (Web Service Descriprion Language).
Protocolo de invocao de servios: SOAP (Simple Object Access
Protocol).
Segurana tratada no processador servidor.

Problemas:
Acesso indireto ao rob (via servidor de aplicao).
Cliente deve suportar SOAP.
Interoperabilidade entre implementaes SOAP (exemplo: .NET e
Axis).

32
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

16
23/09/2010

Arquitetura Orientada a Servio: Exemplo


Especificao do servio de navegao em WSDL:
fragmento da operao move

<element name="move">
<complexType>
<sequence>
<element name="in0 type="impl:Position"/>
</sequence>
</complexType>
</element>
<element name="moveResponse">
<complexType/>
</element>
<complexType name="Position">
<sequence>
<element name=x" type="xsd:double"/>
<element name=y" type="xsd:double"/>
<element name=th" type="xsd:double"/>
</sequence>
</complexType>

33
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquiteturas p/ Controle de Robs


Processador Servidor
Arquitetura Publicador/Subscritor

Servio de Difuso

Stub
Publicador/ push/pull
p/ o push/pull
Subescritor
Servio

API do Rob Stub p/ o Servio

Programa do Programa do
Device Drivers Usurio Usurio
(publicador/ (publicador/
subscritor) subscritor)
Rob Real ou Simulador
Processador do Cliente
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares 34

17
23/09/2010

Arquitetura Publicador/Subscritor

Vantagens:
Alto desacoplamento entre produtores e consumidores de eventos.
Modelo de eventos interessante para aplicaes dirigidas a eventos.
Diferentes modos de notificao: push (sncrono) e pull (assncrono).
Possibilidade de filtragem de eventos.

Desvantagens:
Servio de difuso de eventos pode se tornar um gargalo e ponto de
falha na comunicao com o rob.
Modo pull requer persistncia de eventos.
Modo push requer que clientes tenham o papel de servidor.

35
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Publicador/Subscritor:
Exemplo
Aquisio de telemetria do rob Pionner P3-DX

Servio de difuso baseado em Web Service (SOAP).


Servio de difuso emprega base de dados XML para persistncia de
eventos.
Eventos so descritos em XML (metadado + informao).
Rob publica telemetria no servio de difuso numa dada frequncia.
Clientes acessavam a telemetria assincronamente (pull) no servio de
difuso. Exemplo de cliente: mapeador do ambiente.

Problemas:
Alto atraso imposto pelo servio de difuso.
Consumo excessivo de banda de rede.
Informao publicada nem sempre utilizada.

36
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

18
23/09/2010

Arquitetura Publicador/Subscritor: Exemplo


Fragmento da especificao de um evento em XML Schema

<xs:element name="event">
<xs:complexType>
<xs:sequence>
<xs:element name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-zA-Z0-9.-_])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="supplier">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-zA-Z0-9.-_])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="timeout" default="0">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="-1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
...............

37
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquiteturas p/ Controle de Robs


Arquitetura Orientada a Mensagens

Programa Programa
do Usurio do Usurio

Processador
de API de Mensagens
Mensagens XML,
JMS,
...
API do Rob Processador do Cliente

Device Drivers Rob Real ou


Simulador
38

IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

19
23/09/2010

Arquitetura Orientada a Mensagens


Vantagens:
Comunicao bidirecional (mensagens de requisio e resposta) ou
unidirecional. Bidirecional pode ser sncrona ou assncrona.
Desacoplamento entre produtor e consumidor (no existe interface
como em RPC, por exemplo).
Formatao flexvel (o consumidor no necessita processar toda a
informao contida na mensagem).

Desvantagens:
Requer interpretao (parsing) da mensagem tanto no produtor quanto
no consumidor.
Comunicao bidirecional assncrona requer polling ou capacidade de
servidor no requisitor (para envio da resposta).

39
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura Orientada a Mensagem:


Exemplo

Acesso remoto ao rob Pioneer P3-DX

XMLipthru um consumidor de mensagem multithreaded instalado no


rob (escrito em C++).
Mensagens so formatadas em XML e transportadas sobre UDP.
So suportados os modos unidirecional e bidirecional sncrono (o modo
bidirecional assncrono no suportado).

Problemas:
Perda de mensagens UDP no enlace areo.
Impossibilidade de gerao de mensagens a partir de um navegador
Web.
Segurana no suportada.

40
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

20
23/09/2010

Arquitetura Orientada a Mensagem: Exemplo


Exemplo de mensagem XML enviada ao rob

<?xml version="1.0"?>
<program>
<sync-op>
<name>deslocate</name>
<par>1500</par>
</sync-op>
<async-op>
<name>stop</name>
</async-op>
<async-op>
<name>setHeading</name>
<par>90</par>
</async-op>
<get>
<name>telemetry</name>
</get>
</program>

41
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquiteturas p/ Controle de Robs


Arquitetura REST (Representational State Transfer)

HTTP
Programa Programa
XML do Usurio do Usurio
estado

Servidor API HTTP


Recursos HTTP

API do Rob Processador do Cliente

Device Drivers Rob Real ou


Simulador

IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares 42

21
23/09/2010

Arquitetura REST
Em REST a aplicao modelada como um conjunto de recursos
operados por requisies HTTP:
PUT: cria um recurso.
GET: obtem estado de um recurso.
POST: altera estado de um recurso.
DELETE: destroi um recurso.

Recursos so identificados por URIs. Exemplo:


http://143.106.50.145:4950/telemetria/sonar

Requisies/resposta carregam documentos XML.

Nenhum servio adicional especificado (exemplo: segurana).

Extremo oposto a Web Services em termos de simplicidade.

43
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura REST

Vantagens:
Simplicidade (HTTP e XML).
Leve para o cliente.
HTTP um protocolo universal (reconhecido pelo NAT).
XML suportada em praticamente todas as linguagens de programao.
Emprega segurana bem estabelecida (HTTPS, HTTP Proxy, etc.).
Clientes baseados em Web browsers (AJAX).

Desvantagens:
Nem tudo pode ser descrito eficientemente por XML (p.ex., imagens).
No h composio de recursos.
XML requer parsing e consome muita banda de rede.

44
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

22
23/09/2010

Arquitetura REST: Exemplo


Acesso remoto ao rob mvel Pioneer P3-DX

HTTPIpthru um micro-servidor HTTP multithreaded instalado no rob


(escrito em C++).
Micro-servidor responsvel pela proteo do rob.
Clientes AJAX/Javascript (no navegador) e Java/C++/Python/Matlab (no
desktop).
Segurana via HTTP Proxy (robs possuem endereos IP privados).
Rob integrado com outras aplicaes Web.
Recursos do rob acessveis como recursos Web.

Problemas:
HTTPipthru suporta apenas GET (requisies POST + XML implementadas
com GET + parmetros CGI Common Gateway Interface). Evita parsing
XML no rob e permite operao direta via navegador.
URIs no hierarquizadas (http://ip:porta/range.cgi?op=getSonarReadings
deveria ser http://ip:porta/range/sonars).

45
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura REST: Exemplo

46
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

23
23/09/2010

HTTPIpthru
Aplicao

APIs

HTTPIpthru HTTPIpthru HTTPIpthru HTTPIpthru

ARIA Player ARIA Player

ARCOS P3DX Driver Stage Driver

ARCOS MobileSim Stage


Rob Real Rob Simulado 47

IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura do Rob P3-DX


Aplicaes
(navegao, localizao, ...)

Computador de controle
(de bordo, laptop, handheld)
ARIA

RS232

ARCOS

Microcontrolador H8S Base do rob

Perifricos
(motores, sonares, ...)
48
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

24
23/09/2010

ARCOS

Advanced Robotics Control and Operations (ARCOS) um


firmware que executa na memria flash do microcontrolador
H8S.

A comunicao com o ARCOS se d por meio do envio/recepo


de pacotes de dados via porta serial. Cada pacote define uma
ao e parmetros tal como movimentar o rob, resetar posio
do rob, setar limites de velocidade, ler sonares, acionar um
acessrio, etc.

ARCOS armazena todos os parmetros fsicos do rob, por


exemplo, ticks/rotao dos motores (500), reduo por
engrenagens (38.3:1), dimetro das rodas motrizes (195mm),
etc.

49
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

ARCOS: Movimentao do Rob


ARCOS suporta vrias formas de movimentao:
movimentao linear com velocidade constante;
movimentao rotacional com velocidade angular constante;
movimentao independente das rodas (mm/s);
movimentao para um ponto X,Y;
alinhamento para um ngulo .

Para movimentao para um ponto e alinhamento, ARCOS emprega um


controlador PID (proporcional, integral, derivativo). ARCOS permite o ajuste
dos parmetros Kp, Ki, Kd.

X, Y,
(alvo) erro(t) Controlador
+ PWM Motores
+ PID
- rodas

X(t), y(t), (t)


(odometria) Codificador
Odometria
(dead-reckoning) (Encoders)
50
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

25
23/09/2010

ARIA
Advanced Robotics Interface for
Applications (ARIA) uma
interface de programao (API)
orientada a objetos (conjunto de
classes).

ARIA pode ser vista como uma


interface de alto nvel para o
ARCOS.

Caractersticas:
API C++ (interface de alto nvel para o ARCOS)
Disponvel em Linux e Windows
Wrappers para Java e Python
Funes para controlar cada dispositivo do rob
Conexo com o rob via serial (rob real) ou TCP/IP
(rob real + ipthru, ou simulador)
Comportamentos pr-programados (aes)
Multithreaded ou monothreaded
51
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

ARIA
ARIA exige uma seqncia de aes:

1. Inicializao: Aria::init()
2. Instanciao da classe ArRobot: :ArRobot robot;
3. Adio de dispositivos ao rob: robot. addRangeDevice(&sonarDev);
4. Conexo com o rob (remota):
ArSimpleConnector simpleConn(&parser);
simpleConn.connectRobot(&robot);
5. Modo de operao: robot.runAsync(true);
6. Ativa motores: robot.comInt(ArCommands::ENABLE, 1);
7. Envio de comandos:
robot.lock();
robot.xxxxx();
robot.unlock();
8. Desconexo: Aria::shutdown();
52
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

26
23/09/2010

ARIA: HelloAria
// uso: HelloAria -rh <hostname>

#include "Aria.h"

int main(int argc, char** argv)


{
// inicializa Aria
Aria::init();

// cria um parser de argumentos


ArArgumentParser parser(&argc, argv);
// cria conector c/ robo ou simulador
ArSimpleConnector simpleConnector(&parser);
// instancia robo
ArRobot robot;
// carrega argumentos no parser
parser.loadDefaultArguments();
// conecta
if (!simpleConnector.parseArgs() || !parser.checkHelpAndWarnUnparsed()) {
simpleConnector.logOptions();
exit(1);
}

53
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

ARIA: HelloAria (cont.)


// conecta ao robo
if (!simpleConnector.connectRobot(&robot)){
printf("Falha na conexao com o robo.\n");
Aria::exit(1);
}

// run async: para robo se conexao for perdida


robot.runAsync(true);
// ativa os motores
robot.comInt(ArCommands::ENABLE, 1);

// move robo
robot.lock();
robot.move(1000);
robot.unlock();
// aguarda movimento terminar
ArUtil::sleep(5000);
robot.lock();
robot.setHeading(90);
robot.unlock();
// aguarda movimento terminar
ArUtil::sleep(5000);
// encerra
Aria::shutdown();
} IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares
54

27
23/09/2010

ARIA / MobileSim

Programa
Protocolo do Usurio
do Fabricante (cliente)
Sobre TCP/IP
MobileSim ARIA

Processador do Cliente
Modelo do
Ambiente
(.map)

Processador do Cliente
ou Remoto
55

IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Player / Stage / Gazebo

Player uma interface de programao como o ARIA


baseada no modelo cliente/servidor;

Stage um simulador 2D (base para o MobileSim);

Gazebo um simulador 3D.

http://playerstage.sourceforge.net/

56
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

28
23/09/2010

Player
Player executando em um rob real.

Cliente TCP/IP Servidor


Player Player p3dx.cfg

driver (
name "p2os"
Driver provides ["sonar:0" "positition2d:0"]
port "/dev/ttyS0"
)
Rob SO
(ex. ARCOS)

57
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Player + Stage

O simulador Stage pode operar como um driver do Player,


simulando um rob real.

Cliente TCP/IP Servidor


Player Player simul.cfg
driver (
name "stage"
Driver provides ["simulation:0"]
(libstageplugin) plugin "libstageplugin"
worldfile "myWorld.world"
)
Stage driver (
myWorld.world name "stage"
provides ["sonar:0" "positition2d:0"]
model "robo1"
)

58
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

29
23/09/2010

Stage: World Files

Um world file contem:

1. Dimenso do mundo em metros (ex. 10x10);


2. Resoluo (preciso) em metros;
3. Configurao da janela grfica (GUI);
4. Bitmap do ambiente (obstculos);
5. Obstculos adicionais (pontos formando polgonos);
6. Definio dos robs presentes no ambiente (nome, cor, posio, ...);
7. Outras informaes (ex., posicionamento do carregador de bateria).

59
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Player/Stage X ARIA/MobileSim
Player uma soluo independente de fabricante. Seus desenvolvedores
o definem como um "hardware abstraction interface" (HAL) para
dispositivos robticos. ARIA uma soluo para robs de um dado
fabricante.

MobileSim um wrapper Player/Stage para ARIA (ou seja, pode-se usar


ARIA em um simulador Stage-like).

MobileSim possui um editor de mapas, Mapper3 (disponvel no site do


fabricante). Stage utiliza arquivos PNG como mapas de obstculos.

No existe Player/Stage para Windows.

Ambas as solues possuem verses Java deficiente (no ARIA gerada


automaticamente, no Player/Stage mantida por um terceiro).

Ambas as solues so cdigo aberto.


60
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

30
23/09/2010

Gazebo

Gazebo um simulador 3D que opera com o Player.

Stage oferece as funcionalidades mnimas para uma simulao,


inclusive com mltiplos robs em um mesmo ambiente.

Gazebo procura representar o ambiente o mais prximo possvel


do real. Requer processadores poderosos para a simulao.
Interessante para navegao por viso e mapeamento preciso do
ambiente (3D).

61
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Infraestrutura de Acesso Remoto

Aplicao Aplicao

HTTP/S GET
API (Java, C++, Python, Matlab) (+ pars. CGI)

Parser XML Parser HTTP Rede HTTPipthru

XML ARIA/Player

ARCOS

62
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

31
23/09/2010

APIs Java, C++, Python, Matlab

As APIs Java, C++, Python e Matlab possuem a mesma estrutura:

Servios do rob agrupados em categorias:


Locomoo (movimentao, garra, bumpers);
Sensoriamento do ambiente (sonar, laser).
Viso (cmeras de bordo);
Informao (dados sobre o rob);
Aes (HTTPIpthru sobre ARIA apenas).

Disponibilizam classes que facilitam a operao do rob.

A aplicao no necessita processamento (parsing) de documentos XML.

Evoluo das APIs via criao de novos servios e extenso dos


existentes (por exemplo, quando o rob recebe novos acessrios).

63
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Servio de Locomoo

O servio de locomoo permite:

obter dados referentes movimentao do rob (posio,


velocidades, aceleraes, estado do gripper e bumpers);
movimentar, orientar e parar o rob;
operar o gripper;
impor limites de velocidades e aceleraes.

Algumas operaes possuem verso assncrona, por exemplo,


deslocate e setHeading).

64
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

32
23/09/2010

Servio de Sensoriamento do
Ambiente

O servio de sensoriamento do ambiente permite ler todos ou um


subconjunto de sensores laser e sonar. A leitura pode se dar:

de maneira detalhada (sensor position, local position, global position e


distncia lida);
de maneira reduzida (apenas as distncias lidas);
de maneira muito reduzida (apenas o sensor que detectou a distncia
mnima).

Obs:

Em todas as medidas fornecida a posio do rob no ambiente.


Para selecionar um subconjunto dos sensores existe o parmetro range:
Primeiro:Ultimo:Incremento.

65
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Servio de Viso
O servio de viso permite:

obter ajustes da cmera de bordo PTZ;


ajustar a cmera de bordo PTZ e autofoco;
ajustar o tamanho da imagem capturada;
capturar uma imagem (png ou jpg);
capturar uma sequncia de duas imagens separadas por um intervalo
de tempo;
capturar um vdeo MJPEG sobre HTTP (Motion JPEG no MPEG).

OBS: Servio no disponvel em ambientes simulados.

66
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

33
23/09/2010

Servio de Informao e Aes

O servio de informao permite obter dados sobre o rob tais como


dimenses do rob e disponibilidade de laser, sonar, gripper e bumpers.
Informa tambm a tenso da bateria.

O servio de aes permite instalar e remover aes (comportamentos)


no rob. Aes uma particularidade do ARIA, no disponvel no Player.
Dez aes esto disponveis, inclusive uma que permite teleoperar o rob
com um joystick.

67
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Exemplo de Utilizao da API em


Ambiente Simulado
import robot.service.*;
import robot.util.*;

public class Circulo {

public static void main(String[] args) {


try {
MoveService mserv = new MoveService(, args[0]);
mserv.setVel(300);
mserv.setRotVel(10);
Thread.currentThread().sleep(60000);
mserv.stop();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}

68
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

34
23/09/2010

HTTPIpthru: Arquitetura
Webcam
de bordo
imagem
posio Micro-servidor HTTP
(multithreaded)
OpenCV

ARIA/Player V4L imagem


NetCmera
de bordo
ARCOS Framegrabber

sensores
atuadores posio imagem

Base do Cmera
rob de bordo

69
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Infraestrutura para o Curso (2009)

Internet

FEEC CTI
Servidor Rede
Switch Switch
e Proxy KyaTera

Cmera
Panormica

1 cmera Cmera
16 sonares 2 Netcams
Panormica
Laser 16 Sonares
Gripper
70
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

35
23/09/2010

Infraestrutura para o Curso (2010)

Internet

FEEC
Rede Servidor
Switch
KyaTera e Proxy

Cmera
Panormica
2 Netcams
16 Sonares

1 cmera
16 sonares
Laser
Gripper

71
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Projeto REAL

Remotely Accessible Laboratory

DRVC/CTI (Eliane Guimares)


FEEC/Unicamp (Eleri Cardozo)

72
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

36
23/09/2010

Projeto REAL: Temas de Pesquisa

Concepo de plataformas abertas de middleware;


Desenvolvimento de sistemas orientados a servios Web;
Computao sensvel a contexto;
Arquiteturas de software distribudo;
Robs em rede;
Redes de sensores;
Criao e disponibilizao de infra-estruturas de WebLabs;
Federaes de WebLabs;
WebLabs de robtica mvel.

73
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Projeto REAL: Plataformas


Plataforma Web (CGI-BIN);
Plataforma orientada a objetos distribudos (CORBA);
Plataforma orientada a componentes de software com tecnologia
CORBA (CCM-tel);
Plataformas orientadas a servio (Web Services);
3 geraes de Web Labs em robtica mvel desenvolvidas sobre
as plataformas acima;
WebLab para curso no Tidia-AE empregando tecnologia J2EE;
GigaBOT WebLab sobre a rede Giga/RNP e Internet;
Infra-estruturas para federao de WebLabs sobre a rede
Kyatera/Fapesp;
REALabs-BOT WebLab sobre a rede Fapesp/KyaTera.

74
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

37
23/09/2010

WebLabs: Definio

Laboratrios acessveis atravs da Internet pblica ou rede


privada. O acesso geralmente realizado via tecnologias Web
(Navegadores e protocolos Web).

As facilidades providas pelos laboratrios podem ser fsicas


(cmeras, robs) ou lgicas (simuladores). Usurios executam
experimentos sobre estas facilidades.

Devido a grande interatividade requerida, WebLabs demandam


conexes de rede de alta velocidade.

75
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

WebLabs: Desafios
Como desenvolver WebLabs em que:
experimentos possam ser facilmente criados e modificados;
o controle de acesso seja flexvel e configurvel;
interatividade seja facilmente incorporada aos experimentos.

Soluo: desenvolver uma arquitetura capaz de dar suporte a


funes comuns a todos os WebLabs.

Para desenvolver tal arquitetura, necessrio um modelo de


referncia geral o suficiente para representar o maior nmero
possvel de WebLabs.

76
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

38
23/09/2010

Modelo de Referncia p/ WebLabs


Recurso manipula Servio compe

publica
mantm
Experimento
oferece
Web Lab
federao

Sesso usa
Credencial

Grupo Participante Usurio

77
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Tendncias em WebLabs
Arquiteturas de WebLabs comumente empregam um
servidor de WebLab centralizado:

Protocolos
proprietrios

HTTP
Recursos do WebLab

Servidor do WebLab

78
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

39
23/09/2010

Servidor Centralizado: Exemplo

Protocolos
proprietrios

HTTP/SOAP
Recursos do WebLab

Apache Axis

79
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Tendncias em WebLabs
Uma arquitetura de WebLab mais flexvel emprega micro
servidores HTTP embutidos nos recursos:

HTTP Proxy + Firewall

HTTP/S
Recursos do WebLab

Aplicao Web
(lado do cliente)

Servidor do WebLab

80
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

40
23/09/2010

Tendncias em WebLabs
Interao HTTP com os recursos pode empregar diferentes estilos:

Web Services HTTP + SOAP


esquema de interao complexo e pesado;
micro servidores HTTP e clientes Web precisam suportar SOAP.

REST (Representational State Transfer) mtodos HTTP + XML


esquema de interao simples;
demanda micro servidores HTTP com funcionalidades de parser XML;
AJAX (Asynchonous Javascript and XML) requirido no lado do cliente
para interfaces Web.

XML sobre HTTP


esquema de interao mais simples (somente mtodos GET +
parmetros CGI na requisio);
micro servidores HTTP liberados de parsing XML;
AJAX no obrigatrio no lado do cliente.
81
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquiteturas para WebLabs


Usurios &
Grupos

Recursos

Experimentos Servios
de Suporte

WebLabs
Banco de dados (ex., MySQL/JPA)
Servidor de Aplicao (ex., Tomcat)
Single sign on (ex., OpenSSO)
Acesso

HTTP/XML
Servios de
Gerncia

82
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

41
23/09/2010

Servios de Gerncia
Servios de gerncia so operados pelo administrador do WebLab.
Gerncia de Usurios e Grupos:

83
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Servios de Gerncia

Gerncia de
Usurios:
cadastramento.

84
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

42
23/09/2010

Servios de Gerncia
Gerncia de Recursos, Experimentos e WebLabs:

85
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Servios de Gerncia

Gerncia de
Recursos:
cadastramento

86
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

43
23/09/2010

Servios de Gerncia
Gerncia de Experimentos: edio de experimento.

87
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Servios de Gerncia

Gerncia de
WebLab: criao
de novo WebLab.

88
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

44
23/09/2010

Servios de Gerncia
A gerncia de Acesso utilizada para que o usurio adquira
uma chave de acesso (cookie) aps autenticao (login).

Micro
HTTP Proxy Servidor
HTTP

cookie SID ?

Interface de init
Acesso Servio de Reservas
ping
Acesso Sesses
end

O cookie tem como valor o Session ID (SID)

89
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

O WebLab REALabs-BOT

90
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

45
23/09/2010

REALabs-BOT: Login

91
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

REALabs-BOT: Login

92
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

46
23/09/2010

REALabs-BOT: Reservas e Execuo de


Experimentos

93
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

REALabs-BOT: Reservas

94
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

47
23/09/2010

REALabs-BOT : Reservas

95
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

REALabs-BOT: Reservas

96
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

48
23/09/2010

REALabs-BOT: Recursos

97
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

REALabs-BOT: ID de Sesso

98
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

49
23/09/2010

REALabs-BOT: Aplicaes no Desktop

O usurio passa o SID nos


construtores dos servios da API
SID (Session ID) que por sua vez utiliza o SID para
gerao do cookie nas interaes.

Micro
HTTP Proxy Servidor
HTTP

cookie SID ?
Interface de init
Acesso Servio de Reservas
ping
Acesso Sesses
end

99
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Exemplo de Utilizao da API em


Ambiente Real
import robot.service.*;
import robot.util.*;

public class Circulo {

public static void main(String[] args) {


try {
MoveService mserv = new MoveService(SID_5094, args[0]);
mserv.setVel(300);
mserv.setRotVel(10);
Thread.currentThread().sleep(60000);
mserv.stop();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
100
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

50
23/09/2010

REALabs-BOT: Recursos de Hardware

101
101
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

REALabs-BOT: Recursos de Hardware


Interface Web de movimentao do rob:

102
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

51
23/09/2010

REALabs-BOT: Recursos de Hardware


Interface de controle da cmera panormica

103
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

REALabs-BOT: Recursos de Software

104
104
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

52
23/09/2010

REALabs-BOT: Recursos de Software


Recursos de software so escritos em Java e necessitam Java
Web Start no computador do usurio.

105
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robtica em Rede

Alto custo dos robs autnomos:

Sensoriamento complexo (laser rangefinders, cmeras estreo,


radares, GPS, bssola, etc.).
Alta capacidade de processamento (requer vrias CPUs
embarcadas).
Software complexo (o rob deve fazer tudo, desde a percepo
at o planejamento estratgico).
Manuteno, calibrao e operao altamente complexas.

106
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

53
23/09/2010

Robtica em Rede

Rob Stanley (Univ. de Stanford)

107
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robtica em Rede: Definio

rea que integra robtica e redes de comunicaes visando


o desenvolvimento de uma nova gerao de robs
autnomos e teleoperados. Esta nova gerao de robs
utiliza uma ou mais redes de comunicao para:
interagir com outros robs e/ou com seres humanos;
acessar servios de rede (localizao, processamento, etc.)
para apoio execuo de tarefas tais como localizao,
planejamento, navegao e ao sobre o ambiente;
integrar robs a sistemas mais abrangentes (atendimento a
emergncias, defesa, monitoramento ambiental, etc.).

O objetivo principal a reduo de custo e aumento de


capacidade dos robs, principalmente robs mveis.

108
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

54
23/09/2010

Robtica em Rede

Satlites VAN

Manipuladores
WSN (tteis, por voz, etc.)

Redes

Veculo com
VANT
sensoriamento
limitado e muita Servios de rede
capacidade de (localizao, Grades
comunicao (e amplo navegao, etc.) computacionais
porta malas livre). (mapas, simuladores,
etc.)
109
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robtica em Rede: Desafios

Desenvolver sistemas robticos distribudos e tolerantes a


flutuaes e falhas da rede de comunicao.

Desenvolver plataformas e arquiteturas de software para


suporte a aplicaes de robtica em rede.

Desenvolver novos mecanismos de interao via rede com


robs.

Desenvolver novos servios de redes teis para aplicaes


robticas.

Minimizar riscos de segurana.

110
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

55
23/09/2010

Redes de Computadores
Rede de Telefonia
CATV Fibra tica
Fixa Mvel (DWDM)
2G, 3G, 4G Redes Locais

Redes de Acesso Troncos


(ltima Milha) (Fibra tica) Ethernet Cho de Wireless
(Cable Modem, SONET/SDH Fbrica
ADSL, Fibra)
Redes ATM
WiFi/WiMax
Tecnologias Sensores
(camadas 1,2)
Comunicao Veicular
(camadas 3,4) Redes TCP/IP
Corporal
Aplicaes
(camadas 5,6,7)
WWW VoIP IPTV
...
111
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Redes de Computadores

Modelo OSI (ISO): um modelo de referncia para redes de computadores.

Protocolos ISO para o modelo OSI: conjunto de protocolos para os


elementos (camadas) do modelo OSI.

Arquitetura TCP/IP (IETF): arquitetura de rede no aderente ao modelo OSI.

Outras arquiteturas de rede: NetWare (Novell), IN (Rede Inteligente, ITU-T),


SNA (IBM).

112
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

56
23/09/2010

Modelo OSI

Aplicao Infra-estrutura para o desenvolvimento de aplicaes


Apresentao Formatao cannica de dados
Sesso Manuteno de estado da comunicao fim-a-fim

Transporte Transferncia de segmentos fim-a-fim

Rede Transferrncia de pacotes (store-and-forward)

Enlace Transferncia de quadros entre ns prximos

Fsica Transmisso de bits no meio fsico

113
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Modelo OSI: Exemplo

Navegador Web

Aplicao Hypertext Transfer Protocol (HTTP, HTTPS)

Apresentao Hypertext Markup Language (HTML)


Sesso Secure Socket Layer (SSL)
Transporte Transfer Control Protocol (TCP)
Rede Internet Protocol (IP), Address Resolution Protocol (ARP)
Enlace Ethernet (IEEE 802.3)
Fsica Par tranado (100BaseT)

114
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

57
23/09/2010

Arquitetura TCP/IP
Aplicao

Aplicao Apresentao
Sesso
Transporte
Transporte
Interconexo de Redes
Rede
Interface de Rede Enlace
Fsica

OBS: Na arquitetura TCP/IP a camada de aplicao responsvel pela


representao cannica de dados (apresentao) e por manter o estado
da comunicao (sesso).

115
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Protocolos TCP/IP
Alm dos protocolos bsicos, a Arquitetura TCP/IP especifica um
grande nmero de protocolos de rede e aplicao, por exemplo:

Camada de rede:
IPSec (IP Secure): confidencialidade e integridade de pacote IP;
OSPF (Open Shortest Path First): roteamento de pacotes IP;
RSVP (Resource Reservation Protocol): reserva de recursos para
comunicao;
DiffServ (Servios Diferenciados): priorizao de pacotes;
DHCP (Dynamic Host Configuration Protocol): atribuio de
endereos de rede.

Camada de Aplicao:
SNMP (Simple Network Management Protocol): gerncia de rede;
DNS (Domain Name System): mapeamento nome hierrquico-
endereo de rede;
NAT (Network Address Translation): mapeamento endereamento
privado-pblico.
116
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

58
23/09/2010

Protocolos TCP/IP
A camada interface de rede no prescreve protocolos especficos.

A camada de rede define os seguintes protocolos:


IP (Internet Protocol): define o formato de um pacote de rede
(datagrama);
ARP (Address Resolution Protocol): mapeia endereos de rede em
endereos de interface de rede (enlace);
ICMP (Internet Control Message Protocol): define mensagens de
controle (p.ex., echo request) e erros (e.g., host unreachable).

A camada de transporte define os seguintes protocolos:


TCP (Transfer Control Protocol): transporte de cadeia de bytes com
garantia de entrega fim-a-fim;
UDP (User Datagram Protocol): transporte de mensagens sem
garantia de entrega fim-a-fim.

A camada de aplicao define vrios protocolos tais como HTTP,


SMTP (Simple Mail Transfer Protocol) e SSH (Secure Shell).
117
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Endereamento TCP/IP

Endereo de aplicao
Aplicao (distingue um servio ou aplicao)
Endereo de transporte
Transporte (distingue um ponto de acesso rede utilizado por aplicao)
Endereo de rede
Rede (distingue globalmente a interface)
Endereo de enlace
Enlace (distingue a interface de rede no enlace)

Fsica Endereo fsico


(distingue a conexo ao meio fsico)

118
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

59
23/09/2010

Mapeamento de Endereos TCP/IP

Aplicao http://prainha.dca.fee.unicamp.br:8080/

DNS (Domain Name System)


Transporte 8080

143.106.50.145 prainha.dca.fee.unicamp.br
Rede
ARP (Address Resolution Protocol)
Enlace 00:11:43:CF:06:53

hardwired
Fsica
RJ-45

119
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Endereos IP

Camada de rede: utiliza endereamento de 32 bits hierarquizados em


dois nveis (subrede - host)
Classe A: 7 bits para subrede e 24 para host;
Classe B: 14 bits para subrede e 16 para host;
Classe C: 21 bits para subrede e 8 para host.

Notao decimal: valor decimal de 8 bits separados por ponto


Exemplo: 143.106.8.30

Notao classless: notao decimal / tamanho do prefixo (agrega 2N


endereos consecutivos)
Exemplos: 143.106.8/24 (rede com 256 hosts), 143.106.8/26 (rede com
1024 hosts), 143.106.8.30/32 (host especfico)

120
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

60
23/09/2010

Por que TCP/IP Prevaleceu ?

No especificar protocolos de rede e enlace permitiu evoluir as tecnologias


de rede e preservar as aplicaes (a custa do protocolo ARP).

Camada de rede simples com servio de melhor-esforo (protocolo IP)


barateia os roteadores.

Deixa para os computadores dos usurios o nus da comunicao confivel


e o controle de congestionamento (protocolo TCP) -- escalabilidade.

Fcil de configurar (protocolo DHCP).

Compartilhamento de endereos pblicos (NAT).

Portabilidade de aplicaes (sockets).

Killing application (WWW).


121
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Requisitos de Rede

Requisitos Funcionais:

Transporte de bytes entre componentes do sistema distribudo.

Requisitos No Funcionais:

Confiabilidade (taxa de perdas, probabilidade de falha, ...);


Segurana (privacidade, autenticidade, ...);
Qualidade de servio (atraso, jitter, ...);
Classes de servio (priorizao de trfego)
Mobilidade (de terminal, de sesso, ...).

Os requisitos funcionais so atendidos pelas camadas 1-7. Os


requisitos no funcionais podem necessitar de infra-estrutura
adicional (Gerncia baseada em polticas, QoS brokers, etc.).

122
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

61
23/09/2010

Requisitos de Rede
Que requisitos de rede TCP/IP capaz de atender ?

a. Segurana: atende razoavelmente bem com mecanismo de


chaves criptogrficas (ex: HTTPS);
b. QoS (atraso, jitter): no atende (Internet atual);
c. CoS: atende em redes privadas com equipamentos adequados
(ex: priorizao de trfego VoIP);
d. Mobilidade: no tende.

Cenrio hoje:

a. sobre-provisionamento de recursos para QoS/CoS;


b. mobilidade apenas na camada 2 (ex: WiFi) ou via redes
sobrepostas (ex: IP em redes de telefonia celular).

123
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Requisitos de Rede
Que requisitos de rede TCP/IP capaz de atender ?

a. Segurana: atende razoavelmente bem com mecanismo de


chaves criptogrficas (ex: HTTPS);
b. QoS (atraso, jitter): no atende (Internet atual);
c. CoS: atende em redes privadas com equipamentos adequados
(ex: priorizao de trfego VoIP);
d. Mobilidade: no tende.

Cenrio hoje:

a. sobre-provisionamento de recursos para QoS/CoS;


b. mobilidade apenas na camada 2 (ex: WiFi) ou via redes
sobrepostas (ex: IP em redes de telefonia celular).

124
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

62
23/09/2010

Qualidade de Servio
Viso OSI
QoS nas camadas 1,2,3 garantidos por controle de admisso;
QoS nas camadas superiores negociados no estabelecimento de
conexes.

Viso TCP/IP (original)


Campo TOS (Type of Service) no datagrama IP utilizado para definir
o tipo de servio conferido ao datagrama pelos roteadores.

Viso TCP/IP (Arq. de Servios Integrados - IntServ)


Utiliza-se um protocolo para sinalizar reserva de recursos na
camada 3 (RSVP).

Viso TCP/IP (Arq. de Servios Diferenciados - DiffServ)


Redefine-se o campo TOS para identicar classes de servio.

IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares 125

Conexes

Uma conexo uma negociao entre duas camadas adjacentes (por


meio de seus respectivos protocolos) visando dotar a comunicao de
certos atributos relavantes para a camada. Por exemplo, para a
camada de rede atributos de taxa de transferncia e atraso so
importantes; para a camada de transporte ausncia de perdas
importante.

Conexes garantem a utilizao dos recursos de forma planejada (por


exemplo, evitando congestionamento nos roteadores).

Entretanto, a complexidade dos protocolos orientados a conexo


muito maior em relao queles que operam sem conexo.

126
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

63
23/09/2010

Campo TOS

De acordo com o valor do campo TOS, o roteador confere um tratamento


adequado ao pacote:
mxima vazo;
mxima confiabilidade;
mnimo atraso;
mxima segurana.
mnimo custo monetrio.

Problema: os roteadores primitivos no tinham como honrar o campo


TOS.

Resultado: servio de melhor esforo independente do campo TOS.

127
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura IntServ
Soluo orientada a fluxo.

A B

fluxo R R R
estado

Estabelece reserva de recursos para um fluxo individual.


Define um modelo de reoteador capaz de diferenciar fluxos.
Define um protocolo para reserva de recursos por fluxo.

128
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

64
23/09/2010

Protocolos IntServ
A Arquitetura IntServ define o protocolo RSVP (Resource Reservation
Protocol). RSVP um protocolo:

- soft state;
- extensvel (cabealho simples + objetos);
- complexo (combinao e compartilhamento de reservas);
- exige trfego modelado por meio de token bucket.

A B
Path (fluxo, Tspec)

Resv
R R R

A mensagen Path instala (e refresca) o estado e Resv confirma o estado.

129
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Arquitetura DiffServ

Soluo orientada a diferenciao de servios:


define-se N classes de servio;
para cada classe, define-se um comportamento homogneo para
pacotes pertencentes classe (per hop behavior - PHB).

Classes de servio so especificadas separadamente. Cada classe


identificada por um cdigo no campo TOS (DiffServ Code Point - DSCP)
e pode possuir mais de uma subclasse. Cada subclasse pode possuir
mais de uma prioridade de descarte. Atualmente existem 3 classes:
EF (Expedited Forward) - similar a uma linha privada virtual - no
define subclasses;
AF (Assured Forward) - melhor que melhor esforo - define 4
subclasses com 3 prioridades de descarte cada;
BE (Best Effort) - servio padro - no define subclasses.

130
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

65
23/09/2010

Robtica em Rede
Quais as restries que um acesso via rede impe sobre o
controle de robs mveis?

Atraso com alta variana.

Incapacidade de reservar recursos ou priorizar trfego (servio


de melhor esforo na camada de rede).

Protocolos de transporte inadequados:


UDP: no confivel;
TCP: taxa de transferncia inconstante (buffers, slow-start)

Enlaces areos:
Alta taxa de perdas de pacotes (interferncias);
Handover (mudana de pontos de acesso).

131
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robtica em Rede
Exemplo de priorizao de Vdeo com alta prioridade
trfego no enlace areo.

Telemetria com alta prioridade

132
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

66
23/09/2010

Robtica em Rede
Influncia da vazo da rede no desempenho do controle

Rede Vel. do rob (mm/s)


ADSL Residencial (Speedy) 30
Ethernet de campus 90
Ethernet local 170
tica (RNP Giga) 200
133
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robtica em Rede
Quais os riscos em termos de confiabilidade e segurana?

Perda de pacotes pode comprometer o controle (exemplo: perda de uma


mensagem de stop).
Soluo: uso de TCP/IP.

Robs usualmente no possuem proteo contra acesso indevido


(exemplo: SSL e filtros de pacotes).
Soluo: proteo externa ao rob.

134
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

67
23/09/2010

Robtica em Rede
Arquitetura de Rede
Internet

HTTP Proxy

Rede de Rede de Rede Sem


Alta Recursos Fio (WiFi,
Velocidade (Privada) ZigBee,
Firewall Bluetooth)

Servidor

135
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

Robtica em Rede

Segurana

Autenticao
Por domnio (exemplo: login/senha);
Federada (Single Sign On): requer relaes de confiana entre
dos domnios (exemplo: entidade certificadora).

Autorizao
Representao de credenciais (exemplo: SAML);
Polticas de acesso (exemplo: uso mediante reserva);
Controle de acesso (exemplo: cookies, credenciais assinadas).

136
IA368N - Robtica Mvel - Eleri Cardozo & Eliane Guimares

68

Você também pode gostar