Nomad 200
 Robô Autônomo Móvel
 Nomadic Technologies
(www.robots.com)
 Pentium200, 64 Mb Ram, Linux
 Sistema multiprocessado com
memória compartilhada
 Link ethernet sem fio
 Braço mecânico
 Diversos sensores
Nomad 200 - Sensores
Sonar
 Anel com 16 módulos (polaroid 6500)
 Distâncias entre 15 cm e 6.5 m, 1% erro
 Influências
Tipo de superfície
Geometria
Temperatura
Umidade
Nomad 200 - Sensores
Infravermelho
 Anel com 16 módulos
 Distâncias entre 0 cm e 60 cm
 Influências
Tipo de superfície
Geometria
Iluminação
Cor
Nomad 200 - Sensores
Sistema de Visão
 1 Câmera colorida fixa (Hitachi KP-D50)
 Frame grabber (Matrox Meteor)
Bumper
 2 anéis com 10 sensores cada
Bússola
Encoder
 X, Y, ângulos da torre e rodas
Nomad 200 - Direcionamento
Torre e base independentes
3 rodas: Synchronous-Drive
Velocidades
 Translação: 61 cm/s
 Rotação (rodas): 60 graus/s
 Rotação (torre): 90 graus/s
Robô não-holonômico
90 graus
Nomad 200 - Cuidados
Baterias recarregáveis: 3 + 2
 Duração aproximada: 6 - 8 horas (?)
 Aviso sonoro de fim de carga
 Cuidados na colocação / remoção / recarga
Botão de emergência
Boot / Shutdown
 Linux - RO x Linux - RW
Programação / Controle
Programação em C, utilizando biblioteca
de funções específicas
Interface gráfica (X-Windows)
 Envio de comandos remotos
 Acompanhamento dos sensores
 Configuração de um ambiente simulado
 Execução / simulação de programas
Esquema de Programação
Modo Direto x Modo Cliente
Programa
Ndirect.o
#include
main() {
...
}
Daemon
Programa
Servidor
Nclient.o
#include
main() {
...
}
Daemon
Simulador
Comandos
Comunicação
 connect_robot, tk, real_robot, ...
Movimento
 pr, vm, st, ws, zr, arm_mv, ...
 ac, sp, dp, ...
Sensores
 get_ir, get_sn, gs, ...
 init_sensors, conf_ir, conf_sn, ...
Comandos
Simulador / Mapa
 draw_line, add_obstacle, ...
Vetores Globais
 State: leitura dos sensores
 Smask: “máscara” dos sensores
 ex: State[STATE_SONAR_4]
leitura do sonar numero 4
HelloWorld.c
#include “Nclient.h”
void main(){
connect_robot(1);
tk(“Hello World”);
zr();
sp(50,0,0);
pr(1000,0,0);
while(State[STATE_CONF_X] < 1000)
gs();
disconnect_robot(1);
}
% gcc -o hello helloWorld.c Nclient.o
Diretórios
~chaimo/robotica/Nomad200/
 ./server: Nserver (versão SunOS 4)
 ./client: bibliotecas (.h e .o)
 ./examples
./host_demo: exemplos
Executar na turquesa ou outra máquina
SunOS 4
Aplicações
Distance Estimation (SBAI 1999)
Visual Servoing (CBA2000)
XR4000, Scout & Nomad 200
Outros Robôs Móveis
Download

ppt