domingo, 14 de julho de 2013

Robôs no ICRA 2013

O ICRA 2013, ou IEEE International Conference on Robotics and Automation, é considerado um dos maiores e mais importantes eventos de robótica do mundo. Em 2013 foi realizado de 6 a 10 de maio, na Alemanha.

Já comentei sobre o ICRA outras vezes aqui no blog (veja aqui e aqui). Mas, a cada ano os robôs e trabalhos apresentados estão mais espetaculares! Veja o vídeo a seguir e confira!



Curiosidade: o ICRA 2013 foi realizado na cidade de Karlsruhe, que tem cerca de 300 mil habitantes. Fundada em 1715, a cidade tem uma interessante história de contribuição à ciência e à tecnologia: é sede da primeira universidade tecnológica da Alemanha, fundada em 1825. Também é a cidade onde em 1785 nasceu Karl von Drais, inventor do primeiro veículo tipo bicicleta, em 1844 nasceu Karl Benz (inventor do primeiro automóvel movido a gasolina) e onde Heinrich Hertz descobriu as ondas eletromagnéticas em 1888. Tem algo diferente nessa cidade...

Em 2014 o ICRA será em Hong Kong.

Até a próxima!

Referência:
http://www.icra2013.org/
http://pt.wikipedia.org/wiki/Karlsruhe
http://www.icra2014.com/

domingo, 7 de julho de 2013

Arduino Robot - O primeiro Robô Arduino oficial!

Nerea e Iván com seu robô Nexus.
Asociación de Robótica Complubot é sediada em Madri, Espanha, e trabalha com robótica educacional desde 2003. Com o objetivo principal de contribuir com o aprendizado, a Complubot apoiou (e apóia) o desenvolvimento de diversos robôs por crianças e adolescentes participantes de seus projetos.

Nerea de la Riva e Iván Gallego, hoje com  21 e 19 anos de idade, respectivamente, formam parte da Complubot desde o início, orientados por Eduardo Gallego. Com seus robôs Nexus, por 6 anos participaram de campeonatos de futebol de robôs organizados pela RoboCupJunior, e por 4 vezes foram campeões mundiais! Tive o imenso prazer de conhecê-los e de trabalhar com eles durante a RoboCupJunior 2013, evento que agora eles ajudam a organizar.

Por sua experiência no desenvolvimento de robôs, Nerea e Iván participaram do projeto do Arduino Robot, uma plataforma fantástica para quem quer aprender robótica! O projeto nasceu em setembro de 2010, quando eles participaram de um campeonato na Itália e tiveram a oportunidade de conversar com David e Máximo (da equipe do Arduino) sobre a ideia de desenvolverem uma plataforma didática de robótica. Desde então eles trabalharam com a equipe do Arduino no desenvolvimento do robô que em breve estará disponível para venda!

Você pode ler a história com mais detalhes no site da Complubot.

Arduino Robots apresentados no Workshop da RoboCupJunior 2013.

O Arduinto Robot é uma plataforma de tração diferencial com 19cm de diâmetro e 10cm de altura. Cada robô possui duas placas, cada uma com seu próprio microcontrolador ATmega32u4 . De fato, é como se cada robô tivesse dois Arduinos, um responsável pelo controle dos motores e outro responsável pelos sensores e pelo comportamento do robô. As duas placas se comunicam e o usuário pode programá-las com a conhecida IDE do Arduino. A placa inferior já vem pré-programada, podendo o usuário programar apenas os comportamentos de alto-nível. Mas, também é possível alterar o programa da placa inferior pois, como todo Arduino, o projeto é open-source.

Arduino Robot - vista supuperior (esq.) e inferior (dir.).

A placa superior conta com um belo LCD gráfico colorido (conectado via SPI), um leitor de cartão SD, um speaker, um potenciômetro e alguns botões para interface com o usuário. Também conta com uma bússola incorporada e diversos conectores para montagem de sensores.

Caixa assinada pelos projetistas do robô.
A placa inferior possui um suporte para 4 baterias recarregáveis NiMh tamanho AA, circuito para carga das baterias, um conversor DC-DC para alimentação de 5V para todo o robô, circuitos para acionamento dos dois motores DC e sensores infravermelhos de reflexão apontando para o piso. Esses sensores podem ser usados para detecção de linhas, por exemplo.

Todos os sensores e atuadores do robô são acessados através de bibliotecas especialmente desenhadas para o Arduino Robot. Por exemplo, o programa abaixo faz o robô se movimentar para frente com velocidade máxima, parar, girar em torno do próprio centro no sentido horário e parar novamente (você vai precisar do Arduino IDE versão 1.0.5 ou superior):

#include
void setup(){
  Robot.begin();
}
void loop(){
  Robot.motorsWrite(255,255); //Make the robot go forward, full speed
  delay(1000);
  Robot.motorsWrite(0,0); //Make the robot stop
  delay(1000);
  Robot.motorsWrite(255,-255);//Make the robot rotate right, full speed
  delay(1000);
  Robot.motorsWrite(0,0); //Make the robot stop
  delay(1000);
}

