Development of Computer Vision Applications for Mobile Robotic Platforms Desenvolvimento de Aplicações de Visão Computacional para Plataformas de Robótica Móvel September, 2011 Luiz Eduardo Galvão Martins, Ph.D. UNIFESP XBot [email protected] Agenda • • • • • Evolução da Robótica Robótica Móvel Terrestre Plataformas de Robótica Móvel para Pesquisa A Plataforma RoboDeck Aplicações de Visão Computacional na Robótica Móvel • A Empresa XBot • Comentários Finais 2 Evolução da Robótica • Robótica Ciência e técnica da concepção, construção e utilização de robôs • Robô Segundo Ronald Arkin, do Instituto de Tecnologia da Geórgia (Estados Unidos), “um robô é uma máquina capaz de extrair informações do ambiente e usar conhecimento sobre o mundo de modo a se mover com segurança e com um propósito” Evolução da Robótica 1495 - 1926 1942 - 1963 1969 - 1989 1993- 1999 2000 - 2011 Fonte: http://robotics.ece.auckland.ac.nz Evolução da Robótica • A robótica móvel pode ser classificada, entre outras formas, de acordo com o meio físico de locomoção dos robôs: Terrestre Aéreo Aquático 5 Robótica Móvel Terrestre • Navegação em ambientes internos estruturados (ou não) • Navegação em ambientes externos estruturados (ou não) • Mapeamento de ambientes • Sistemas de auxílio à condução de veículos – – – – – Detecção de pedestres Detecção de placas de sinalização Estacionamento autônomo de veículos Comboios automatizados Outros 6 Plataformas de Robótica Móvel para Pesquisa • Pioneer – MobileRobots USA • Create – Irobot USA • Mindstorms NXT – LEGO Denmark • Robotic Mobility Platform – Segway • RoboDeck – Xbot Brazil USA 7 A Plataforma RoboDeck • O RoboDeck é uma plataforma robótica projetada para fins educacionais e de pesquisa na área de robótica móvel A Plataforma RoboDeck Indoor 9 A Plataforma RoboDeck 10 A Plataforma RoboDeck 11 A Plataforma RoboDeck • Distribuição do sensoriamento do RoboDeck 12 A Plataforma RoboDeck • Visão geral da arquitetura de software do RoboDeck 13 A Plataforma RoboDeck • MAP contextualizado na placa de alta performance 14 A Plataforma RoboDeck • A placa de alta performance 15 Aplicações de Visão Computacional na Robótica Móvel • Oferecer ao robô capacidade de visão computacional, por meio de algoritmos de processamento de imagens – Algoritmos para reconhecimento de cores – Algoritmos para reconhecimento de formas (objetos) – Algoritmos para perseguição de objetos prédefinidos (tracking) 16 Aplicações de Visão Computacional na Robótica Móvel void reconheceCirculoNaImagem() { IplImage* img = cvLoadImage("figuras.jpg", 1); IplImage* gray = cvCreateImage(cvGetSize(img), 8, 1); CvMemStorage* storage = cvCreateMemStorage(0); cvCvtColor(img, gray, CV_BGR2GRAY); cvSmooth(gray, gray, CV_GAUSSIAN, 9, 9); CvSeq* circles = cvHoughCircles(gray, storage,CV_HOUGH_GRADIENT, 2, gray->height/4, 200, 100); printf("%f",circles); int i; for (i = 0; i < circles->total; i++) { printf("\ncírculo na cena "); float* p = (float*)cvGetSeqElem( circles, i ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), 3, CV_RGB(0,255,0), -1, 8, 0 ); cvCircle( img, cvPoint(cvRound(p[0]),cvRound(p[1])), cvRound(p[2]), CV_RGB(255,0,0), 3, 8, 0 ); } cvNamedWindow( "circles", 1 ); cvShowImage( "circles", img ); cvNamedWindow( "smooth", 2 ); cvShowImage( "smooth", gray ); } 17 Aplicações de Visão Computacional na Robótica Móvel int main(int argc, char *argv[]) { Camera *camera = new Camera(); IplImage *templ = cvLoadImage("seta_direita.png"); } cvNamedWindow(mainWindowName); img = camera->NextFrame(); TemplateMatch *match = new TemplateMatch(img, templ); CvPoint *pos = &cvPoint(0, 0); double maxVal = 0; while(true) { cvMinMaxLoc(match->Match(), 0, &maxVal, pos); if(maxVal > THRESHOLD)match->DrawRect(pos); cvShowImage(mainWindowName, match->GetImg()); match->SetImg(camera->NextFrame()); if(cvWaitKey(10) == 27) break; } cvDestroyWindow(mainWindowName); delete match; delete camera; return 0; 18 Aplicações de Visão Computacional na Robótica Móvel Acionamento dos comandos robóticos: • MOTOR_Move(Motor nMotor, s16 intensity); • MOTOR_DirectionMove(Wheel nWheel, s8 Angulo); 19 Aplicações deComputacional Visão Aplicações de Visão Computacional na Robótica na Robótica Móvel Móvel • Robô Vigilante – Rondas em rotas pré-estabelecidas (trajetos com sinais) – Monitoramento de objetos (portas, janelas com marcações especiais) – Acionamento do sistema central de segurança – Comunicação com vigias humanos 20 Aplicações Visão Aplicativos dedeVisão Computacional na Robótica Móvel Computacional • Robô Vigilante – Aplicações • • • • • Galpões industriais Áreas de convívio em condomínios Escolas Repartições públicas Shopping Mall 21 Aplicações Visão Aplicativos dedeVisão Computacional na Robótica Móvel Computacional • Robô Vigilante 22 Aplicações Visão Aplicativos dedeVisão Computacional na Robótica Móvel Computacional • Esquadrilha de Robôs Vigilantes 23 Aplicações de Visão Comentários Finais Móvel Computacional na Robótica • Robô Entregador – Programação de rotas a ser percorridas dentro do ambiente de entrega – Ativação do robô por meio de fala – Capacidade de desviar de pessoas e outros objetos – Associação de sinais aos trajetos – Aviso automático da entrega realizada – Aplicações • Armazéns, supermercados, galpões industriais, hospitais, bibliotecas 24 Aplicações de Visão Comentários Finais Móvel Computacional na Robótica • Robô Entregador – Aplicações • Armazéns, supermercados, galpões industriais, hospitais, bibliotecas P4 P3 P1 P2 25 Aplicações de Visão Comentários Finais Móvel Computacional na Robótica • Robô Guia – Auxílio a pessoas em ambientes complexos • “follow me workstation” – Interação via terminal touchscreen – Interação via reconhecimento de fala – Capacidade de desvio de obstáculos e pessoas – Aplicações: • Aeroportos, centro de convenções, museus, repartições públicas Onde encontro ... ? Siga-me ! 26 A Empresa XBot 27 A Empresa XBot Comentários Finais • A robótica está mais presente no dia-a-dia das pessoas • Visão Computacional ajudando a melhorar a autonomia dos robôs móveis • Plataforma RoboDeck como alternativa atrativa para o desenvolvimento de pesquisas e protótipos na área de robótica móvel • Tendência futura: comunicação, interação, colaboração e inteligência coletiva 29 Contato Agradecimentos Luiz Eduardo Galvão Martins, Ph.D. [email protected] [email protected] 30