September, 2011
Luiz Eduardo Galvão Martins, Ph.D.UNIFESP
Development of Computer Vision Applications for Mobile Robotic Platforms
Desenvolvimento de Aplicações de Visão Computacional para Plataformas de Robótica Móvel
2
• 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
Agenda
• RobóticaCiê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
Evolução da Robótica
1495 - 1926 1942 - 1963 1969 - 1989 1993- 1999 2000 - 2011 Fonte: http://robotics.ece.auckland.ac.nz
5
• A robótica móvel pode ser classificada, entre outras formas, de acordo com o meio físico de locomoção dos robôs:
Evolução da Robótica
Terrestre Aéreo Aquático
6
• 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
Robótica Móvel Terrestre
7
• Pioneer – MobileRobots USA
• Create – Irobot USA
• Mindstorms NXT – LEGO Denmark
• Robotic Mobility Platform – Segway USA
• RoboDeck – Xbot Brazil
Plataformas de Robótica Móvel para Pesquisa
• O RoboDeck é uma plataforma robótica projetada para fins educacionais e de pesquisa na área de robótica móvel
A Plataforma RoboDeck
9
A Plataforma RoboDeck
Indoor
10
A Plataforma RoboDeck
11
A Plataforma RoboDeck
12
A Plataforma RoboDeck
• Distribuição do sensoriamento do RoboDeck
13
A Plataforma RoboDeck
• Visão geral da arquitetura de software do RoboDeck
14
A Plataforma RoboDeck
• MAP contextualizado na placa de alta performance
15
A Plataforma RoboDeck• A placa de alta performance
16
• 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
17
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
18
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
19
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);
20
• 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
Aplicações de Visão Computacional na Robótica Móvel
Aplicações de Visão Computacional na Robótica Móvel
21
• 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 ComputacionalAplicações de Visão
Computacional na Robótica Móvel
22
• Robô Vigilante
Aplicativos de Visão ComputacionalAplicações de Visão
Computacional na Robótica Móvel
23
• Esquadrilha de Robôs Vigilantes
Aplicativos de Visão ComputacionalAplicações de Visão
Computacional na Robótica Móvel
24
• 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
Comentários FinaisAplicações de Visão
Computacional na Robótica Móvel
25
Comentários FinaisAplicações de Visão
Computacional na Robótica Móvel
• Robô Entregador– Aplicações
• Armazéns, supermercados, galpões industriais, hospitais, bibliotecas
P2
P4
P3 P1
• 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
Comentários FinaisAplicações de Visão
Computacional na Robótica Móvel
Onde encontro ... ?
Siga-me !
26
27
A Empresa XBot
A Empresa XBot
29
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