Na página oficial do Arduino há um guia para você começar a brincar com seu robô!

Deixo vocês com Iván e Nerea apresentando o Arduino Robot recém saído do forno! :-)



Até a próxima!

Referências:
http://complubot.educa.madrid.org/proyectos/arduino/ArduinoRobot/es/ArduinoRobot_es.php
http://complubot.educa.madrid.org/proyectos/arduino/ArduinoRobot/es/ArduinoRobot_historia_es.php
http://arduino.cc/en/Main/Robot

quinta-feira, 20 de junho de 2013

Robô que joga air-hockey

Olha que ótima ideia de trabalho para a disciplina de Robótica! :-)


Obrigado pela dica, Gustavo Suim. Vou colocar em prática. ;-)

Até a próxima!

domingo, 9 de junho de 2013

Robôs para situações de desastre

Desastre natural é uma situação com grande potencial de aplicação de robôs. Eles podem atuar em áreas perigosas, realizando tarefas de busca, resgate e manutenção em ambientes muito perigosos para seres humanos, certo?



Errado!

Já existem robôs que podem contribuir (muito) em situações de desastre, mas ainda estamos engatinhando no desenvolvimento de robôs que possam, de fato, substituir seres-humanos em ambientes desconhecidos e cheio de detritos.

Existem algumas iniciativas para o desenvolvimento de robôs que possam ser usados em situações de desastre. Uma delas é a RoboCup Rescue, competição para desenvolvimento de robôs de resgate realizada anualmente, e que teve como principal motivação o terremoto que atingiu a cidade de Kobe, no Japão, em 17 de janeiro de 1995. Naquela ocasião, mais de 6.500 pessoas morreram. Hoje a RoboCup Rescue tem várias categorias, contando com competições de simulação e de construção de robôs que atuam em ambientes de desastre simulado. Várias equipes do mundo competem anualmente nessas categorias, contribuindo para o desenvolvimento de novas tecnologias e com a melhoria contínua dos robôs utilizados em desastres.

O problema é que ainda estamos muito longe de termos robôs autônomos que tenham destreza suficiente para "se virarem" num ambiente de desastre de verdade. Mais uma vez, um desastre no Japão nos mostrou com clareza essa realidade. O acidente na usina nuclear de Fukushima, ocorrido em consequência da inundação causada pelo tsunami que se seguiu ao terremoto de 11 de março de 2011, provocou vazamento de radiação que impediu acesso de seres humanos a diversas áreas da usina. Os japoneses rapidamente perceberam que não tinham robôs capazes de fazer muita coisa na área de desastre, mesmo sendo um dos países que lidera o desenvolvimento de robôs no mundo! O acidente de Fukushima motivou vários pesquisadores a se voltarem à área de robôs humanóides, pois esses robôs tem o potencial de se deslocarem sobre destroços e de utilizarem as ferramentas já disponíveis para nós, humanos.


Pensando nisso, a DARPA (Defense Advanced Research Projects Agency, dos EUA) lançou uma nova competição que tem o objetivo de impulsionar o desenvolvimento da tecnologia robótica para resposta a desastres. A questão chave é a adaptabilidade. Quanto maior for o grau de autonomia dos robôs e menor for seu consumo de energia, mais pontos eles marcam. A competição será realizada num cenário que imitará um ambiente de desastre e exigirá que o robô realize as seguintes tarefas (ainda sujeitas a alteração):

1. Conduzir um veículo utilitário regular, incluindo as tarefas de entrar e sair do veículo;
2. Locomover-se em um terreno com obstáculos e piso irregular;
3. Remover escombros que bloqueiam uma porta de entrada;
4. Abrir uma porta e entrar em um edifício;
5. Subir uma escada industrial e atravessar uma passarela industrial;
6. Usar uma ferramenta (como martelo hidráulico) para quebrar através de um painel de concreto;
7. Localizar e fechar uma válvula perto de um tubo de escape;
8. Substituir um componente, como uma bomba de refrigeração.

Há equipes de diversos países competindo. Inclusive equipes formadas por pesquisadores de diferentes países trabalhando em cooperação. Elas têm até o final de 2014 para concluírem seus projetos e a equipe vencedora levará um prêmio de US$2 milhões (provavelmente esse valor não cobrirá nem o custo de desenvolvimento, mas essa é outra história). Todas as equipes que passaram na seleção inicial irão utilizar a mesma plataforma robótica, que está sendo construída pela Boston Dynamics (veja aqui).

A equipe Br Robotics é uma das 26 que foi qualificada para a competição! É liderada pelo professor Dr. Alberto Ferreira De Souza, chefe do Laboratório de Computação de Alto Desempenho (LCAD) da Universidade Federal do Espírito Santo (UFES). A equipe reúne pesquisadores de várias universidades do Brasil: UFES, EPUSP, ICMC/USP, EESC/USP, UFMG e FEI, além da empresa MOGAI.

