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