Development of Computer Vision Applications for Mobile Robotic Platforms Desenvolvimento de Aplicações de Visão Computacional para Plataformas de Robótica Móvel Luiz Eduardo Galvão Martins, Ph.D. UNIFESP XBot legmartins@unifesp.br September, 2011 1
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
Evolução da Robótica Robótica Robô 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
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
Plataformas de Robótica Móvel para Pesquisa Pioneer – MobileRobots USA Create – Irobot USA Mindstorms NXT – LEGO Denmark Robotic Mobility Platform – Segway USA RoboDeck – Xbot Brazil
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
A Plataforma RoboDeck
A Plataforma RoboDeck
A Plataforma RoboDeck Distribuição do sensoriamento do RoboDeck
A Plataforma RoboDeck Visão geral da arquitetura de software do RoboDeck
A Plataforma RoboDeck MAP contextualizado na placa de alta performance
A Plataforma RoboDeck A placa de alta performance
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)
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 );
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;
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);
Aplicações de Visão Computacional na Robótica 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
Aplicativos de Visão Computacional Aplicações de Visão Computacional na Robótica Móvel Aplicativos de Visão Computacional Robô Vigilante Aplicações Galpões industriais Áreas de convívio em condomínios Escolas Repartições públicas Shopping Mall
Aplicativos de Visão Computacional Aplicações de Visão Computacional na Robótica Móvel Aplicativos de Visão Computacional Robô Vigilante
Aplicativos de Visão Computacional Aplicações de Visão Computacional na Robótica Móvel Aplicativos de Visão Computacional Esquadrilha de Robôs Vigilantes
Aplicações de Visão Computacional na Robótica Móvel Comentários Finais 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
Aplicações de Visão Computacional na Robótica Móvel Comentários Finais Robô Entregador Aplicações Armazéns, supermercados, galpões industriais, hospitais, bibliotecas P4 P3 P1 P2
Aplicações de Visão Computacional na Robótica Móvel Comentários Finais 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 !
A Empresa XBot
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
Contato Agradecimentos Luiz Eduardo Galvão Martins, Ph.D. legmartins@unifesp.br luiz@xbot.com.br 30