sábado, 27 de outubro de 2012

Robotics Trends 2012

Vista do litoral de Fortaleza, CE.

Depois de achar que eu ia passar desta para uma melhor por causa de uma aterrissagem com direito a (muita) emoção, cheguei em Fortaleza. Como compensação, depois de arremeter o avião fez uma volta na cidade, o que nos proporcionou uma belíssima vista da Praia de Iracema! Por causa das atividades do evento, pude aproveitar muito pouco da cidade, mas a viagem valeu muito à pena.

Participei do Robotics Trends 2012, um evento que reuniu o Simpósio Latino-Americano de Robótica (LARS), o Workshop de Robótica Educacional (WRE), a Competição Latino-Americana de Robótica (LARC), a Olimpíada Brasileira de Robótica (OBR), a Competição Brasileira de Robótica (CBR) e a Mostra Nacional de Robótica (MNR). Ufa! É muita robótica! :-)

Neste ano houve a participação de alunos nas competições bateu recorde. Foram 1.600 alunos de todo o Brasil e de países da America-Latina! Vários alunos do IFES participaram das competições e apresentaram trabalhos na Mostra. Alunos das equipes Bugosos, TechnoZ e Emerotecos, todos de cursos técnicos, participaram de competições da RoboCup Junior (Resgate B) e da Olimpíada Brasileira (Resgate A). Veja mais aqui.

Apresentação das alunas do professor Eduardo Max na Mostra Nacional de Robótica.
Equipe Bugosos com o professor Robson Leone.

Equipe TechnoZ.

Alunos da equipe NEROs, de Engenharia de Controle e Automação, competiram na categoria IEEE-SEK pela primeira vez.


   


Equipe NEROs.

Apresentei um trabalho no Workshop de Robótica Educacional, de autoria minha com os professores Hudson Cássio Oliveira e Gabriela Freire Oliveira. Nosso trabalho recebeu o prêmio de terceiro melhor artigo submetido ao WRE 2012! O texto completo pode ser obtido aqui.


Neste ano tive a oportunidade de fazer parte da organização, atuando como chair da categoria Soccer da RoboCup Junior. Foi uma experiência ótima, mas confesso que é muito mais estressante do que eu esperava...

Categoria Soccer B - RoboCup Junior. 


Tive o prazer de entregar o troféu de primeiro lugar no Futebol para a equipe CHS, formada por alunos de São Paulo, Espírito Santo (IFES) e Pernambuco! Os dois alunos do ES também fazem parte da equipe Emerotecos. Com esse resultado, eles estão classificados para o mundial da RoboCup de 2013!

Equipe CHS recebendo o troféu de primeiro lugar no Soccer B.
Também tive o prazer de receber a premiação junto com a equipe Emerotecos, que oriento com o professor Hudson, pela conquista do primeiro lugar na categoria Resgate B! A Emerotecos também está classificada para o mundial da RoboCup 2013, que será na Holanda! 

Equipe Emerotecos recebendo o troféu de primeiro lugar no Resgate B.

Além de todas essas emoções, também pude rever vários amigos, como o pessoal da equipe Positronics, de Pernambuco. Aliás, os alunos da Positronics saíram da competição com troféus na Dança, no Futebol e no Resgate A! Resultado do trabalho dedicado deles e da orientação do professor Paulo Marcelo Pontes.

Equipe Positronics.

Uma visão... diferente do evento é mostrada no vídeo abaixo. Projeto de Igor Araujo, apresentado na MNR 2012. Muito legal!




Pois é... já estou sonhando com o evento do ano que vem. Adivinha onde será??

Onde??

Em Fortaleza! De novo! Isso mesmo. Por uma coincidência, as competições nacionais de 2013 serão novamente na capital do Ceará. Que, apesar do calor quase insuportável, nos recebeu muito bem!

Até a próxima!


Mais notícias sobre a participação do IFES no evento:


quinta-feira, 4 de outubro de 2012

Robótica: Introdução e Aplicações

Hoje ministrei a palestra "Robótica: Introdução e Aplicações" na Mostra UCL. Falei um pouco sobre o que são robôs manipuladores e robôs móveis, procurei mostrar alguns conceitos básicos, apresentei algumas aplicações e desenvolvimentos atuais na área de robótica. Concluí a palestra mostrando um pouco sobre competições de robótica (OBR e RoboCup).

A palestra teve duração de duas horas e contou com a presença de vários alunos e alguns professores da UCL, além de alguns alunos de outras instituições. Espero que tenham gostado!

Os slides utilizados na apresentação estão disponíveis no SlideShare e podem ser vistos aqui:



Expresso meus agradecimentos à Faculdade UCL, por me convidar para participar desse importante evento.

Até a próxima!

domingo, 23 de setembro de 2012

Investir em Robótica para Aumentar os Empregos!


Pelo menos esta é a ideia da União Européia: investir em robótica para garantir a competitividade e a manutenção de empregos! 

É, eu sei. Essa ideia pode parecer contraditória. Mas, segundo estudos realizados pela Comissão Européia, a utilização de cerca um milhão de robôs industriais no mundo é responsável pela manutenção de três milhões de empregos! 



Não está convencido? Aí vai outro dado: prevê-se que o mercado de robôs para uso doméstico e profissional cresça 40% nos próximos anos, com destaque para as aplicações de salvamento, de segurança e de limpeza. Até 2020, o mercado da robótica de serviços poderá atingir um volume de mais de 100 bilhões de euros por ano! Isso não é nada desprezível!