A rede de TV japonesa NHK veiculou um excelente documentário sobre o desenvolvimento de robôs. Eles falam muito sobre o uso de robôs em desastres, mas também abordam outros aspectos da evolução da robótica, como a coexistência de trabalhadores humanos e robóticos num mesmo ambiente. Vale à pena conferir! A primeira parte (em inglês) está no vídeo abaixo.


Veja a parte final do documentário aqui: http://youtu.be/mDD1TGv_2fo?t=40m9s

A Skynet está cada vez mais perto de se tornar realidade! :-)

Até a próxima!

Referências:
http://pt.wikipedia.org/wiki/Acidente_nuclear_de_Fukushima_I
http://www.robocuprescue.org/
http://spectrum.ieee.org/automaton/robotics/humanoids/darpa-robotics-challenge-here-are-the-official-details
http://www.lcad.inf.ufes.br/wiki/index.php/DARPA

quinta-feira, 23 de maio de 2013

Ética Robótica

Você gosta do seu celular? Está apaixonado pela Siri? Seria capaz de pisar e esmagar Boxie, esse simpático robô ao lado?

Kate Darling, uma pesquisadora especialista do MIT Media Lab e estudante de doutorado em propriedade intelectual, fala sobre Ética Robótica. Veja essa interessante discussão sobre nossa relação (relacionamento?) com robôs na medida em que eles tornam-se mais e mais sociais.




Até a próxima!

segunda-feira, 13 de maio de 2013

Desvio de obstáculos?

Para que desviar de obstáculos se você  pode passar por cima deles? Veja o que este robô é capaz de fazer!



Toward a Vocabulary of Legged Leaping. Este é o título do artigo que descreve o sistema de controle proposto por Aaron M. Johnson e D. E. Koditschek, da University of Pennsylvania. Eles apresentam a caracterização da transição entre os estados "parado sobre as patas" e "aéreo". O trabalho foi apresentado no ICRA 2013 e o artigo completo está disponível aqui.

Até a próxima!

Referência:
http://kodlab.seas.upenn.edu/Aaron/ICRA2013
http://kodlab.seas.upenn.edu/uploads/Aaron/JohnsonLeaping.pdf

quinta-feira, 2 de maio de 2013

Impacto da robótica no mercado de trabalho

Em 13/01/2013 o programa 60 Minutes, da rede de TV Americana CBS, apresentou um especial sobre o impacto da robótica no mercado de trabalho, principalmente nos EUA. O vídeo abaixo mostra um pequeno resumo, com alguns dos robôs apresentados. Ficou bacana!


 


A visão apresentada pelo programa 60 Minutes é de que o uso de robôs é maléfico pois diminui o número de empregos (o programa pode ser assistido aqui). Pessoalmente, acredito no contrário! Para entender porquê, veja meu comentário sobre investimento em robótica para aumentar empregos (veja aqui).

Até a próxima!

quarta-feira, 24 de abril de 2013

ABB IRB 120

Há cerca de duas semanas tive a oportunidade de participar de um treinamento na ABB, em Osasco, SP. Entre outras coisas, pude conhecer o primeiro robô ABB instalado no Brasil! É esse que está na foto ao lado. Foi instalado em 1986, mas hoje está exposto no hall de entrada do prédio da ABB.

Participei do treinamento básico sobre operação e programação de robôs industriais. Achei fantástico, pois o curso é muito prático! A ABB mantém um laboratório com vários robôs instalados, prontos para serem utilizados pelos alunos.

Durante o treinamento, eu e meu amigo Shander Lyrio utilizamos o robô IRB 120. Trata-se do menor robô fabricado pela ABB, com alcance de apenas 58cm e capacidade de carga de 3kg. Mas, sua velocidade e precisão não são de robô de brinquedo! Sua estrutura é antropomórfica, com 6 graus de liberdade (típica de um manipulador industrial). Ele pode mover a ferramenta com velocidade de até 7 metros por segundo, com repetibilidade de 0,01mm!! É impressionante!

O vídeo a seguir mostra alguns dos exercícios que fizemos durante o curso. Observe a precisão com que o manipulador se move.



Não parece muito rápido? Veja o próximo vídeo:



Esse não foi programado por nós no curso... porque não tínhamos as latas de Coca-Cola.

;-)

Até a próxima!

Referência:
http://www.abb.com.br/product/seitp327/be2eef38406eaca4c125762000319182.aspx

segunda-feira, 22 de abril de 2013

Rumo à RoboCup 2013!


A equipe de robótica Emerotecos, formada por alunos do IFES, mais uma vez vai representar o Brasil na categoria Rescue B da RoboCupJunior, uma das mais importantes competições de robótica a nível mundial!

O vídeo a seguir dá um gostinho da RoboCup. Veja mais informações no site oficial do evento.



A Emerotecos é atualmente composta pelos alunos Abílio Marcos, André Oliveira, Ivan Seidel, Matheus Canejo e Yan Marim todos cursando ensino médio integrado a cursos técnicos de Eletrotécnica e Mecânica do campus Vitória do IFES. A equipe é orientada pelos professores Hudson Cássio Gomes de Oliveira, da coordenadoria de Mecânica do campus Vitória, e por mim, da coordenadoria de Automação do campus Serra. Nós estamos vinculados ao NERA – Núcleo de Estudos em Robótica e Automação.

