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