A Europa produz cerca de um quarto dos robôs industriais e metade dos robôs de serviço utilizados no mundo. Com o crescimento da produção em outros países, a preocupação Européia é com a manutenção de sua produção e de sua competitividade. Ou seja, investir no desenvolvimento de robôs é crucial para a manutenção de milhões de empregos na Europa. Por isso, a UE vai lançar em 2013 um programa de Parceria Público-Privada especialmente voltado para a robótica!

O robô NAO (Zariguim)
Se depender de apoio popular, a ideia de investir em robótica parece estar garantida. Cerca de 70% dos cidadãos da União Européia têm uma ideia positiva sobre os robôs. Grande parte concorda que os robôs são necessários, pois realizam tarefas muito difíceis ou perigosas para as pessoas, e outros  acham que os robôs são bons para a sociedade porque ajudam as pessoas. 

Eu arriscaria dizer que o resultado de uma pesquisa como essa não seria muito diferente no Brasil, principalmente depois do efeito "Zariguim" (aliás, o robô que interpretou Zariguim na novela é feito por uma empresa Européia, a francesa Aldebaran Robotics).

Até na China, onde o custo da mão-de-obra é baixíssimo, tarefas braçais e repetitivas estão sendo, cada vez mais, realizadas por robôs. Você deve ter visto a notícia sobre a compra de um milhão de robôs pela Foxconn, até 2014, para substituir trabalhadores que realizam esse tipo de tarefa. Esse é o preço para se ter um iPad cada vez mais barato. 

Ao invés de tentarmos manter o emprego em tarefas braçais, precisamos nos concentrar em qualificar as pessoas para realizarem trabalhos menos repetitivos, menos perigosos, mais prazerosos e mais... humanos. Vamos investir em robótica e aumentar os empregos!

domingo, 9 de setembro de 2012

Monte seu robô com Arduino!

Mini-robô com Arduino.
Quer montar seu próprio robô? Você pode!! 

Neste post vou descrever como você pode montar o robô ao lado, mostrando onde comprar as peças e dando dicas para sua montagem. 

A montagem não é complicada! Você não precisa ser um expert em eletrônica para montar este robô, mas precisa ter noções básicas (para poder ligar os cabos corretamente), além de fazer soldagem de componentes e fios. 

Se você quer montar um robô sem precisar fazer soldas nem se preocupar com a eletrônica, experimente o Lego NXT (veja aqui).

O vídeo abaixo mostra um resumo da montagem e testes do mini-robô com Arduino:


Por onde começar?

Em primeiro lugar, você deve definir o que seu robô vai fazer e em que ambiente ele vai se deslocar. Isso é essencial para a escolha das peças e estrutura corretas. Por exemplo, a estrutura de um robô que irá se deslocar em piso liso e limpo será muito diferente daquela de um robô capaz de se locomover em ambientes externos com piso de areia. 

Uma opção bem econômica é aproveitar aquele velho carro de controle-remoto que você não usa mais (ou roubar o do seu irmão). Nesse caso, você pode aproveitar a estrutura mecânica e os motores. Retire toda a eletrônica original (com cuidado, para que você consiga montar novamente caso seu irmão descubra), e substitua pelas placas que vou descrever a seguir.

Eu montei o meu com as peças mostradas abaixo.

Peças usadas na montagem do robô. A lista completa e locais de compra encontra-se no final deste post.


No fim deste post há uma lista detalhada com a quantidade de peças necessárias e seus sites para compra. 



Se você quiser montar um robô diferente, pode usar qualquer um dos diversos kits disponíveis no mercado. Veja alguns exemplos em:


Robô com Esteiras

Um robô a esteiras é melhor do que um robô a rodas para se deslocar em ambientes acidentados. Ele pode passar por cima de obstáculos maiores que robôs com rodas, o que é interessante! No entanto, robôs com esteira exigem mais energia durante seu deslocamento, o que significa que eles gastam mais bateria que os robôs a rodas.

A estrutura mecânica deste robô torna desnecessário o uso de rodas direcionais. Para fazer curvas, basta que uma esteira se movimente mais rápido que a outra. Se uma se mover num sentido e a outra se mover no sentido contrário com a mesma velocidade, o robô fará um giro em torno de seu centro. Isso resulta em boa mobilidade e facilita o controle.

Dicas de Montagem - Vamos ao que interessa!

Base


A base tem dimensões de 98 x 86 x 39 mm. É feita de plástico, tem suporte para 4 pilhas AA, para os dois motores e para as rodas. As quatro rodas e as duas esteiras de borracha acompanham o conjunto.


A base vem quase pronta, mas alguma montagem é necessária. Você vai precisar encaixar os contatos metálicos para as pilhas. Os contatos das extremidades não têm local fixo de encaixe, então você pode colá-los com um pouco de Super Bonder ou prender com uma fita dupla-face. Eu usei fita isolante mesmo. É uma boa ideia soldar os fios aos contatos das pilhas antes de prendê-los à base! Lembre-se de usar fios de cores diferentes para os terminais positivo e negativo das pilhas, pois isso ajuda a evitar ligações incorretas que podem resultar em queima dos circuitos.


Motores 

Os motores que usei são micro-motores de 6V que já vêm com uma caixa de redução de 100:1. Ou seja, a cada 100 voltas no eixo do motor, a roda dará apenas uma volta. Isso significa que a roda gira numa velocidade muito menor que o eixo do motor. Porque queremos isso? Simples: com a caixa de redução, o torque disponível na roda aumenta na mesma proporção da redução da velocidade. Ou seja, o robô fica mais lento, mas muito mais forte!

