Tendo por base a pesquisa realizada acerca dos conteúdos das aulas de Robótica em diferentes instituições académicas e a revisão das aplicações já existentes na área, tornaram-
se evidentes as características mais significativas que um simulador para ensino e treino de Robótica deve possuir:
• Utilização de uma linguagem de programação neutra e universal;
• Robô(s) capaz(es) de executar trajetórias, verificando possíveis desvios em função da parametrização (suavização de arestas em movimentos consecutivos) utilizada nas instruções de programação;
• Visualização de configurações singulares e sua implicação no funcionamento do robô;
• Possibilidade de calibração do referencial da ferramenta; • Interação com dispositivos e sistemas externos.
Nesta ótica, os requisitos e ambições do projeto que aqui se relata são semelhantes ao trabalho realizado em [5]. Concretamente, refere-se:
1. À escolha de uma linguagem de programação universal para controlo do RVP e posterior utilização das funcionalidades robóticas desenvolvidas;
2. Ao desenvolvimento de métodos que permitam a execução de movimentos básicos pelo RVP;
3. À utilização de ferramentas e definição de TCPs;
4. À possibilidade de comunicação com dispositivos/software externo; 5. À fácil interação do utilizador com o ambiente virtual.
Relativamente à linguagem de programação em particular, esta será especificada no Capítulo 3, onde também se justificará melhor a escolha da sua sintaxe. De momento, é importante reter que uma linguagem universal confere um nível de conforto superior para o utilizador, mas requer um suporte técnico online mais abrangente.
Quanto à programabilidade dos movimentos do robô, definiu-se que este projeto iria cobrir os principais tipos de movimento (ponto a ponto, linear e circular), bem como a possibilidade de manipulação das juntas individualmente. Será permitida a suavização das arestas em movimentos consecutivos com base num parâmetro global que define a zona de erro. A Tabela 2.2 enuncia e resume os movimentos a implementar no projeto.
Além da especificação de movimentos, é necessário abordar as ferramentas que o robô utilizará. De forma a tornar a interação do utilizador com a aplicação mais simples, decidiu-se eliminar o suporte de funcionalidades CAD e restringir o número de ferramentas existentes a duas: uma garra e uma ferramenta de sucção. Será possível a definição de vários TCPs bem como a alteração das mesmas por parte do utilizador.
Estando o robô apto a operar, deve depois ponderar-se um meio de comunicação com equipamentos exteriores, nomeadamente PLCs. A aplicação deve assim ter a capacidade de detetar e gerar eventos que permitam o handshake do robô com equipamentos externos (por exemplo, um rising edge num sensor) e, se possível, mostrar estas ocorrências numa janela de visualização.
Ainda relativamente à interação do programador com o ambiente, deve ser possível pausar/parar programas e imprimir mensagens de aviso e alarme para o utilizador.
Ainda em torno da interface gráfica é importante que seja possível a manipulação do TCP bem como a alteração da sua posição e orientação relativamente ao elemento terminal e a visualização e alteração dos valores das juntas do robô.
Tabela 2.2 – Movimentos programáveis a incluir no projeto do RVP.
Funcionalidade Descrição
Movimento ponto a ponto
Movimento que envolve posicionar o elemento terminal nos pontos desejados sem ter em consideração o trajeto a ser seguido entre esses pontos [47]. É um movimento otimizado em que os eixos do robô se movem de forma síncrona – a velocidade de cada junta é ajustada de forma a que, ainda que os valores das juntas sejam diferentes, todas acabam o seu movimento ao mesmo tempo.
Movimento linear Movimento que implica uma trajetória retilínea entre os dois pontos especificados.
Movimento circular
Movimento que implica uma trajetória em arco entre 3 pontos (a posição atual do robô, um ponto intermédio e o ponto final).
Suavização de arestas em movimentos consecutivos
Movimento em que o robô rasa os pontos especificados, passando pelos mesmos com um desvio dado como parâmetro pelo utilizador.
Movimento junta-a-junta (dando como parâmetro o ângulo pretendido para uma ou várias juntas)
Movimentação de uma junta de cada vez dado um determinado ângulo. A nível industrial não é utilizado, mas tanto num contexto de ensino como para a reprodução de certas funções no RVP, é útil.
A Tabela 2.3 resume as funcionalidades da nova aplicação do RVP.
É muito importante referir que, pese embora as caraterísticas funcionais do RVP a desenvolver sejam inspiradas ou mesmo decalcadas da primeira versão do mesmo, o suporte físico e lógico de ambos é profundamente distinto. Concretamente, o novo projeto vai basear-se numa simulação maioritariamente cinemática retirando-lhe o peso computacional, mas também o profundo realismo de um motor físico e, ortogonalmente, num algoritmo de cinemática inversa mais prático, aplicável a qualquer robô de seis eixos. Esta questão será esclarecida no Capítulo 3, onde serão devidamente apresentados os aspetos tecnológicos e lógicos do RVP.
As diferenças, vantagens e dificuldades desta nova abordagem relativamente à anterior serão referidas e sublinhadas ao longo da presente dissertação.
A terminar este ponto, e na continuidade do parágrafo anterior, importa dizer que não será abordado nenhum método para verificação de trajetória e deteção de potenciais colisões já que, na ausência de um motor físico, a complexidade e o volume de trabalho exigidos não são compatíveis com o tempo disponível para a dissertação. O mesmo pode ser dito acerca do cálculo e da visualização de configurações alternativas do robô. Embora estas características sejam fundamentais num simulador de Robótica, é importante reiterar que o Factory I/O não pertence a esta categoria específica de simuladores e, como tal, nesta fase de desenvolvimento e teste, decidiu manter-se a simplicidade da aplicação. Todavia, há intenção de incluir estas funcionalidades em futuros desenvolvimentos do RVP e respetiva integração com o Factory I/O. São tudo questões sublinhas no final da dissertação na forma de propostas de trabalhos futuros.
Tabela 2.3 – Resumo das funcionalidades esperadas para a aplicação do RVP.
Funcionalidade Descrição
Especificação de movimentos
Movimento ponto-a-ponto, linear, circular e junta-a- junta;
Controlo da velocidade e suavização de arestas em movimentos consecutivos.
Incorporação de ferramentas
Inserção de duas ferramentas (uma garra e uma de sucção);
Definição e possibilidade de alteração dos TCPs definidos.
Interação com o ambiente
Conexão com dispositivos exteriores;
Possibilidade de pausa/paragem dos programas criados e impressão de mensagens para o utilizador.
Definição da linguagem de programação
Especificação de pontos-alvo, vetores cartesianos, vetores de orientação e referenciais
Definição da interface gráfica
Manipulação do TCP;
Visualização e alteração da posição e orientação do TCP em relação ao elemento terminal;
Visualização e alteração dos valores das juntas.