Em sua última participação na competição mundial RoboCup Junior 2012, a Emerotecos conquistou o primeiro lugar na avaliação dos robôs, competindo com outras 18 equipes de diversos países (como Japão, Alemanha, Portugal, Suécia etc.). Além do prêmio de melhor robô, a equipe também conquistou o terceiro lugar na competição de supertimes (em que duas equipes escolhidas por sorteio devem cooperar para resolverem um desafio supresa) e o quarto lugar na competição geral do Resgate B.

A equipe Emerotecos está em busca de patrocínio para participar da RoboCupJunior! Para ajudar ou conhecer melhor a equipe, visite o site Tenda Digital, que é mantido pelo Ivan.

Até a próxima!

sábado, 20 de abril de 2013

Inauguração do Projeto Michelangelo

Conheçam Mike, o robô do Projeto Michelangelo.

Mike é um robô ABB modelo IRB 6620.
Mike é um manipulador antropomórfico, de 6 graus de liberdade, que opera em conjunto com uma mesa giratória. Ou seja, no total são 7 graus de liberdade. O manipulador é um ABB IRB 6620, que tem capacidade para suportar carga de até 150kg em seu efetuador, podendo movê-lo com velocidade de até 7 metros por segundo! O alcance máximo é de 2,2m a partir da base.

Esse robô é o principal equipamento do Projeto Michelangelo - Sistema Robotizado para Usinagem Tridimensional Complexa de Rochas Ornamentais - cujo objetivo é desenvolver uma unidade para usinagem automática de rochas usando um robô industrial para agregar valor a rejeitos oriundos do setor de beneficiamento primário de rochas ornamentais. Veja mais sobre o projeto Michelangelo num post que fiz em dezembro de 2010.

Há duas semanas o robô foi instalado na UCL - Faculdade do Centro Leste, que é a executora do Projeto Michelangelo. Um vídeo com o resultado dos primeiros testes pode ser visto no link abaixo:

Hoje Mike finalmente foi capaz de usinar seu próprio nome numa rocha ornamental. Esperamos que seja apenas a primeira de muitas rochas trabalhadas por ele!

Mike usinou seu nome numa pedra pela primeira vez.

--- acrescentado em 12/06/2013:

O vídeo a seguir mostra uma reportagem sobre o projeto que foi ao ar na TV Vitória (filiada da Rede Record).


---

Até a próxima!

quarta-feira, 20 de março de 2013

A necessidade de robôs

Neste vídeo, Dr. Peter Corke apresenta uma visão muito interessante sobre a crescente necessidade de uso de robôs em várias aplicações. Muito interessante! Acompanhe o vídeo com os slides de sua apresentação!



Dr. Peter Corke é um renomado pesquisador na área de robótica, autor do livro Robotics, Vision and Control, criador do Robotics Toolbox para MATLAB e professor na Queensland University of Technology, Austrália.

Até a próxima!

sábado, 16 de março de 2013

MorpHex - Um hexapod estilo Transformers

Meu conceito de hexapod mudou completamente depois de ver esse vídeo!! Veja que ideia super legal!



Recentemente o projeto do robô MorpHex venceu um concurso de inovação da empresa Boca Bearing. Não é pra menos! O MorpHex realmente impressiona!

O robô foi idealizado pelo norueguês Kåre Halvorsen (conhecido como Zenta). Você pode conhecer vários projetos do Zenta e saber mais sobre o MorpHex acessando seu blog.

Até a próxima!


quarta-feira, 6 de março de 2013

Comunicação I²C entre Lego NXT e Arduino


Os kits de robótica Lego NXT são ferramentas de desenvolvimento fantásticas! São fáceis de se trabalhar e permitem a construção e programação de robôs de forma intuitiva e rápida (veja mais sobre esses kits aqui).

No entanto, o controlador do Lego NXT 2.0 (ilustrado na figura abaixo) possui limitação em termos do número de sensores e de motores que podem ser utilizados de maneira simultânea: usando o hardware original, apenas quatro sensores e três motores podem ser conectados simultaneamente ao controlador do robô! Para conexão de mais sensores é necessário comprar um hardware adicional que faz a expansão das entradas, permitindo que até quatro sensores sejam conectados a uma mesma entrada.


Controlador Lego NXT conectado a 4 sensores e 3 motores.

Embora tal limitação não seja um problema para muitas aplicações, em alguns casos o uso de apenas quatro sensores pode ser crítico. Uma solução de baixo custo que permite a utilização de mais sensores é conectar um microcontrolador a uma das portas de entrada do NXT e conectar os sensores ao microcontrolador. Dessa forma, o microcontrolador serve como uma "ponte", fazendo a multiplexação dos sinais dos diversos sensores ligados a ele e enviado ao NXT a leitura de um sensor de cada vez.