No site da Pololu você encontra outros motores que se encaixam na base. Eles têm o mesmo tamanho e mesma tensão, mas relação de redução é diferente. Com isso, se você quiser um robô mais rápido (e menos forte), pode usar um motor com redução menor (50:1, por exemplo).


Atenção! As rodas dos motores são diferentes! Elas tê um pequeno rasgo na lateral e o encaixe do eixo não é perfeitamente redondo: possui um chanfro para encaixar o eixo do motor. Depois de encaixar os motores nas rodas, você pode usar a própria roda como base para soldar os fios nos terminais dos motores. De novo, lembre-se de usar cores diferentes para os terminais positivo e negativo.

      

Após encaixar os motores e soldar os terminais, encaixe os motores na base.

Sensores de giro (opcional)

Se você quiser, pode instalar codificadores ópticos (encoders) para medir o giro das rodas de seu robô. Essa característica é interessante se você pensa em aplicar controladores mais complexos em seu robô, pois os encoders permitem medir a velocidade das rodas e estimar a posição relativa do robô. Se não quiser usar encoders, seu robô também vai funcionar!


Os encoders que eu usei são próprios para as rodas que vêm com a base. Por isso, basta cortar um pouco o plástico superior da base e parafusar os encoders como mostrado na foto ao lado. Sim, o furo da placa se alinha perfeitamente ao furo da base!


O funcionamento do encoder (de forma resumida) é o seguinte: LEDs da placa emitem luz infravermelha que é refletida pelos dentes existentes na parte interna da roda. Com o giro da roda, os dentes se movem e a reflexão ocorre de maneira alternada. A partir da detecção ou não do reflexo de luz, um trem de pulsos elétricos é gerado. Contando o número de pulsos é possível saber quantos graus a roda girou. Conhecendo a geometria do robô, pode-se determinar sua velocidade e seu deslocamento. 

Detalhe: para saber se a roda está girando no sentido horário ou anti-horário, cada placa tem dois emissores e dois receptores. Eles são montados de forma que o giro da roda em dado sentido provoca reflexão em um dos sensores primeiro. 

Os sensores da Pololu são muito bons. Eles podem ser alimentados diretamente pelo Arduino e seus sinais de saída também são conectados diretamente aos pinos do Arduino. No entanto, verifiquei que os encoders sofrem muita interferência de iluminação externa, o que pode exigir algum ajuste ou colocação de algum tipo de cobertura. 

Motor Shield para Arduino

O uso do Arduino como placa controladora permite a utilização de um shield para controle dos motores. Eu usei o Arduino Uno, mas você também pode usar outras versões, como o Leonardo ou o Duemilanove. 

Motor Shield encaixado no Arduino.

O shield que utilizei está mostrado na figura ao lado, já encaixado no Arduino Uno. Ele tem um chip com duas pontes-H com capacidade para controlar dois motores de corrente contínua de maneira independente. Recebe alimentação entre 6 e 15V e inclui um regulador de 5V para alimentar o Arduino, o que é muito interessante já que as 4 pilhas (alcalinas) resultam numa fonte de 6V. 

A ligação dos motores ao motor shield é bem simples: basta parafusar seus fios ao conector verde com as indicações M1+, M1-  (motor 1) e M2+, M2- (motor 2).  Os terminais da bateria devem ser ligados ao conector com as indicações VS (positivo) e GND (negativo). O jumper J4 deve permanecer encaixado para que a alimentação do Arduino seja feita através do regulador do motor shield.  Encaixe o motor shield no Arduino de maneira que as bordas das placas fiquem alinhadas.

Um código para teste do shield e acionamento dos motores está disponível na página do fabricante (veja link no final do post). A velocidade dos motores é controlada pela variação da razão cíclica do sinal PWM gerado pelo Arduino. No exemplo do fabricante, ele usa a função analogWrite para gerar o PWM, o que resulta num sinal com frequência de ~490Hz. Nos testes que realizei, os motores funcionaram sem nenhum problema com esse PWM, mas emitiram ruído audível que pode incomodar um pouco.

Detalhe importante: para que o robô se desloque em linha reta é necessário que as duas esteiras girem na mesma velocidade. No seu programa, você pode usar o mesmo valor na função analogWrite de ambos os motores, mas isso não garante que as rodas irão girar na mesma velocidade! Apesar de serem do mesmo tipo, dois motores nunca são exatamente iguais. Além disso, características como atrito, deslizamento e até diâmetro das rodas irão afetar a velocidade final de deslocamento. Com o uso de encoders você pode fazer um programa que mede a velocidade das rodas e realiza a compensação necessária, caso queira que o robô se mova em linha reta.

Com a base montada, motores encaixados e eletrônica pronta, seu robô já está pronto para andar!


Sensor ultrassônico

Módulos ultrassônicos.
Um robô só é um robô de verdade quando ele pode perceber o meio. Um sensor muito popular que permite a medição de distância a obstáculos é o sensor ultrassônico. A figura ao lado apresenta dois módulos de sensores ultrassônicos (um é visto de frente e o outro é visto de costas). Segundo o fabricante, esse módulo é capaz de medir distância a obstáculos entre 3cm e 4 metros!

