·

Engenharia Mecatrônica ·

Robótica

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Universidade Federal de São João DelRei Campus Alto Paraopeba Engenharia Mecatrônica RELATÓRIO DE INICIAÇÃO CIENTÍFICA SIMULADOR PARA O MANIPULADOR ROBÓTICO ED7220C Instuição Universidade Federal de São Del Rei Aluno Paulo Ricardo Cavalcante Neves Matrícula 174400007 Professor Matheus Romão Ano de Entrega 2022 Ouro Branco Minas Gerais RESUMO Este relatório descreve as avidades realizadas para o desenvolvimento do simulador do manipulador ED7220C presente nos laboratórios da Universidade Federal de São João Del Rei UFSJ campus Alto Paraopeba que torna possível a realização dos ensaios prácos em ambiente virtual com diversas vantagens em termos de funções e possibilidade de simulação de processos SUMÁRIO 1 INTRODUÇÃO6 2 OBJETIVO7 3 MATERIAIS E MÉTODOS7 31 O MANIPULADOR ED7220C7 32 DESENVOLVIMENTO DO SIMULADOR9 321 MODELAGEM9 322 INTERFACES DE CONTROLE DO MANIPULADOR ROBÓTICO Joysck e programação via instruções10 4 RESULTADOS12 41 MODELAGEM12 42 INTERFACE DE CONTROLE DO MANIPULADOR ROBÓTICO13 43 INTERFACE PARA DESENVOLVIMENTO DE ALGORITMOS15 5 CONCLUSÃO19 6 REFERÊNCIAS20 1 INTRODUÇÃO Uma das disciplinas mais empolgantes e aguardadas dentro da grade curricular do curso de engenharia mecatrônica é sem dúvidas a de Introdução a Robóca e isso acontece porque a disciplina oferece a possibilidade do estudo e aplicação na práca de conceitos matemácos Gsicos mecânicos e de controle consolidando diversas áreas de estudo do curso e integrando muito bem teoria e práca No laboratório de Robóca da UFSJ estão disponíveis cinco exemplares do manipulador ED7220C e cinco computadores para o desenvolvimento das aulas prácas que visam o estudo e controle do manipulador para geração de ronas e interação com objetos do meio mesmo que sem sensoriamento Estes manipuladores constuem parte fundamental da disciplina visto que a aplicação da teoria é totalmente dependente da disponibilidade e do bom funcionamento destes Apesar da grande importância e no geral disponibilidade do laboratório de robóca existem alguns problemas relacionados aos recursos desse ambiente que comprometem a experiência práca da disciplina O primeiro é relacionado a baixa oferta dos hardwares existentes no laboratório em relação ao número de alunos da turma o que exige a formação de grupos de estudo que podem inviabilizar o exercício da práca por parte de todos os discentes O segundo problema é a necessidade da presença de um docente ou um técnico de laboratório para acompanhar os alunos em horários disntos aos das aulas de robóca A compabilização de horários acaba por restringir o acesso de alguns estudantes O terceiro problema é a escassez de verbas tanto para melhor equipar os laboratórios de ensino quanto para fazer a manutenção dos recursos existentes Manipuladores robócos possuem diversas partes mecânicas que necessitam de manutenção prevenva e podem gerar demanda de manutenção correva também Dessa forma qualquer revisão ou reparo em um dos manipuladores impossibilita o uso deixando a quandade de recursos ainda mais escassa enquanto a manutenção que é um processo demorado devido a burocracia inerente à administração pública não é finalizada Em meio a todas essas questões o ensino remoto tornouse uma realidade durante a pandemia gerada pela Covid 19 e comprometeu o ensino e estudo da disciplina inviabilizando as aulas prácas que dependem diretamente dos recursos disponíveis no laboratório de robóca da universidade De modo a contornar todos os problemas relatados foi desenvolvido um simulador para o manipulador ED7220C por meio do qual os discentes podem desenvolver avidades relavas à programação e controle do manipulador em seus próprios computadores com resultados semelhantes aos que seriam obdos em laboratório Mais além o simulador pode complementar o ensino presencial fornecendo ferramentas suficientes para realizar testes e análises em um ambiente com Gsica simulada Neste estudo discorreremos sobre a construção do modelo e desenvolvimento do simulador detalhando cada funcionalidade do sistema estruturação do código e procedimentos de uso 2 OBJETIVO O objevo principal desse trabalho consiste na implementação de um simulador para o manipulador ED7220C visando tornar possível a realização dos ensaios prácos e fornecer aos discentes uma gama de funções com as quais seja possível a criação de diversos cenários de automação de ronas tudo em um ambiente virtual 3 MATERIAIS E MÉTODOS O desenvolvimento do projeto foi dividido em duas etapas fundamentais modelagem e construção do ED7220C em um soOware de simulação de robóca e criação de interfaces para viabilizar ao usuário final o controle do manipulador via elementos gráficos ou por programação em linha de código 31 O MANIPULADOR ED7220C O manipulador ED7220C 1 apresentado na figura 1 é um braço robóco didáco com um sistema de cinco juntas sendo todas giratórias com restrições mecânicas ou eletroeletrônicas de rotação conforme limites a seguir Eixo 1 Rotação da Base 310 Eixo 2 Rotação do ombro 32 123 Eixo 3 Rotação do cotovelo 190 75 Eixo 4 Inclinação do pulso 125 Eixo 5 Rotação do pulso 570 limitado electromecanicamente Figura 1 ED7220C A interação do usuário com o ED7220C pode ser feita de duas formas 1 Por meio de um joysck figura 2 à esquerda no qual há diversos botões com funções predeterminadas como por exemplo aqueles responsáveis por acionar os motores acoplados a cada junta do manipulador 2 Por meio de uma interface gráfica denominada Arm Robot Trainer que viabiliza o desenvolvimento de algoritmos a parr das instruções disponibilizadas pelo fabricante no manual do manipulador figura 2 à direita Figura 2 Recursos disponíveis para controlar o manipulador ED7220C Joysck à esquerda e uma interface para desenvolvimento de algoritmos à direita 32 DESENVOLVIMENTO DO SIMULADOR 321 MODELAGEM O processo de modelagem do ED7220C pôde ser simplificado visto que há na internet o modelo desse manipulador em arquivos 3D disponibilizados de forma gratuita Em se tratando de simuladores de robóca o mercado oferece diversas alternavas para a construção de manipuladores em ambientes com Gsica simulada Na tabela 1 são apresentadas informações gerais dos principais soOwares do mercado Tabela 1 Principais soOwares de simulação de robóca e informações gerais 2 Characteriscs Webots EasyRob RobTbx PlayerStage Gazebo ROS Simbad CARMEN USARSim MRDS MissionLab Coppelia Sim OS Mac Linux Win Win Mac Linux Win Mac Linux Win Linux Mac Linux Win Mac Linux Win Linux Linux Win Win Linux Mac Linux Win Simulator Type 3D 3D 2D 3D 2D 3D 2D 3D 3D 2D 3D 3D 3D 3D Programmimg Language C Java lab C Python C Clike C C Python Java C C Python Java C Python Java Octave LISP Lua Java C Java C C Java VPL C Visual Basic Jsript Iron Python VPL Lua Documentaon HighLevel HighLevel HighLevel LowLevel LowLevel HighLevel HighLevel LowLevel HighLevel HighLevel HighLevel HighLevel Tutoal Yes Yes Limited Yes Yes Yes Limited Limited Limited Yes Limited Yes Portability Yes No No Yes Yes Yes Limited Yes Yes using Player Yes Yes No Sensors odometry range camera GPS odometry odometry range odometry range odometry range camera odometry range camera vision range contact odometry range GPS odometry range camera touch odometry range camera odometry range contact GPS camera DebuggingLogging Yes Yes Yes Yes Yes No Yes Yes Yes Yes Yes No Graphical User Interface Yes Yes Yes No No No No No Yes Yes Yes Yes Characteriscs Webots EasyRob RobTbx PlayerStage Gazebo ROS Simbad CARMEN USARSim MRDS MissionLab Coppelia Sim Entre esses programas o Coppelia Sim ango VRep foi ulizado para desenvolvimento do projeto se destacando pela linguagem de programação nava em alto nível Lua possibilidade de programação de ronas em ambientes de desenvolvimento externo e pela funcionalidade de importação de objetos criados em programas de modelagem e montagem no próprio simulador Para fazer a montagem do manipulador dentro do Coppelia Sim foi necessária uma adequação do modelo 3D de modo que as juntas e eixos do ED7220C fossem idenficados como componentes independentes Em seguida foi realizada uma organização dos diversos componentes em uma hierarquia e aplicada as caracteríscas Gsicas dos materiais como massa po do material e momento de inércia 322 INTERFACES DE CONTROLE DO MANIPULADOR ROBÓTICO Joysck e programação via instruções A interface de controle do simulador é onde estão dispostas e organizadas todas as funcionalidades do programa de forma lógica e intuiva Ela norteia a experiência do usuário que é sasfatória quando este tem de forma rápida o acesso a todos os recursos De modo a apresentar as funcionalidades mais importantes que são as de movimentação das juntas por comandos de velocidade e posição a interface principal foi desenvolvida com botões de controle deslizantes para acionamento destas levandoas para posições ou imprimindo velocidades de forma livre Sendo necessário enviar comandos específicos a interface conta também com campos para inclusão de valores arbitrários de posições eou velocidades desejadas Outras funções importantes são a de fechamento e abertura da garra reinicialização da simulação leitura da posição angular das juntas avação do sistema de cálculo de cinemáca inversa e um painel de programação Este úlmo permite que o usuário programe ronas de trabalho através de comandos específicos e foi pensado tendo como referência o painel de programação oferecido pelo próprio ED7220C que também permite a criação de ronas vide figura 2 à direita porém os comandos aqui sofreram alterações para simplificação de sintaxes O desenvolvimento de toda a interface e do painel de programação foi feito dentro do ambiente de simulação Coppelia Sim que tem como algumas de suas grandes caracteríscas a disponibilização de funções específicas para serem ulizadas na programação de simulações e uma linguagem de programação nava de alto nível Lua A linguagem de programação Lua foi projetada e desenvolvida no Brasil por uma equipe da PUCRio Ponfica Universidade Católica do Rio de Janeiro em 1993 3 Possui como caracteríscas a sintaxe procedural simples processamento de código por bytecodes em uma máquina virtual e gerenciamento automáco de memória Devido a essas caracteríscas a linguagem Lua é muito eficiente e leve ulizada em grande escala no mercado de jogos e em aplicações industriais 45 A figura 3 apresenta um trecho do código escrito na linguagem Lua onde é implementada a função de cinemáca inversa e a função de rotação da base Em ambas as funções são ulizadas funções navas do Coppelia Sim para acionamento das juntas e comandos especiais de Gsica e cálculo em espaço tridimensional Figura 3 Trecho do código escrito na linguagem de programação Lua no ambiente do Coppelia Sim 4 RESULTADOS 41 MODELAGEM A figura 4 mostra a interface do Coppelia Sim onde é possível ver o modelo do manipulador ED7220C à direita e a organização hierárquica dos elos e juntas à esquerda Figura 4 Montagem do modelo do manipulador ED7220C no Coppelia Sim No painel à esquerda a árvore de hierarquia dos componentes Na hierarquia dos objetos da cena é importante visualizarmos todos os itens que compõem a simulação 1 DefaultCamera Objeto câmera da cena 2 ResizableFloor525 Objeto superGcie da cena 3 DefaultLights Objeto iluminação da cena 4 XYZCameraProxy Objeto perspecvas da cena 5 Base Objeto base do manipulador ED7220C 6 RobManipSphere Objeto esfera guiaalvo do manipulador para cálculo da cinemáca inversa 7 Revolute1 Objeto junta de revolução que conecta o objeto Base ao objeto Ombro 8 Ombro Objeto ombro do manipulador ED7220C 9 Revolute2 Objeto junta de revolução que conecta o objeto Ombro ao objeto Braco 10 Braco Objeto braço do manipulador ED7220C 11 Revolute3 Objeto junta de revolução que conecta o objeto Braco ao objeto Antebraco 12 Antebraco Objeto antebraço do manipulador ED7220C 13 Revolute4 Objeto junta de revolução que conecta o objeto Antebraco ao objeto Pulso 14 Pulso Objeto pulso do manipulador ED7220C 15 Revolute5 Objeto junta de revolução que conecta o objeto Pulso ao objeto BaxterGripper 16 BaxterGripper Objeto garra do manipulador A seguir na figura 5 são indicados os objetos que compõem o manipulador Figura 5 Objetos da cena que compõem o manipulador A garra do manipulador é o modelo Baxter gripper navo do Coppelia Sim escolhido por fornecer pracidade ao projeto com um script próprio que define os comandos de abertura e fechamento determina a velocidade das ações e extensão da abertura das pinças 42 INTERFACE DE CONTROLE DO MANIPULADOR ROBÓTICO A seguir a figura 6 mostra a interface de controle desenvolvida Figura 6 Interface gráfica do simulador interface principal à esquerda e painel do editor à direita A tabela 2 apresenta uma breve descrido de todos os comandos disponibilizados pela interface principal que simula o joystick do manipulador ED7220C figura 6 a esquerda Tabela 2 Funcgées da interface grafica Fungo iescrigo Quando marcado habilita o controle por posicdo a partir Quando desabilitado os slides acionam a movimentacdo do manipulador por comandos niveis de velocidade Sdo funcées relativas 4 movimentacdo do manipulador Base radjrads controladas pelos slides horizontais Os botées de controle ShoulderAdvance radrads deslizantes possuem escala de grandeza e acionam a ElbowAdvance radrads P 8 Hand Advance radrads movimentagdo do braco robdtico por comandos de HandSpin radrads velocidade ou de posicdo dependendo da selecao feita pelo usuario na funcdo anterior Base rad Sdo fungdes especificas para movimentacdo do ShoulderAdvance rad manipulador a partir de comandos de posido absolutas das ElbowAdvance rad juntas As caixas de textos permitem que o usuario digite o HandAdvance rad valor para o qual uma determinada junta deve ser HandSpin rad posicionada ommeimin geet aon Command Window codigos para programacdo do manipulador vide figura 6a direita Restart Simulation oe eee para a posicdo inicial Lé a posicdo das juntas do manipulador e as exibe na Read Joints Position sandboxScript tela de comunicagcdo do Coppelia Sim no inching tn enc Soin Habilita o modo de Cinematica Inversa onde o simulador Enable Inverse Kinematics calcula as posicdes das juntas para que o manipulador fete at eae Em ambientes de simulacdo em trés dimensdes o conhecimento do espaco é um requisito muito importante para operacdo dos objetos da cena Uma vez conhecida as posicdes dos objetivos qualquer manipulacgdo destes no espaco é controlavel Neste simulador a movimentacdo de corpos se da pelo braco robdtico que necessita alcancar objetos da cena para alterar a posicdo destes De modo a facilitar esse calculo e evitar que um usuario descubra por tentativa e erro a melhor configuracdo das juntas do manipulador para posicionar a garra sobre um objeto a funcdo de cinematica inversa pode ser utilizada com o Enable Iverse Kinematics Neste modo de funcionamento o manipulador alcanca automaticamente um elemento especifico da cena o RobManipSphere Basicamente o simulador calcula qual a melhor configuragdo das juntas para posicionar a garra de modo a pegar esse objeto Isso permite que o usuario ao habilitar essa funcionalidade possa copiar a posicdo de um objeto especifico da cena para o Rob ManipSphere e dessa forma o manipulador sera configurado de modo a que a garra esteja em uma posicdo para pegar esse determinado objeto 43 INTERFACE PARA DESENVOLVIMENTO DE ALGORITMOS Para possibilitar o desenvolvimento de algoritmos dentro do simulador foi desenvolvido um painel para programação cujo acesso se dá por meio da função Command Window na interface gráfica figura 6 à esquerda A figura 7 mostra a janela que se abre para o desenvolvimento do código fonte Figura 7 Painel do editor O código deve ser escrito no campo Write de forma sequencial sendo cada comando separado por enter Não há limite para o tamanho da rona programada O botão RUN inicia a rona programada na cena a parr do estado em que se encontra o manipulador e todos os objetos da cena O botão Restart reinicia a simulação enviando todos os objetos da cena incluindo o manipulador para a posição inicial É importante ressaltar que a posição inicial dos objetos pode ser alterada quando a simulação está parada A tabela 3 apresenta o conjunto de instruções que foi desenvolvido e suas respecvas descrições Destacase que as instruções e seus argumentos devem ser escritos separados por espaço Tabela 3 Instruções para uso da interface de programação Função Sintaxe Descrição HOME HOME Transfere o manipulador para a posição inicial OPEN OPEN Abre a garra CLOSE CLOSE Fecha a garra POS POS Aciona as juntas indicadas para a posição absoluta solicitada em rad Cada argumento é relavo a uma junta específica por exemplo o primeiro argumento é referente a junta da base portanto o valor informado no primeiro argumento será o valor para o qual a junta da base será movida OBS Devese usar ou deixar os argumentos seguintes vazios para não mover juntas específicas Exemplo POS 1 2 Esse comando movimenta a junta da base para 1 rad não movimenta a junta de avanço do ombro do manipulador e movimenta a junta de giro do ombro do manipulador para 2 rads as demais juntas 456 e 7 também não são movimentadas Todos os movimentos solicitados através dessa função são executados em conjunto POSX POSX Aciona uma junta específica para a posição absoluta solicitada em rad O primeiro argumento especifica a junta a ser movida 1 a 7 e o segundo argumento especifica para qual posição absoluta a junta será movida em rad VEL VEL Define a velocidade de movimentação das juntas indicadas em rads Cada argumento é relavo a uma junta específica por exemplo o primeiro argumento é referente a junta da base portanto o valor informado no primeiro argumento será o valor para o qual a velocidade da junta da base será configurada OBS Devese usar ou deixar os argumentos seguintes vazios para não modificar a velocidade de juntas específicas Exemplo VEL 3 2 Esse comando configura a velocidade da junta da base para 3 rads não configura a velocidade da junta de avanço do ombro do manipulador e configura a velocidade da junta de giro do ombro do manipulador para 2 rads as demais juntas 456 e 7 também não têm suas velocidades configuradas Por padrão todas as juntas têm velocidade de movimentação quase instantânea VELX VELX Define a velocidade de uma junta específica em rads O primeiro argumento especifica a junta a qual terá a sua velocidade configurada 1 a 7 e o segundo argumento especifica para qual velocidade a junta será configurada em rads Por padrão todas as juntas têm velocidade de movimentação quase instantânea VELL VELL Define a velocidade de todas as juntas em rads O único argumento da função é referente a velocidade para qual todas as juntas serão configuradas Por padrão todas as juntas têm velocidade de movimentação quase instantânea DELAY DELAY Insere uma pausa para a execução do próximo comando em segundos s O único argumento da função é referente ao tempo de delay para a execução do próximo comando do script Por padrão o delay para execução de um comando é de 05 segundo DELAYL DELAYL Insere uma pausa padrão antes da execução de todos os próximos comandos O único argumento da função é referente ao tempo de delay para a execução de todos os comandos seguintes do script Por padrão o delay para execução de um comando é de 05 segundos POSI POSI Aciona as juntas indicadas incrementando a posição com o valor informado em rad Cada argumento é relavo a uma junta específica por exemplo o primeiro argumento é referente a junta da base portanto o valor informado no primeiro argumento será o valor incrementado na posição atual da junta da base OBS Devese usar ou deixar os argumentos seguintes vazios para não mover juntas específicas Exemplo POSI 1 1 Esse comando incrementa a posição da junta da base em 1 rad não movimenta a junta de avanço do ombro do manipulador e incrementa a posição da junta de giro do ombro do manipulador em 1 rad as demais juntas 456 e 7 também não são movimentadas Todos os movimentos solicitados através dessa função são executados em conjunto POSIX Sintaxe POSIX Aciona uma junta específica incrementando a posição com o valor informado em rad O primeiro argumento especifica a junta a ser movida 1 a 7 e o segundo argumento especifica o incremento na posição atual da junta que será movida em rad GOTO GOTO Repete uma determinada sequência do código em uma frequência especificada O primeiro argumento especifica para qual linha anterior do código a execução deve saltar e o segundo argumento informa o número de repeções após a primeira execução Se o segundo argumento não for informado será considerado igual a 1 Destacase que parte das instruções implementadas possuem o mesmo mnemônico e desempenham a mesma ação que as instruções disponibilizadas pelo fabricante enquanto outras foram desenvolvidas para tornar mais simples o processo de construção de ronas A figura 8 apresenta um exemplo de código que move a junta 1 05 rad e a junta 2 05 rad e finaliza a rona fechando a garra do manipulador O valor negavo associado à junta 2 indica que a rotação será no sendo horário Figura 8 Código implementado no painel do editor 5 CONCLUSÃO O simulador desenvolvido apresenta recursos sasfatórios para a execução de ronas programadas e testes no manipulador ED7220C com funções personalizadas que incrementam a simulação e disponibilizam ao usuário maior gestão e controle de posicionamento no espaço de trabalho podendo até ser adicionado novas funções através do script da cena É importante ressaltar a fluidez da aplicação visto que a simulação rodou muito bem em computadores com configurações básicas de memória e processamento sem travamentos e sem erros de renderização facilitando bastante a experiência do usuário final O fato de a linguagem nava da aplicação ser de alto nível e ser pensada para a omização do processamento do script traz vantagens à execução de ronas programadas no Coppelia Sim Outro ponto muito importante é a interface gráfica simples e intuiva que apresenta os recursos mais usuais para controle fácil do manipulador e funções específicas para a construção de ronas mais complexas Por meio deste simulador os discentes conseguem desenvolver avidades relavas à programação e controle do manipulador em seus próprios computadores com o auxílio de recursos navos do soOware Coppelia Sim para a montagem de ambientes que simulam processos reais podendo ser inseridos outros componentes para interação com o manipulador como esteiras industriais outros manipuladores objetos Gsicos etc Com todas as caracteríscas já citadas este simulador será um recurso de grande ulidade para o aprendizado da disciplina de Introdução a Robóca fomento do desenvolvimento de simulações de automação e controle e fomento da programação em alto nível 6 REFERENCIAS 1 ED7220C ED Corporation Ltd 2021 Disponivel em httpwwwedcokr 2 Staranowicz Aaron and Gian Luca Mariottini A survey and comparison of commercial and opensource robotic simulator software PETRA 11 2011 3 Lerusalimschy Roberto Luiz Henrique De Figueiredo and Waldemar Celes Filho Luaan extensible extension language Software Practice and Experience 266 1996 635652 4 El Kaed C Khan Van Den Berg A Hossayni H SaintMarcel C 2017 SRE Semantic rules engine for the industrial InternetofThings gateways IEEE Transactions on Industrial Informatics 142 715724 5 Pavlik Ryan A and Judy M Vance VR JuggLua A framework for VR applications combining Lua OpenSceneGraph and VR Juggler 2012 5th workshop on software engineering and architectures for realtime interactive systems SEARIS EEE 2012