As portas do NXT podem utilizar dois padrões de comunicação: RS-485 ou I²C. O aluno Daniel Barcelos Mendes realizou e apresentou o trabalho “Desenvolvimento de Interface de Comunicação e Expansão para Kit de Robótica Educacional” na VII Jornada de Iniciação Científica do IFES, em outubro de 2012. Basicamente, ele implementou uma interface de comunicação entre o NXT e um Arduino. Como o Arduino possui bibliotecas para uma grande variedade de sensores, sua conexão dá ao NXT acesso a muitos sensores diferentes dos oferecidos pela Lego!

Em seu trabalho, Daniel realizou estudos de montagem e de programação do NXT (em linguagem NXC) e do Arduino, montou protótipos e testou a comunicação. Para prova de comunicação foram utilizados no Arduino um sensor de luz tipo LDR (resistor dependente de luz), um sensor de distância ultrassônico e um servomotor.

O texto completo contém códigos para Lego (NXC) e para Arduino e está disponível para download aqui.

Se você prefere realizar comunicação RS-485, veja este tutorial que já foi apresentado aqui no blog.

Divirta-se!
Até a próxima!

terça-feira, 5 de março de 2013

Robotics Toolbox - Um Simulador de Robótica para MATLAB (mini tutorial)

--- Atualizado em 19/08/2014

Você está procurando um simulador para estudar robótica ou para testar controladores para robôs? Seus problemas acabaram! O Robotics Toolbox para MATLAB, desenvolvido por Peter Corke, é composto por um conjunto de ferramentas para simulação de robôs manipuladores e de robôs móveis. E o melhor: é gratuito!

Eu já comentei sobre outros simuladores baseados em MATLAB (como o simulador feito pelo Alexandre Brandão e outro que eu desenvolvi junto com o colega Wanderley Cardoso). Mas, o Robotics Toolbox é especial pois é bastante completo e possui versões para Octave, SciLab e Python, embora estas ainda não possuam todos os recursos da versão para MATLAB. Os arquivos do Robotics Toolbox estão disponíveis para download no site do próprio autor.

Instalar o toolbox é bem simples. Basta descompactar os arquivos numa pasta a sua escolha. Em seguida, execute o startup_rvc.m para adicionar as pastas do toolbox ao path do MATLAB. Pronto! Você já pode acessar suas funções!

O toolbox conta com vários modelos de robôs comerciais pré-programados, como os manipuladores PUMA 560, Motoman HP6 e FANUC AM120. Também possui os modelos do Stanford Arm e de um manipulador planar de duas juntas. A imagem abaixo ilustra a execução da simulação de um manipulador PUMA 560.

Simulação do robô PUMA 560.

Se você quiser, pode criar o modelo de seu próprio robô! O toolbox possui funções que ajudam na criação do modelo com base nos parâmetros de Denavit-Hartemberg. Por exemplo, o código a seguir cria um manipulador RRRR e obtém diversas informações sobre o robô criado. O robô criado é baseado no robô didático SPIDER, desenvolvido por Renan Louzada e Marcos Vieira.

% Primeiro, a função Link é usada para criar cada elo. 
% Os parâmetros da função Link são exatamente os parâmetros
% de Denavit-Hartemberg do elo em questão, nesta ordem: 
% theta = ângulo da junta (rad)
% d = deslocamento do elo (m)
% a = comprimento do elo (m)
% alpha = torção do elo (rad)
% sigma = tipo de junta (0: rotativa ou 1: prismática)

L(1) = Link([0 1 0 pi/2 0]);
L(2) = Link([0 0 1 0  0]);
L(3) = Link([0 0 0 pi/2 0]);
L(4) = Link([0  1 0 0 0]);

% Em seguida, a função SerialLink cria o robô 
% utilizando os elos criados anteriormente. 

robo = SerialLink(L, 'name', 'Robô Spider')
pause;

% A função fkine permite obter a matriz de transformação
% homogênea que relaciona o referencial da base com o do
% efetuador (cinemática direta) para uma dada configuração.

disp('Variáveis de juntas:');
q0 = [0 0 0 0];
qf = [pi pi/4 3*pi/4 pi];
qf2 = [pi pi/4 3*pi/4 0];

disp('Cinematica Direta:');
T = robo.fkine(qf)
pause;

% A matriz jacobiana relaciona as velocidades das juntas com
% a velocidade espacial do efetuador. O toolbox permite obter
% o jacobiano geométrico (que considera as componentes de 
% velocidade cartesiana do efetuador):

disp('Jacobiano:');
J = robo.jacob0(qf)
pause;

% Finalmente, é possível calcular o índice de manipulabilidade
% deste efetuador na configuração dada:

m = sqrt(det(J*J'))

% A representação gráfica do robô para as posições articulares
% armazenadas no vetor q pode ser obtida com a função plot. No
% exemplo a seguir, uma animação é gerada a partir de uma 
% sequência de configurações articulres:

tempo = 0:.1:10;
q = jtraj(q0, qf, tempo);
robo.plot(q)
q = jtraj(qf, qf2, tempo);
robo.plot(q)


Várias outras funções estão disponíveis no toolbox, como funções para obtenção da cinemática inversa, cálculo de matrizes de rotação, entre outras. 

O toolbox também traz esquemas de controladores utilizando alguns dos modelos pré-programados. Por exemplo, o diagrama a seguir ilustra o sistema feito em Simulink de um esquema de controle de movimentação para o manipulador PUMA 560 com base em Jacobiano inverso. 

Diagrama de blocos de um controlador de movimento para o robô manipulador PUMA 560.

No Robotics Toolbox também existe suporte para simulação de robôs móveis. Devo dizer que o aspecto visual da simulação de robôs móveis não sé tão bom quanto o do simulador desenvolvido pelo colega Alexandre Brandão (de fato, o simulador do Alexandre ganha de muito). 

Até a versão 9.8, havia limitações como a não consideração de aspectos dinâmicos nos modelos de robôs móveis e a inexistência de um modelo para o tradicional robô de tração diferencial (uniciclo). No entanto, na versão 9.9 o autor acrescentou os blocos que desenvolvi para simulação do robô de tração diferencial! :-)

Se você quiser, além dos blocos DiffSteer Kinematics e DiffSteer Dynamics, para simulação do robô de tração diferencial, eu preparei outros blocos, como: controlador de seguimento de trajetória, controlador de compensação dinâmica, adaptação automática de parâmetros dinâmicos para o controlador de compensação dinâmica, geração de trajetórias de referência e cálculo de índices de desempenho (IAE, ISE, ITAE, ITSE e Energia). Para utilizar esses blocos, basta fazer download do arquivo ZIP que está disponível no site da MathWorks e descompactar seu conteúdo numa pasta a sua escolha. Não é necessário ter o Robotics Toolbox instalado para usar esses blocos, mas se você estiver usando o Robotics Toolbox, é uma boa ideia descompactar na pasta "...\rvctools\simulink" do toolbox. Após copiar os arquivos, abra a biblioteca "DiffSteer_model.slx" e veja que os novos blocos.

Também acrescentei no arquivo ZIP alguns exemplos de utilização dos novos blocos. Dois podem ser rodados com os scripts "sim_unicycle_dynamics.m" e "sim_unicycle_kinematics.m" e servem apenas para ilustrar a diferença de comportamento entre os modelos quando se considera ou não a dinâmica da estrutura. Aproveitei a mesma estrutura de um dos exemplos originais do toolbox, mas que fazia a simulação do robô car-like. Outros dois sistemas são "kinematic_controller_system.slx" e "dynamic_controller_system.slx", que já trazem sistemas completos com uso dos blocos do robô, controladores, gerador de trajetórias e cálculo de índices de desempenho. A figura abaixo ilustra um deles.


Sistema completo para simulação de controlador adaptativo de compensação da dinâmica do robô de tração diferencial.

O bloco DiffSteer Kinematics pode ser facilmente utilizado para simular o modelo uniciclo. Basta colocar em zero o valor do parâmetro que determina a distância do ponto de interesse ao centro do eixo virtual das rodas de tração.

Mais informações sobre a utilização de cada bloco podem ser obtidas acessando o help dos próprios blocos (clique com o botão direito no bloco e selecione help). Testei com sucesso os novos blocos com o Robotics Toolbox versão 9.8 rodando em MATLAB R2012b e R2013a em Windows 7, e R2013a em Windows 8.1.

O Robotics Toolbox é muito interessante para simulação de robôs móveis, principalmente pela facilidade de utilização, pela possibilidade de alteração dos modelos e pelas funções de planejamento de trajetórias, localização e mapeamento. Por exemplo, o toolbox possui funções para aplicação de diagrama de Voronoi, filtro de Kamlan Estendido (EKF) e filtro de partículas! 

Além de simular robôs terrestres, o Robotics Toolbox também possui ferramentas para simulação de quadrotores! É muito bom para você poder testar suas ideias e evitar destruir seu brinquedo. :-)

Simulação de um quadrotor em voo.

Você pode fazer download do Robotics Toolbox aqui. Os blocos para simulação do robô de tração diferencial (uniciclo) estão disponíveis aqui. O manual com explicação de todas as funções do toolbox está disponível aqui.

Além do manual, o livro Robotics, Vision and Control, de autoria do prórprio Peter Corke, aborda a teoria e traz a explicação das funções dos toolboxes de robótica e de visão computacional (também de autoria dele) com mais de mil exemplos! Na parte final ele traz uma série de exemplos de controladores para robôs baseados em visão computacional. Comprei o livro e achei excelente!

Espero que possam aproveitar esta ótima ferramenta.
Até a próxima!

Referências:
http://www.mathworks.com/matlabcentral/fileexchange/44850-velocity-based-dynamic-model-and-adaptive-controller-for-differential-steered-mobile-robot
https://dl.dropbox.com/u/24875984/Unicycle.zip
https://dl.dropbox.com/u/24875984/unicycle_model_for_Robotics_Toolbox.zip
http://petercorke.com
http://petercorke.com/Toolbox_software.html
http://www.petercorke.com/RVC/

quinta-feira, 21 de fevereiro de 2013

Quadricópteros acrobatas!