O módulo ultrassônico funciona como um Sonar. Para medir a distância ao objeto que está a sua frente, o módulo emite um pulso de ultrassom (som em frequência de 40kHz, nesse caso) e mede o tempo que o reflexo do som leva para retornar. Sabendo que a velocidade do som no ar (à temperatura ambiente) é de ~340m/s, conhecendo o tempo que o som levou para ir até o obstáculo e voltar você pode calcular a que distância ele está! 

O Arduino possui um exemplo de programa que funciona exatamente com esse modelo de sensor. Você pode encontrá-lo em Exemples -> 06. Sensors -> Ping. Usei este exemplo para testar o módulo ultrassônico como mostrado no vídeo. Pude observar que esse módulo tem precisão de +/-1cm para leituras entre 3 e 30cm. Também notei que o ângulo de abertura do sensor não é muito grande: para distâncias menores que 20cm, o obstáculo deve estar praticamente em frente ao sensor para que possa ser detectado. A 20cm do sensor, um afastamento de 5cm do centro de sua linha de ação já faz com que o obstáculo não seja percebido.

Robô montado

Provisoriamente, encaixei os sensores de ultrassom numa pequena matriz de contatos apoiada na parte superior do robô. Um sensor está voltado para para a frente e o outro para trás, já que esse robô pode se deslocar nos dois sentidos. 

Robô montado.

Espero que tenha gostado do post e que ele lhe ajude a montar o seu próprio robô! 
A seguir, veja a listagem de peças utilizadas, seu modelo, a quantidade necessária e sites para compra.

Até a próxima!



sexta-feira, 24 de agosto de 2012

Tese sobre Cooperação entre homens e robôs


No dia 27/08, segunda-feira, o professor Flávio Garcia Pereira irá defender sua tese de doutorado intitulada:

Detecção de Pessoas e Reconhecimento de Gestos para Interação e Cooperação entre Seres Humanos e Robôs.


Seu trabalho foi desenvolvido no Programa de Pós-Graduação em Engenharia Elétrica da UFES, orientado pela professora Dra. Raquel Frizera Vassallo e coorientado pelo professor Dr. Evandro Ottoni Teatini Salles.

A apresentação é aberta ao público. Será realizada no auditório do CT VIII (antigo edifício da Petrobras, dentro do Campus de Goiabeiras da UFES).

O resumo da tese está copiado a seguir:


Este trabalho aborda o problema de interação e cooperação entre homens e robôs em ambientes internos utilizando um robô móvel a rodas dotado de sensores de visão computacional e um sensor de varredura laser. Para ser capaz de desempenhar esta interação, o robô móvel em questão deve ter a habilidade de detectar uma pessoa, inferir se a mesma tem vontade de interagir e, por fim, realizar uma tarefa em cooperativamente. A detecção da pessoa é feita através da combinação dos dados fornecidos por um sensor de varredura laser, os quais são utilizados para detectar as pernas de uma pessoa, com imagens, onde é realizada uma detecção facial. Caso exista correspondência entre face e pernas, o robô considera que uma pessoa está em frente a ele e inicia o processo de interação. A pessoa pode escolher o tipo de ajuda que deseja obter realizando um dos gestos que o robô é capaz de reconhecer. Assim, o robô executa a ação correspondente ao gesto apresentado. As ações adotadas neste trabalho foram o transporte cooperativo de cargas, a condução de uma pessoa até um lugar conhecido no espaço de trabalho, o controle de formação entre o robô e a pessoa e a navegação até um local específico. Para cada uma dessas ações foi projetado um controlador que permite que o robô desempenhe a tarefa cooperativa realizando movimentos suaves durante a execução da mesma.


Nos vemos lá!
Até a próxima!


quarta-feira, 22 de agosto de 2012

Trabalho sobre Controle Preditivo de Cadeira de Rodas Robótica

Quem está no ES poderá conferir a apresentação da dissertação de Mestrado em Engenharia Elétrica sobre aplicação de controle preditivo a uma cadeira de rodas robótica, de autoria do engenheiro Gustavo Cola. Será nesta sexta-feira, dia 24/08/2012, às 13h30min, no prédio CT VIII - UFES (antigo prédio da Petrobrás dentro do campus de Goiabeiras da UFES, ao lado do edifício da engenharia elétrica).

O resumo do trabalho dele está copiado a seguir:


Este trabalho propõe a modelagem de dois controladores preditivos híbridos, um para o sistema dinâmico e outro para o sistema cinemático de uma cadeira de rodas robótica. Esses controladores são calculados explicitamente (off-line) e são funções lineares por partes, do tipo PWA (PieceWaise Affine). Para gerar estes controladores off-line, foi utilizado um método de otimização conhecido como Programação Multiparamétrica (PM). A PM é parte integrante do MPT Toolbox para MatLab®, especialmente desenvolvido para sua aplicação em controle preditivo. Para se desenvolver os controladores foi preciso linearizar ambos os sistemas. A linearização do sistema dinâmico foi relativamente simples, precisando de apenas um ponto de operação e gerando uma resposta satisfatória. Contudo, a linearização do sistema cinemático foi mais problemática, sendo precisos 48 pontos de linearização para se conseguir um resultado aceitável. De posse dos sistemas linearizados e representados por espaço de estados, deu-se a modelagem dos controladores. Foram realizadas simulações computacionais dos controladores obtidos, juntamente com os modelos não lineares dos sistemas, sendo verificado que ambos garantiram suas estabilidades. O controlador dinâmico apresentou excelentes resultados, respondendo de forma rápida e eficiente. Já o controlador cinemático apresentou um resultado inferior, se comparado ao controlador dinâmico, demandando maior tempo computacional e necessitando que fosse sintonizado a cada mudança de setpoint.



