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 – – – – 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 SERIAL serial KERNEL Kill EXECUTE Pos mov US EMERGENCY emerg sens 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 Onboard. Localização natural, percurso 1m 1m Zona de calibração 1m 4m DISTY DISTX 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 Porta a 25º Porta em frente 0 0 40 45 50 55 60 65 70 75 80 35 30 25 20 15 355350 345340 335 330 325 320 315 310 305 300 295 290 285 10355 2500 2000 1500 1000 500 85 90 0 95 100 105 110 115 120 125 130 135 140 145 150 155 160165 170175 180 35 40 45 50 55 60 20 355 15 10 3000 2000 70 1500 295 180 290 1000 275 85 270 90 265 95 260 100 285 280 500 275 0 270 265 260 105 255 110 250 115 245 120 125 130 135 140 145 150 155 160 165 170 175 180 240 235 230 225 220 215 210 205 200 195 185190 Porta a 90º 0 0 10355 3000 20 15 25 30 35 2500 40 45 2000 50 55 60 1500 65 70 1000 75 80 500 85 90 0 95 100 105 110 115 120 125 130 135 140 145 150 155 160165 170175 355350 345 340 335 330 325 320 315 310 305 300 2500 75 280 Porta a 45º 25 65 80 255 250 245 240 235 230 225 220 215 210 205 195200 185190 30 355350345 340 335 330 325 320 315 310 305 300 295 290 285 280 275 270 265 260 255 250 245 240 235 230 225 220 215 210 205 200 185190195 10355 3000 20 15 25 30 35 2500 40 45 2000 50 55 60 1500 65 70 1000 75 80 500 85 90 0 95 100 105 110 115 120 125 130 135 140 145 150 155 160165 170175 180 355350345 340 335 330 325 320 315 310 305 300 295 290 285 280 275 270 265 260 255 250 245 240 235 230 225 220 215 210 205 200 185190195 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 Derivada dos dados de ultra-sons (porta a 45º) 0 20 30 10 2000 350 340 330 1500 40 320 1000 50 310 500 60 300 0 -500 70 290 -1000 80 280 -1500 90 -2000 270 100 260 110 250 120 240 130 230 140 220 150 210 160 170 190 180 200 Atravessamento, GATE.C O alinhamento é feito em 4 fases 1 - O robot alinha-se na direcção do ângulo mais afastado 3 - O robot alinha-se com a porta 2 - O robot avança nessa direcção até estar centrado com a porta 4 - O robot avança e passa ao modo de passagem de portas Pan & Tilt d X1 X4 PT U Distância de X3 segurança 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. Sensores Robot Atravessamento, DOORS.C 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