Semana 10

  • Preparação definitiva da placa de controlo dos I/O’s e sua montagem na caixa modelada e impressa para o efeito;
  • Familiarização com o laser Hokuyo UMT-30LX;
  • Programação de uma launch file para simultâneamente correr dois nodos ros, responsáveis por publicar os dados dos lasers em dois tópicos distintos. A launch file configura ainda diferentes parâmetros distintos para os dois lasers, nomeadamente a amplitude, referencial de origem, porta, …;
  • Criação de um nodo ros (vs_laser_receptor) responsável por subscrever os tópicos ros com os dados dos lasers e fazer a análide dos dados detetando se existe alguma coisa nas proximidades dos lasers com dois níveis de severidade de alarme. O nodo já publica o laser que está em alarme e qual o seu nível;
  • Início da escrita do documento de dissertação.

Semana 9

  • Criação de um novo nodo vs_frame responsável pela gestão de referenciais que tem as seguintes funções:
    • Publicar uma transformação tf do referencial do laser (laser) em relação ao referencial do robot (base_link), que permite a visualização dos dados do laser juntamente com o robot, sendo possível a monitorização e controlo do seu estado;
    • Publicar outra transformada do referencial fixo (world) para o referencial do robot (base_link). Esta última transformada permite que o robot se mova pelo espaço, simulando o movimento da plataforma num espaço amplo;
  • Criação de um tópico subscrito pelo nodo vs_frame que transposta as coordenadas x, y da plataforma e ainda a sua rotação. O tópico é publicado pelo nodo vs_plataformsim, o nodo que simula a plataforma e que faz sentido que saiba a localização da plataforma;
  • Atualização dos nodo vs_keyboard de forma a se poder controlar a localização e rotação da plataforma no espaço através das setas do teclado, para tal foi necessário a criação de mais um tópico, responsável por enviar os comandos dados pelas setas do nodo vs_keyboard para o nodo vs_platform_sim;
  • Preparação da Demo 0 em que o robot pega em objetos que serão transportados na placa superior de suporte do robot e descarrega-os na parte da frente da plataforma;
  • Impressão da caixa para a placa de controlo de I/O’s, faltando apenas a tampa!;
  • Conclusão da elaboração do esqueleto da dissertação.

Semana 8

  • Desenvolvimento e conceção de uma placa eletrónica para controlo dos IO’s do robot;
  • Projeto de uma caixa para impressão 3D para acomodar a placa e o Arduino de controle;
  • Realização do esquema elétrico da placa em Eagle;
  • Preparação de duas fichas provisórias de ligação da placa ao robot;
  • Instalação das drives do laser Hokuyo URG-04LX-UG01 que será o sensor de percepção usado no sistema robótico;
  • Instalação da package ROS de leitura de dados do laser e verificação do seu funcionamento através da sua visualização no RViz;
  • Ínicio da escrita: preparação do esqueleto escrito da dissertação.

Semana 7

A semana foi exclusivamente dedicada à resolução do problema do controlo de IO’s do Robot. A solução encontrada passa pela utilização de um Arduino Leonardo Ethernet que vai comandar, através de relés, o valor das entradas digitais do robot. No robot estará a correr um programa TP, em background, que irá fazer a replicação das entradas digitais para as saídas do robot que se forem utilizar.

De forma a implementar esta solução realizaram-se as seguintes tarefas:

  • Desenvolvimento de um programa .ino, servidor tcp/ip que está a espera de receber um caractere char de um client. O programa ao receber o caractere converte-o para um número inteiro segundo a tabela ascii e com esse inteiro descodifica-o de forma a obter a função do comando: Ler, Ligar ou Desligar uma saída e o número da saída ao qual se pretende aplicar a ação;
  • Desenvolvimento de um nodo ROS vs_IO_client, client do programa Arduino e subscritor de um tópico publicado pelo nodo de controlo do robot vs_canuc_client. O nodo de controlo se quiser alterar uma saída, publica uma mensagem, o nodo vs_IO_client recebe a mensagem, codifica-a, converte-a segundo a tabela ascii e envia-a para o server que está no arduino. Quando a função é de leitura o nodo fica à espera que o servidor lhe retorne o estado da saída em questão.
  • Conceção do programa TP de replicação de entradas para as saídas que corre em paralelo com o ROS no controlador do manipulador. O programa lê o estado das entradas digitais, escreve o seu estado em registos e qualquer saída definida pelo utilizador pode alterar o seu estado em função do valor do registo.

IMG_20170406_151751

 

 