Até a próxima!



quinta-feira, 16 de agosto de 2012

Empresa capixaba faz célula robotizada para a Vale

A empresa capixaba Automatica Tecnologia está desenvolvendo uma célula robotizada para ensaio de pelotas de minério de ferro. Tal sistema representa uma inovação no setor de pelotização a nível mundial e será instalado na Usina VIII do complexo Tubarão da Vale, em Vitória, ES.


A Automatica é uma empresa que se destaca no desenvolvimento de tecnologia e de produtos de automação, com anos de experiência no setor de pelotização. Já falei dela aqui no blog, quando comentei sobre o desenvolvimento do robô de quatro patas Guará.

Tive a oportunidade de trabalhar como engenheiro desta empresa por 4 anos e meio e posso dizer que foi uma experiência fantástica! Na época em que eu estava lá, participei do projeto e da construção de uma torre de ensaio de pelotas para a Vale, também desenvolvida pela Automatica. Trata-se de um sistema totalmente automático de amostragem e ensaio, que captura pelotas da correia transportadora da saída do forno e alimenta uma máquina de ensaio de compressão. A torre tem a altura de um pequeno edifício.

A célula robotizada que está sendo desenvolvida tem basicamente a mesma função da torre, mas ocupa um espaço muito menor e pode realizar os ensaios com mais eficiência. A Automatica irá utilizar um robô da ABB, que será responsável por manipular e mover as pelotas. A previsão é de que todo o sistema esteja funcionando até fevereiro de 2013.

Estamos torcendo!
Até a próxima!



Fontes: 
http://www.automatica.com.br/pt/index.php?option=com_content&view=article&id=53%3Anoticias&catid=15%3Acategorianoticias&Itemid=100&lang=br
http://www.automatica.com.br/pt/index.php?option=com_content&view=category&layout=blog&id=20&Itemid=56&lang=br

sexta-feira, 27 de julho de 2012

Muita robótica em Fortaleza!

Este post é para divulgar um grande evento da área de robótica que vai ocorrer em outubro de 2012 na cidade de Fortaleza. Tal evento envolve simpósios e competições, nacionais e internacionais, além de uma mostra de robótica. Imperdível!



Eu vou! :-)
Até lá!

terça-feira, 24 de julho de 2012

Curso e palestra de robótica na UFES

Dois pesquisadores argentinos da área de robótica estão no Espírito Santo realizando tarefas ligadas a um programa de intercâmbio existente entre o Programa de Pós-Graduação em Engenharia Elétrica da Universidade Federal do Espírito Santo (PPGEE-UFES) e o Instituto de Automática da Universidad Nacional de San Juan (INAUT-UNSJ), Argentina.

Prof. Ricardo Carelli
Como parte de tais atividades, o professor Dr. Ricardo Carelli está ministrando a disciplina de Robótica Industrial (CH: 45h) para alunos do mestrado e do doutorado em Engenharia Elétrica. Já tive a oportunidade de fazer duas disciplinas com o professor Carelli (uma na UFES e outra no INAUT). Só para dar uma ideia do quão bom é o curso dele, além dos alunos regulares do PPGEE, participam da turma atual o Dr. Antônio Bento (que é professor de Robótica da Engenharia Mecânica da UFES e participou do projeto do robô de 4 patas Guará), dois alunos de Iniciação Científica e eu! Não dá pra perder essa oportunidade! :-)

Outro pesquisador também presente no estado é o Prof. Dr. Flavio Roberti. Ele proferirá a seguinte palestra, para a qual todos os interessados estão convidados:

Título: Control Conmutado para la Interacción Humano-Robot
        Instituição:    Universidad Nacional de San Juan, San Juan, Argentina
        Data e horário: 26/07/2012, 09:30 horas (Auditório do CT-VI – ex PETROBRAS)

A palestra é aberta a todos os que tiverem interesse em assisti-la e será proferida em espanhol.

Resumo:
En este trabajo se presenta una estrategia de control conmutado que interpreta y diseña la interacción bilateral hombre-robot en el problema del ser humano siguiendo un robot móvil no holonómico a una distancia deseada, mientras el robot sigue un camino prefijado. La conmutación de los algoritmos está basada en la posición relativa hombre-robot y en la intención del hombre de seguir al robot. Los errores de control se definen en términos de posiciones instantáneas relativas del hombre al robot y del robot al camino. Se prueba la estabilidad de los controladores individuales empleando la teoría de Lyapunov y se describe el algoritmo de conmutación de dichos controladores. Se muestran experimentos reales de la interacción robot-humano con los controladores propuestos.

Até a próxima!


segunda-feira, 9 de julho de 2012

O pouso da Curiosity em Marte

Bem... pelo menos é assim que o pessoal do Jet Propulsion Laboratory, da NASA, está planejando o pouso do veículo Curiosity Mars Rover em Marte. Veja que fantástico trabalho de enegenharia!


No dia 5 agosto a gente confere o resultado. Estamos torcendo!

Até a próxima!

quarta-feira, 27 de junho de 2012

Melhor robô do mundo no Rescue B é da Emerotecos!

Já divulguei aqui várias notícias sobre a equipe Emerotecos. Mas esta tem um gostinho muito especial, pois a equipe acaba de conquistar o primeiro prêmio na apresentação do projeto e construção do robô usado na categoria Resgate B da RoboCup Junior 2012, realizada de 18 a 24 de junho na Cidade do México! 