O vídeo a seguir mostra a incrível coordenação de dois quadricópteros que não apenas equilibram uma haste enquanto voam (pêndulo invertido), mas também lançam a hasta um pro outro. Veja!




Só tenho uma coisa a dizer: PQP!!!
Até a próxima!

Referência:

domingo, 10 de fevereiro de 2013

Arduino RoboDeck

Que tal ter um robô potente, dedicado a pesquisa, baseado em Arduino? Esta é a proposta da XBot, uma empresa brasileira que desde 2007 projeta e fabrica robôs móveis para as áreas de educação e entretenimento.


Robodeck, da empresa XBot.

O Robodeck é um robô destinado a pesquisa. Sua plataforma conta com quatro rodas, sendo que todas possuem motores de tração e de direção. Com isso, o robô pode mover-se em qualquer direção e girar em torno do próprio eixo. Veja:



O robô conta com processador embarcado, câmera, GPS, bússola, acelerômetros, sensores ultrassônicos e infra-vermelhos para detecção de obstáculos, comunicação WiFi, etc. Pesa até 18kg (dependendo da quantidade de baterias) e suporta até 10kg de carga, o que permite transportar sensores e equipamentos.

Com Arduino Robodeck é possível utilizar no Robodeck os shields desenvolvidos para o Arduino. Isso permite agregar, de forma fácil, várias funções ao seu robô! Além disso, você pode programá-lo utilizando a linguagem do Arduino.

A XBot fabrica várias plataformas de robôs móveis. Também promove eventos, competições e treinamentos na área de robótica educacional. Confira o site da empresa!

Até a próxima!

Referências:
http://www.xbot.com.br/educacional/arduino-robodeck/
http://www.xbot.com.br/educacional/robodeck/
http://www.xbot.com.br/

sábado, 2 de fevereiro de 2013

Robot Revolution

O vídeo a seguir apresenta uma visão sobre o futuro da robótica... e da humanidade! Veja vários robôs legais e entenda o que pesquisadores de diferentes áreas pensam sobre o futuro da humanidade convivendo com robôs.




Até a próxima!

Referência:
http://www.youtube.com/watch?v=5e4z4RfnKS0

quarta-feira, 30 de janeiro de 2013

Robôs aéreos fantásticos para ambientes internos

Há anos pesquisadores têm trabalhado no desenvolvimento de veículos aéreos autônomos. Já fiz alguns comentários aqui no blog sobre este tema quando falei do SMART BIRD da Festo, de uma dissertação de mestrado sobre controle de helicópteros e sobre o helicóptero autônomo desenvolvido em Stanford.

Muitos desses veículos são destinados a voos em ambientes amplos e livres de obstáculos. No entanto, alguns grupos têm se dedicado ao desenvolvimento de veículos e sistemas de controle que permitam voo em ambientes internos, detectando e desviando de obstáculos!

Você já deve ter visto que quadricópteros (como este ou este) são capazes de voar em ambientes internos sem grande dificuldade. Mas, que tal fazer um avião voar dentro de um estacionamento de um edifício? Veja o que esse avião autônomo desenvolvido no MIT pode fazer!




Esse projeto foi desenvolvido pelo MIT Robust Robotics Group e apresentado no ICRA 2012. O algoritmo  calcula a trajetória on-line a partir da determinação do estado do avião - ou seja, de sua localização, orientação, velocidade e aceleração. Quem já controlou um aeromodelo pode ter uma boa ideia do desempenho que o algoritmo de controle precisa ter para fazer as manobras apresentadas no vídeo. É de impressionar!

Mas, se você está interessado em robôs pequenos para fazer filmes, dê uma olhada nos dois próximos robôs!

O primeiro é o Dragonfly. É um veículo que voa batendo as asas como um inseto, inicialmente desenvolvido na Georgia Tech. Já ganhou vários prêmios e está disponível para venda!! Dê uma olhada no vídeo:



O outro é um mini quadricóptero autônomo, com câmera e capacidade de ser comandado por voz, por apenas US$ 49.00!! A empresa Always Innovating está prometendo lançar comercialmente até o ano que vem. Veja:





É esperar pra ver.
Até a próxima!

----- Adicionado em 23/02/2013:

Também vale à pena ver este vídeo, que mostra quadricópteros equilibrando uma haste e fazendo manobras para lançá-la, de um para o outro, em voo!!

-----

Referências:
http://groups.csail.mit.edu/rrg/
http://web.mit.edu/newsoffice/2012/autonomous-robotic-plane-flies-indoors-0810.html
http://thenextweb.com/insider/2012/08/10/no-controls-gps-flight-no-problem-mits-robust-robotics-group/
http://www.techject.com/index.html
http://www.gizmag.com/mecam-tiny-autonomous-uav/26007/

sexta-feira, 25 de janeiro de 2013

Robôs na fábrica da Mercedes-Benz

A fábrica da Mercedes-Benz em Untertürkheim, Alemanha, foi fundada em 1904 e é uma das mais antigas do grupo Daimler AG. Untertürkheim é o lugar onde a marca Mercedes-Benz criou raízes e onde parte importante da história do automóvel foi escrita. 

