Programa de Navegação e Comunicações para um Robot Móvel Emanuel Amaral Oliveira Paulo Miguel de Jesus Dias Orientação conjunta de: Luis Almeida (Dep Electrónica e Telecomunicações) Victor Santos (Dep Mecânica)
Plano da apresentação I - Introdução II - Ferramentas básicas III - Localização natural IV - Atravessamento de passagens estreitas V - Demonstração final VI - Conclusões
I - Introdução Especificações do robot Ambiente de trabalho Robuter III da Robosoft Processador 68040 da Motorola 24 sensores de ultra-sons Sistema operativo tempo real da Robosoft: Albatros 150 kg, 100 kg de carga. Ambiente de trabalho Programação e cross-compilação numa Sunsparc Download via linha série para o PC de comunicação Download via porta paralela para o robot
II - Ferramentas básicas Estrutura de dados usada para a comunicação entre processos EXECUTE Pos mov EMERGENCY emerg US sens SERIAL serial KERNEL Kill
Ferramentas básicas, SERIAL.C Módulo SERIAL.C Módulo responsável pela gestão das mensagens Formato das mensagens permite compatibilidade As três principais categorias são: Pedidos de informação Envio de comandos Mensagens associdas aos ultra-sons
Ferramentas Básicas, US.C Módulo de leitura dos sensores US.C Permite a escolha dos sensores activos Definição do tempo de atraso entre o disparo de nodos (node firing delay) Definição do time out
Ferramentas Básicas, EMERG.C Módulo de emergências EMERG.C As suas funções são Detecção de aproximação crítica a objectos Detecção de colisão Detecção de perda de comunicação Cada uma destas emergências pode ser activada ou desactivada independentemente das outras.
Ferramentas Básicas, EMERG.C Escolha dos sensores para aproximação crítica Função auto-toggle of useless sensors Limitações
Ferramentas Básicas, EXECUTOR.C Executor de movimentos EXECUTOR.C Este módulo é responsável por três acções Actualizar as variaveis de posição (pos) Testar e actualizar o estado do freio (serv) Realizar os movimentos pedidos
III - Localização natural Realização de uma demonstração fiável levanta problemas Odometria sujeita a erros cumulativos Necessidade de calibrar o robot Em geral, usam-se referências específicas (códigos barras, lasers, GPS …) necessitando sensores extras. Aqui o objectivo era conseguir essa calibração sem nenhuma referência externa específica, mas só com a informação On-board.
Localização natural, percurso 1m 1m Zona de calibração 1m DISTY DISTX 4m 0.5m Posição inicial D Ponto de recalibração 1m 2.5m Movimento de calibração
IV - Atravessamento de passagens estreitas Problema Sensores de ultra-som não conseguem medir distâncias inferiores a 20cm. Solução Para resolver o problema, colocaram-se dois sensores adicionais sobre uma unidade Pan & Tilt que passou a ser usada como um radar para permitir mapear o espaço a volta do robot
Atravessamento, medições Usando a pan & Tilt, conseguiu-se tirar medidas em volta do robot com uma precisão de 5 graus (72 medidas) como se pode ver nos exemplos seguintes
Atravessamento, algoritmos Foram então desenvolvidos dois algoritmos diferentes: para alinhar o robot (GATE.C) para passar a porta (DOORS.C).
Atravessamento, GATE.C O algoritmo GATE.C analisa as derivadas dos valores medidos pela PTU para detectar uma passagem estreita e depois tenta alinhar-se com esta
Atravessamento, GATE.C O alinhamento é feito em 4 fases 1 - O robot alinha-se na direcção do ângulo mais afastado 2 - O robot avança nessa direcção até estar centrado com a porta 3 - O robot alinha-se com a porta 4 - O robot avança e passa ao modo de passagem de portas
Atravessamento, DOORS.C O algoritmo usado para a passagem da porta consiste em calcular para cada direcção a distância “Mínima” que o robot pode medir, se numa dada direcção a medida é inferior a esse valor, o robot sabe que está excessivamente perto da passagem e que deve desviar-se para outro lado.
V - Demonstração final Esta demonstração tenta juntar todo o trabalho desenvolvido ao longo do ano, ou seja As ferramentas desenvolvidas nas quais se apoiou todo o trabalho desenvolvido A primeira demonstração com o conceito de localização natural O atravessamento de passagens estreitas
Demonstração final, percurso A demonstração final começa por pedir ao utilizador qual o gabinete até ao qual o robot deve se dirigir. O robot inicia então o movimento, deslocando-se até ao gabinete onde pára até que o bumper seja pressionado. Nessa altura, volta ao seu ponto de partida. Robot Workstation
VI - Conclusões Desenvovimento das ferramentas base para trabalho sobre o robot. Validação de um método simples de localização natural Solução para o problema da passagem estreita Integração com sucesso das soluções encontradas Fácil reconfiguração do sistema