No total, 19 equipes de diversos países (como Japão, Alemanha, Itália, Suécia, Irã, entre outros) participaram desta mesma categoria. Além do prêmio de melhor robô do mundo, a Emerotecos também obteve o quarto lugar na competição individual de equipes do Resgate B e o terceiro lugar na competição de supertimes na mesma categoria, competindo junto com a equipe da Eslovênia. Na prova de supertimes, duas equipes se unem (escolhidas por sorteio) para programarem seus robôs realizarem a tarefa de resgate de forma cooperativa.

Emerotecos com a equipe da Eslovênia recebendo o troféu de terceiro lugar na competição de supertimes.

A Emerotecos é uma equipe formada pelos alunos do IFES André Oliveira, Gabriel Guimarães, Ivan Seidel e Matheus Canejo da Cunha, todos alunos do ensino médio integrado a cursos técnicos do Campus Vitória (dois são do curso de Mecânica e dois são de Eletrotécnica). A equipe está vinculada ao NERA - Núcleo de Estudos em Robótica e Automação, e é orientada pelos professores Hudson Cassio Oliveira (da coord. de Mecânica do Campus Vitória) e por mim (coord. de Engenharia de Controle e Automação do Campus Serra).

O resultado alcançado pela equipe é fruto do trabalho dedicado desses quatro alunos, que projetaram, construíram e programaram um robô completo para competir na categoria Resgate B da RoboCup Junior. Nessa categoria os robôs participam de uma situação simulada de desastre. Depois de programados, os robôs devem percorrer um labirinto e encontrar "vítimas", que são identificadas por pontos aquecidos a uma temperatura próxima à do corpo humano. Toda a prova deve ser feita de maneira completamente autônoma (ou seja, sem controle remoto).

Após a competição, os alunos também participaram do Workshop de Robótica Educacional, parte do Simpósio da Robocup, onde apresentaram o trabalho Design and Implementation of an Android-Based Omnidirectional Robot for the RoboCup Junior Rescue B Competition, que trata do desenvolvimento de seu robô (veja aqui o programa do simpósio). Eu também tive a oportunidade de apresentar um trabalho no mesmo simpósio, falando sobre as atividades de robótica educacional desenvolvidas pelo NERA. 

Equipe Emerotecos apresentando seu robô no Simpósio da RoboCup.

Em nome da Emerotecos gostaria de agradecer às instituições e às pessoas que proporcionaram nossa viagem para participar da RoboCup 2012! Em especial, agradecemos às empresas Nova Didacta, Use Móveis, Proesi, Copy Express, Productiva-Hailtools, InTechno, Proesi e Qualidata. Agradecimentos especiais aos professores Ricardo Paiva e Tadeu Pissinati, do IFES, por seu esforço em sempre ajudar a equipe, e à professora Carmen Faria, da UFES, por sempre nos incentivar e motivar. Também agradecemos aos demais professores do IFES e a todos os amigos e companheiros de competição pelo apoio, companhia e amizade! 

A Emerotecos agradece aos patrocinadores!

No vídeo a seguir você pode conferir o desempenho do robô desenvolvido pela equipe.




Mais informações sobre o desenvolvimento do robô da Emerotecos podem ser encontradas no blog TechLego, mantido pelo Ivan:


Até a próxima!

domingo, 3 de junho de 2012

Geminoid DK - Robô ou humano?


Não! Isso não é uma pessoa imitando um robô. É um robô imitando uma pessoa!! Acredite. É de verdade! Esse é o modelo mais atual da série Geminoid, desenvolvido pela empresa japonesa Kokoro em conjunto com a Universidade de Osaka. A ideia é ter robôs muito parecidos com seres humanos reais para permitir o estudo de interação homem-robô. Em especial, possibilita o estudo da resposta emocional de pessoas que estão diante de androides que representam outras pessoas.

O robô (ainda) não é autônomo. Ele é controlado por um operador remoto auxiliado por um sistema de captura de movimentos, de forma a imitar os movimentos de seu "mestre". Expressões faciais, movimentos de cabeça, dos olhos e da boca são imitados.

Parte interna da cabeça do robô

A empresa Kokoro conta com dois outros modelos robôs muito parecidos com seres humanos.

Geminoids e seus "gêmeos" humanos.

Vamos ser sinceros... esse modelo mais novo parece mais humano que o Arnold Schwarzenegger, não parece? Ou seja, nosso futuro pertence à SkyNet!!

Até a próxima!

Referências:

sexta-feira, 1 de junho de 2012

iCub

iCub: o robô que aprende como criança.
Não! Esse não é um robô da Apple!

Apesar do nome, esse robô está sendo desenvolvido por um grupo de cientistas europeus. O projeto tem o objetivo de construir um robô humanóide, com características de uma criança, para o estudo de funções cognitivas.

No Swiss Federal Institute of Technology in Lausanne - EPFL, pesquisadores estão trabalhando num sistema que controla as partes superior e inferior do corpo do robô. Cientistas estão ensinando o robô da mesma maneira como se ensina a uma criança!

Já foram feitas diversas experiências para ensinar o robô a se mover de um ponto a outro engatinhando. Essa não é uma tarefa nada fácil! Imagine: esse robô possui 7 graus de liberdade em cada perna e outros 7 em cada braço. Logo, para engatinhar o robô deve aprender a controlar nada menos que 28 motores simultaneamente! Tarefas como essa permitem que os cientistas estudem de que forma o cérebro constrói um modelo de seu próprio corpo - certamente mais eficiente do que o cálculo clássico de cinemática inversa. ;-)

