3ioo0cûjar
Taula 7.6.9.1: Estratègies utilitzades per cadascun dels alumnes
Rosario (2010) define os robˆos como equipamentos multifunci- onais reprogram´aveis com grande flexibilidade de opera¸c˜ao. Desta forma, para que um robˆo execute uma tarefa desejada, ´e necess´ario antes program´a-lo para tanto.
Existem duas formas b´asicas de programar um robˆo, que s˜ao conhecidas como programa¸c˜ao online e programa¸c˜ao offline (ROSARIO, 2010). Na programa¸c˜ao online, o robˆo ´e conduzido manualmente at´e as posi¸c˜oes desejadas em um processo de aprendizagem de tarefas, onde o sistema de controle grava as posi¸c˜oes das juntas e aprende o tra- jeto que deve realizar. Neste tipo de programa¸c˜ao, todo o processo de aprendizagem de tarefas ´e realizado a partir do seu posicionamento dentro da pr´opria c´elula de trabalho, com um operador manipulando-o manualmente.
Na programa¸c˜ao offline, por outro lado, a programa¸c˜ao ´e reali- zada num ambiente de modelagem, onde o usu´ario fornece instru¸c˜oes para o robˆo e pode visualizar resultados de simula¸c˜oes (ROSARIO, 2010). Atualmente, a programa¸c˜ao offline vem sendo cada vez mais utilizada como ferramenta de concep¸c˜ao de sistemas automatizados e programa¸c˜ao de robˆos, aumentando a flexibilidade e habilidade de utiliza¸c˜ao dos mesmos, com uma variedade ilimitada de cen´arios e mo- vimentos (ROSARIO, 2010). Isso se deve principalmente `a evolu¸c˜ao de sistemas de simula¸c˜ao, que permitem que o sistema seja completamente simulado antes de entrar em produ¸c˜ao.
Este tipo de programa¸c˜ao apresenta muitas vantagens. Em pri- meiro lugar, o programador n˜ao precisa adentrar a ´area de trabalho do robˆo, minimizando riscos de acidentes. O tempo que o manipulador precisa ficar parado tamb´em ´e muito menor, visto que n˜ao ´e necess´ario realizar o processo de aprendizagem diretamente com o mesmo, mas sim em simula¸c˜oes. As simula¸c˜oes tamb´em diminuem o n´umero de imprevistos, uma vez que todos os detalhes podem ser planejados e testados previamente, antes de o programa entrar em produ¸c˜ao.
A programa¸c˜ao offline ´e realizada atrav´es de comandos que de- finem o caminho (path) que o elemento terminal deve percorrer e as tarefas que este deve realizar. O caminho ´e descrito por meio de um conjunto de pontos e pelas interpola¸c˜oes que devem ser realizadas entre os seus pares. As tarefas, por sua vez, s˜ao definidas como comandos simples, que dependem do tipo de elemento terminal utilizado. Se este for uma garra, por exemplo, as tarefas podem se restringir a “Abrir” e “Fechar”.
Figura 26 – Programa de controle do robˆo SK16 escrito na linguagem Karel 2
Fonte: Adaptada de Rosario (2010)
A Figura 26 apresenta um exemplo de programa deste tipo, es- crito na linguagem Karel 2, utilizada pelo controlador FANUC. Os fa- bricantes de robˆos costumam adotar linguagens de programa¸c˜ao pr´oprias para programa¸c˜ao, mas, em geral, todas possuem caracter´ısticas seme- lhantes, baseadas em c´odigo G, e apresentam apenas pequenas mu- dan¸cas de sintaxe e forma de estrutura¸c˜ao (ROSARIO, 2010). No exem- plo apresentado, o manipulador se move do ponto 1 at´e o ponto 2 e abaixa seu elemento terminal (um soldador). Ap´os, move-se do ponto 2 at´e o ponto 3, executando a soldagem. Finalmente, o elemento ter-
minal ´e recolhido e o processo ´e finalizado.
Para um dado robˆo, os ´unicos parˆametros necess´arios para des- crever os pontos do caminho s˜ao os ˆangulos das juntas rotativas e a posi¸c˜ao das juntas prism´aticas (CORKE, 2011). Existem, no entanto, diversas outras maneiras de definir estes pontos. A forma mais utili- zada, e tamb´em mais conveniente, ´e especificar as coordenadas cartesi- anas dos pontos, ou seja, as posi¸c˜oes do elemento terminal com rela¸c˜ao a eixos X, Y e Z partindo de uma origem – normalmente a base do robˆo (CORKE, 2011). Neste caso, os ˆangulos das juntas s˜ao obtidos automa- ticamente pelo sistema de controle por meio das equa¸c˜oes de cinem´atica inversa do manipulador. Al´em disso, o sistema realiza a interpola¸c˜ao e filtragem dos pares de pontos automaticamente, levando-se em consi- dera¸c˜ao aspectos dinˆamicos e testes de colis˜ao (ROSARIO, 2010).
5 ROB ˆO SOLUCIONADOR DE SUDOKU
Segundo Davies (2012), vis˜ao computacional ´e a ´area da ciˆencia que estuda m´etodos de aquisi¸c˜ao, processamento, an´alise e compreens˜ao de imagens, geralmente provenientes do mundo real, para produzir in- forma¸c˜oes num´ericas ou simb´olicas. A vis˜ao de m´aquina, por sua vez, se refere a aplica¸c˜ao da vis˜ao computacional para tomada de decis˜ao em processos de automa¸c˜ao, tais como a inspe¸c˜ao autom´atica de produtos e o controle de movimento de manipuladores.
Os sistemas de vis˜ao de m´aquina voltados para a automa¸c˜ao in- dustrial formam, atualmente, um neg´ocio multibilion´ario. Empresas do segmento em diferentes partes do mundo relataram grande volume de vendas no ano de 2014, confirmando as perspectivas otimistas para o setor nos pr´oximos anos (CARROLL, 2015). Tal crescimento ´e impul- sionado pela evolu¸c˜ao dos dispositivos utilizados na constru¸c˜ao destes sistemas, como sensores de aquisi¸c˜ao de imagens e processadores, que est˜ao cada vez mais baratos e, ao mesmo tempo, mais robustos.
Este cap´ıtulo apresenta o projeto do robˆo criado para solucionar jogos de Sudoku impressos em papel. Trata-se de um robˆo cartesiano, com dois graus de liberdade, controlado por um sistema de vis˜ao de m´aquina. Inicialmente, o robˆo captura imagens por meio de uma web- cam e verifica se nelas existem puzzles Sudoku. Os jogos identificados s˜ao ent˜ao interpretados e solucionados. Finalmente, o robˆo preenche os jogos com as solu¸c˜oes obtidas, escrevendo-as diretamente no papel com uma caneta, que ´e o elemento terminal do robˆo.
A se¸c˜ao seguinte apresenta uma vis˜ao geral do robˆo, explicando- o superficialmente e descrevendo o funcionamento esperado. Ap´os, o projeto mecˆanico do robˆo e o sistema de controle s˜ao detalhados.