Semana 6

  • Reunião com o Eng. Tiago Simões com os seguintes objetivos:
    • Esclarecimento de dúvidas sobre a arquitetura da aplicação desenvolvida durante o seu projeto de dissertação;
    • Explicação do funcionamento dos seus nodos e métodos de comunicação entre os mesmos;
    • Discussão de algumas particularidades do código, nomeadamente comunicação publisher – subscriber e server – client no mesmo nodo;
  • Criação de 1 nodo ROS (vs_teclado) que recebe comandos do utilizador inseridos pelo teclado;
  • Criação de outro nodo (vs_platform_sim) que simula o nodo principal de controlo da plataforma, comunica com o nodo vs_teclado pelo método publisher – subscriber sendo subscritor de um tópico (chatter) que contém dois tipos de mensagem que foram também criadas pelo autor;
  • Criação de mais um nodo (vs_fanuc_client) que é responsável por receber pedidos pela plataforma, processar os pedidos, interagir com o manipulador (se necessário) e responder à plataforma quando acabar de executar a sua tarefa. Este nodo comunica com o nodo vs_platform_sim pelo método server – client e usa o serviço RobanucCom como forma de comunicação;
  • Desenvolvimento de funções para comando do manipulador, nomeadamente, movimento para posições usuais e pré-definidas, mov. em juntas, mov. em coordenadas absolutas e leitura de posição.

A habitual reunião semanal contou com a presença do Eng. Rui Cancela. Verificou-se que havia um atraso na aquisição do software de implementação do protocolo Modbus no controlador Fanuc. De forma a solucionar o problema contactou-se o autor do ROS Fanuc para saber se existia alguma forma de controlar IO’s usando ROS e consultou-se ainda a literatura não se tendo encontrado nenhuma solução viável.

Semana 5

  • Desenvolvimento e aplicação do modelo CAD do end-effector do robot e do conjunto base+placa superior nos modelos usados pelo ROS API para fazer planeamento da trajetória e deteção de colisão;
  • Roscagem manual dos furos das placas verticais projetadas e fabricadas, consequência da não viabilidade da realização da rosca no CNC da oficina;
  • Traçagem milimétrica dos 66 furos necessários para fixação dos componentes do sistema, nomeadamente a placa superior, placa inferior estrututal e placa curva inferior. Os referidos furos incluem os furos para fixação reversível das placas verticais e os furos auxiliares para garantir a montabilidade da estrutura;
  • Furação das chapas, foram ainda escareados manualmente todos os furos para evitar acidentes;
  • Montagem do sistema, verificação da montabilidade, do espaço dedicado ao controlador do robot, …;
  • Análise mais detalhada do código já desenvolvido pelo Eng. Tiago Simões de forma a perceber o que poderá ser usado no projeto do software de base do sistema robótico.

Semana marcada pela conclusão do projeto mecânico, por outras palavras, o hardware está acabado, segue-se a fase de desenvolvimento do software que será o alvo do foco do autor a tempo inteiro.

IMG_20170322_183128

Semana 4

  • Configuração dos servidores ROS no controlador do manipulador;
  • Estabelecimento da ligação entre um nodo ROS (client) e os nodos sevidores;
  • Exploração de algumas funcionalidades do nodo client, nomeadamente planeamento de trajetórias, verificação de colisão com o próprio manipulador e movimento em juntas ou espaço cartesiano;
  • Conclusão do projeto mecânico das placas de sustentação ao patamar superior, preparação dos desenhos de definição das peças;
  • Pedido de orçamento para o material de fixação das placas e do manipulador (parafusos, anilhas, porcas, …);
  • Segunda sessão da formação de ROS lecionada pelo professor Miguel Oliveira;

des

Semana 3

  • Modelação 3D das peças da plataforma Robuter que serão usadas no sistema mecânico que será desenvolvido durante o projeto;
  • Discussão com o Eng. Festas, colegas de laboratório e professor orientador, acerca do método mais viável para elevar a plataforma através de um novo patamar;
  • Concepção da primeira versão da estrutura de suporte aos dois patamares necessários ao sistema (primeiro dedicado ao controlador e cablagens e o segundo dedicado ao manipulador e a algum espaço para transporte de objetos);
  • Instalação do ROS Industrial e packages  MoveIt, foi necessária a resolução de vários problemas provenientes da versão do SO Ubuntu e ROS em utilização.
  • Participação em formação intensiva de ROS e linguagem de programação C++ lecionada pelo Prof. Miguel Oliveira.

sisv0

Semana 2

  • Realização dos tutoriais disponíveis online sobre ROS;
  • Leitura de mais informação sobre ROS, ROS Industrial e a biblioteca MoveIt! de forma a ter uma ideia preliminar da arquitetura do software a implementar no sistema robótico;
  • Leitura de mais algumas teses relativas ao temas em estudo;
  • Atualização deste blog com novas páginas com informações genéricas;
  • Envio de e-mail com o requerimento da instalação do protocolo ModBus no manipulador que será o meio de controlo dos I/O’s do robot;
  • Análise dos órgãos mecânicos da plataforma com o objetivo de ter um ponto de partida para o projeto mecânico da estrutura necessária.