Outra área de estudo envolve o controle da cabeça e dos olhos para focalizar objetos de interesse e entender suas características. O robô é capaz de entender comandos verbais dados por uma pessoa, associar características do objeto a seu nome e reproduzir o que aprendeu! Veja dois exemplos muito interessantes nos vídeos abaixo.







Ainda há muito a se desenvolver em termos de inteligência artificial. Mas esse robôZINHO nos mostra que estamos no caminho!

Até a próxima!

Referências:

domingo, 27 de maio de 2012

Olimpíada Brasileira de Robótica 2012

Estão abertas as inscrições para a OBR - Olimpíada Brasileira de Robótica! A OBR é um evento público e gratuito, destinado a estudantes de ensino fundamental, médio e técnico com até 18 anos de idade.

Há duas modalidades para quem nunca trabalhou com robótica e tem vontade de iniciar: prova teórica e duathlon. A prova teórica é destinada a alunos de nível fundamental (veja informações aqui). A modalidade Duathlon é feita para alunos de nível médio e técnico (veja informações aqui). Essas provas serão realizadas no dia 10 de agosto de 2012.

Quem já tem conhecimentos de robótica deve participar da prova prática, que é feita em duas etapas: a primeira é uma eliminatória realizada em cada estado. Veja aqui em que local será realizada a prova prática no seu estado! As equipes vencedoras de cada estado são classificadas para a segunda etapa (final nacional), que ocorrerá na cidade de Fortaleza, de 15 a 21 de outubro de 2012.

Nas provas práticas as equipes devem construir e programar um robô para realizar, de forma completamente autônoma, o resgate de uma vítima em um ambiente de desastre simulado. O robô deve percorrer um caminho demarcado por uma fita preta, desviar de obstáculos, transpor detritos e encontrar a vítima (representada por uma lata de refrigerante). Na prova de nível médio/técnico, além de encontrar a vítima o robô deve movê-la para um local seguro.

Tudo isso deve ser feito de forma completamente autônoma, sem ajuda de nenhum controle externo! Todo o controle do robô deve ser previamente programado, fazendo uso de sensores para detectar o caminho, os obstáculos e a vítima.

As fotos a seguir foram tiradas durante a realização da etapa estadual de 2011 no ES:
















 Houve mudança nas regras das provas práticas estaduais de 2011 para 2012! Acesse aqui o arquivo com as regras atualizadas da prova prática - etapa estadual. As regras da etapa nacional são parecidas, mas a prova não é exatamente igual à prova da etapa estadual.

Se você quer começar a trabalhar com robótica, recomendo conhecer o kit Lego Mindstorms NXT 2.0. Veja aqui!!



domingo, 6 de maio de 2012

Arduino Wireless parte II - via Bluetooth!

Comunicação Bluetooth entre Arduino e Android.
Esse post é uma continuação do anterior, que pode ser acessado aqui. No primeiro, mostrei o teste de um módulo que permite a comunicação sem fio entre o Arduino e o computador (ou entre outros dispositivos) usando um módulo de rádio muito interessante, da Wixel Shield.

Agora, apresento um teste simples que fiz com um módulo Bluetooth. De fato, reproduzi o teste descrito pelo professor Cássio Agnaldo Onodera numa vídeo aula que ele tem no YouTube (acesse aqui), para verificar o funcionamento do módulo de comunicação Bluetooth.

O módulo Bluetooth que testei é de muito fácil utilização com o Arduino. Trata-se do modelo JY-BT03, fabricado pela Shenzhen Jiayuan Electronic Co. Ltd. Este módulo é muito prático, pois se conecta ao Arduino através dos pinos RX e TX, comportando-se como um dispositivo serial padrão! O próprio módulo cuida de toda a parte de comunicação Bluetooth. Ou seja, do ponto de vista do Arduino, tudo o que é necessário fazer é enviar e receber caracteres pela porta serial.

Módulo Bluetooth JY-BT03.
Algumas características do módulo Bluetooth são:

  • Comunicação Bluetooth 2.0;
  • Baud rate: 2.400 a 1.382.400 bps;
  • Tensão de alimentação: 5,0 V (3,6V a 6,0V);
  • Corrente: 35mA quando realiza "pareamento"; 8mA quando conectado;
  • Antena impressa na própria placa;
  • Possui 7 pinos de entrada e saída na placa;
  • Possui LED que indica o estado da conexão Bluetooth;
  • Senha padrão: 1234
Conexão ao módulo Bluetooth.
Como já mencionei, a conexão entre o Arduino e o módulo Bluetooth é muito simples. Ligue os dois pinos de alimentação do módulo (+5,0V e GND) aos pinos correspondentes do Arduino, de maneira que o módulo seja alimentado pelo próprio Arduino.

Quanto aos pinos de comunicação, basta conectar o pino de recepção de dados (RX) do módulo ao pino de transmissão de dados (TX) do Arduino, e vice-versa.

Observação importante: para transferir o programa ao Arduino é necessário que o módulo Bluetooth não esteja alimentado, ou não esteja conectado aos pinos RX e TX. Como o programa é transferido ao Arduino usando comunicação serial, a conexão do módulo Bluetooth vai interferir na comunicação, impedindo a correta transferência do programa. Só depois de programar o Arduino você pode fazer a conexão do módulo Bluetooth como indicado.