Apesar de sua idade, a fábrica é um dos centros de produção de motores mais modernos atualmente. Ocupando uma área de mais de dois milhões de metros quadrados na região de Stuttgart, os cerca de 18.000 funcionários produzem motores, eixos e transmissões para carros Mercedes-Benz de todo o mundo, auxiliados por diversos robôs! A produção de Untertürkheim atende a mais de um milhão de veículos por ano.

Para ser capaz de garantir a elevada produção mantendo a reconhecida qualidade da Mercedez-Benz, o processo de produção de motores conta com um nível de automação bastante elevado. Diversos robôs trabalham na montagem de partes delicadas dos motores, como a caixa de câmbio, e fazem movimentação e colocação de peças com muita precisão. 

Robôs na  fábrica da Mercedes-Benz em Untertürkheim, Alemanha.

Tive a oportunidade de conhecer a fábrica e fiquei impressionado com a grande quantidade de robôs trabalhando! Infelizmente, não é permitido tirar fotos nem filmar no interior da fábrica. Mas, o vídeo abaixo dá uma boa ideia do trabalho que os robôs executam.





KUKA LWR na fábrica da Mercedes-Benz.
Na fábrica predominam os manipuladores KUKA, que também são alemães. Além de manipuladores industriais tradicionais, em 2009 Daimler e KUKA lançaram um projeto-piloto conjunto para utilização industrial do robô Kuka Lightweight (Robô Leve Kuka, ou LWR). Desde 2009, mais de 500.000 engrenagens do eixo traseiro foram montadas com o apoio do Kuka LWR na fábrica da Mercedes-Benz em Untertürkheim. 

O robô KUKA Lightweight foi desenvolvido ao longo de 10 anos de trabalho conjunto entre a KUKA e o DLR - Instituto de Robótica e Mecatrônica Alemão - para uso no espaço. Suas garras sensíveis permitem manipular objetos com cuidado e realizar tarefas difíceis com precisão. O robô pode ser posicionado e configurado para otimizar a apoiar os trabalhadores em termos de ergonomia. Possui 7 graus de liberdade com configuração R–P–R–P–R–P–R, pesa 14kg e tem capacidade de carga de 7kg.

Se você for à Alemanha, não perca a oportunidade de visitar o Museu da Mercedes-Benz em Stuttgart. O museu já é imperdível! E a fábrica fica ao lado, contando com visitas guiadas diariamente. Mas, atenção: as visitas guiadas são oferecidas em inglês apenas em alguns dias da semana. Programe-se! Veja mais informações aqui.

Até a próxima! 



Referênicas:
http://media.daimler.com/deeplink?cci=2263016
http://www.emercedesbenz.com/Oct08/14_001450_Mercedes_Benz_C250_CDI_BlueEFFICIENCY_Special_Feature_The_Mercedes_Benz_Plant_In_Unterturkheim.html
http://www.eu-nited.net/robotics/index.php?idcat=196&idart=852

quarta-feira, 19 de dezembro de 2012

CHARLI Robot Gangnam Style

CHARLI
Conheça CHARLI - Cognitive Humanoid Autonomous Robot with Learning Intelligence - ou  robô humanóide autônomo cognitivo com  capacidade de aprendizado inteligente (em tradução livre). Esse robô foi desenvolvido pela equipe do RoMeLa - Laboratório de Robótica e Mecanismos da Universidade Virginia Tech (eu já havia comentado sobre o RoMeLa aqui no blog - veja!).

O objetivo principal desse robô é servir como plataforma para estudo e aprimoramento da capacidade de locomoção de robôs móveis bípedes. Embora não pareça, fazer um robô se equilibrar em duas pernas é um grande desafio!

A primeira versão de CHARLI foi construída entre 2009-2010. Desde então, já passou por evoluções em diversos aspectos. A versão atual tem estrutura de alumínio, titânio e fibra de carbono, com peças de plástico. Sua massa total é de 12,1kg, com 1,41m de altura. Possui 25 graus de liberdade acionados por servomotores de alto desempenho, permitindo caminhar com velocidade de até 1,4km/h. Além de encoder em cada junta, o robô é dotado de giroscópio de 3 eixos e acelerômetro de 3 eixos para auxiliar no equilíbrio. Finalmente, câmeras na cabeça dão a CHARLI a capacidade de perceber o mundo através da visão.

CHARLI é o primeiro robô humanóide autônomo construído nos EUA que possui tamanho compatível com o dos seres humanos. Recebeu o prêmio "2011 Best Invention of the Year" da Revista Time, venceu Louis Vuitton Best Humanoid Award de 2011 (Louis Vuitton Cup) e conquistou o primeiro lugar no AdultSize league para robôs autônomos na categoria Soccer da RoboCup 2011 e da RoboCup 2012!

Sim! CHARLI joga futebol! Ele é capaz de andar em todas as direções, girar, chutar, fazer gestos... e até de dançar Gangnam Style!!




Visite o site do RoMeLa e veja outros incríveis robôs desenvolvidos por lá.
Até a próxima!