O código utilizado para teste do módulo é este:


void setup()
{
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  char c = Serial.read();
  
  if (c=='1') digitalWrite(13,HIGH);
  if (c=='2') digitalWrite(12,HIGH);  
  if (c=='3') digitalWrite(11,HIGH);  
  
  if (c=='A') digitalWrite(13,LOW);  
  if (c=='B') digitalWrite(12,LOW);  
  if (c=='C') digitalWrite(11,LOW);  
 
  delay(1000);
}


O programa é bastante simples: apenas aguarda a chegada de um caractere pela serial e, de acordo com seu valor, coloca uma das portas digitais do Arduino em nível alto ou baixo. Especificamente, foram utilizados três LEDs ligados aos pinos 11, 12 e 13 do Arduino. Cada um dos LEDs é  ligado quando um dos caracteres "1", "2" ou "3" é recebido, e desligado com a recepção dos caracteres "A", "B" ou "C".


Você pode testar o programa usando o Serial Monitor da IDE do Arduino. Nesse caso, lembre-se de desconectar a alimentação do módulo Bluetooth para evitar interferências na comunicação. Usando o Serial Monitor, experimente enviar os caracteres "123ABC" e veja se o resultado é o acendimento e desligamento de todos os LEDs, em sequência. Se tudo funcionar como esperado, desconecte o cabo USB do Arduino e reconecte os pinos ao módulo Bluetooth.

Para evitar problemas com a comunicação, não alimente o Arduino através da conexão USB do computador. Prefira alimentar o Arduino com uma fonte externa ou com uma bateria, como mostrado na primeira foto do post.

Fiz o teste do Bluetooth com um celular Android. Usei o programa S2 Bluetooth, disponível gratuitamente na Play Store (há outros, que você pode testar). Esse programa permite o envio de caracteres através da comunicação Bluetooth. Antes de abrir o programa, ative o Bluetooth no dispositivo Android e faça o "pareamento" com o módulo. A senha padrão é 1234. Em seguida, abra o programa S2 Bluetooth, clique no menu "Conect a Device" e escolha o dispositivo "linvor", conforme mostrado a seguir.

S2 Bluetooth: realizando conexão ao módulo.

Quando a conexão for realizada com sucesso, o LED do módulo Bluetooth vai permanecer aceso. Então, escreva os caracteres "123ABC" no programa S2 Bluetooth e clique em "SEND".

S2 Bluetooth: envio de caracteres.

Se tudo deu certo, você deve ver os LEDs acendendo e apagando em sequência. Pronto! Agora, com um pouco de criatividade, você já pode controlar o seu robô a partir de seu celular ou tablet Android via Bluetooth!

----- Editado em 26/set/2012 -----

Se você estiver animado, pode fazer seu próprio programa para Android usando o AppInventor! Esta é uma ferramenta de programação desenvolvida e mantida pelo MIT. A programação é feita de forma gráfica e é bastante intuitiva.

Um tutorial bem direto está disponível no site do Laboratório de Garagem (veja aqui). Com base nesse tutorial, Joanesburgo conseguiu fazer um programa que se comunica com o Arduino via Bluetooth!

JoanesApp - o aplicativo da Joanesburgo para Android.

Divirta-se e até a próxima!


Referências:
Módulo Bluetooth no Deal Extreme: http://www.dealextreme.com/p/jy-mcu-arduino-bluetooth-wireless-serial-port-module-104299?item=1
Especificações do módulo Bluetooth: http://www.globalsources.com/gsol/I/Arduino-Bluetooth-Module/p/sm/1045071327.htm
Arduino: http://www.arduino.cc/
Vídeo-aula do professor Cássio Agnaldo Onodera: http://youtu.be/IwnofqvGKow
Tutorial do AppInventor: http://labdegaragem.com/forum/topics/tutorial-criando-aplica-o-para-android-para-controlar-o-arduino
AppInventor: http://appinventor.mit.edu/

domingo, 29 de abril de 2012

Festo ExoHand

A Festo é uma empresa que prima pela inovação. Na área de robótica ela já deu algumas contribuições muito interessantes, como no desenvolvimento do Smart Bird, um robô que voa batendo as asas como um pássaro (veja aqui).

Agora, a Festo divulga a ExoHand, uma garra super avançada para robôs manipuladores! A ExoHand imita quase que perfeitamente os movimentos de uma mão humana. Pode ser controlada diretamente por um humano através de uma luva dotada de sensores: a ExoHand repete os movimentos feitos pela luva.

Veja o vídeo:



Com a ExoHand, é possível controlar robôs à distância para que executem tarefas muito delicadas em locais onde humanos não poderiam ter acesso. A Festo também prevê sua utilização em tarefas de auxílio a deficientes ou a pessoas que precisam de exercícios para recuperação de movimentos (nesse caso, o paciente pode vestir a luva que possui os atuadores).

O acionamento dos dedos da ExoHand é feito por oito cilindros pneumáticos de dupla atuação. Potenciômetros lineares são usados para detectar o deslocamento dos dedos e sensores de pressão evitam que ela esmague objetos sensíveis. Eles também transmitem informação para a luva, fazendo com que o humano seja capaz de sentir o que o robô está sentindo (force feedback). A pessoa pode sentir a forma do objeto que o robô está segurando!!

Informações completas sobre a ExoHand podem ser encontradas neste documento da Festo:


Até a próxima!